Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
A4 - How Stitchwork Works
Updated 2 weeks agoHow Stitchwork Works
Foundations · for creators. The one concept page before you replace anything. Skip it and the folder rules feel arbitrary.
You'll be able to: say what a replacement actually does, tell the two sprite systems apart (the most useful thing to know up front), and know why a saved file shows up in a second.
Replacement happens at load time
Stitchwork never edits the game on disk. It catches the moment the game asks for an asset and answers with your file instead of the original. Turn the pack off and the game gets the original back. Intercept the request, swap the reply — that's the whole model, and why there's no export step and no risk to your save.
Under the hood (optional)
Stitchwork uses Harmony to hook the game's asset calls — sprite setters, Language.Get, audio playback. When the game touches an asset you've replaced, the hook swaps in your version. Nothing is written to disk; the swap is live-only.
The two sprite systems
The fact that saves the most grief: Silksong draws 2D art two ways, and which one decides where your file goes.
- tk2d — almost every animated character (Hornet, enemies, bosses), packed into shared atlases. Files go under
Sprites/[Collection]/[Material]/. - Texture2D ("T2D") — plain textures and UI: menus, HUD, effects, ability art, some cinematic frames. Files go under
Sprites/T2D/orSpritesheets/T2D/.
You needn't memorise it — the Dev Hub tells you (Animation tab = tk2d; T2D tabs = Texture2D). When a replacement won't take, first ask: is it the other system?
One landmine that's caught every Silksong creator: the game calls Hornet "Knight" — a Hollow Knight holdover. Sprites named
Knight_…are hers. (The glossary has more.)
Hot reload
Stitchwork watches your pack folders. Save a file, a watcher fires, it composites onto the live atlas — ~1s, no restart:
edit PNG → save → watcher → reload → composite → on screen (~1s)
Only a new Stitchwork version (the .dll) needs a restart. Pack content never does.
When packs disagree
Two packs, same sprite: priority order (set in the Pack Manager) decides — higher wins, and the manager shows who took it. One exception: text you edit in the Dev Hub's editor always wins, so in-editor changes are never silently lost. Full rule in Priority & Conflicts.
You can now reason about what an edit does, name the two systems, and trust a saved file appears in a second. Next: Starting a Skin Pack.
Pages
- A-0 Wikis
- A1 - Getting Started
- A2 - Installing Packs
- A3 - The Pack Manager
- A4 - How Stitchwork Works
- A5 - When Something Looks Wrong
- AEx1 - Conditional Activation
- B0 - Choosing a Workflow
- B1 - Starting a Skin Pack
- B2 - Finding Any Sprite
- B3 - Porting Prior Work — Spritesheets & CKC
- B4 - Texture2D (T2D) Sprites
- B5 - Bigger Art — Anchors
- B6 - Animation Canvas Workflow
- B7 - Sprite Paths Reference
- B8 - The Animation Controller
- BEx1 - Reused frames — one sprite, many animations
- BEx2 - Instance-specific paths — same name, different art
- BEx3 - Appliqué: Per-Clip Art
- C1 - Text & Dialogue
- D1 - Audio
- E1 - Video
- F1 - Priority & Conflicts
- F2 - Distributing Your Pack
- G1 - Dumping & Full Dump
- G2 - Companion Mods
- G3 - Hotkeys
- G4 - Pack Folder Structure
- G5 - Testing With Savestates (DebugMod)
- G6 - Troubleshooting