The workshop

Prep before a table exists: the shelf, a workshop's hub and its fifteen tools, WorldForge, copies of published rules that play like the original, guided tours and per-tool guides, pick lists instead of typed names, bundles, and the Plugin tool that builds world packs.

Desktop appAndroid appBrowser

A is a campaign that never plays. It has every content editor a campaign has, measured against a stand-in party you declare, and nothing to narrate. Build a world there once, then import it into as many campaigns as you like. Workshops, campaigns, characters and individual assets all clone.

A workshop's hub: cards for WorldForge, Storyboard, Party, Battle maps, Region, Encounters, Cast, Factions, Bestiary, Homebrew, Lore, Tables, Rules, Plugin and Share, each with a count
The hub starts with four tasks, followed by the tool cards; each tool has its own tour and guide.

The shelf and the hub

on the home screen opens the shelf: your workshops with covers, plus prepared worlds from a , if your server has one set, that install as workshops. Opening one shows four starting tasks: Prepare a fight, Make a map, Create an and Build a world. Each opens the Create chooser on that task; all the tool cards remain below. Use only what your game needs; the counts describe what you have, not a list to finish. A command palette (on a desktop) jumps to any tool or entry.

The tools

ToolWhat you make
The world as one document over the records the table plays: a Character is a cast member, a Location a place, a a faction. A wiki, a web of links (family trees, chains of command, as truth or as belief), a timeline with converting calendars, an atlas with pins and regions, secrets with their keepers, and a stub scan. Forge, Ask the world, Draft and Paint appear when the server has the AI for them: Draft turns an idea into an outline with counts that you review before anything is made, and builds its creatures and items through the and so they play; Ask answers from the world's passages and cites the ones it rests on; Paint keeps its pictures waiting beside the entry's own until you keep one, and earlier pictures can be put back. WorldForge files import and export whole, and the AI Dungeon Master is told each 's hidden truth and the secrets the party has not learned. At the table the campaign's copy opens from the World tab for whoever holds .
as beats and acts. A fight card uses the fight it picked, arrows can be one route of several or "only if", and a later board joins an arc already played as its next act. Imported into an AI campaign, it becomes the plan the Dungeon Master follows.
PartyThe stand-in target party and any , with a level mismatch warning.
The , and Map Editor. See Maps for dungeon masters.
RegionThe editor with imports and PNG export.
Monsters and placements with live difficulty against the party, hidden enemies, overrides, rewards, a private note, and a "How hard is this?" workbench.
CastNPCs with role, portrait, voice, gender, location (offered from the region map and geography ) and relationships. An NPC can fight as an stat block or one of your own.
FactionsStanding, goals and power, and who belongs.
BestiaryMonsters from a catalogue pick or from scratch: the full stat block, a sectioned trait editor, spells known searched from the catalogue, passive perception derived in the right order.
HomebrewItems (weapons, armour, magic items with every part of their magic), spells with the engine's whole mechanics, feats, backgrounds, species, subclasses, and hazards (traps, poisons and diseases the engine runs by name). Start from copies a published entry, marked Variant, and the copy plays at the table exactly like the original. A checker under the editor reads each kind against the SRD's norms, with a link to the rule's page.
Lore. See The binder.
Tables with x3 weights, rows that point at another table, a monster, an item or an NPC (picked from what the holds), nesting four deep, and draw without replacement.
Rules: house rules and the homebrew a ruleset ships.
PluginA built from this workshop, with , catalogue pickers, browser-resized pictures and a Publish tab.
ShareThe export, listing what it will carry.

Create and playable records

Create asks what you want to make and shows where it will live. An opens Cast, a creature opens , an item or spell opens , a player character opens the builder or the 's roster. Start blank, copy an existing record, bring in a picture, draft with AI, or extract from notes where the selected tool supports it. Drafting and extraction appear only when the required model is available.

, Cast, Region, and show the same underlying records. Edits update across tools and tabs, and an editor asks before you leave unsaved work. A World entry and its record's tool link directly to one another; the workshop URL remembers the selected tool and entry.

A World entry called Monster or Item is descriptive until it is linked to a playable record. Use at the table lets you make or choose a stat block or item and open it in its own editor; a linked monster can enter an as that exact creature. Cast shows a person's faction and home, while relationship links apply those fields only when the author chooses to apply them.

WorldForge files and revisions

Each entry has one main account; other versions of its text keep their own names. whose entry is draft, alternate or retired is withheld from the party; marking it canon and choosing its audience are separate decisions. DM-only lore and hidden truths retain their visibility through a WorldForge file. Before importing or exporting, review any report naming content the chosen format would leave out.

Reimporting the same world preserves campaign edits and reports conflicts when both versions changed a value. A campaign's deliberate choice to publish an imported DM-only entry stays published. Worlds with overlapping internal IDs remain separate. Place illustrations travel inside . A card remembers the WorldForge entry it came from, so opening the same file again updates its cards, and a built from a workshop carries its ; the Publish tab lists what a pack leaves out before anything is published.

At the table, Reveal to the party on a secret turns it into a lore entry every player can read, in that campaign only, and the can show it as a .

Homebrew at the table

A species can borrow published traits by name and select resistances by damage type, so the editor can say what the engine will apply. The feat checker explains which mechanics its wording grants. In , specialist monster fields are grouped by purpose; open the group for the details you need.

Tours, guides and glossary

The shelf, the hub and every tool have a , completed once per account on that server and replayable from Help across browsers and apps. A tool's tour walks into its own editor where the work happens. Help inside the is a written guide per tool: what it is for, a first session in order, and the things people miss, with the tool you have open first. A glossary sits beside conditions, schools of magic, weapon properties, damage types, skills and alignments.

Pick from a list

Wherever a tool used to ask for the name of something that already exists, it now offers the list beside the field and still accepts typing: monster search in the workbench, a picker that writes table rows, links from a dropdown, tags you already use, an 's location from the , languages and conditions from their lists.

Addon imports

On a browser or desktop connected to a host with a configured importer , Import with an addon reads your chosen file and previews the it produces. Installation belongs to the host's administrator. See Addons.

Bundles

Share writes a .odm-workshop.json with pictures inside; , , Market shops, the document and every link between the pieces travel too. A can draw on one shared workshop: its pickers list the shared cast, places, maps and fights, and the links stay live. Importing offers every kind as a tick. See Importing workshop prep.

The Plugin tool

One draft per . A guided identity wizard, builder tabs for races, classes, backgrounds, spells, items, features, monsters, , locations, hooks, a glossary and name seeds, pickers from the and the so no id is typed, Pull from this workshop to lift the factions, places, , hook cards and cast names ( entries included) into the setting, pictures resized in the browser, and a Publish tab that runs the validator and downloads the manifest or installs it on this server (administrators only). The draft rides in the and through Duplicate. See Make a campaign plugin for a walkthrough.

The Bestiary tool: monster tiles with painted plates, and a stat block open for editing with abilities, skills, senses and traits A workshop hub on a phone: the tool cards stacked two across
The on a desktop, and a workshop hub on a phone. Every tool is a tap on a phone; are desktop only.

Checked against desktop and Android app 0.19.4 and server 0.28.4 on 2026-10-21. Something wrong or missing? Open an issue.

Download · v0.21.2
Server app · v0.30.2

Optional. Runs the table for a whole group on one machine that stays on. Everyone else just installs the app.

Free & open source · MIT licensed · served from GitHub releases