Godot Asset Generator
jwynia/agent-skills
Generate game assets using AI image generation APIs (DALL-E, Replicate, fal.ai) and prepare them for Godot.
Plans and builds 2D game maps and scenes, from tilemaps and parallax backgrounds to HD-2D plates, with collision checks, a playable HTML preview and Tiled, Godot or LDtk export.
$ npx skills add 0x0funky/agent-sprite-forge --skill generate2dmap -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install 0x0funky/agent-sprite-forge generate2dmap --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/0x0funky/agent-sprite-forge.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/generate2dmap .claude/skills/generate2dmap && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "generate2dmap" agent skill from https://github.com/0x0funky/agent-sprite-forge/tree/main/skills/generate2dmap into .claude/skills/generate2dmap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "generate2dmap", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/0x0funky/agent-sprite-forge/tree/main/skills/generate2dmapType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add 0x0funky/agent-sprite-forge --skill generate2dmap -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install 0x0funky/agent-sprite-forge generate2dmap --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/0x0funky/agent-sprite-forge.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/generate2dmap .agents/skills/generate2dmap && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "generate2dmap" agent skill from https://github.com/0x0funky/agent-sprite-forge/tree/main/skills/generate2dmap into .agents/skills/generate2dmap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "generate2dmap", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add 0x0funky/agent-sprite-forge --skill generate2dmap -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install 0x0funky/agent-sprite-forge generate2dmap --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/0x0funky/agent-sprite-forge.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/generate2dmap .cursor/skills/generate2dmap && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "generate2dmap" agent skill from https://github.com/0x0funky/agent-sprite-forge/tree/main/skills/generate2dmap into .cursor/skills/generate2dmap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "generate2dmap", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/0x0funky/agent-sprite-forge.git --path skills/generate2dmap--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add 0x0funky/agent-sprite-forge --skill generate2dmap -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install 0x0funky/agent-sprite-forge generate2dmap --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/0x0funky/agent-sprite-forge.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/generate2dmap .gemini/skills/generate2dmap && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "generate2dmap" agent skill from https://github.com/0x0funky/agent-sprite-forge/tree/main/skills/generate2dmap into .gemini/skills/generate2dmap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "generate2dmap", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install 0x0funky/agent-sprite-forge generate2dmapInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add 0x0funky/agent-sprite-forge --skill generate2dmap -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/0x0funky/agent-sprite-forge.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/generate2dmap .github/skills/generate2dmap && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "generate2dmap" agent skill from https://github.com/0x0funky/agent-sprite-forge/tree/main/skills/generate2dmap into .github/skills/generate2dmap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "generate2dmap", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add 0x0funky/agent-sprite-forge --skill generate2dmap -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install 0x0funky/agent-sprite-forge generate2dmap --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/0x0funky/agent-sprite-forge.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/generate2dmap .opencode/skills/generate2dmap && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "generate2dmap" agent skill from https://github.com/0x0funky/agent-sprite-forge/tree/main/skills/generate2dmap into .opencode/skills/generate2dmap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "generate2dmap", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
generate2dmapPlans and builds 2D game maps and scenes, from tilemaps and parallax backgrounds to HD-2D plates, with collision checks, a playable HTML preview and Tiled, Godot or LDtk export.
The skill builds the smallest scene bundle a request needs, in the game's own art, camera, renderer and data conventions: a background picture needs no game system, while a playable map needs explicit geometry and data. It handles top-down and side-scrolling levels, room sets, terrain and prop kits, parallax layers and battle or story plates, with collision, navigation and reachability checks, environment motion and validation of the map data.
Map art is image generation by default, routed through a sibling media skill: first a configured API key for OpenAI, Gemini, xAI, BytePlus Seedream or fal.ai, then a local Codex or Grok route, with code-drawn art only on request or when no route exists. Layout, collision, exits and spawns are written as data, and each asset records its art source. Characters, items and effects, character animation from video, and bare API calls belong to other skills.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 5324342. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (JavaScript, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
OPENAI_API_KEYGEMINI_API_KEYXAI_API_KEYARK_API_KEYFAL_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
2D Map and Scene Generator loads about 2.9k tokens when it runs, and up to ~98k if it reads all its reference files. Until then it costs about 215 tokens; SKILL.md has 1,259 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from 0x0funky/agent-sprite-forge at commit 5324342, republished under its MIT licence (© 0x0funky). 1,259 words, ~2,948 tokens.
.claude/skills/generate2dmap/SKILL.md (or your agent's skills folder). This skill also uses 41 other files; get the full folder from GitHub.Build the smallest scene bundle the request needs, in the game's art, camera, renderer and data conventions. A background picture needs no game system; a playable map needs explicit geometry and data beyond a painting.
Run python "<skill-dir>/../generate2dmedia/scripts/forge_doctor.py" --host-tools <tools> --save <output>/doctor.json, where <tools> lists the media tools in your own tool list (image_gen, image_edit, image_to_video) or none. Its ROUTES block shows which API keys are configured (yes or no), the local readiness and the resolved order. If encoding.stdout fails, set PYTHONUTF8=1.
Image generation is the default for map art: terrain and tile sheets, prop kits, HD-2D plates, painted backgrounds and parallax layers. Map data (layout, collision, exits, spawns) is data you write and validate, not art. Record each asset's art_source (api, host_image, existing, or code only on request) and name the route in your reply. A route the user names explicitly wins.
OPENAI_API_KEY), Google Gemini (GEMINI_API_KEY), xAI (XAI_API_KEY), BytePlus Seedream (ARK_API_KEY) or fal.ai (FAL_KEY), in the environment or the user config file (route-media.md). The configured key is the owner's consent, so there is no per-call question.image_gen, Grok's native tool) when you have one, otherwise the user's signed-in Codex CLI, then Grok CLI.route_media.py prints no-route (exit 3). Then say "code-drawn, no image model".Every image goes through one command: python "<skill-dir>/../generate2dmedia/scripts/route_media.py" image --prompt-file <txt> --reference <png> --size 1536x1024 --out-dir <new>; masked plate motion uses route_media.py video. Each prints one JSON line with route, artifact, sha256 and estimateUsd. Existing art the user supplies is always welcome. Never claim a generation that did not happen; keep the prompt and contract and report a missing capability.
image_gen is your own image tool; with no configured key use it and look at results with view_image. An image this session made that is not in the project: python "<skill-dir>/../generate2dmedia/scripts/cli_media.py" adopt --codex-thread <thread-id> --output-dir <new>. codeart2d and generate2dmedia are explicit-only: open their SKILL.md when this one routes there.route_media.py takes the API or the local CLIs. Look at every PNG you make with Read (debug overlays, previews); run tools with Bash; <skill-dir> is ${CLAUDE_SKILL_DIR}.Run each tool as one line from the user's project root: python "<skill-dir>/scripts/<tool>.py" .... <skill-dir> is this skill's folder; sibling skills sit beside it (<skill-dir>/../codeart2d). Keep inputs and outputs inside the project. Every tool writes a new --output-dir (or a new --output file): it refuses an existing one, stages beside it and publishes only after its checks (--strict-qc / --strict publish nothing on failure). Success prints one JSON line; errors print error: ... and exit 1; usage errors exit 2. Needs Python 3.10+, numpy and Pillow (scipy recommended); ffmpeg 5.1+ for scene motion; node for the browser runtime. --help lists every flag.
Record viewport and logical resolution, world extent, origin, camera and zoom, actor scale and footprint, routes, landmarks, interactions, exits and render order. Source pixels are not world units: measure returned sizes and declare uniform scale and anchors. Choose by behaviour (map-strategies.md; starting values per genre in map-presets.md):
scene_mode: authored area, town or arena; terrain plus props and explicit geometry.tile_mode / grid_mode: repeated or editable terrain or cell rules; tiles plus layer data.room_chunk_mode: connected rooms from a shared kit with door sockets.side_scroll_mode: side-view scenery or a playable platform stage with movement geometry.baked_scene_mode: a complete battle, title or story picture, with optional hotspots or bounded motion.Split objects only when interaction, depth, reuse, editing or motion needs it. Pixel art needs deliberate logical pixels and nearest scaling; HD-2D pairs pixel actors with painted plates and light.
Block out navigation, make art and kit, place it, validate the data, preview, then export. A playable map is a map_bundle.v2 (layered-map-contract.md).
| Need | Route |
|---|---|
| Props from a sheet | extract_prop_pack.py --input <sheet> --rows R --cols C --labels a,b --output-dir <new> (--grid-rounding nearest, --auto-boxes, --boxes-file <json> --keep-canvas, --world-scale 3/8, --suggest-footprint ellipse); place by anchor_px (prop-pack-contract.md) |
| Terrain fills, overlays, iso or hex, Wang rows | extract_terrain_tiles.py --strict-qc (--layer overlay, --shape iso-diamond, --wang NAME=A/B:MASKS; --edge-policy seamless only for art meant to tile) |
| Platform caps and middles | extract_platform_strip.py --strict-qc (side-scroll-scenes.md) |
| Code-drawn autotiles, only on request | codeart2d autotile_build.py (seam-proven tileset manifest), then the exporters |
| A code-drawn playable map, only on request | codeart2d layout_build.py (writes map_bundle.v2), then map_nav.py check and the exporters |
| Draw order, contact anchors, placement audit | compose_layered_preview.py --base <png> --placements <json> --output <png> --report <json>; with --bundle <map_bundle.json> --debug-overlay --audit-out <json> look at both |
| Validate a playable map | map_bundle.py validate --bundle <b> (map_bundle.py hash fills sha256), then map_nav.py check --bundle <b> --output-dir <new> (--link each neighbour); review nav-debug.png; map_nav.py query tests one spot or move |
| Walk the map, check every route | build_scene_preview.py --bundle <b> --output-dir <new> --verify; attach scene-snapshot.json (scene-preview.md) |
| Export | export_tiled.py export --bundle <b> --output-dir <new> (--embedded-variant for Phaser); export_godot.py --bundle <b> --output-dir <new>; export_ldtk.py --bundle <b> --output-dir <new> (engine-maps.md) |
| Room chunks; side-scroll grammar | validate_chunks.py --chunks <json> --output-dir <new>; validate_layout.py --layout <json> --output-dir <new> |
| Parallax | validate_parallax.py --spec <plan> --report <qa.json> (declare camera.pivot and the aspects you ship); code-drawn layers on request: codeart2d parallax_build.py (parallax-backgrounds.md) |
| Fit a painting to the game size or floor | conform_background.py conform --mode cover or --mode ground-fit; subjects on every screen aspect: conform_background.py validate-crops |
| HD-2D plate | hd2d-plates.md: plan stage.json, scene_layout_guide.py, generate with guide.png attached, then validate_stage.py --stage <json> --output-dir <new>; look at every layout-*.png |
| Lights, shadows, atmosphere | hd2d-presentation.md: extract_scene_lights.py extract --stage <json>, curate lights.json |
| Night, lit or damaged variant of a plate | edit_locality_check.py --before <master> --after <variant> --stage <json> --edit-box <box>; regenerate on failure |
| Water, fire, mist or cloth on a still plate | background-scenes.md: build_motion_mask.py --envelope-from <clip>, scene_motion.py build, then scene_motion.py qa on the decoded file; code-drawn ripples or glow on request: codeart2d ambient_bake.py |
| Full-frame scene loop | generate2dsprite assemble_frames.py (--static-regions, --loop-overlap K --ambient) |
| Collision and paths in a web game | references/runtime/map-runtime.mjs (same rules as map_nav.py) |
map_bundle.py validate and map_nav.py check pass, and the build_scene_preview.py route check says ok: true for every route. map_nav proves reachability from data, not that collision matches the painted art.needs-visual-review. Quote scene_motion.py qa numbers (decoded seam, frames, fps, keyint, bytes) before calling a loop seamless.estimateUsd), runtime assets and data, the preview and the checks run, with remaining limits.map-strategies.md, map-presets.md, layered-map-contract.md, prop-pack-contract.md, side-scroll-scenes.md, parallax-backgrounds.md, background-scenes.md, hd2d-plates.md, hd2d-presentation.md, scene-preview.md, engine-maps.md; data contracts in references/schemas/map.schema.json.
© 0x0funky, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 41 other files (scripts, references) in skills/generate2dmap of 0x0funky/agent-sprite-forge.
Open the folder on GitHubat commit 5324342
2D Map and Scene Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| 2D Map and Scene Generator this skill0x0funky/agent-sprite-forge | 4.3k | — | ~2.9k | Automated safety check: Pass | MIT | |
| Godot Asset Generatorjwynia/agent-skills | 165 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Gemini Interactions APIAyuilos/Miffan | 182 | — | ~4.6k | Automated safety check: Pass | AGPL-3.0 | |
| Fal AI Imageartwist-polyakov/polyakov-claude-skills | 206 | — | ~2.1k | Automated safety check: Notes | MIT | |
| Model Routingfal-ai-community/skills | 249 | — | ~1.5k | Automated safety check: Pass | None | |
| Create Image Falgooseworks-ai/goose-skills | 1.2k | — | ~556 | Automated safety check: Pass | MIT |
jwynia/agent-skills
Generate game assets using AI image generation APIs (DALL-E, Replicate, fal.ai) and prepare them for Godot.
Ayuilos/Miffan
A skill your agent uses when writing code that calls the Gemini API for text generation, multi-turn chat, multimodal understanding, image generation, video generation, streaming responses…
artwist-polyakov/polyakov-claude-skills
Generate/edit images via fal.ai. An agent skill from artwist-polyakov/polyakov-claude-skills.
fal-ai-community/skills
Choose default fal.ai endpoint IDs for genmedia production skills.
gooseworks-ai/goose-skills
Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent.
decolua/9router
Generates images through a 9Router gateway's image endpoint, with model discovery, the request fields and per-provider quirks for OpenAI, Gemini, MiniMax and others.
0x0funky/agent-sprite-forge
Draws 2D game art from code with no image model: pixel sprites, SVG props and icons, rigged characters, FX, autotiles and layouts, only when explicitly asked for.
0x0funky/agent-sprite-forge
Generates an image or an image-to-video clip through a configured provider API or a signed-in Codex or Grok CLI, and reports the route, file, hash and cost estimate.
0x0funky/agent-sprite-forge
Produces game-ready 2D characters, creatures, props, icons and effects as master stills, sheets or clips, and exports frames for common game engines.
0x0funky/agent-sprite-forge
Turns one approved master still into a full set of animated action clips for a character, one image-to-video take per action, then packages them for a game engine.
Works with
Categories
Plans and builds 2D game maps and scenes, from tilemaps and parallax backgrounds to HD-2D plates, with collision checks, a playable HTML preview and Tiled, Godot or LDtk export. The skill builds the smallest scene bundle a request needs, in the game's own art, camera, renderer and data conventions: a background picture needs no game system, while a playable map needs explicit geometry and data. It handles top-down and side-scrolling levels, room sets, terrain and prop kits, parallax layers and battle or story plates, with collision, navigation and reachability checks, environment motion and validation of the map data.
2D Map and Scene Generator fits situations like: building a playable level, room set or tilemap with collision and exits; creating a parallax or battle background for a 2D game; validating a map and previewing it in HTML; exporting a map to Tiled, Godot or LDtk.
Run `npx skills add 0x0funky/agent-sprite-forge --skill generate2dmap -a claude-code`. Or copy the skill folder (skills/generate2dmap in 0x0funky/agent-sprite-forge) into .claude/skills/generate2dmap in your project. Claude Code loads it when a task matches its description.
Run `npx skills add 0x0funky/agent-sprite-forge --skill generate2dmap -a codex`. Or copy the skill folder (skills/generate2dmap in 0x0funky/agent-sprite-forge) into .agents/skills/generate2dmap in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add 0x0funky/agent-sprite-forge --skill generate2dmap -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/generate2dmap, .gemini/skills/generate2dmap, .github/skills/generate2dmap and .opencode/skills/generate2dmap in your project.
Going by SKILL.md and its folder, 2D Map and Scene Generator needs JavaScript for the scripts in its folder, the command-line tools its instructions call (python) and credentials named OPENAI_API_KEY, GEMINI_API_KEY, XAI_API_KEY and ARK_API_KEY. Our summary lists: An image route for map art, such as an API key or a signed-in local CLI; Python to run the capability check script.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
2D Map and Scene Generator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 95k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with 2D Map and Scene Generator: Godot Asset Generator (jwynia/agent-skills, 165 stars), Gemini Interactions API (Ayuilos/Miffan, 182 stars), Fal AI Image (artwist-polyakov/polyakov-claude-skills, 206 stars) and Model Routing (fal-ai-community/skills, 249 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
0x0funky (a GitHub user) maintains it in 0x0funky/agent-sprite-forge, which has 4,309 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 6, 2026.
Source: 0x0funky/agent-sprite-forge on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.