Quick start
You make the creative choices. Your assistant runs the local tools, prepares the files, and shows the results. You do not need to write a character manifest by hand.
- Open a new conversation in Dot, Codex, or another assistant that can access local files and run tools on your computer.
- Paste the prompt below. Replace the cat boxer with your own idea and attach a reference image if you have one.
- Review the first concept before making animations. A browser-only chat without local tool access cannot complete this workflow.
Starter prompt
Read https://github.com/jeonghwanko/ai-fighter-dots-starter/blob/codex/game-context/START-HERE.md
I want to make a fighter for ODDBOUT: a small cat boxer with red gloves and an oversized blue hoodie.
Use the current game requirements and the bundled creation workflow. Check which image and animation tools I can use with my own accounts.
Show me one full-body concept first. Keep the red gloves and oversized hoodie. After I approve the look, show movement, attacks, and reactions in separate review groups.
Let me review the final files before registration.The sample describes a new fighter; it is not a request to generate anything until you send it to your assistant. No ODDBOUT sign-in is needed for local concept work.
What you need
- A computer with local tool access. Keep the project in a folder your assistant can read and write.
- Git, Node.js 22.12 or later, and Python 3.11 or later. Your assistant can check the installed versions before setup.
- Your own image and animation access. Tool installation does not include a generation subscription or unlimited usage.
- An idea, reference images, or both. Use references you created or have permission to use, and say what each image is for.
Choose a generation route
Tell your assistant what you can currently access. Image and animation access are checked separately. These are starting recommendations; your explicit choice takes priority.
| Available tools | Concept art | Animation |
|---|---|---|
| GPT + Grok | GPT | Grok video |
| Grok | Grok | Grok video |
| GPT | GPT | GPT rows |
Agree on what to do if a tool is unavailable or reaches its limit. The assistant should not silently change providers or move to a paid API. There is no fixed completion time: generation, revisions, and reviews vary.
Set up the tools
For the guided route, ask your assistant to set up the linked starter kit. If you prefer to run the setup yourself, use these commands in a terminal. They install the pinned tools in this checkout.
Install the starter
git clone --branch codex/creator-hosting --single-branch https://github.com/jeonghwanko/ai-fighter-dots-starter.git
cd ai-fighter-dots-starter
npm ci --ignore-scripts
npm run sprite:setup
npm run sprite:statusUse the codex/creator-hosting branch. A GitHub ZIP omits the submodule contents. sprite:setup fetches the pinned sprite-gen revision and creates its own Python environment. sprite:status checks installation, not subscription or sign-in status.
Connect the local tools to Codex
From the starter folder, print the installation command. This prints a command; it does not change settings by itself.
Print the connection command
node scripts/print-install.mjsRun the printed codex mcp add ai-fighter … command, then run codex mcp list. Open a new local conversation; restart the app if the tools are not visible. If you move the project folder, print and register the command again from its new location. Other hosts need their own stdio MCP configuration.
Confirm readiness
Read requirements and tool readiness
npm run creation:context
npm run sprite -- workflow --kind spriteYour assistant reads the current game context and get_fighter_spec sections overview, creation, and guide. It reads the schema when packaging. A workflow result of needs-input (exit code 2) means an account or route choice is still needed. Start generation only when that stage is ready.
Create the look
Describe the parts that make your fighter recognizable: silhouette, face, outfit, colors, equipment, and attitude. A short paragraph is enough to begin. A name and biography can come later.
- Identity reference: keep this face, body, or costume.
- Style reference: use this kind of linework, color, or shading.
- Pose reference: borrow the stance or motion, not the whole character.
GROUP 01
Appearance
Review one full-body concept, an idle reference, and a face close-up from the same artwork.
Look for: The same identity from head to toe; readable hands and equipment; the right expression, proportions, and costume.
“Keep the face and colors. Make the gloves larger. Do not start animations yet.”
The game-ready source faces right in an orthographic view with a 16° camera elevation. The toolkit handles the shared scale. A front-facing promotional portrait is not a substitute for the game-ready source.
Make it move
Once you choose the look, review movements in groups. Each group is prepared and shown together. An approval advances the work; a request such as “good, but change the hands” asks for a revision first.
GROUP 02
Stance & movement
Combat idle, 16-frame walk, and 12-frame run. See them at the same scale.
Look for: Alternating feet, stable body size, planted feet that do not slide, and a loop without a visible jump.
“Keep the run. Reduce the bounce in the walk. Leave the outfit unchanged.”
GROUP 03
Attacks
Combo, heavy strike, and dash. Watch the preparation, contact, and return to stance.
Look for: Clear anticipation, readable hits, and a recovery that suits the character’s weight.
“The heavy strike needs a bigger windup. Keep the combo and dash.”
GROUP 04
Defense & reactions
Block, hit reaction, groggy loop, fall, and the linked get-up poses.
Look for: A clear guard; believable impact; a fall that ends lying down. Getting up should play in its own transition.
“Keep the block. Make the fall feel heavier, without changing the face.”
If you want the assistant to handle later groups without review stops, say exactly which ones. You can still request a targeted change. Silence does not approve an unfinished group.
Review & package
GROUP 05
Review the final files
The assistant packages the selected versions, validates the actual files, then shows all motions and the profile from the final package.
Look for: Consistent identity and scale, correct timing and foot contact, the right portrait, name, and description.
“These are the final versions. Validate the package and register it to my account.”
File validation and visual review answer different questions. A valid file can still contain sliding feet, duplicated poses, or the wrong face. Watch the actual final animation before registering.
What the assistant packages
It gathers the approved animations with sprite-gen game-pack, then runs fighter:pack using a generated plan. The packer measures dimensions, origins, contacts, frame timing, and hashes from real files. Walk and run need gait reviews tied to the final pixels and durations.
Example paths — use your actual plan and output
npm run fighter:pack -- path/to/plan.json
npm run validate -- output/my-fighter/fighter.jsonPackage structure
output/my-fighter/
fighter.json
assets/
idle.webp
walk.webp
run.webp
...The submitted art uses static WebP sprite sheets with transparency. GIFs, videos, and animated WebP files are previews, not submission assets. Never invent frame measurements or copy the geometric test bot and call it a new generated fighter.
Register your fighter
- Sign in with your own Google account. Use the same account on the creator page and in the local toolkit. The assistant reads the public project settings from
deploy/creator-site.jsonand prepares the login command. Complete the sign-in yourself in the browser. - Ask to register the approved package. The assistant validates the manifest and actual files, then uploads with
submit_fighter_package. - Wait for the server result. A queued upload is not a completed registration. The assistant checks the submission until it returns a final result.
- Confirm the fighter in your account. Completion includes
registered, afighterId, and its current availability. File-validated registrations become usable automatically; no invitation or manual pre-approval is required.
Login and retry details
Template — your assistant fills the public settings
npm run login -- --url <project-url> --key <publishable-key>The project URL is the origin of apiBase in deploy/creator-site.json; the key is its publishableKey. The login stores your own local session. A sign-in link is for you to open, and a session file is not a file to share. Restart an already-running tool session if needed.
For an unchanged upload, keep the same idempotency key when retrying. Changed files need a new key. If the result is unknown, inspect the existing submission before uploading again. Registered packages are immutable; content can be restricted after publication.
Revise & resume
Name the motion or image you want to change, what should change, and what should stay. Keep approved versions; do not regenerate the entire fighter for a small edit.
“Resume the cat boxer. Keep the approved face, outfit, and run. Only shorten the combo recovery. Show the revised combo before repackaging.”
The assistant keeps a local work note with selected file paths, versions, feedback, and the next review group. For a new conversation, point it to the same project folder and that note. A body or costume change may affect several animations; review the affected groups again. Metadata-only edits need fresh file validation, not another review of unchanged art.
Troubleshooting
The tools do not appear in my chat.
Check that this is a local-capable host. Run the printed connection command, inspect the host’s tool list, then open a new conversation or restart the app. Reconnect if the folder moved.
A generation tool fails or reaches its limit.
Keep the selected work and inspect the request and any existing output before retrying. Follow your chosen stop or fallback policy. Do not treat an unknown result as proof that nothing was generated.
The feet slide or the body jumps between frames.
Revise the affected walk or run and check both feet, common scale, ground contact, and loop boundaries. Repeating a still frame or changing playback speed is not a substitute for valid movement.
Validation failed.
Read the reported stage and error path. Fix that file or motion, then validate again. A metadata-only pass does not mean the actual images or visual motion passed.
Registration is queued, rejected, or missing from my account.
Check the existing submission first. Queued work may be waiting for the validator. Rejected packages include errors to fix. For a registered fighter, confirm the same Google account and current availability before submitting anything again.
Technical reference
The table below explains the current 11-motion set. The live game context and schema remain the source of truth. Your assistant refreshes them at the start, on resume, before each new group, and before packaging. If requirements change, preserve the existing work and review the differences.
| Motion | Purpose | Frames |
|---|---|---|
idle | Still full-body pose | 1 |
fightIdle | Combat-ready loop | Current contract |
walk | One walking cycle, alternating feet | 16 |
run | One running cycle | 12 |
combo | Combo: preparation, strikes, recovery | Current contract |
slam | Heavy strike | Current contract |
dash | Lunge, including preparation and recovery | Current contract |
block | Guard and block | Current contract |
hit | Recoil, stagger, recovery | Current contract |
groggy | Dazed loop | Current contract |
fall | Fall and lie down; linked get-up poses | Current contract |
The appearance baseline uses a 400 px body height; this is not the same as sheet-cell height. Assets use one shared coordinate and scale reference. Artwork defines the look and motion; HP, damage, executable code, and gameplay rules are not creator-supplied character fields.
- Starter document with game context ↗
- Full creation workflow and packaging ↗
- Manifest and animation contract ↗
- Gait review guide ↗
- Registration and availability ↗
The toolkit’s repository, commands, and file contract still use the name “ai-fighter”. They are the creation tools linked from ODDBOUT. Guide reviewed: 22 October 2026.
