# Extract Rpg Asset Board

> Split RPG game-asset overview images, sprite boards, tileset presentation sheets, or AI-generated asset boards into individually named game-ready PNG files. Use when Codex needs to detect and crop multiple assets from one image, preserve rectangular terrain tiles, remove a flat or near-flat background from props, create transparent cutouts, organize outputs, generate a manifest/contact sheet, or prepare assets for RPG Maker, Godot, Unity, or similar engines.

- Skill: `arcdodo/extract-rpg-asset-board` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add arcdodo/extract-rpg-asset-board`
- Raw SKILL.md: https://api.skillmd.com/api/skills/arcdodo/extract-rpg-asset-board/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: arcdodo (https://skillmd.com/u/arcdodo)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/arcdodo/extract-rpg-asset-board

---


# Extract RPG Asset Board

Convert one RPG asset-board image into reviewed, individually named PNG assets. Use the bundled
script for deterministic image processing; use visual judgment to review candidate boxes and outputs.

## Workflow

1. Inspect the source image and identify:
   - rectangular terrain/path tiles that must retain their painted background;
   - props/buildings/decorations that should become transparent;
   - nearby objects that belong together and should share one crop.
2. Locate a Python runtime with `Pillow` and `numpy`. Prefer the workspace dependency runtime when
   available.
3. Generate initial candidate boxes:

```bash
python scripts/rpg_asset_board.py detect SOURCE.png --layout layout.json
```

4. Review `layout.detect-preview.jpg` and edit `layout.json`.
   - Give every asset a descriptive lowercase `id`.
   - Set `type` to `tile` or `prop`.
   - Merge related fragments by replacing them with one enclosing box.
   - Set `keep_largest_component: true` only when a prop crop contains disconnected neighboring art.
   - Delete false positives and expand boxes that clip shadows or painted edges.
5. Extract the assets:

```bash
python scripts/rpg_asset_board.py extract SOURCE.png --layout layout.json --out OUTPUT_DIR --clean --zip
```

6. Inspect `preview_contact_sheet.jpg` on a checkerboard.
7. Fix layout boxes or alpha thresholds and rerun until no asset is clipped, contaminated, empty, or
   missing.

## Output Contract

Produce:

- `tiles/*.png`: rectangular terrain and path pieces with their painted ground intact
- `props/*.png`: tightly cropped RGBA PNG files
- `manifest.json`: IDs, types, sizes, source boxes, and processing settings
- `preview_contact_sheet.jpg`: visual QA sheet
- optional `.zip` archive

Do not claim success before inspecting the contact sheet and confirming the validation summary reports
zero errors.

## Processing Guidance

- Prefer one logical game object per output, not one connected component per output.
- Keep shadows when they visually ground props, unless the user asks for shadowless assets.
- Treat doors/windows designed to overlay buildings as props.
- Treat square/rectangular grass, dirt, edge, and path pieces as tiles.
- Do not force a grid size unless the user names a target engine and tile size.
- For complex textured backgrounds, hair-like edges, translucent materials, or overlapping assets,
  explain that deterministic background removal may need manual masking or image editing.

See [references/layout-format.md](references/layout-format.md) for the layout schema and tuning fields.

