You are viewing a potentially older version of this package. View all versions.
Michael4d45-HornetCloakColor-1.1.0 icon

HornetCloakColor

Change the color of Hornet's cloak. Fully synchronized with other SSMP players.

Date uploaded 3 months ago
Version 1.1.0
Download link Michael4d45-HornetCloakColor-1.1.0.zip
Downloads 387
Dependency string Michael4d45-HornetCloakColor-1.1.0

This mod requires the following mods to function

BepInEx-BepInExPack_Silksong-5.4.2304 icon
BepInEx-BepInExPack_Silksong

BepInEx modloader. Preconfigured and ready to use.

Preferred version: 5.4.2304
silksong_modding-ModMenu-0.7.4 icon
silksong_modding-ModMenu

API for extending Silksong Menus

Preferred version: 0.7.4

README

HornetCloakColor

A BepInEx mod for Hollow Knight: Silksong that lets you change the color of Hornet's cloak.

Works single-player out of the box. If SSMP (Silksong Multiplayer) is also installed, the chosen color is automatically synchronized to every other player on the server so everyone sees your custom cloak in real time.

Source: github.com/Michael4d45/HornetCloakColor

Features

  • Pick from 12 tasteful presets (Crimson, Scarlet, Amber, Gold, Emerald, Teal, Azure, Royal, Violet, Magenta, Obsidian, Ivory) or supply your own hex / RGB color.
  • Cloak-only recolor: a custom hue-shift shader recolors only the red cloak pixels and leaves Hornet's mask, eyes, and weapon untouched.
  • Optional whole-character tint mode for users who want the original behaviour or who don't have the shader bundle.
  • Zero-friction configuration through the BepInEx configuration manager (F1 in game).
  • Works without SSMP — runs in single-player and recolors your own cloak. SSMP is a soft dependency: install it to also synchronize cloak colors with other players.
  • When SSMP is installed, late-joiners receive a replay of every existing player's color on connect so nobody ever sees the wrong color.

Installation

Via a mod manager (recommended)

  1. Install HornetCloakColor through r2modman / Thunderstore Mod Manager.
  2. (Optional) Install SSMP too if you want your color to sync to other players in multiplayer.
  3. Launch Silksong through the mod manager.

Manual

  1. Install BepInEx for Silksong.
  2. Copy HornetCloakColor.dll into BepInEx/plugins/HornetCloakColor/.
  3. (Optional) Install SSMP into BepInEx/plugins/SSMP/ for multiplayer sync.
  4. Launch the game.

Usage

  1. Launch Silksong and reach the main menu (this ensures BepInEx finishes loading the config).
  2. Open the BepInEx configuration manager (default keybind: F1).
  3. Under HornetCloakColor → Appearance:
    • Set Cloak Color Preset to any of the listed presets, or
    • Set it to Custom and provide a color in the Custom Cloak Color field. Accepted formats: #AA3344, AA3344, or 170,51,68 (decimal 0–255).
  4. Load a save or join a multiplayer server — your cloak will be tinted immediately, and every other SSMP player with this mod installed will see the same color on your Hornet.

Players without this mod will still see vanilla Hornet — they simply won't receive the color updates. You'll still see their vanilla cloaks correctly.

Compatibility

  • Game: Hollow Knight: Silksong
  • BepInEx: 5.4.21 or later
  • SSMP: Optional. If installed, the mod registers as both an SSMP client addon and a server addon so it works on dedicated SSMP servers and on peer-hosted games. If absent, the mod still recolors your own cloak — it just doesn't sync to other players.
  • Silksong.GameLibs: Built against the *-* floating version (whichever is published).

Building from source

# Generate the Silksong path props (once) so the output copies into your install
dotnet new -i Silksong.Templates   # only if you don't already have the template
dotnet new silksongpath

# Build
dotnet build HornetCloakColor.csproj -c Release

A thunderstore/dist/*.zip is produced automatically alongside the compiled DLL if thunderstore/thunderstore.toml is configured.

How it works

  • A small CloakRecolor MonoBehaviour is attached to each player's GameObject (local hero and SSMP-spawned remote players). It reasserts the tint every LateUpdate, which keeps the recolor consistent across tk2dSpriteAnimator material swaps.
  • Cloak-only mode swaps the renderer's shader for HornetCloakColor/CloakHueShift and pushes the chosen color in HSV. The shader gates pixels by hue (red), saturation, and value, then replaces only the matched hue while preserving the original brightness so shading is preserved. The shader is shipped as an AssetBundle embedded in the DLL.
  • Legacy mode (or when the shader bundle isn't present) tints the whole character via the tk2dSprite vertex color and the MeshRenderer material color.
  • Color updates are serialized as a 5-byte packet (player ID + RGB) and sent through the standard IClientAddonNetworkSender / IServerAddonNetworkSender channels exposed by SSMP.
  • The server keeps a simple in-memory table of playerId -> CloakColor and replays it to any new joiner so late arrivals see correct colors immediately.

Baking the shader bundle

The cloak-only path requires Resources/cloakshader.bundle. It's gitignored, so contributors need to bake it in Unity once. See Shaders/README.md for step-by-step instructions (TL;DR: open Unity 6000.0.50, drop the shader and editor script in, click HornetCloakColor → Build Shader Bundle, copy the output to Resources/).

If the bundle isn't present the build still succeeds and the mod gracefully falls back to the legacy whole-character tint at runtime.

License

MIT — see LICENSE.txt.