

A custom asset mod for Hollow Knight: Silksong with particular attention to ease of creation.
ALWAYS KEEP BACKUPS OF YOUR IN-PROGRESS ASSET PACKS OUTSIDE OF THE PATCHWORK FOLDER!!! Thunderstore (and Gale) delete all asset folder inside the Patchwork folder when updating to a new version. Please always back up asset packs you're working on in a safe location outside of any game folders.
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)DumpText: Enables text dumping, which dumps all text in the game in all languages into the "Patchwork/TextDumps" folder. DO NOT enable this during normal gameplay, as it slows down the game boot process by a lot.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.TextLogDuration: How long the name of a text key is shown in the log after being requested by the game, in seconds. (Default: 10)ShowAudioLog: Keybind for showing the audio log 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. (Default: 1)ShowAudioList: Keybind for showing the audio list, which lists all statically loaded sound effects. Can be used to find names of sounds which don't show up in the Audio Log. (Default: 2)ShowAnimationController: Keybind for showing the animation controller, which lets you freeze individual objects, pause and play specific animations, and pick individual sprite images to be dumped and edited immediately. (Default: 3)ShowTextLog: Keybind for showing the text log, which logs the sheet/key names of any text the game requests to be shown. (Default: 4)AnimationControllerPauseKey: Toggles the "Paused" state on the currently selected object, freezing the animation and allowing for manual frame selection.AnimationControllerNextFrameKey: Advances the animation by one frame, if the selected object is pausedAnimationControllerPrevFrameKey: Shows the previous frame of the animation, if the selected object is pausedAnimationControllerFreezeKey: Toggles the "Frozen" state on the currently selected object, locking its position within the game world, to make animations that include movement easier to see and test.NOTE: You can find your custom sprites at BepInEx/plugins/Ashiepaws-Patchwork/Sprites after clicking the "Edit Current Sprite" button.
NOTE: Patchwork supports all Unity-supported audio formats.
plugins/Ashiepaws-Patchwork/Videos folder, naming it the same as the cutscene you want to replace. (For example: Intro_Cinematic.mp4)NOTE: Patchwork supports all Unity-supported video formats.
Patchwork hooks directly into the Localization system of Silksong, so any text shown in the entire game is replaceable. The game uses a sheet-key-system for its text, and Patchwork lets you override individual pieces of text within that system through text files. The file structure is as follows:
Patchwork/Text/[Sheet]/[LANGUAGE].yml
Where "Sheet" is the name of the text sheet, and "LANGUAGE" is a 2-character uppercase identifier of the language the text is in. (For example: Patchwork/Text/MainMenu/EN.yml replaces text in the sheet titled MainMenu for the English language)
The files themselves are simple YAML files and should always follow this structure:
[KEY]: "All text goes here."
Where "KEY" is the key of the text within the sheet. (Make sure not to include the [] brackets!)
In order to find the sheet & key names of specific lines of text, you have two options:
DumpText config option and start up the game once. You can disable it again afterwards. This dumps all text in the entire game into the Patchwork/TextDumps folder in the correct file and folder structure, so you can simply copy it from there.Sheet.KEYPatchwork 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...>
\- Videos
\- <your files here...>