{dungeon:id} Placeholder

References one entry from your campaign's own top-level dungeons[] array and renders it as a real, clickable "Open Dungeon" button - not flavor text. Clicking it opens the Dungeon Viewer: a generated room layout with fog-of-war reveal, seeded loot/traps/encounters, and a hookup into the Initiative Tracker.

This is not the same as {nearestDungeon}/{randomDungeon}. Those two just drop a name into prose - there's nothing behind them to open. {dungeon:id} only works for a location you've authored yourself in dungeons[] - see Campaign Structure for the full schema. If id doesn't match any entry, this renders [unknown dungeon: id] instead of a button.

Basic Syntax

{dungeon:your-dungeon-id}

The id must exactly match a dungeons[].id in the same campaign file - no parameters, no filtering. You already picked the exact location when you authored the dungeons[] entry; this placeholder just places the "open it" button.

Usage Example

// Top-level, sibling of "episodes" "dungeons": [ { "id": "blackwater-cove", "name": "Blackwater Cove", "type": "Cave", "difficulty": "medium", "questId": "Find the Boatswain" } ] // Inside "Find the Boatswain"'s own scene text { "readAloud": "<div class='read-aloud'><p>The old sailor's directions lead you to a jagged inlet the locals avoid. Half-hidden by sea-worn rock, you find the entrance: {dungeon:blackwater-cove}.</p></div>" }

Result: the sentence renders normally, then a gold "πŸ—ΊοΈ Open Dungeon: Blackwater Cove" button appears where the placeholder was - the DM clicks it to open the real dungeon, right when the party arrives.

Where to Put It

The rendered button is a block-level element with its own vertical margin (it doesn't sit inline mid-sentence the way a resolved {nearestBurg} name does) - it reads best placed at a sentence boundary: the end of a sentence, or as a trailing appositive naming the place just described. Avoid making it a sentence's grammatical subject.

βœ“ Good: "...you find the entrance: {dungeon:blackwater-cove}."
βœ“ Good: "Rumor places the vault somewhere in the old district - {dungeon:spymasters-cell-vaults}."
βœ— Avoid: "{dungeon:blackwater-cove} is where you'll find him."
The reference doesn't have to be in the linked quest's very first scene. Across the bundled campaigns, most {dungeon:id} references appear as a namedrop - an NPC mentioning the place, or narration revealing it - a scene or two before the party actually arrives, not necessarily the literal "you are now standing at the entrance" beat. Either works; place it wherever the location is first meaningfully established in your story.

Writing Dungeons Into Your Campaign

The full authoring workflow (picking which quests get a dungeon, the schema, difficulty scaling, validation) lives on the Campaign Structure page rather than duplicated here - this page is specifically about the placeholder syntax. Short version:

  1. Every bundled campaign has at least 3 dungeons[] entries, each tied to a real quest via questId.
  2. Pick quests that plausibly involve infiltrating, raiding, or exploring a real place - not every quest needs one.
  3. One {dungeon:id} reference per dungeon is typical; nothing stops you from referencing the same one from multiple scenes if the story calls for it (e.g. an NPC mentions it, then the party arrives at it later).

The Real Generated Map

Every dungeons[] entry also gets a marker on Campaign Cookbook's automatically generated regional map (the reading pane's Locations rail view) - your dungeon's name is baked directly into that map's own printed danger label, so the map and your dungeons[] array never show two different names for the same place. This happens automatically; there's nothing to configure beyond authoring the entry itself. See {nearestBurg} for more on how the map's towns are generated.

Combine with Monster Placeholders

A dungeon's own room encounters are generated automatically when the DM opens it - but you can still reference a specific creature in your read-aloud text leading up to it:

{ "readAloud": "<div class='read-aloud'><p>Claw marks score the cave entrance - something large made this its den: {dungeon:hollow-den}.</p></div>" }

See Also