tileset
Generate a fixed-profile terrain atlas and compile it into a native Godot TileSet. Use for reusable terrain libraries, never for designing a TileMap.
Install / Use
npx skills add RandallLiuXin/GodotMaker --skill tilesetInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
AutomationSupported Platforms
Our assessment of tileset
tileset scores 85/100 on our quality scale, 1668th of 2,853 Automation skills we index.
Its SKILL.md is 9.7 KB long, split into 6 sections with 1 code example: a thorough specification that gives an agent plenty to work with.
It has 549 GitHub stars, a meaningful sign that others use it.
Maintenance, license and trust
- The repository was last updated 16 days ago, so tileset is actively maintained.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 88/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
tileset compared with similar skills
All 4 of these similar skills score higher than tileset; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| tileset (this skill)by RandallLiuXin | 85 | 549 | 16d ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 89.8k | 18d ago | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 85.5k | today | MCP Server |
| rufloby ruvnet | 100 | 73.8k | today | MCP Server |
| algorithmic-artby anthropics | 100 | 177.9k | 11d ago | SKILL.md |
Frequently asked questions
- How do I install tileset?
- Run
npx skills add RandallLiuXin/GodotMaker --skill tileset. The install tabs above show the steps for each supported agent. - Which AI agents does tileset work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is tileset safe to use?
- It declares no license and scores 88/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is tileset still maintained?
- The repository was last updated 16 days ago, so tileset is actively maintained.
Skill content
View source on GitHubname: tileset description: Generate a fixed-profile terrain atlas and compile it into a native Godot TileSet. Use for reusable terrain libraries, never for designing a TileMap.
TileSet Asset Skill
Produce one reusable square TileSet from a real source atlas. This production path supports hand-painted, illustrated, or rendered terrain art. It is standalone: direct callers use the same request and result contract as callers higher in the pipeline.
Contract
Read and enforce .godotmaker/asset-runtime/asset-skill-contract.md and schema/request.schema.json. Read the caller input from ASSET_REQUEST.json. Accept only asset_type: "tileset", a stable asset_id, a concise brief, optional visible art references, and the typed family spec. The caller never supplies output paths, compiler recipes, profile coordinates, or processing commands. Return the deterministic runtime result at:
{
"asset_type": "tileset",
"outputs": [{"role": "runtime", "path": "res://assets/generated/tileset/<asset_id>/<asset_id>.tres", "godot_type": "TileSet"}],
"sources": [{"path": "res://assets/generated/tileset/<asset_id>/<asset_id>_atlas.png", "layout": "tile_atlas"}],
"previews": [],
"validation": {"passed": true, "levels": {"L0": true, "L1": true, "L2": true, "L3": true, "L4": true}}
}
Do not read or require tags, stage state, ASSETS.md, either generated
manifest, or any /gm-asset mode. Do not register outputs or decide worker dispatch. Those are caller responsibilities outside this skill.
Fixed Terrain Profiles
Production supports exactly these versioned profiles:
| Profile | Atlas grid | Required painted slots | Godot terrain mode | Use when |
| --- | --- | --- | --- | --- |
| marching_squares_15 | 4x4 | 15; (0,0) remains transparent | Match Corners (1) | Rule-based roads, floors, walls, and simple boundaries |
| blob_47 | 8x6 | 47; (7,5) remains transparent | Match Corners and Sides (0) | Natural ground, caves, shorelines, and detailed inner/outer corners |
spec.autotile_profile is required for declarative JSON. If an interactive caller asks for a TileSet without selecting it, ask whether the request needs simple rule-based boundaries for roads, floors, or walls, or detailed natural inner and outer corners for shorelines, caves, and irregular ground. Recommend one profile from the brief, then wait for a selection of marching_squares_15 or blob_47. If the caller cannot answer, STOP before provider work. Never guess, fall back, or accept another profile.
tools/asset_tileset_profile.py is the fixed source of truth for slot coordinates, edge signatures, and peering bits. Provider guides, final atlas validation, recipe generation, and compiler input must derive from that one implementation. Agents must not enumerate 15/47 cells or hand-write .tres resources.
The profile generator emits tile_size, margins, separation, terrain_sets, and peering_bits deterministically. Physics, navigation, and custom data may be declared in spec.semantic_metadata; they are applied only to named semantic roles such as foreground_full or foreground_isolated, never inferred from pixels. In blob_47, the no-peering-bit slot is the isolated current terrain, not a complete background tile. This Skill does not support animated TileSets, occlusion, or alternatives. Unknown or misspelled fields are rejected.
References, Provider, And Trace
References are optional caller-provided visual inputs, never profile definitions. With references, resolve every res:// path against the project root, verify it is readable, preserve its canonical, style, or screen role, and attach the actual image to the selected provider. A textual path is not an attachment. If attachment fails, STOP. Use a style reference for its material, color, linework, and visual language; do not copy its unrelated scene composition.
Honor provider exactly: native, codex, gemini, openai, and wan never fall back to another provider. For Codex, call image generation with referenced_image_paths containing every readable local reference. Before the call, write a one-item plan with require_provider_trace: true and source target .godotmaker/asset-generation/source/<asset_id>_provider.png. After the call, write a generated-path report containing the actual image path, the Codex tool-call identity, configured coding model/reasoning, image-model identity (or not_exposed_by_subscription_runtime), every reference role, and the exact attached paths. Then claim it with python .godotmaker/asset-runtime/tools/codex_image_claim.py --plan <plan.json> --report <generated-paths.json> --project-root . --out-report .godotmaker/asset-generation/reports/<asset_id>_source.json. Missing or incomplete provider trace is a STOP; never copy a generated image directly into the project. Use asset_source_generate.py for Gemini/OpenAI/Wan API-backed generation.
Retain the controlled claim result, prompt, raw source, reference roles and paths, processing reports, commands or code, diagnostics, repairs, inputs, outputs, and modified files under .godotmaker/asset-generation/. Do not hand-write provider provenance. Diagnostic tools beyond the owned tools are allowed when needed, but the trace must explain why they were used and what recheck passed afterward.
Deterministic Production
-
Create the exact built-in profile manifest and labeled processing guide with
asset_tileset_profile.py; do not make a generic numbered grid. The guide is not caller input, provider reference, art, or a runtime output:python tools/asset_tileset_profile.py --profile <marching_squares_15|blob_47> ` --manifest-out .godotmaker/asset-generation/work/<asset_id>_profile.json ` --guide-out .godotmaker/asset-generation/work/<asset_id>_profile_guide.png -
Generate and claim one real provider material source. Use the request brief and attached caller art references; request the two named materials without a tile grid, labels, topology diagram, UI, actors, or text. Preserve the controlled claimed source unchanged.
-
Use
asset_image_finalize.pyfor transparent-background, AABB, alignment, or scale repair when diagnostics require it. Recompose the fixed profile from the retained provider image's two material regions; code owns every transition mask and reserved transparent slot:python tools/asset_tileset_profile.py --request ASSET_REQUEST.json ` --tile-size <width>x<height> ` --material-source .godotmaker/asset-generation/source/<asset_id>_provider.png ` --composed-atlas-out assets/generated/tileset/<asset_id>/<asset_id>_atlas.png ` --composition-report .godotmaker/asset-generation/reports/<asset_id>_material_composite.jsonRetain the composition report and re-run the normal profile command with
--enforce-seams. Never hand-write or overlay isolated diagnostic regions; a visually flat patch is not a valid seam repair. -
Validate the final atlas and generate the full low-level recipe and native resource from the public request with one command:
python tools/asset_tileset_profile.py ` --request ASSET_REQUEST.json ` --atlas assets/generated/tileset/<asset_id>/<asset_id>_atlas.png ` --texture res://assets/generated/tileset/<asset_id>/<asset_id>_atlas.png ` --godot-path <godot-executable> ` --recipe-out .godotmaker/asset-generation/work/<asset_id>_tileset_recipe.json ` --report .godotmaker/asset-generation/reports/<asset_id>_profile.json ` --enforce-seams ` --project-root . ` --asset-id <asset_id> ` --artifact res://assets/generated/tileset/<asset_id>/<asset_id>.tresThe command rejects a wrong atlas size, empty required slot, non-empty reserved slot, or a terrain-corner material mismatch before it emits a recipe. Its retained seam diagnostics name every bad tile and corner. It then calls the existing native TileSet compiler. Replacing atlas art means rerunning this command, not asking an agent to rebuild metadata.
-
--requestmaps only explicitsemantic_metadatarole overrides into the generated recipe. The base recipe declares one square source, zero margins and separation, profile terrain set/terrain0, and all fixed peering bits. Never hand-write a.tresor expose recipe fields to the caller. -
Run
standalone_validation.compile_and_validate()with the generated recipe. It usesasset_compiler.tileset.register_into()andasset_validation.tileset.register_into()on fresh registries. Its L0 checks the public request contract; L1 checks the atlas; L2 compiles; L3 loads the returned TileSet in headless Godot; and L4 compares the loaded source, tile, terrain, polygon, and custom-data structure to the generated recipe.
When GM_EVAL_GODOT_PATH is present, use that exact executable as --godot-path; do not search the disk for another Godot installation. In standalone published workspaces, asset_tileset_profile.py --artifact loads .godotmaker/asset-runtime directly; do not bypass it with a hand-written compiler bridge.
An L1-L4 diagnostic is a repair loop, not a final result. Read the failure, repair source art, processing parameters, metadata, or resource, and re-run the applicable checks. Do not use a fixed retry count. Only missing/damaged required input, unavailable declared provider/reference attachment, contradictory request, unsupported profile, or unrecoverable environment failure is a STOP.
Delivery
Return only the generic result JSON. validation.passed can be true only after all applicable L0-L4 checks passed. Report the selected profile, stable atlas and .tres paths, tile size, and intentionally omitted semantics in retained trace evidence. A TileSet is a reusable tile library; creating or painting a TileMap is outside this skill.
Related Skills
Agent-Reach
89.8kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
Scrapling
85.5k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
ruflo
73.8k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
