Skip to content
Automation
Skill

/compact-prop-pack

Produce a reusable compact-prop atlas from one provider source sheet, with independently loadable AtlasTexture resources for every declared prop.

From plugin
godotmaker
55941 skills7 agents15 hooks

Claude Code

$ npx -y skills add RandallLiuXin/GodotMaker --skill compact-prop-pack --agent claude-code

SKILL.md

compact-prop-pack.SKILL.md
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.

Compact Prop Pack

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.

Contract

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.

Provider and Reference Preconditions

Honor the request's provider exactly. Never silently switch among `native`, `codex`, `gemini`, `openai`, `grok`, or `wan`.

  • Carry every visual rule stated in `brief` into the prompt as written; it is

the visual specification for this pack. References condition those rules and never outrank or extend them; a supplied reference that contradicts one of them is a STOP with a blocker naming the reference role, its path, and the rule.

  • With no `references`, generate the one source sheet from the brief and

declared item list.

  • With references, validate every path is readable before generation, preserve

its `canonical` or `style` role in the trace, and pass each real image as provider image input. Passing a path only in text is not attachment.

  • For `codex`, call the image provider with the actual reference files through

`referenced_image_paths`; omit that parameter only when there are no references. For `gemini`, `openai`, `grok`, 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.

  • For `native`, use its declared native generation path. If that path cannot

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.

Production Loop

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 m

Read more
@randallliuxin
Ships withgodotmaker

Autonomous text-to-game pipeline for Godot, powered by Claude Code,Codex,Opencode

55941 skills7 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
559
Star history of RandallLiuXin/GodotMaker on GitHub, a chart by star-history.com

Other skills on godotmaker.

platform-strip

platform-strip

Generate non-pixel-art, horizontally repeatable platform strips from real image sources as fixed Texture2D cells or AtlasTexture…

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n12d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about compact-prop-pack.

Which coding agents can use compact-prop-pack?
compact-prop-pack installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.