What it checks
It reads your pet the way Desktamer's importer does. It's the same code, rewritten for the browser and tested against the app's own, so if the checker says Desktamer will take a pet, Desktamer will.
- What you dropped. A zip, a folder,
pet.jsonwith its sheet, or a sheet on its own. In a zip, thepet.jsonnearest the top wins, and a Mac's leftovers (__MACOSX,._files) are skipped. A zip can hold up to 64 files and 64 MB unpacked. - pet.json. It needs an
idor adisplayName. The id is used as a folder name, so it's made safe for one, the way codex-pets.net does it: "Happy Dog!" becomeshappy-dog.spritesheetPathhas to stay inside the pet, andspriteVersionNumber, if it's there, has to be 1 or 2. - The sheet's size. A WebP, PNG or GIF of exactly 1536 × 1872 (v1, 9 rows) or 1536 × 2288 (v2, 11 rows), and the version in
pet.jsonhas to match. - Every row. Frames are counted up to the last cell with a few pixels of art in it. A blank cell before that makes the pet blink out, and an empty row makes it vanish while it plays.
- The background. A sheet with nothing see-through would stand on your desktop in a box.
- Art at the edge of a cell, which gets cut off there.
- Which way it runs, below.
What each row is for, and how many frames it holds, is in How to make your own desktop pet.
When a pet runs backwards
Row 1 is meant to run right and row 2 to run left. Many sheets have them swapped, or have both drawn facing the same way. The checker compares the two rows, as drawn and mirrored, to see whether they face opposite ways. Then it looks at which way the runner leans: people lean into a run, and animals lead with the head while the tail trails behind.
Desktamer measures this on import and plays the rows the right way round. Codex plays them as labelled, so there your pet would moonwalk. The zip the checker gives back swaps the rows, or makes one the mirror of the other, so it runs the right way everywhere.
It's a measurement, and odd shapes can fool it, so watch the run rows play before you take the fix. If they were right all along, untick Fix the run rows. In Desktamer, Running Backwards? Flip Direction in a pet's right-click menu turns it round, and a pet.json can say which way row 1 runs ("desktamer": { "runFacing": "right" }) so it's never measured, as our Knight's does.
Saving a row as a GIF
Any row can be saved as a looping GIF, at the speed Desktamer plays it. Choose Cropped to cut it close round the art, or a 128 or 320 pixel square, sizes chat apps use for emoji and stickers. A GIF's pixels are either solid or clear, so soft edges come out hard.
Questions
Is my pet uploaded?
No. The checker runs in this page, on your own computer, and your files never leave it. We only count that a pet was checked or saved, never which.
Will Codex take any pet this passes?
The checks are Desktamer's, and Desktamer is the more forgiving of the two: it takes a bare sheet, swaps run rows that face backwards, and plays animated GIFs. A pet that passes with nothing to look at is a well-formed Codex pet. The Codex CLI and ChatGPT on the web only take v1 sheets so far.
Where do I find more pets?
On codex-pets.net, where people share theirs. Codex pets: how to use them, and where to find more has the rest.