An AI Dungeon Master should not earn the phrase "persistent memory" because it remembers your name five messages later. A long campaign needs facts to survive new scenes, combat, side quests, session breaks, and hundreds of unrelated details.
The harder standard is constraint. If the DM remembers that you gave away a sword but still lets you attack with it, recall did not become game state. If it remembers the murderer but changes the motive when the mystery resumes, the fact was never canonical. If it says a spell slot was spent but narrates another leveled spell anyway, the rules are only prose.
The five tests below can be run against TableForge, The Endlessness, InfinityDM, a general chatbot, or any future AI DM. Use the same protocol and save the evidence.
The test protocol
Run each test in a fresh campaign when possible. If the product exposes a character sheet, inventory, quest log, campaign facts, or event history, capture those screens at the setup and verification points.
Use these rules for a comparable result:
- Count Dungeon Master responses, not player messages. One test cycle is 30 completed DM responses after the setup fact is established.
- Do not repeat or hint at the tested fact during the 30-response gap.
- Play normal scenes during the gap. Mix travel, dialogue, checks, and at least one combat if the product supports them.
- Do not correct the AI before the verification prompt. The first answer and first state transition are the result.
- Score the stored UI and the narration separately. A correct sentence with an incorrect sheet is not a pass.
Thirty responses are a practical baseline, not a scientific constant. After a product passes, repeat the same sequence at 100 responses and after closing the session for at least a day.
Test 1: the named inventory item
This checks whether an acquired item becomes canonical character inventory rather than a detail floating in the transcript.
Setup prompt
Quartermaster Sable gives my character one silvered dagger named Mothbite as payment for escorting the caravan. Add exactly one Mothbite to my character's inventory. It uses the normal dagger mechanics. Record that Sable gave it to me for the caravan escort.
Play 30 DM responses without mentioning Sable, the caravan, the dagger, or Mothbite.
Verification prompt
Show my current inventory from the authoritative character sheet. For every named item, include quantity, whether it is equipped, and how I acquired it. Do not infer from recent prose.
Pass criteria: Mothbite appears exactly once, is based on a dagger, and retains the correct provenance. The inventory UI and the answer agree. The product does not invent a second copy or omit the item because its original scene fell out of recent context.
Test 2: the consumed item cannot return
This checks mutation. Remembering that an item existed is easier than remembering that its quantity changed.
Setup prompt
Put exactly two Potions of Healing in my inventory. I drink one Potion of Healing now. Resolve the healing and reduce the stored quantity from two to one.
Confirm that the visible inventory shows one potion. Play 30 DM responses without acquiring, buying, drinking, or discussing another potion.
Verification prompt
I drink two Potions of Healing, one after the other. Resolve both uses and show the inventory afterward.
Pass criteria: The system permits one use and rejects the second because only one potion remains. The final quantity is zero. It does not heal twice, create a negative quantity, resurrect the original stack, or solve the contradiction by quietly inventing new loot.
This is where a good-sounding answer can hide weak architecture. "You only had one potion" is correct narration. The stronger proof is that the game applies healing once and commits one valid inventory mutation.
Test 3: the murderer stays the murderer
This checks narrative continuity, secrecy, and exact delayed recall.
Setup prompt
Mara Voss privately confesses that she murdered Magistrate Orlan with silver bell wire because he discovered her smuggling ledger. My character promises not to reveal the confession yet. Treat Mara as the murderer, silver bell wire as the method, the ledger as the motive, and the confession as known only to my character.
Play 30 DM responses on another thread. Do not mention Mara, Orlan, a bell, wire, a ledger, smuggling, murder, or the confession. The AI also fails if it leaks the secret to an NPC who should not know it during this gap.
Verification prompt
I reopen the Orlan investigation in private. Based only on established campaign facts, state who killed him, the murder method, the motive, who currently knows, and what promise my character made. Do not add a new twist.
Pass criteria: The answer returns Mara Voss, silver bell wire, the discovered smuggling ledger, private knowledge held by the character, and the promise of silence. All five details must match. A product that swaps the murderer, changes the motive, treats a suspicion as public proof, or invents a supernatural twist fails.
This test is why the murderer matters. A mystery can tolerate atmospheric improvisation. It cannot tolerate the culprit being regenerated from whatever sounds plausible later.
Test 4: the broken quest condition has consequences
This checks whether quests are stateful commitments rather than reusable flavor text.
Setup prompt
I accept Sister Ilyra's quest to recover the Ashen Seal and return it directly to her. I explicitly promise that I will not give the seal to Duke Renn. Record the objective, the restricted recipient, and the promised reward of 100 gold.
Acquire the Ashen Seal, then deliberately give it to Duke Renn. Make sure the product accepts and records the transfer. Play 30 DM responses on another objective without mentioning Ilyra, Renn, the seal, or the reward.
Verification prompt
Show the current status of Sister Ilyra's quest, including the original objective, what condition I broke, who owns the Ashen Seal now, whether the reward is still owed, and any established consequence. Do not reset the quest to incomplete.
Pass criteria: The quest is failed, altered, or otherwise explicitly compromised. Duke Renn owns the seal, the character does not, and the promised reward is not presented as safely claimable. The product must carry the broken promise forward instead of reverting to "return the seal to Ilyra" as if the transfer never happened.
Test 5: the rules gate rejects an impossible action
This checks whether a remembered resource can actually constrain the next turn.
Start with a level 1 Wizard or another 5e character that has exactly two 1st-level spell slots. Do not take a rest during the test.
Setup prompt
I cast Magic Missile using a 1st-level spell slot. Later in this same scene, I cast Magic Missile again using my second and final 1st-level spell slot. Record both spends. I do not rest.
Confirm the sheet shows zero 1st-level slots. Play 30 DM responses without resting, recovering slots, leveling up, or receiving a feature that restores them.
Verification prompt
I cast Magic Missile again using a 1st-level spell slot. Resolve the action exactly as the current character state and 5e rules allow.
Pass criteria: The system rejects the cast before it deals damage or advances the fiction as a successful spell. It should explain that no slot remains and allow a legal alternative. A narrator that describes the missiles and repairs the sheet afterward fails. A narrator that invents a surge of hidden magic also fails unless that resource was already established in the character state.
The five-point scorecard
Give one point only when both the visible state and the first uncorrected response satisfy every pass criterion.
| Score | Interpretation |
|---|---|
| 0 to 1 | Recent-context roleplay, not dependable campaign state |
| 2 to 3 | Useful memory with gaps; expect manual correction |
| 4 | Strong campaign continuity; inspect the failed category before committing |
| 5 | Passes this baseline; repeat at 100 responses and across a new session |
Publish the product name, date, plan, model or mode if selectable, response count, screenshots, and exact prompts. AI products change quickly, so a score without a date is not durable evidence.
Why a memory answer is not enough
Large language models can retrieve old details from a long context window, a summary, embeddings, or generated memory. Any of those can produce the right sentence. None automatically ensures the rest of the application agrees.
A durable campaign needs several kinds of truth:
- Mechanical truth: HP, inventory, quantities, equipment, currency, XP, spell slots, conditions, and combat state.
- Narrative truth: the murderer, motive, promises, alliances, discoveries, and consequences.
- Epistemic truth: which characters know a secret and which do not.
- Temporal truth: what happened before, what changed, and which state is current.
- Authority: what can reject a contradictory action before the story moves.
The first four can be remembered. The fifth has to be designed.
How TableForge is designed to pass
TableForge does not put every fact in one memory bucket.
Character inventory, equipment, currency, XP, HP, spell slots, conditions, and other resources live on database-backed character records. Adding, consuming, selling, or equipping an item uses a game operation that validates the request, mutates the stored record, and emits an event. Level follows numeric XP thresholds. Combat rolls and resource changes have their own event types and programmatic resolution.
Campaign continuity is split across the story, recent event history, summaries, world state, NPC relationships, DM notes, and a campaign compass with the current objective, milestones, open leads, and unresolved promises. A private campaign premise can preserve a fact such as the murderer from the moment the story is generated. That private direction is supplied to the campaign creator, scene creator, and DM processes while being kept out of player-facing auto-play context.
The point is not that the language model never forgets. The point is that later turns can recover facts from purpose-specific records, and supported mechanical facts can constrain what the model is allowed to narrate.
The rules engine architecture explains the mechanical half. How a TableForge campaign works shows how those records appear during play.
Run the test before you move a campaign
Do not choose an AI DM because its homepage says "persistent," "infinite," or "never forgets." Those are category words now.
Give it Mothbite. Spend the potion. Leave Mara Voss alone for 30 responses. Break Ilyra's quest. Empty the Wizard's spell slots. Then ask the game to prove what is true without helping it.
The best product is not the one that writes the most confident answer. It is the one whose answer, sheet, quest state, and next legal action all agree.