{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.
{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
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
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: "Rumor places the vault somewhere in the old district - {dungeon:spymasters-cell-vaults}."
β Avoid: "{dungeon:blackwater-cove} is where you'll find him."
{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:
- Every bundled campaign has at least 3
dungeons[]entries, each tied to a real quest viaquestId. - Pick quests that plausibly involve infiltrating, raiding, or exploring a real place - not every quest needs one.
- 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:
See Also
- Campaign Structure: Dungeons - Full
dungeons[]schema and authoring workflow - {nearestDungeon} - The flavor-text-only alternative
- {monster} - Reference a specific creature by name