generate2dsprite

generate2dsprite is a skill for Codex from 0x0funky/agent-sprite-forge. It costs 111 tokens per session (6,741 once invoked), scanned A, original, MIT.

A workflow for creating and preparing 2D game artwork, such as characters, creatures, objects, spells, effects, and animation sheets.

In plain words
What is it for?
Generating sprites, animation frames, game props, combat effects, transparent GIFs, and bundled asset sets for a game.
Why use it?
It helps produce reusable visual assets in the requested style, viewpoint, size, and animation layout.

Skill for Codex

Written for Codex: agents/openai.yaml present. Also seen: mentions Codex.

About the project

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.

0x0funky/agent-sprite-forge · 4,016 stars · on GitHub

Install

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.

agentmods
npx agentmods add skills/0x0funky/agent-sprite-forge/generate2dsprite
Any agent
npx skills add 0x0funky/agent-sprite-forge --skill generate2dsprite
Clone the repo
git clone --depth 1 https://github.com/0x0funky/agent-sprite-forge

Made for: Codex.

Wrote 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.

agentmods badge for generate2dsprite

README.md
[![agentmods](https://agentmods.dev/badge/skills/0x0funky/agent-sprite-forge/generate2dsprite.svg)](https://agentmods.dev/skills/0x0funky/agent-sprite-forge/generate2dsprite)
Your own site
<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>
Per session 111 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,741 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 6d ago against content hash 4e04edbcc96a, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

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.

The scan reads SKILL.md. This mod also ships 3 executable files (scripts/generate2dsprite.py, scripts/make_anchor_layout.py, scripts/make_layout_guide.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

Origin

Copies of this mod

1 near-identical copy found in the catalogue:

skills/generate2dsprite/SKILL.md · 377 lines

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 | fx
  • action: single | idle | cast | attack | shoot | jump | hurt | combat | walk | run | hover | charge | projectile | impact | explode | death
  • view: topdown | side | 3/4
  • sheet: auto | 2x2 | 2x3 | 2x4 | 3x3 | 3x4 | 4x4 | 5x5 | custom_grid | strip_1x3 | strip_1x4
  • frames: auto or explicit count
  • bundle: single_asset | unit_bundle | spell_bundle | combat_bundle | line_bundle | hero_action_bundle | engine_atlas
  • effect_policy: all | largest
  • anchor: center | bottom | feet
  • scale_strategy: fit | preserve
  • scale_profile: none | create_from_accepted_action | reuse_existing
  • margin: tight | normal | safe
  • art_style: pixel_art | clean_hd | pixel_inspired | retro_pixel | map_style | project-native
  • reference: none | attached_image | generated_image | local_file
  • layout_guide: none | geometry | character_anchor
  • runtime_contract: none | godot_sprite3d
  • world_height: desired in-engine subject height when a runtime contract is requested
  • prompt: the user's theme or visual direction
  • role: only when the asset is clearly an NPC role
  • name: 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, or impact sheets 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=preserve and align=feet by 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_gen for 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_image first; 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 $generate2dmap or 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, or 1xN for 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 -> 3x4 or 4x3, 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_gen to 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_scale per action.
  • For map prop packs, classify props before choosing a grid. Square 2x2, 3x3, and 4x4 packs 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/1x4 strips, custom wide cells, or a tileset-like atlas instead.
  • Keep the solid #FF00FF background rule unless the user explicitly wants a different processing workflow.

Read the full file on GitHub · 377 lines

Files

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.

Changes

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.

  1. 6d ago First seen · 377 lines · 111 tokens per session scan A 4e04edbcc96a

Subscribe to this mod's changes

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.

Related

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"…

willibrandon/pixel-plugin · 220 tokens

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…

willibrandon/pixel-plugin · 180 tokens

pixel-art

Design pixel art sprites, tilesets, and animations — game assets, retro icons, and character sheets.

inbharatai/claude-skills · 24 tokens

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.

nexu-io/open-design · 53 tokens

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.

IvanMurzak/Unity-MCP · 58 tokens

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…

majidmanzarpour/threejs-game-skills · 71 tokens