B3 - Porting Prior Work — Spritesheets & CKC

Updated 2 weeks ago

Porting Prior Work — Spritesheets & CKC

Sprites · for creators with existing work. Made skins with Custom Knight Creator, or have an older sheet-based skin lying around? This page is how that work drops into Stitchwork unchanged. It is a porting page — for new art, the workflows in B0 are better in every way, and we'll be honest about why.

You'll be able to: load a finished full-sheet skin through the Spritesheets/ tier, know the one rule that keeps it working, and know where the sheet path's limits are — so you can decide what to port as-is and what to rebuild.

Custom Knight Creator, and why we like it

Custom Knight Creator (CKC) is a standalone skinning tool — first built for the original Hollow Knight, since ported to work with Silksong assets. It runs outside the game and covers much of the same ground Stitchwork does in-game. We welcome CKC users and CKC work; Stitchwork is not a replacement for it, and packs made from CKC output are first-class citizens here.

CKC's real insight is one we share: don't draw directly on atlas sheets. CKC shows you the specific sprites of each animation, previews the animation, and lets you check the frames flow smoothly together. Drawing straight onto a sheet — scattered crops, no way to line frames up against each other — is where shaky skins come from, and it marks many older skins that predate these tools. Stitchwork's in-game answer to the same problem is the Animation Canvas; CKC's is its preview loop. Either way, the sheet is an output format, not a drawing surface.

So, to be plain about what this page is not: it is not an invitation to dump a sheet, paint on it, and ship it. If you're authoring new art, go back to B0. This page exists because finished sheet-based work deserves a door.

The one rule: match the sheet exactly

A whole-sheet replacement is stamped in place over the original atlas — for tk2d it's blitted onto the atlas, for T2D it's loaded straight into the texture. The game's sprite definitions still point at the same coordinates they always did. So a ported sheet must keep:

  • The same dimensions — same width and height, to the pixel.
  • The same layout — every sprite in its original rectangle. Nothing moved, resized, or repacked.

Break either and sprites read from the wrong pixels — art smeared across frames, pieces of one sprite bleeding into another. CKC output satisfies this by construction, because CKC works from the real sheets.

Whole-sheet replacements also cannot grow the way individual sprites can. A ported sheet is frozen at vanilla geometry; if one sprite needs more room, that one becomes an individual file with an anchor (Bigger Art: Anchors) layered on top.

tk2d sheets — the CKC door

For a tk2d collection (most animated characters — Hornet included, under Knight), a ported sheet goes to:

Spritesheets/{CollectionName}/{MaterialName}.png

For example, one of the Knight collection's atlas pages:

Spritesheets/Knight/atlas2.png

This tier exists to support exactly this porting path. Two honest notes that follow from that:

  • There is no tk2d atlas dump — by design. Stitchwork won't hand you a tk2d sheet as an editing template, because sheet-editing isn't a workflow we want to point anyone toward. Your sheet comes from CKC or from prior work; Stitchwork's job is to load it faithfully.
  • Don't retouch the ported sheet to iterate. When a ported skin needs fixes or new art, do the new work with the in-game loop (B1) or the Animation Canvas — individual files layer on top of your sheet (see below), so the port stays untouched.

T2D sheets — supported, but fragile across game updates

The T2D equivalent path also loads:

Spritesheets/T2D/{AtlasName}.png

({AtlasName} is the clean name the T2D browser shows — Hornet, not the raw sactx-…-hash string.)

We no longer recommend authoring or maintaining T2D art at the sheet level at all, and the reason is mechanical: T2D atlases are packed by Unity, and a game update can rearrange the sprites on the sheet and change the texture's hash — part of which shows up in the name itself. When that happens, a full-sheet file stops matching silently: wrong art in wrong slots, or a sheet that no longer applies. Per-sprite files (Sprites/T2D/…, B4) key on the individual sprite and survive repacks; sheets don't.

If you have existing T2D sheet work: port it, enjoy it, and treat the next game update as the moment to rebuild it as per-sprite files. The Dump Atlas button in the T2D browser remains genuinely useful — as a reference map of what lives on a sheet and how much room each slot has — just not as a template to ship.

Sheets and individual sprites compose

You don't have to choose globally. Within a material, a whole-sheet replacement is the base layer, and individual Sprites/ files draw on top of it. This is what makes porting practical: the CKC sheet sets everything, and every fix or improvement you make afterwards is an individual file stacked over it. The port never has to be re-exported.

Tips

  • Port, don't reconstruct. If you have the CKC export, use it as-is. Rebuilding a sheet by hand from frame dumps is the shaky-skin trap with extra steps.
  • Keep your layered sources (.psd/.kra) in the pack folder if you like — Stitchwork ignores non-matching files, so editable sources ride along harmlessly.
  • One sheet = every sprite on it. A sheet swap touches the entire atlas, including frames you didn't mean to change. Individual files on top are how you take back control of specific sprites.

You can now bring finished CKC and sheet-based work into Stitchwork and layer new work on top of it without touching the port. For new art, back to the map: Choosing a Workflow.