Skip to main content
Glama
Txpple

fvtt-mcp-molten5e

by Txpple

create-scene

Create a Foundry VTT scene by providing a background image path, with automatic size detection and optional grid, lighting, weather, and import of walls/lights from a map sidecar JSON.

Instructions

Create a Foundry Scene from a Data-relative background image path (e.g. an uploaded map). Width/height auto-detect from the image when omitted. Optionally set grid size/type/distance/units/color/alpha, token vision, fog mode, lighting (darkness, global light, or a whole environment{}/fog{} mood object + saved camera for pack imports), weather, a linked playlist/journal, a nav thumbnail, padding, provenance flags, and activate it. Can also IMPORT walls + ambient lights from a map sidecar JSON (the walls/lights arrays many battlemaps ship alongside the image): pass them and they are placed on the new scene (legacy or v14 shapes both accepted, normalized to v14). GM-only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fogNoA v12+ scene's full fog{} object (exploration, overlay, colors), carried whole.
nameYesScene name.
flagsNoDocument flags to stamp on the new scene, namespaced by scope — e.g. {"tom-cartos-import":{sourceModule,sourceId}} for import provenance/dedup. Merged verbatim.
thumbNoData-relative path to a pre-rendered navigation thumbnail (e.g. an uploaded <id>-thumb.webp shipped by a map pack). Foundry may regenerate it on a later in-app edit, so treat it as a nice-to-have, not load-bearing.
wallsNoWalls to import from a map sidecar JSON (the `walls` array of a Foundry scene-export sidecar that ships next to a map). Created after the scene exists; coordinates are absolute canvas pixels, so pass the sidecar width/height/gridSize/padding too.
widthNoScene width in pixels (optional — auto-detected from the image when omitted).
heightNoScene height in pixels (optional — auto-detected from the image when omitted).
lightsNoAmbient lights to import from a map sidecar JSON (the `lights` array).
fogModeNoFog of war: disabled | individual (classic per-player) | shared (party-wide).
initialNoThe saved initial camera view {x,y,scale} to restore on scene load.
journalNoJournalEntry id or exact name to attach as scene notes. "" clears it.
paddingNoScene padding fraction (optional).
regionsNoRegions (v12+ RegionDocument incl. teleporters) to import from a scene-pack payload. Created after the scene exists; each is stamped with its source id, and cross-scene teleporter destinations are rewritten afterward by a single remap-teleporters call.
weatherNoWeather effect key (e.g. rain, snow, fog, leaves, rainStorm, blizzard). "" = none.
activateNoActivate the scene after creating it.
darknessNoDarkness/day-night level: 0 = full daylight, 1 = full night.
gridSizeNoGrid size in pixels (default 100).
gridTypeNoFoundry grid type (0 gridless, 1 square, 2+ hex). Default 1.
playlistNoPlaylist id or exact name to auto-play on scene activation. "" clears it.
gridAlphaNoGrid line opacity 0–1 (e.g. 0.2 for a faint grid).
gridColorNoGrid line color as a hex string, e.g. "#000000".
gridUnitsNoDistance unit label per cell, e.g. "ft" (dnd5e default).
environmentNoA v12+ scene's full environment{} mood object, carried whole (darknessLevel, globalLight{...}, cycle, base, dark{hue,luminosity}…). Prefer this over the flat darkness/globalLight knobs when importing a pack so the authored day/night mood round-trips.
globalLightNoGlobally illuminate the whole scene (turn the lights on).
tokenVisionNoRequire token line-of-sight to see the scene. Turn OFF for overland/illustration maps.
gridDistanceNoReal-world distance per grid cell (dnd5e default 5).
backgroundPathYesData-relative path to the background/map image.
placeablesPathNoServer-local path to a JSON file of {walls,lights,regions} to place (as written by read-pack for a scene-pack import). Read SERVER-SIDE and merged with any inline placeables — this routes a pack's hundreds of walls/lights/regions tool→tool without passing them through the agent (the MCP response cap makes inline placeables infeasible at scene scale).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears full responsibility for behavioral disclosure. It comprehensively details behaviors: auto-detection of dimensions, optional settings, import of walls/lights/regions with normalization, handling of environment objects, and the GM-only restriction. No contradictions with annotations (none present).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the primary purpose, then lists optional features in a logical order. It is somewhat lengthy (multiple sentences) but each sentence provides distinct information. It ends with a clear constraint ('GM-only'). Could be slightly more concise but is well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (28 parameters, nested objects, no output schema), the description is fairly complete. It covers auto-detection, import process, normalization, and various settings. It does not mention return value (likely the created scene object) or error handling, but these are minor omissions for a creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters with descriptions, baseline is 3. The tool description adds value by grouping related parameters (e.g., environment{} object, grid settings) and clarifying import workflows, but mostly restates or summarizes schema information without deep additional meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a Foundry Scene from a data-relative background image path. It uses specific verbs ('Create') and nouns ('Foundry Scene', 'background image path'), and distinguishes itself from sibling tools like 'update-scene' or 'delete-scene' by focusing on creation from an image.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly notes 'GM-only', indicating the intended user. It describes when to use the tool (to create a scene from a map image) and mentions optional imports. While it does not explicitly state when not to use it or provide alternatives, the context is clear for a creation tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Txpple/fvtt-mcp-molten5e'

If you have feedback or need assistance with the MCP directory API, please join our Discord server