Testing Your Campaign
Mock Data Reference
These values will replace placeholders in preview:
| Location Placeholders (flavor text only) | |
{nearestBurg} | Millbrook |
{randomBurg} | Thornfield |
{randomBurg:maxPopulation=300} | Riverside |
{randomBurg:minPopulation=1000} | Grandport |
{capitalCity} | Valdoria |
{targetBurg} | Eastwatch |
{nearestDungeon} | Shadowfell Caverns |
{randomDungeon} | The Sunken Crypt |
{randomDungeon:type=Cave} | Echoing Grotto |
{randomDungeon:difficulty=hard} | Dread Fortress |
{targetDungeon} | Ironhold Depths |
| {dungeon:id} - a real, playable dungeon | |
{dungeon:example-dungeon} | "πΊοΈ Open Dungeon: The Sunken Crypt" button |
| NPC Placeholders (real generated NPCs in the app - name only, here) | |
{nobleNPC} | Lord Aldric Vane |
{nobleNPC_2} | Lady Miriel Ashworth (a different person) |
{merchantNPC} | Greta Coinsworth |
{cultistNPC} | Malric the Veiled |
{priestNPC} | Brother Coram |
| Monster Placeholders | |
{monster:Goblin} | Stat block from compendium |
{monster:Shadow|count=3} | 3Γ stat blocks |
{monster:Orc|variant=elite} | With variant tag |
sameState/withinRange are accepted by the real app but not currently functional - see Parameter Syntax - so they're not shown here as if they changed anything. Any other numbered NPC tag ({merchantNPC_2}, {priestNPC_3}, ...) works the same way - see Placeholders Overview.
Campaign JSON
Campaign Cookbook Preview
No Campaign Loaded
Paste your campaign JSON above and click "Activate" to see it rendered here.
Or select an example in the "Load Example" dropdown to try a sample campaign.
π PROGRESS
π SCENE INFO
Load a campaign to see scene information
β VALIDATION
Click "Validate" to check your JSON
Validate also runs a light graph walk in your browser: it follows every choice from the start scene, flagging scenes nothing ever leads to, quest actions that are accepted but never resolved (or vice versa), and unrecognized {placeholder} text - all without launching the real app. It can't catch a real rendering crash the way npm run validate-campaigns -- --deep can, but it's instant and needs nothing installed.