Borrowing it
Nothing to install: this file belongs to Txpple/fvtt-mcp-molten5e. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Txpple/fvtt-mcp-molten5e/main/.claude/skills/scene-builder/SKILL.mdgit clone --depth 1 https://github.com/Txpple/fvtt-mcp-molten5eWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/txpple/fvtt-mcp-molten5e/scene-builder)<a href="https://agentmods.dev/skills/txpple/fvtt-mcp-molten5e/scene-builder"><img src="https://agentmods.dev/badge/skills/txpple/fvtt-mcp-molten5e/scene-builder/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/txpple/fvtt-mcp-molten5e/scene-builder"><img src="https://agentmods.dev/badge/skills/txpple/fvtt-mcp-molten5e/scene-builder.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00189 | $0.04605 |
| Opus 5.5 | $0.00076 | $0.01842 |
| Sonnet 5.5 | $0.00038 | $0.00921 |
| Haiku 4.5 | $0.00019 | $0.00460 |
Grade A, and why
scene-builder scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 248 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Scene builder
A judgment layer over the scene tools — it maps "here's a map, make it playable" into the right
create-scene / update-scene calls with sensible dnd5e defaults and a couple of confirmable mood
choices. It adds NO new mechanics; the tools hold all correctness (v14 field paths, fog/grid enum
mapping, weather validation against the live CONFIG.weatherEffects, playlist/journal name→id
resolution, and auto-detecting scene dimensions from the image).
Tools used: create-scene, update-scene, list-scenes, list-assets, upload-asset,
list-playlists, list-journals / search-journals. To build a new playlist or journal to
attach, hand off to the playlist-builder / journal-builder skill — scene-builder wires the
link onto the scene; those skills author the content.
Regions & teleporters (on an existing scene). To connect two maps — stairs, a cave mouth, a
portal — use create-teleporter: give a center point (canvas px, via get-scene-dimensions for
the padding math) on each scene and it drops a grid-snapped trigger at each end and cross-links them
two-way (or twoWay:false for one-directional). Transitions ask before moving (DM-approved house
pattern): the default confirm:true sets core v14's choice flag so the player gets a
"Teleport / Do Not Teleport" popup instead of being yanked between maps — pass confirm:false ONLY
for traps/plot teleports that should fire silently. The same default applies when wiring a
teleportToken via add-region-behavior (system.choice defaults to true; set it false
explicitly to opt out). Name the pads (fromName/toName) — never ship default "Region" labels.
NOTE: list-regions cannot read choice back and no tool edits a behavior after creation — a
wrong teleporter is fixed by delete-region + rebuild. For arbitrary regions/behaviors use
create-region (raw v14 shapes + behaviors), and list-regions / update-region
(rename, recolor, or the rect reshape/resize) / delete-region to tune them.
(remap-teleporters is import-only — it relinks a scene-pack's own teleporters after a Tom Cartos
import; those keep whatever choice the pack authored. The create-* tools are for authoring new
ones.)
Areas that DO something (dnd5e 6.0). A region can carry the system's own behaviors — the map itself applies the rules, no macro:
dnd5e.applyActiveEffect— every token that ENTERS gets a copy of the named effects, and loses them on EXIT.create-regionthe shape (a rectangle / ellipse / polygon over the pool, the cloud, the altar), thenadd-region-behaviorwitheffects: ["Poisoned"]— names come from the stockdnd5e.effectspack (every condition — Poisoned, Prone, Restrained, Blinded, Frightened, Invisible…; every damage Resistance / Immunity / Vulnerability; skill and ability Advantage / Disadvantage; Climb / Swim / Burrow Speed), or from an effect you authored on a world item withmanage-effect(by name, or"Item name#Effect name"), or a premium spell's effect ("<Item uuid>#<effect>"). Filter withdispositions(["hostile"]= enemies only, e.g. consecrated ground that burns the undead: addcreatureTypes: ["undead"]),sizes. Recipes: a poison pool →effects: ["Poisoned"]; brambles →effects: ["Restrained"]; a fog bank →effects: ["Blinded"]; a shrine →effects: ["Frightened Immunity"]fordispositions: ["friendly"]; lava has no "damage per turn" effect — that isexecuteMacroor a Battle Flow emanation, not this behavior.dnd5e.difficultTerrain—terrainTypes: ["web" | "plants" | "ice" | "mud" | "sand" | "snow" | "rocks" | "slope" | "liquid"](a creature that ignores that kind — a spider in webs — walks freely),magical: truefor a spell's terrain,dispositions= who IGNORES it. Movement cost doubles while the token plans a path through it.dnd5e.rotateArea— a turning platform / puzzle room:rotate: {positions: [0, 90, 180, 270], tiles: [...], walls: [...], lights: [...]}(ids fromlist-tiles/list-walls/list-lights, validated to exist) turns the listed placeables together around the region's first shape, stopping at the angles;direction(short/cw/ccw),timeMs. The DM triggers a turn from the region config (or a macro callingbehavior.system.rotate()) — walking in does not turn it. Draw the region centred on the pivot.- Effects the behavior applies live in a compendium or on a world item — never on an actor; the
tool refuses an actor's effect (it would be duplicated on entry and deleted on exit). Wrong
behavior =
delete-region+ rebuild (no behavior editing).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed · +29 lines 029c5a071885
- 2mo ago Changed · +8 lines f228e1fe66ed
- 2mo ago First seen · 211 lines · 189 tokens per session scan A cb15a1c9d3d6
scene-builder is a skill published in the GitHub repository Txpple/fvtt-mcp-molten5e (0 stars, last pushed 1mo ago), licensed MIT. It adds 189 tokens to every session and 4,605 once invoked, about $0.0008 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
scene-builder compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| scene-builderTxpple/fvtt-mcp-molten5e | Skill | 0 | 1mo ago | MIT | A | 189 | Claude Code |
| playtest-reportDonchitos/Claude-Code-Game-Studios | Skill | 36k | 19d ago | MIT | A | 20 | Claude Code |
| godot-signals-groupsgamedev-skills/awesome-gamedev-agent-skills | Skill | 7.4k | 10d ago | Apache-2.0 | A | 95 | Claude Code |
| texture-workflowarjun988/blender-skills | Skill | 2.0k | yesterday | MIT | A | 41 | Claude Code |
| scenario-unreal-gameplayscenario-labs/skills | Skill | 3.5k | today | MIT | A | 121 | Claude Code |
| motionOpenDCAI/GameFactory-3A | Skill | 1.0k | 9d ago | Apache-2.0 | A | 0 | Claude Code, Codex |
| unity-addressablesBesty0728/Unity-Skills | Skill | 1.9k | today | MIT | A | 25 | Claude Code, Codex |