Guide
Staying consistent across sessions.
An AI loses the thread once a long campaign overflows its context window. Then it guesses. Familiar's answer is structural: the adventure you imported and a searchable record of your campaign are what the AI reads from. Consistency lives in your prep, not the model's short-term memory.
Why AI campaigns drift
Every chat model has a context window: a finite amount of text it can hold at once. A one-shot fits. A campaign that runs for months does not. Once the early sessions fall out of the window, they are gone, and the model fills the gap with whatever sounds plausible. The duke's daughter gets a new name. The oath the party swore quietly changes. The NPC who died is back behind the bar.
This is not a prompt you got wrong. The problem is not reasoning, it is storage. The fix is to stop asking the model to remember and start giving it something to read.
Familiar's own chat trims the conversation to fit the model as a night runs long, and one row on the Chat tab, Reply reserve, sets how much of the window it holds back for the answer: 4096 tokens unless you change it, and it never cuts a reply short.
Do not trust a context window to be your campaign's memory. It is not built to be. Give the AI a persistent record to read from instead, and the drift goes away.
Structure does the remembering
Familiar treats the imported adventure and your campaign's accumulated record as the source of truth, not the conversation history. Two things hold the campaign, and both live in your Foundry world. First, the adventure you imported. Its journals, NPCs, statblocks and maps are the authored spine, fixed before the session. The AI reads the plot from there, it does not author it. Second, a persistent record of what your table actually did, which carries forward as you play.
The AI reads from that store when a detail comes up, the same way you flip back through your notes, and keeps it current with a short wrap-up at the end of the night. In the built-in chat that lookup has a row of its own, Campaign context on the Chat tab, on out of the box, and what it finds goes to your chat provider with every turn. Before each reply Familiar pulls the journals, NPC bios and item descriptions that match the conversation and hands them to the model.
What carries between sessions
Three shipped capabilities do the carrying. None of them depend on the model holding the campaign in its head. The record and the search work the same on any Foundry system.
- Full-text search across every journal, character, scene, item and recorded transcript. When a name or a promise from three sessions ago comes up, the AI searches for it and reads the actual entry, instead of reaching for whatever sounds right.
- A persistent memory bank that holds the campaign facts that should survive between sessions, so what was true last week is still true tonight.
- A continuously-rewritten plot summary the GM can read later: a short standing answer to "where are we", kept current as you play.
Knowledge & MemoryJournals & NotesLive Transcription
The end-of-session loop
The store stays accurate because you keep it current, and that takes about two minutes at the end of a session. The pattern is the same one a careful GM already uses: log what happened, keep one place that says where you are, and write down how next time opens. Familiar does the drafting; you confirm it is right.
Capture as you play
Turn on live transcription and speak instead of type. It transcribes the session in real time and saves it to a Foundry journal, so every named NPC, every decision and every promise lands in a searchable record while it is fresh.
Wrap up at the end
Before you close down, ask Familiar to summarise the session and save it to a journal. That recap, plus the rewritten plot summary, becomes the single "where we are" entry you both pick up from next time.
Pick up next time
At the next session the AI reads the recap, the plot summary, and any detail you search for, so it opens from what is written, not from what it half-remembers.
When Familiar writes to memory
That wrap-up keeps the readable record current; the memory bank fills on a schedule of its own. Facts do not trickle into it as you talk. Three moments write them, and two happen without you asking.
- The conversation fills up. At roughly three quarters of the model's context window, Familiar compacts the thread: older messages fold into the plot summary, and the durable facts inside them are lifted into the memory bank.
- You start a new chat, or archive one. That same extraction runs first, before the old thread is set down, so closing out a game night the ordinary way is what banks its facts.
- You say "remember this". The fact is written then and there, in the wording you gave it.
Closing the browser mid-session skips all three. The conversation is safe and picks up where you left it, but nothing has been extracted from it yet. End the night with a new chat, or say what you want kept.
Seeing what it remembers
The bank is not a black box, and it is not read-only either. The memory panel sits in the chat header: browse what Familiar has stored, search it, correct a fact that came out wrong, delete one that should never have been kept. Pin the facts you want in front of the model every time, and a pinned fact leads the list and skips the relevance filter that trims the rest.
The same facts sit in your sidebar as a journal, "[Familiar] Campaign Memory". Its Memory page lists every one of them. Its Plot page carries the running summary, and each rewrite leaves the version before it as a dated revision, so a summary that wandered has a restore point behind it. The chats themselves are journal entries as well: Save sessions, the row under Campaign context, is on out of the box and keeps each session as a GM-only entry in the world so it survives a reload, and resuming one sends its history back to your chat provider, tool results and sheet snapshots included.
The bank holds 300 facts. Past that, the lowest-scoring ones drop, weighed by how often a fact has come up again, how recently, and what kind of fact it is. Pinned facts are exempt from that, unless you have pinned enough to fill the bank on your own.
If you play over MCP
Everything above describes the built-in chat, which does the reading and the writing for you. Over MCP, with Claude, ChatGPT, Gemini, or Grok driving from your own client, the same bank sits in the same journal. What changes is how the facts reach the model. The chat folds them into every message; your client picks them up when it asks.
It does not open cold, though. A session that starts by reading the world, the call an assistant is told to make first, gets a digest of the top facts back with it, pinned ones leading. Past that it asks by tool: get-campaign-memories for the full list, save-campaign-memory to write a fact in the moment, and save-campaign-memories to set down a whole night of them at the end. What differs is the asking.
How it reads at the table
The same record answers questions in the moment. Say a rival merchant, call her the broker, shorted the party on a contract two sessions back, and tonight they track her down. You do not need to hold the figure or the grudge in your head.
When the broker is mentioned, Familiar searches the journals and the memory bank, finds the contract and the amount owed, and the AI speaks her in the voice your prep gave her, holding to what is on the page rather than improvising a new history. And if a detail was never written down, the search comes back empty. That is the honest answer, not an invented one.
What this does and does not promise
This is not perfect memory, and Familiar does not claim it. A model can still misread or skip a detail, the same way a tired GM can. What changes is where the answer comes from: instead of inventing a plausible-sounding fact, the AI looks it up in a record you control and can correct. The quality of the recall is the quality of your notes, and Familiar makes those notes cheap to keep.
Be clear about what the AI is not doing. It runs the DM's side of the table, the lookups, the NPC voices, the recaps, from what you imported and recorded. It does not author your plot or keep secrets from you. The story stays yours; Familiar carries the bookkeeping.
Install Familiar in Foundry, import a published adventure so the AI has a spine to read, and adopt the end-of-session wrap-up as a habit. From the second session on, the AI reads from a source that is current rather than guessing from a window that has overflowed. Questions about structuring prep, the memory bank, or your own pickup routine are welcome in the Discord.
More in Run your game
How to play D&D with AI
NewGood AI D&D is good prep. Structure a published adventure, then hand the running to the AI.
Prepping a published adventure for AI
NewLay a published adventure into Foundry as journals, sheets, and a one-page outline, so the AI has the pages to run from.
Keeping your prep in Obsidian
NewYour vault is never copied into Foundry: the AI reads it where it is, through Obsidian's community plugin. What the setup takes, what a note looks like once the AI reads it, and how to fence off the folders it should not see.
Writing characters the AI can play
NewGive an NPC who they are, what they know, what they want, and how they speak. Anchored to that, the AI voices them and fills the small edges itself.
Running combat with AI
NewRun combat with an AI that cannot cheat. Foundry's own dice enforce range, damage, and conditions, while you stay the DM.
New to Familiar? I'm Ryan, the person who built it. The Discord is small and brand new, so if you join now I'll help you get set up myself.