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.
B7 - Sprite Paths Reference
Updated a week agoSprite Paths Reference
Sprites · reference. Every place a sprite file can go, what each is for, in one page — the lookup to keep open while you build. The other pages teach the why; this one is the where.
You'll be able to: pick the exact path for any sprite replacement in two questions, and recognise all five layouts at a glance.
Pick a path in two questions
- tk2d or T2D? — Animated characters/enemies are almost always tk2d; HUD, menus, effects, some ability art are T2D. The Dev Hub tells you (B2): a sprite in the Animation tab is tk2d, in T2D Textures is T2D.
- New art or a ported sheet? — Authoring anything → individual (this is the recommended path for all new work). Bringing in a finished sheet from CKC or older work → whole-atlas (B3, the porting path).
| Individual | Whole atlas | |
|---|---|---|
| tk2d | Sprites/{Coll}/{Mat}/{Sprite}.png |
Spritesheets/{Coll}/{Mat}.png |
| T2D | Sprites/T2D/{Atlas}/{Sprite}.png |
Spritesheets/T2D/{Atlas}.png |
Plus two advanced paths: one for a name collision, one for per-clip art (both below).
The six paths
1 · Individual tk2d sprite — the common case
Sprites/{CollectionName}/{MaterialName}/{SpriteName}.png
One frame of an animated character/enemy/UI element. Example — a frame of Hornet's idle (remember the game calls her Knight):
Sprites/Knight/atlas2/idle0000.png
Knight = collection, atlas2 = material (the atlas sheet), idle0000 = sprite. Read all three off the inspector (B2). Full walkthrough: B1. Can be larger than vanilla — see anchors, below.
2 · Whole tk2d atlas
Spritesheets/{CollectionName}/{MaterialName}.png
A complete sheet as one PNG, matching the original's dimensions and layout exactly (it's stamped in place). This is the porting door for CKC output and older sheet-based skins — not an authoring path → B3.
Spritesheets/Knight/atlas2.png
3 · Individual T2D sprite
Sprites/T2D/{AtlasName}/{SpriteName}.png
One sprite in the Texture2D system (HUD/UI/effects). {AtlasName} is the clean name (sactx-… prefix and hash stripped). → B4.
Sprites/T2D/Hornet/health_pip.png
4 · Whole T2D atlas
Spritesheets/T2D/{AtlasName}.png
An entire T2D atlas, in place — Dump Atlas gives you the exact template. Same exact-dimensions rule as #2. → B4.
5 · Instance-specific tk2d sprite — advanced
Sprites/{CollectionName}/{VanillaTextureName}/{SpriteName}.png
For the rare case where two collections share a name but hold different art: name the folder for the atlas's raw texture name instead of its material, to disambiguate which instance you mean. If you're unsure whether you need this, you don't — use #1. Depth: BEx2.
6 · Per-clip tk2d sprite (Appliqué) — advanced
Sprites/{CollectionName}/Clips/{ClipName}/{SpriteName}.png
Scopes a replacement to one named animation clip — every other clip that reuses the same sprite keeps the shared replacement (or vanilla). Note the tier is the collection, not the material (a clip's frames can span atlas pages), and the folder name must match the runtime clip name exactly. Beats path #1 for that clip only. Depth: BEx3.
A flat T2D variant also exists (Sprites/T2D/{SpriteName}.png, no atlas
folder) — it loads, but matches by bare sprite name across all atlases,
so prefer #3 whenever two atlases could share a name. The Pack Doctor
flags flat files with an informational note for exactly this reason.
Anchored & precise variants
Any individual path (#1, #3, #5) may carry an anchor tag on the filename, used only when your replacement is larger than the vanilla slot:
Sprites/{Coll}/{Mat}/{Sprite}@t.png ← top (@b/@l/@r/@c too; untagged = bottom)
Sprites/{Coll}/{Mat}/{Sprite}@p120_64.png ← precise pivot (px from left, py from bottom)
Full rules — when they apply, the five presets, the precise @p form — in Bigger Art: Anchors. Whole-atlas paths (#2, #4) don't take anchors; they can't grow.
Conventions
- Case-insensitive, but match the dump.
Knight/atlas2/Idle0000.pngandknight/atlas2/idle0000.pngboth resolve, but matching the case the dump produced keeps your pack readable, diffable against vanilla, and clean in conflict reports — and survives case-sensitive filesystems (Linux / Wine). - Stitchwork ignores non-matching files. Typo'd names, hidden files (
.-prefixed), editor cruft (.DS_Store,Thumbs.db), and source files (.psd,.kra) sit on disk doing nothing — so it's safe to ship your layered sources right alongside the exported PNGs. - A pack mirrors these paths under its own root:
…/{author}-{pack}/Stitchwork/Sprites/…. The root workspace uses them directly under…/StitchworkRoot/Sprites/…. See Pack Folder Structure for the surrounding shape.
Other asset types
This page is sprites. The rest live in their modules: Sounds → Sounds/{ClipName}.{ext} (D1) · Videos → Videos/{CinematicName}.{ext} (E1) · Text → Text/{Sheet}/{LANG}.yml (C1).
You can now route any sprite to its correct path in two questions, and reach the deep page for whichever layout you landed on. The whole sprite module funnels here — bookmark it.
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