B2 - Finding Any Sprite

Updated 2 weeks ago

Finding Any Sprite

Sprites · for creators. The most-asked creator question: how do I find the name of the thing I want to replace? You look it up — you never guess — and the Dev Hub is the lookup.

You'll be able to: find the exact collection / material / sprite names for any on-screen art, tell which of the two sprite systems it belongs to, and surface assets that haven't loaded yet.

Before you start: B1, so the dump-and-edit loop is familiar. This page is the same loop, generalised to anything, not just Hornet's idle.

Path is identity — and the path comes from the game

A replacement applies when its file path matches the asset's identity: Sprites/Collection/Material/Sprite.png. Those three names aren't yours to invent — they're the game's internal organisation, and a single wrong letter means the file is simply never found. So the whole skill is reading the real names off the game, and the Dev Hub does exactly that, live.

Point at it — World Pick

Before browsing anything: the fastest lookup is to not look anything up. Pick in world (a button at the top of both the Animation and T2D tabs) hides the Dev Hub and turns the live game into the browser:

  • Every eligible object gets a thin selection box, colour-coded by kind — teal for tk2d (animated and static alike, HUD chrome included), blue for T2D. The scene reads like an annotated blueprint.
  • Filter chips at the top of the screen toggle those categories. A second chip row filters world art by depth band — foreground / playfield / background — which is the fast way to isolate a backdrop from the layers stacked in front of it.
  • Aiming: the pick prefers the smallest box under your cursor (the most specific thing); aim at a big image's centre to grab it deliberately; scroll the wheel to cycle through overlapping candidates (the chip shows 2/5). A hover card previews the actual sprite plus its identity before you commit.
  • Click lands you in the right place — animated tk2d picks open the Animation tab with the clip pre-selected; T2D/UI picks open the T2D browser with the entry and sprite selected; static tk2d picks (HUD chrome like the silk orb's frame, animator-less props) skip the browsers entirely and open the sprite file for editing, ready for hot reload. Right-click (or any Stitchwork hotkey) cancels.

Two browsers, because there are two sprite systems

The Dev Hub has one browser per rendering pipeline (How Stitchwork Works covers why there are two):

  • Graphics → Animationtk2d. Almost every animated character, enemy, and boss.
  • Graphics → T2D TexturesTexture2D. Plain textures and UI: menus, HUD, effects, some ability and cinematic art.

Not sure which a sprite is? Check both. The one that surfaces it is the one that owns it — that single check resolves most "why won't this apply" cases.

tk2d — the Animation tab

  1. Graphics → Animation. The left pane lists every animator in the scene by its GameObject name — Hornet is Hero_Hornet(Clone), pinned to the top.
  2. Select one → the right pane reveals its current sprite path (Collection/Sprite), the current clip, and its frames.
  3. Click a frame → the inspector names the three things you need: Collection, Material (the atlas), Sprite.
  4. Edit Current Sprite dumps that frame, copies it into your workspace, and opens it — your starting canvas. Ready All Animation Sprite for Edit does the whole clip at once (distinct sprites only).

The names are read, not remembered. The game calls Hornet Knight, materials are atlas0/atlas1/atlas2/…, and a sprite might be idle0000. The inspector is always right for your build; a name from a guide is right only until the next patch. (The glossary collects the worst aliases.)

Texture2D — the T2D Textures tab

  1. Graphics → T2D Textures. The left pane is a searchable list of T2D atlases in memory — each with its name, dimensions, and sprite count.
  2. Click an atlas → its sprites list on the right. Click a sprite → details and a preview.
  3. An atlas marked [S] (green) has a whole-sheet replacement loaded; a number like [3] (blue) counts individual sprites replaced. Either way, that's your pack hitting its target — a quick way to confirm a file is landing.
  4. Under the previews, one dump row: Dump Atlas (the whole sheet), Dump All Sprites, and Dump Sprite (just the selected one — the usual follow-up to a world pick). Edit on any sprite row dumps it and copies it into your workspace, ready to paint.

Seeing transparent art clearly: both browsers have a BG control under the previews — click it to flip between a black and a white backdrop, drag the slider for opacity. Bright art reads on black; dark or glow-heavy art reads on white.

Clean names. T2D atlases carry Unity's raw name — sactx-0-2048x2048-BC7-Hornet-abc123. You don't use that; you use the clean name (Hornet here), and Stitchwork strips the sactx-…- prefix and the trailing hash for you. The browser shows the clean name; that's what goes in your path.

"What just fired?" — the T2D Log

The T2D Log is a sibling sub-tab (Graphics → T2D Log, in the same tab strip). Where the browser shows everything currently in memory, the log shows what the game has referenced this session — so a transient effect (a lightning flash, an attack VFX, a dream sequence) appears the moment it plays. Trigger the thing, read its atlas off the log, click the entry to jump to it in the T2D Textures tab. It's the fastest way to catch art that only exists for a few frames.

You can't find what isn't loaded

The browsers show what's in memory right now. A boss you haven't reached, an area you haven't entered, an item you haven't picked up — its art simply isn't there yet, and no amount of searching will surface it. The fix is physical: walk to it. Enter the area, start the fight, open the menu — then look. (The Dashboard pillar shows live counts of collections / atlases / sprites, a rough gauge of how much is currently loaded.)

To grab everything at once, there's a full-game dump — Dev Hub Debug tab → Full Dump (two clicks: it confirms first, because it walks every scene in the game and ends your play session). An on-screen progress bar tracks scene count and elapsed time; long per-scene stalls are normal. Run it once, early, in a save you don't mind abandoning — the dumping reference has the details, including the guarantee that dumps are vanilla ground truth even while packs are active. Dumps/ is output only — Stitchwork never loads from it. To make an edited frame apply, copy it into Sprites/ (or your pack); the per-sprite Edit Current Sprite button already does that for you, but files left in Dumps/ by a full dump just sit there until you move them.

Same name, two atlases

Occasionally a clean name covers more than one atlas (two Knight sheets at different sizes, say). The browser disambiguates them with suffixes — Knight-0, Knight-1. For a normal replacement you want the plain collection name and Stitchwork resolves it. If you genuinely need to target one specific instance, there's an instance-specific path — see Instance-specific paths.

Quick gotchas

  • "I can't find sprite X." You're not in a scene where X is loaded. Go where it lives, then look.
  • "The name is sactx-0-… gibberish." That's the raw atlas name — use the clean version the browser shows.
  • "I dumped it and it's blank." That slot is empty in the source atlas (the game ships some empty). You want a sibling sprite, not that one.
  • A name ends in Cln (Conductor Cln, Tools Cln, Dock Flyer Cln). That's just the game's tag for clean / final assets — nothing special, copy it into your path verbatim, suffix and all.

You can now name any on-screen sprite, pick the right browser, and load assets that hide until triggered. Next: replacements that outgrow the original need Bigger Art: Anchors; the full path rules live in Pack Folder Structure.