Patchwork
A custom asset mod for Hollow Knight: Silksong with particular attention to ease of creation.
| Date uploaded | 2 weeks ago |
| Version | 2.2.1 |
| Download link | Ashiepaws-Patchwork-2.2.1.zip |
| Downloads | 592 |
| Dependency string | Ashiepaws-Patchwork-2.2.1 |
This mod requires the following mods to function
BepInEx-BepInExPack_Silksong
BepInEx modloader. Preconfigured and ready to use.
Preferred version: 5.4.2304README
A custom asset mod for Hollow Knight: Silksong with particular attention to ease of creation.
Features
- Sprite replacement with individual sprite image files, including proper names, rotations & sizing - no more bulky spritesheets
- Support for Texture2D Sprites (which previously required Silksong Customizer + CustomizerT2D)
- Full compatibility with spritesheet-based skins
- Automatic reloading of assets when files change, so you can see your skin ingame immediately without closing the game
- Built-in sprite dumping functionality
- Audio replacement supporting both sound effects and music
Planned features
- Conditional sprites (e.g. different textures for Hornet depending on crest, health, etc.)
- Ingame asset pack manager
- Support for cutscene replacements
- Support for text replacements
Configuration
Sprites
DumpSprites: Enables sprite dumping, which saves sprites for any loaded scene into the "Patchwork/Dumps" folder. These files can be used to make new texture packs. DO NOT enable this during normal gameplay, as it slows down loading the game by a lot. If this is enabled, the mod will also let you dump textures from all scenes in the game by pressing the button configured under "Keybinds/FullDumpKey" (Default: F6)LoadSprites: On by default, lets you disable custom textures if you would like that for whatever reason.
Audio
ShowAudioLog: Shows a window that logs the names of all sounds that are being played that Patchwork has access to. If you're adding custom files to the "Sounds" folder, you must name them exactly the same as shown in order for Patchwork to replace them.ShowAudioList: Shows a window that lists all statically loaded sound effects. Can be used to find names of sounds which don't show up in the Audio Log.LogAudioDuration: How long the name of a sound is shown in the log after being played, in seconds. (Default: 5)HideModdedAudioInLog: On by default. If enabled, sounds which already have a modded file are omitted from the log. This makes it easier to find the names of specific sounds you want to mod.
Texture Creation Guide
- Dump the textures you want to modify.
- Enable the
DumpSpritesoption in the mod config, boot up the game and enter the areas where the sprites you want to modify are loaded. You can also press the "Full Dump" key (Default: F6) to dump all sprites, but this takes quite a while!
- Enable the
- Put the sprites you want to modify into "Patchwork/Sprites" in your game folder.
- You can put them into as many subfolders as you want, but the names of the last two folders MUST be the same as in the dump (for example: "Patchwork/Sprites/HUD Cln/atlas0" is fine, so is "Patchwork/Sprites/SomeTexturePack/HUD Cln/atlas0")
- If you make changes to the files while they are in the Sprites folder, they will automatically be shown ingame.
WARNING: Putting all dumped sprites into the Sprites folder may cause issues due to duplicate sprites. It's a good idea to only put sprites into the folder you're actively working on, and add more later. For more information, refer to the "Known Issues" section.
Audio Creation Guide
- Enable the
ShowAudioLogandShowAudioListoptions in the mod config and boot up the game. - Cause the sound you want to modify to be played. You should see its name pop up in the Audio Log in the top right corner of the screen.
- If you don't see your sound show up in the Audio Log, it may be a pre-loaded one. Make sure to check the Loaded Audio list in that case.
- Put a WAV file with the same name you saw in the Audio Log (or Loaded Audio list) into the "Patchwork/Sounds" folder. For example, to replace the title screen music, you'd name the file "Title.wav".
- Cause the sound to be played again. It should now play your custom sound!
WARNING: It is important that the file you put into the sounds folder is a WAV file. If your file uses any other format, you must convert it to a WAV file first.
Publishing Packs on Thunderstore
Patchwork is structured in a way that lets creators publish their packs as plugins on Thunderstore! In order to be automatically installed correctly when players download them, make sure to follow the following structure with your plugins:
YourName-PackName.zip
\- icon.png
\- manifest.json
\- README.md
\- plugins
\- Patchwork
|- Sprites
| \- <your files here...>
|- Spritesheets
| \- <your files here...>
\- Sounds
\- <your files here...>
Known Issues
Duplicate Sprites
Some sprite textures have multiple definitions within the game files, meaning that while the game treats them as two separate textures, they take up the same space on the spritesheet. When dropping the full set of dumped sprites into the Patchwork folder, this may cause sprites to overwrite each other. (This is for example the case on Hornet's "idle" sprites.)
Temporary Solution: Only keep the Sprites you've already modified in your Patchwork folder, and move them there as you create new ones. The auto-reload feature will work regardless, and there's no risk of conflicts.
I am investigating a way to detect and handle these duplicate sprites, and this issue should be resolved at some point in the future with an update.
Special Thanks
- To Douglas Gregory without whose help I wouldn't have been able to add the GPU-related performance improvements that made Patchwork v2 as fast as it is now.
- To RatherChaoticDev who created the original Silksong Customizer mod that Patchwork was based on
- To Su4enka whose CustomizerT2D plugin (as part of their Cute Hornet skin) helped with adding T2D support to Patchwork
CHANGELOG
v2.3.3
- Fixed custom sprites not appearing for some enemy sprites that include Hornet
v2.3.2
- Fixed some custom sprites reverting to default sprites after death
- Removed
LoadSpritesconfig option
v2.3.1
- Fixed sprite loading breaking in certain areas
- Fixed non-statically loaded audio not being replaced
v2.3.0
- Implemented the Patchwork Animation Controller:
- Freeze the in-world locations of game objects for easier testing
- Pause animations and step through them frame by frame ingame
- Force-play animations ingame, selectable through a dropdown menu
- "Edit Current Sprite" button, which automatically dumps the currently shown sprite and opens it for editing
v2.2.4
- Added support for all Unity-supported audio formats
v2.2.3
- Fixed crash on sound file change
v2.2.2
- Added support for even more sounds
v2.2.1
- Fix occasional pop sound at the end of custom sounds
- Added support for more sounds
v2.2.0
- Added support for AudioClip replacement
- Implemented seamless sprite reloading (Sprite changes no longer reload the entire area)
v2.1.2
- Fixed crashes when auto-reloading certain sprites
v2.1.1
- Fixed plugin crash when using plugin pack with missing folders
v2.1.0
- Support for plugin packs
- Thunderstore release
v2.0.1
- Fixed an issue with dumping of certain rotated sprites
v2.0.0
- Massive performance improvements by moving texture workload to GPU
- Texture2D replacement support
- Moved Patchwork folder to
BepInEx/pluginsfor future mod manager support
v1.0.2
- Added automatic resizing + warning log messages for incorrectly sized sprites
v1.0.1
- Fixed a plugin crash during initialization if Patchwork folders didn't already exist
v1.0.0
- Initial release! 🎉