background-map
Generate and validate a fixed-viewport background, map base, or parallax plate as a ready-to-load Texture2D.
Produce a reusable compact-prop atlas from one provider source sheet, with independently loadable AtlasTexture resources for every declared prop.
$ npx -y skills add RandallLiuXin/GodotMaker --skill compact-prop-pack --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/compact-prop-packContext preview
The summary Claude sees to decide when to auto-load this skill.
Produce a reusable compact-prop atlas from one provider source sheet, with independently loadable AtlasTexture resources for every declared prop.
name: compact-prop-pack description: Produce a reusable compact-prop atlas from one provider source sheet, with independently loadable AtlasTexture resources for every declared prop.
Produce a standalone atlas-backed pack of small reusable props: pickups, crates, stones, bushes, pots, debris, small signs, lamps, and environmental dressing. Use one provider source sheet for the whole requested pack; do not make one provider image request per prop. Do not use this Skill for platforms, terrain, buildings, doors, gates, large trees, or other wide, tall, collision-bearing assets. It produces assets only, never scene placement or gameplay objects.
This Skill can be invoked directly or by an orchestrator. It never reads or writes `ASSETS.md`, tags, stage state, or generated manifests.
Accept the shared Asset Skill request schema and shared result schema and checker from `.godotmaker/asset-runtime/asset-skill-contract.md` with `asset_type: "compact-prop-pack"`. The `spec` is the exact fixed-slot declaration consumed by `tools/asset_atlas_assemble.py --declaration`:
{
"version": 1,
"atlas": { "width": 192, "height": 64 },
"slots": [
{ "name": "coin", "rect": [0, 0, 32, 32], "source": "assets/generated/compact-prop-pack/market/normalized/coin.png" },
{ "name": "crate", "rect": [48, 0, 48, 48], "source": "assets/generated/compact-prop-pack/market/normalized/crate.png", "pivot": [0.5, 1.0] }
]
}Slot names are logical prop ids. Rectangles are explicit, positive, non-overlapping `[x, y, width, height]` values. `source` is the final, normalized project-relative PNG for that slot; it must have exactly the rectangle's width and height. The assembler does not resize, perform packing, trim, or infer semantics. It only copies these finalized files into declared slots.
Use these stable paths:
res://assets/generated/compact-prop-pack/<bundle_id>/<bundle_id>.png res://assets/generated/compact-prop-pack/<bundle_id>/<bundle_id>.json res://assets/generated/compact-prop-pack/<bundle_id>/<logical_prop_id>.tres
Return one `runtime` `AtlasTexture` output per declared slot, one `region_atlas` source for the physical PNG, and no registration fields. The request's fixed slots are the complete logical output declaration; the manager records every validated prop directly in its own `ASSETS.md` row.
Pixel-art production is not supported by this family. Do not use pixel-art prompts, nearest-neighbor resampling, or a pixelated filter to disguise ordinary illustration.
Honor the request's provider exactly. Never silently switch among `native`, `codex`, `gemini`, `openai`, or `wan`.
declared item list.
its `canonical`, `style`, or `screen` role in the trace, and pass each real image as provider image input. Passing a path only in text is not attachment.
`referenced_image_paths`; omit that parameter only when there are no references. For `gemini`, `openai`, and `wan`, use the reference-input path of `tools/asset_source_generate.py`. If the pinned provider cannot accept a required reference image, STOP before output rather than changing provider.
receive the required reference attachment, STOP before output.
Archive the raw provider sheet at `.godotmaker/asset-generation/sources/<bundle_id>_source.png` and write its source report at `.godotmaker/asset-generation/reports/<bundle_id>_source.json`. The report records `raw_source`, `reference_inputs`, and `provider_trace`. Each reference record has `role`, `path`, `sha256`, and `attached: true`; `provider_trace` records the actual coding provider/model/reasoning, `image_provider`, visible `image_model_identity` (or `not_exposed_by_subscription_runtime` when that is the runtime's truthful limit), provider tool-call id, and its real image-attachment field (for Codex, `referenced_image_paths`). Use these exact keys: `coding_provider`, `coding_model`, `reasoning`, `image_provider`, `image_model_identity`, `tool_call_id`, and `referenced_image_paths`. The call id must be the id emitted by the actual image-generation tool, not an invented label; each attached path must be the same real image passed to that call. With no references, retain an empty `reference_inputs` array. Include the actual prompt, payload claim, readable-file checks, and attachment provenance. Never fabricate any of those records.
1. Before any provider call, validate the request, declared slots, source paths, and reference inputs. Each logical prop name must satisfy the shared cross-platform safe-identifier rule (one non-reserved path segment; no separator, device name, control character, or trailing dot). STOP only for a missing or unreadable required input, an unsupported or contradictory request, a provider/reference attachment that is objectively unavailable, or an unrecoverable environment or permission error. 2. Make one real provider image request for a separated source sheet containing the whole ordered prop list. Specify shared style, lighting, perspective, plentiful gaps between objects, a solid `#FF00FF` background, and no text, labels, UI, floor plane, borders, or grid. Archive the raw provider PNG. 3. Process that sheet with `asset_sheet_process.py --snap-mode autoslice`, `--background magenta`, `--padding 2`, and `--min-component-area 100`; never pass `--grid` to autoslice. The shared cleanup removes strict-key holes, then iteratively mattes a spill edge only when it matches a neighbouring foreground/background composite; it does not delete purple or blue-purple pixels merely for touching tra
Autonomous text-to-game pipeline for Godot, powered by Claude Code,Codex,Opencode
Repo: RandallLiuXin/GodotMaker
Generate and validate a fixed-viewport background, map base, or parallax plate as a ready-to-load Texture2D.
Produce reusable card art sources and native Godot card UI resources.
Produce one illustrated character SpriteFrames resource from high-level body-action intent, optional character and style references, and a resolved animation…
Produce a standalone static Texture2D effect or one explicitly timed animated SpriteFrames effect.
Generate non-pixel-art, horizontally repeatable platform strips from real image sources as fixed Texture2D cells or AtlasTexture regions.
Generate non-pixel-art scene prop sets from one real source sheet and deliver fixed-slot AtlasTexture resources.