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.
B4 - Texture2D (T2D) Sprites
Updated 2 weeks agoTexture2D (T2D) Sprites
Sprites · for creators. Not everything is tk2d. Menus, the HUD, a lot of effects, ability art, and some cinematic frames are drawn by Silksong's other 2D system — Texture2D, "T2D" — and it has its own folders. If a replacement won't take and the path looks right, the answer is usually "it's T2D."
You'll be able to: recognise a T2D sprite, replace one individually, find the names you need, and avoid the one collision (font atlases) that breaks text.
Before you start: B2 (the browsers).
What T2D is, and how to spot it
Silksong draws 2D art two ways (How Stitchwork Works explains why). tk2d handles most animated characters and packs them into shared atlases. T2D is the plainer system — individual Sprites and Texture2Ds the game assigns directly to renderers and UI. Typical T2D residents:
- The HUD (health, silk, currency)
- Menus and UI panels, prompts, icons
- Many effects and ability visuals
- Some cinematic frames
The reliable tell is the Dev Hub: a sprite that appears in Graphics → T2D Textures (and not the Animation tab) is T2D. When something refuses to apply, checking the other tab is the fastest diagnosis you have.
The folder is the routing
T2D paths carry a literal T2D/ segment. That's not decoration — it's how Stitchwork knows to route the file through the Texture2D system instead of tk2d. Same filename under Sprites/{Coll}/... versus Sprites/T2D/... go to two entirely different pipelines.
The two paths
Individual sprite — replace one sprite within an atlas:
Sprites/T2D/{AtlasName}/{SpriteName}.png
Stitchwork builds a fresh Sprite from your PNG and sets it on every renderer (and UI Image) currently using that one. Good for a single icon, a HUD pip, one effect frame.
Sprites/T2D/Hornet/health_pip.png
Whole atlas — a porting-only path:
Spritesheets/T2D/{AtlasName}.png
This loads straight into the atlas texture in place, and it works — but we
don't recommend authoring T2D art at the sheet level. Unity repacks
these atlases across game updates: sprites move on the sheet and the
texture's hash-bearing name changes, and a full-sheet file stops matching
silently. Individual Sprites/T2D/ files key on the sprite and survive
repacks. Use the sheet path to bring in existing sheet-based work
(Porting Prior Work has the rules and the fine
print), and prefer per-sprite files for anything new. Dump Atlas in
the T2D browser is still your friend — as a reference map of the sheet,
not a template to ship.
Clean names
T2D atlases carry Unity's raw name — sactx-0-2048x2048-BC7-Hornet-abc123. You never type that. The clean name (Hornet here) is what goes in your path; Stitchwork strips the sactx-…- prefix and the trailing hash automatically, and the T2D Textures browser shows you the clean name directly.
Finding T2D names
All in Graphics → T2D Textures:
- The left pane lists atlases in memory — name, dimensions, sprite count. Search it.
- Select an atlas → its sprites on the right, with previews.
- Dump Atlas exports the whole sheet (your whole-atlas template); Dump All Sprites exports each sprite individually (your individual-replacement starting points).
- An atlas marked
[S]has a whole-sheet replacement loaded; a number like[3]counts individual sprites replaced — confirmation your file is landing. - The T2D Log — a sibling sub-tab in the same strip — shows what the game referenced this session, so transient effects surface the moment they play. Click an entry to jump to it in the browser.
And the same rule as everywhere: you can't find what isn't loaded. Go to the screen where the art appears, then look.
[image: T2D Textures tab — atlas list with one [S]/numeric badge, Dump Atlas / Dump All Sprites buttons, a sprite preview]
What's needed for this image: the tab with both dump buttons and an
[S]or numeric badge visible.
Dumping from the browser
Under the browser's previews sits one dump row: Dump Atlas (the whole sheet, your template for whole-atlas work), Dump All Sprites, and Dump Sprite — just the selected one, the usual follow-up when a world pick landed you here. A BG button + slider under the previews flips the preview backdrop between black and white — useful for pale or glow-heavy UI art.
A note on flat files: Sprites/T2D/{Sprite}.png (no atlas folder)
also loads — it matches by bare sprite name across all atlases. Fine
for unique names; the moment two atlases share a sprite name, qualify it
with the atlas folder. The Pack Doctor marks flat files with an
informational note for exactly this reason.
The font-atlas trap — name carefully
The game's text is rendered from font atlases, which are themselves Texture2Ds. If a pack ships a T2D PNG whose name collides with a font atlas — generic names like font.png are the classic offender — you can garble all system text into boxes.
Stitchwork hard-bans font atlases from replacement (it detects them and refuses the swap), so the current build protects you from the worst of this. But the safe habit costs nothing: name T2D files after the specific atlas you dumped, never generic catch-alls. If text ever turns to boxes after enabling a pack, this is the first suspect — see Troubleshooting.
Individual or whole?
- Individual when you're changing a handful of sprites, or want them isolated.
- Whole atlas when you're reworking the entire sheet (the CKC case) — one PNG, matched to the original.
And they compose: a whole-sheet base with individual Sprites/T2D/ files layered on top, exactly as in B3.
You can now identify T2D art, replace it either way, source names from the T2D browser, and steer clear of the font-atlas collision. Next: the consolidated path cheat-sheet in Pack Folder Structure, or growing art past its slot in Bigger Art: Anchors.
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