Agent Sprite Forge is a Codex-oriented workflow for producing reusable 2D game assets such as sprite sheets, map layers, transparent PNG frames, and animated GIFs. It supports game developers working with Godot, Unity, or other 2D workflows by combining image generation with local processing, asset validation, and engine-ready exports, and its catalogue skills provide the workflow.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/0x0funky/agent-sprite-forge/generate2dspritenpx skills add 0x0funky/agent-sprite-forge --skill generate2dspritegit clone --depth 1 https://github.com/0x0funky/agent-sprite-forgeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/0x0funky/agent-sprite-forge/generate2dsprite)<a href="https://agentmods.dev/skills/0x0funky/agent-sprite-forge/generate2dsprite"><img src="https://agentmods.dev/badge/skills/0x0funky/agent-sprite-forge/generate2dsprite.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00111 | $0.06741 |
| Opus 5 | $0.00056 | $0.03370 |
| Sonnet 5 | $0.00022 | $0.01348 |
| Haiku 4.5 | $0.00011 | $0.00674 |
Grade A, and why
generate2dsprite scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
1 near-identical copy found in the catalogue:
- generate2dsprite — 100% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 377 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Generate2dsprite
Use this skill for self-contained 2D sprite or animation assets.
When a larger game or playable prototype needs sprites, use this skill for the visible sprite assets and keep runtime/game assembly separate. Do not replace requested sprite assets with code-drawn placeholders.
Parameters
Infer these from the user request:
asset_type:player|npc|creature|character|spell|projectile|impact|prop|summon|fxaction:single|idle|cast|attack|shoot|jump|hurt|combat|walk|run|hover|charge|projectile|impact|explode|deathview:topdown|side|3/4sheet:auto|2x2|2x3|2x4|3x3|3x4|4x4|5x5|custom_grid|strip_1x3|strip_1x4frames:autoor explicit countbundle:single_asset|unit_bundle|spell_bundle|combat_bundle|line_bundle|hero_action_bundle|engine_atlaseffect_policy:all|largestanchor:center|bottom|feetscale_strategy:fit|preservescale_profile:none|create_from_accepted_action|reuse_existingmargin:tight|normal|safeart_style: pixel_art | clean_hd | pixel_inspired | retro_pixel | map_style | project-nativereference:none|attached_image|generated_image|local_filelayout_guide:none|geometry|character_anchorruntime_contract:none|godot_sprite3dworld_height: desired in-engine subject height when a runtime contract is requestedprompt: the user's theme or visual directionrole: only when the asset is clearly an NPC rolename: optional output slug
Read references/modes.md when the request is ambiguous.
Agent Rules
- Decide the asset plan yourself. Do not force the user to spell out sheet size, frame count, or bundle structure when the request already implies them.
- Do not pack unrelated actions into one raw generated sheet just to satisfy a
4x4,5x5, or custom engine atlas. A raw generated sheet should represent one action family, one continuous sequence, one canonical directional locomotion sheet, or one prop/asset pack. - For controllable heroes, main characters, and high-value player assets with multiple actions, generate separate per-action grid sheets first, QC each action, then deterministically assemble the engine-required atlas only after the grids pass visual review.
- For controllable heroes, main characters, and high-value player body actions, default attack/shoot/cast body sheets to body-only. Do not include large slash arcs, muzzle flashes, projectiles, impact bursts, detached dust, long trails, or wide detached FX in the body sheet. Generate those as separate
fx,projectile, orimpactsheets and layer them in the game. - Only include wide attack FX in the same raw body sheet when the target runtime explicitly supports wider per-action cells plus per-action origin/anchor metadata. Otherwise, a wide FX bbox will force the body to shrink inside the fixed cell.
- When a grounded hero/player attack must keep an integrated weapon in the body sheet and there is no runtime FX layer, process it with
scale_strategy=preserveandalign=feetby default. This preserves raw-cell scale, translates frames to a shared feet line, and avoids bbox-fit shrinking from long swords, spears, weapon trails, capes, or wide melee poses. - Write the art prompt yourself. Do not default to the prompt-builder script.
- Use built-in
image_genfor every raw image. - Do not create raw sprite art with Three.js, Canvas, SVG, HTML/CSS drawing, PIL shape drawing, procedural geometry, placeholder primitives, or code-rendered screenshots. Runtime code may display finished generated assets, and scripts may make layout guides or postprocess generated images, but requested sprite art must originate from built-in
image_gen. - When the user provides or implies a visual reference, use built-in image edit/reference semantics only after the reference image is visible in the conversation context. If the reference is a local file, call
view_imagefirst; do not rely on a filesystem path in the prompt as the visual reference. - Do not force pixel art when the asset is a map prop for
$generate2dmapor when the user/project requests a different style. Match the map or reference style first. - Use the script only as a deterministic processor: magenta cleanup, frame splitting, component filtering, scaling, alignment, QC metadata, transparent sheet export, and GIF export.
- Do not use scripts to generate the creative image prompt. If a legacy prompt-builder command exists, treat it as historical compatibility only, not the normal skill workflow.
- Layout guides are allowed only as deterministic geometry references for image generation. They may show slot count, spacing, centering, and safe padding, but must never define the creative art direction.
- Treat script flags as execution primitives chosen by the agent, not user-facing hardcoded workflow.
- If a generated sheet touches cell edges, drifts in scale, or breaks a projectile / impact loop, either reprocess with better primitive settings or regenerate the raw sheet.
- Do not use raw single-row sheets such as
1x4,1x6,1x8, or1xNfor characters, players, controllable heroes, creatures, NPCs, enemies, summons, animated props, or any asset where a body/subject must stay centered. Single-row raw generation is too likely to drift horizontally and crop inconsistently. - For animated body assets, use a multi-row grid by default: 4 frames ->
2x2, 6 frames ->2x3, 8 frames ->2x4, 9 frames ->3x3, 12 frames ->3x4or4x3, 16 frames ->4x4. - If a game engine needs a final single-row strip or mixed atlas, first generate and QC the action as a multi-row grid, then assemble the delivery strip/atlas deterministically.
- In every animated body grid prompt, require the subject body to stay centered in each cell, full body inside the central 60% to 70% safe area, consistent scale across cells, stable feet/bottom anchor line when applicable, and no limbs, weapons, hair, capes, dust, muzzle flashes, or detached FX crossing cell edges.
- For hero attack body prompts, explicitly require body height and body scale to match the accepted idle/run sheets, stable feet/bottom anchor, weapon kept close enough to avoid widening the body bbox, and no detached slash arc or screen-space attack effect.
- For elongated quadrupeds, serpentine creatures, and actors whose tail or attack extension nearly fills a cell, add a shared-silhouette-envelope contract to action prompts: keep the torso center fixed, keep every pose inside the same central 70% to 72% width/height box, tuck tails and long appendages inward, and express pounces or bites through in-place compression/extension instead of translating the whole body across the cell. "Generous margin" alone is not a reliable containment instruction for these silhouettes.
- For massive grounded bosses, lock the feet and pelvis against lateral translation in idle prompts. Express weight through vertical torso compression, chest/core pulse, shoulder settling, and secondary motion of attached ornaments; do not use whole-body left/right sway as the idle beat.
- For ground-contact environmental FX such as fire, write one explicit shared ignition/baseline coordinate into the prompt and forbid baked ground plates. Treat tip-height variation as animation, not anchor drift; visually verify the contact line and use an FX-specific anchor threshold instead of applying humanoid feet gates.
- For high-value grounded player/hero body actions, prefer a character anchor sheet when consistent scale or feet placement matters: repeat one accepted master frame at the intended size and feet line in every cell, then use that sheet as a scale/root template while asking built-in
image_gento change only the poses. Do not use a grounded anchor sheet for jumps, knockback, airborne motion, projectiles, or FX. - For a multi-action character bundle, create one scale profile from an accepted idle or run sheet, then process every grounded body action with that profile. The profile locks output cell size, one shared raw-cell scale, anchor, trimming, and component rules across actions. Do not choose a new
fit_scaleper action. - For map prop packs, classify props before choosing a grid. Square
2x2,3x3, and4x4packs are only for compact props. Do not put platforms, floors, bridges, walls, ladders, gates, doors, long hazards, wide/tall props, collision-bearing objects, or tileset/strip pieces into square prop packs; use one-by-one,1x3/1x4strips, custom wide cells, or a tileset-like atlas instead. - Keep the solid
#FF00FFbackground rule unless the user explicitly wants a different processing workflow.
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 377 lines · 111 tokens per session scan A 4e04edbcc96a
generate2dsprite is a skill published in the GitHub repository 0x0funky/agent-sprite-forge (4,016 stars, last pushed 1mo ago), licensed MIT. It adds 111 tokens to every session and 6,741 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
Pixel Art Professional
Apply advanced pixel art techniques including dithering, palette optimization, shading, antialiasing, and color theory. Use when the user mentions "dithering", "dither", "Bayer", "Floyd-Steinberg", "palette", "colors", "reduce colors", "optimize palette", "color limit", "shading", "shadows", "highlights", "lighting"…
Pixel Art Creator
Create new pixel art sprites from scratch with canvas creation, layer management, and basic drawing primitives. Use when the user wants to create a sprite, draw pixel art, make a new canvas, start a new image, begin a new project, or mentions pixel dimensions like "64x64", "32x32 sprite", "128 by 128", "16 pixel…
pixel-art
Design pixel art sprites, tilesets, and animations — game assets, retro icons, and character sheets.
html-ppt-zhangzara-8-bit-orbit
A gamer's journey building a retro-arcade collection — the obsession, the hunt, and what the machines came to mean. Built as a decision-grade story deck for friends, hobby community.
screenshot-game-view
Capture a screenshot of the Unity Editor's Game View by reading its internal render texture directly. Image size matches the current Game View resolution; the tool corrects Y-flip on DirectX / Metal so the output is always upright. Requires an open Game View window.
threejs-audio-generator
Generate, convert, clean, and integrate audio for Three.js browser games with ElevenLabs: sound effects, looping ambience, UI sounds, impact/weapon/vehicle audio, creature and boss stingers, announcer and dialogue TTS, voice conversion from a scratch performance, voice cleanup, audio manifests, and Web Audio…