NOTE: HTML rendered via /Compile/MdToHtml.sh with pandoc and .md is viewable in Microsoft Visual Studio. This will not look correct on Github.
Hollow Knight Silksong: Plugin Developer Tools (SilkDev)
The backbone of all my Silksong mods — with handy player utilities and a massive quality-of-life toolkit for modders.
✨️ Player-Facing Goodies ✨️

- Skip intro & auto-load save slot
- Block game input while typing (great with Unity Explorer)
- Force-show mouse cursor (F10 by default)
- Extract individual sprites — single frame, rendered sprite, or full sheet (see “Extracting Sprites” section below)
- User interfaces translated [via LLM] into 20 languages
- One-click extraction of all textures
  - Press F1 → Extract all textures
  - Dumps to PLUGIN_PATH/Textures/NAME-MD5.png (no duplicates)

🛠️ Modder-Facing Power Tools 🛠️
Debugging Configurations Input Events Textures Windows

- Configurable log levels + full stack traces on errors
- Tons of classes and functions to make development easier. Most useful include:
  - Configs
    - Configuration translations and properly sorted by order
      - Configurable delayed saving (instant on exit)
    - Dynamic string→string entries
    - Per-user-saveslot configs with backups
  - Input helpers (mouse visibility, joystick vector, input repeat delays, block specific input actions, etc.)
  - Priority-based event system with callbacks for major game events
  - Texture/sprite extraction and other texture extensions
  - Robust IMGUI window base class
    - Proper ordered mouse handling even over Unity Explorer windows
    - New mouse events: MouseMove, MouseEnterWindow, MouseLeaveWindow
    - Overridable event callbacks for GameEvents and all OnGUI event types
      - Strict event call ordering by window z-order and priority
      - Priority flagging to force windows topmost or bottommost
    - Safe drag/resize with config saving
    - Fake windows for mouse-only capture
    - Simple dialog, popup & progress bar windows
    - Screen-space geometry drawing
  - Reflection shortcuts, safe callbacks and coroutines, JSON utilities, translations & more

Full source + detailed class docs in the GitHub repo (coming soon)

⚙️ Installation ⚙️

1. Install BepInEx
2. Extract this mod’s zip into Hollow Knight Silksong/BepInEx/plugins/dakusan/
3. You should now have (for example): Hollow Knight Silksong/BepInEx/plugins/dakusan/SilkDev.dll
4. If you use my other mods — NoClip — move them into the same dakusan folder.
5. Run the game – done!

You may also want to check out my NoClip mod for development help.

🧩️ Extracting Sprites 🧩️

- Set a shortcut in config (default: none – I ship it disabled because it’s included in many of my mods)
- L/R/M-click (when window open) OR press shortcut key → Shows list ordered by cursor distance (closest auto-selected and on top)
- Config Show boxes around sprites …: red outlines on hovered sprites, blue fill + name on closest [required for in-game-sprite clicking]
- Click list item OR in-game-sprite to display:
  - Left → single sprite from sprite sheet (may include surrounding sheet parts)
  - Right → rendered sprite (can be twitchy)
  - Middle → full sprite sheet (lots of sprites)
  - Double-left → open sprite in Unity Explorer (if installed; list item only)
  - Repeated clicks on animated sprites cycle through different frames
- Left click image to save to: PLUGIN_PATH/Textures/DATE_TIME·NAME.png
- Right click sheet to toggle highlight