Story, chapters and memory

How the AI Dungeon Master keeps a story straight: the secret story arc, acts and chapters that close on story beats, the table language, what it remembers and how, recaps, the story archive, and exporting a finished campaign.

Desktop appAndroid appBrowser

A language model has no memory of its own between turns. The app gives it one: a it follows, a record it is shown, facts it is reminded of, and that summarise the past so the recent past stays vivid. Knowing how that works explains most of what the Dungeon Master does, and why a setting or two matters.

The secret story arc

Every AI campaign is given a hidden spine at creation: the premise, the antagonist, the beats that lead to a climax, the twists. The can read and edit it from the Story tab; players cannot. As close, is refreshed with a small, clamped delta, so the plot advances without the model rewriting history. can be solvable, with the and romance gates feeding in. A writes the arc themselves, or leaves it blank.

Chapters

are grouped under acts, each with its and announcement, and the title screen names the act the tale is in. A beat is reached through the server ticks from play, so the story advances at the table's pace. A chapter closes when its are completed, not after a number of messages, and never on a single scene. The close does four things: awards experience, extracts facts (names, promises, debts, wounds) into the campaign's memory, writes the chapter summary, and takes a snapshot the lead can rewind to. announce chapters, fights and rests at the table.

Table language

A campaign's setting (fifteen languages, English by default) is the language the Dungeon Master writes the story in. Every model call that writes for people uses it, and the server reads story and player text the same way in every one of them. Picture prompts are rewritten into English before they reach an image model.

What the Dungeon Master is told

Each the prompt is built from blocks: the setting and arc, the party's sheets, the current scene and map, the open quests and the shop if one is open, and their standing, , recent messages in full, older as summaries, and any the search found relevant. The Context tab ( only) shows those blocks and what each costs against the model's , including a Tool definitions row: the descriptions of the Dungeon Master's tools take about 27,000 tokens on every call, which the budget accounts for. When the window is small, the oldest material is compacted first; a model served with a 64K window, or an OpenAI model with its 128K window, sees far more of the story than a 16K one, which is the single biggest lever on a Dungeon Master that seems to forget.

Recall

, PDF pages in , past and extracted facts are indexed with a small local on the server, so "the innkeeper who owed us" can be found even when it is not in the recent messages. uses the same search. The default model understands English; for a table that plays in another language, the desktop app's Settings has a Story memory choice of Many languages, and a self-hosted server sets a multilingual model with EMBEDDING_MODEL. The story is re-read in the background after a change.

Recaps

Opening a campaign after a break shows a . At a human-DM table there are two: the party's card, and a DM-only with what the players do not know. Recaps come from summaries, and, when is on for a human-DM table, from what was said aloud.

The Story tab and the archive

The Story tab is the campaign's as the party sees it: and , quests the Dungeon Master has set and ticked, a timeline of dated events, that unroll from a painted scroll, and the of who knows whom. The archive is a book whose pages .

The Story tab: the current chapter's summary, quests with tick boxes, a timeline of dated events, and handouts on a painted scroll
The Story tab. Chapters, quests, the timeline and handouts.

Correcting the record

The can reroll a with guidance, continue a scene that stopped short, fix a typo in place, or rewind to a boundary. Rerolls change only the words: dice, sheets and resolved outcomes stay identical, so a bad paragraph never undoes a good roll. See Steering the story.

Exporting a campaign

A finished (or unfinished) campaign exports to DOCX, ODT or HTML as a reading copy: the with headings, without the dice noise. Play state moves only with the server's database, so an export is for the shelf, not for continuing on another server. and characters export as their own .

Checked against desktop and Android app 0.17.2 and server 0.26.2 on 2026-10-11. Something wrong or missing? Open an issue.

Download · v0.17.2
Server app · v0.26.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