/scenario - Guided MoM Scenario Creation
Create a new Mansions of Madness 2nd Edition scenario for the Valkyrie app using AI-assisted tools.
Workflow
Step 1: Concept
Ask for a scenario concept:
- •Theme and setting (haunted house, mysterious town, abandoned asylum, etc.)
- •Target difficulty (0.0-1.0, where 0.5 is medium)
- •Estimated play length (minutes)
- •Number of investigators (2-5)
- •Any specific expansions required (base game only vs. Beyond the Threshold, Horrific Journeys, etc.)
Step 2: Create Scenario
Use create_scenario to scaffold the scenario directory. This creates the directory with default quest.ini, quest.txt, and supporting files.
Step 3: Map Design
- •Use
suggest_tile_layoutwith a style (linear, l_shape, hub_spoke) based on the concept - •Use
search_game_contentto find appropriate tiles (e.g., "hallway", "study", "garden") - •Use
upsert_tileto place each tile with asidefrom the tile catalog - •Use
get_map_asciito visualize the layout - •Adjust positions with
place_tile_relativeas needed
For systematic placement methodology, see /tile-placement.
Step 4: Event Chain
Build the event flow:
- •Create
EventStartwithtrigger=EventStart- the scenario introduction - •Create a setup chain: EventStart → place tiles → place tokens → remove TokenInvestigators
- •Create exploration events that reveal tiles and place tokens
- •Create encounter events for monster spawns and puzzles
- •Create finale events with
$endoperation - •Wire events together via
event1..event6fields
For complex patterns like loops, branching, and dialogues, see /event-patterns and /variables-and-mythos.
Step 5: Tokens
Place tokens on the map:
- •
TokenExplore- reveals new areas (place at tile boundaries) - •
TokenSearch- provides items (1 per area recommended) - •
TokenInteract- triggers story events - •
TokenInvestigators- starting position (remove after setup) - •
TokenWallOutside/TokenWallInside- walls and barriers
Step 6: Monsters & Spawns
Use upsert_spawn for each monster encounter:
- •Reference monsters from catalog (MonsterCultist, MonsterGhost, etc.)
- •Set health scaling with
uniquehealthanduniquehealthhero - •Use
conditionsto gate spawns on game state
For custom monsters with unique behaviors, see /custom-monsters.
Step 7: Items
Use upsert_item for starting and discoverable items:
- •Set
starting=Truefor initial loadout - •Use
traitsto specify item types (weapon, lightsource, equipment, spell, common) - •Use
itemnamefor specific named items
For advanced distribution patterns, see /items-and-distribution.
Step 8: Narrative
Use set_localization to write all text:
- •
quest.nameandquest.descriptionfor the scenario listing - •
EventName.textfor event dialog - •
EventName.button1etc. for button labels - •
TokenName.textfor token descriptions
Step 9: Validate & Build
- •
validate_scenario- fix any errors reported - •
build_scenario- create .valkyrie package
Advanced Patterns
These skills cover complex patterns from the scenario editor guide:
- •
/event-patterns- Event loops, multi-question dialogues, silent events, token swaps, random events, variable branching - •
/tile-placement- Systematic tile placement chains, multi-entry tiles, naming conventions - •
/variables-and-mythos- Variable system, mythos scaling, random generation, hero detection - •
/custom-monsters- Custom monsters with unique activations, evade, horror - •
/ui-and-puzzles- UI elements, custom puzzles, splash screens, interactive journals - •
/items-and-distribution- Random items, unique items, starting items, inspection events
Tips
- •Use
{qst:CONTINUE}for standard continue buttons - •Use
{ffg:TILE_NAME}to reference tile display names - •Use
{c:ComponentName}to reference component names in text - •Skill tests use
{strength},{agility},{observation},{lore},{influence},{will} - •Standard tile spacing is 7 units
- •Always remove TokenInvestigators after setup to prevent it staying interactable
- •Run
validate_scenariofrequently during development