← Run a campaignDivineDungeoner

Write your own adventure

Bring your own story beats, plotlines, characters, enemies and art. Package them in one folder, and once a moderator approves it, anyone can pick your adventure when they start a campaign: with the dashboard, the companion phone, the Player Display, the Encounter screen and the Bestiary all working as they do for the published books. Each account shares one adventure; upload new revisions of it as often as you like.

  1. 1Start from the kit

    A complete example adventure, The Sunken Bell, with the format guide, image guide and editor schemas inside.

    Download the starter kit (.zip) ↓
  2. 2Write your story

    Edit adventure.json, add a file per chapter in chapters/, list characters.json and enemies.json, and drop art into images/ named after the beat or enemy it shows.

  3. 3Check, playtest, submit

    Check finds every mistake at once, with the file and line. Submit, then playtest it in a private campaign while it waits for review.

Upload an adventure

Sign in or create a free account to check and submit an adventure.

What goes in a package

adventure.json
Title, author, levels, synopsis, where play starts. Required.
chapters/01-name.json
One per chapter, in play order: its beats, each with summary, read-aloud text, steps, checks, enemies and choices. At least one.
characters.json
NPCs: name, role, summary, personality, goal, secret, where they live.
enemies.json
Monster stat summaries: type, CR, AC, HP, speed, notes. Feed the Encounter screen and the Bestiary.
locations.json
Places for the map. Coordinates are optional; they're laid out along the story's road.
images/scenes/<beat-id>.jpg
Scene art for the Player Display, linked by file name. 1920×1080 is ideal.
images/enemies/<enemy-id>.png
Monster art with a transparent background, for the Encounter screen and the Bestiary.
images/cover.jpg
The picture on the adventure picker.
items, lore, factions, tables, flags .json
Optional extras for the Compendium and story conditions.

The starter kit's FORMAT.md covers every field, IMAGES.md every picture, and SUBMITTING.md the review. Contributors working in the DivineDungeoner code can run the same checks offline with npm run adventure -- check my-adventure.