Updated September 2026. A sheet for tracking a campaign, not a recorder for running one.
Someone asks "wait, who was that" three sessions after you introduced them, mid-scene, four people waiting on you. That's the only test a campaign tracker has to pass. A tracker holds the state of the whole campaign: who's in the party, who they've met, what they're chasing, where they've been, who they've made enemies of. Recaps tell the story of one session; this is where the facts live between them.
A flat sheet does this fine for a long stretch of a campaign, and it strains at exactly one point: the moment a name in one table and a slightly different spelling of it in another might or might not be the same person, and nothing on a sheet checks that for you. If you're already hitting that wall, a wiki is the better tool for it. This page is for the sheet: seven short tables plus two habits that keep it honest, built to be filled in by hand.
A good test before any column goes on the sheet: would you stop mid-session to read it?
Not everything earns a row. Before a column goes on this sheet, ask one question: would you stop mid-session to read it? Level, backstory, a full stat block: nobody flips to the tracker for those, the character sheet already has them.
What passes that test is the party and what they're owed, who's been met and what they want, what's being chased, where the party's been, the standing factions, what's been won, and a session-by-session index. Seven short tables cover that.
Seven short tables, each one held to the same test: would you stop mid-session to read it.
Party roster. Name, player, one trait, one thing they're currently owed or owe. Level lives on the character sheet already; a debt is the thing that turns a roster row into a hook. Example: Mira Voss, played by Priya, never pays full price for anything, currently owed a favor by the harbormaster.
NPC roster. Name, location, what they want, one-line note, for anyone the party is likely to see again. Write the want, the thing that cuts against what the party wants, not a relationship label like "friendly" or "ally." Example: Varek Oss, the counting house on Kell Street, wants his signet ring back before his steward reports it missing, helpful only while the ring is missing.
A good default for a name met once and unlikely to return: skip the want and log name, location and the one-line note only. Working out what cuts against the party is real effort, and spending it on a barkeep with four lines is how a sheet stops getting updated by session six. Promote them to a full want if they come back.
Quests. Name, status (active, complete, or failed, matching the three states most tables already track), current state. Whoever gave the quest and what they want from it goes in the current-state line, not a separate column. Example: The Kell Street Debt, active, given by Varek Oss, waiting on Talla to name her price before pressing further.
Locations visited. Name, first session, what's there. Example: The Sunken Tollhouse, first visited session 12, flooded customs post the smugglers use as a market.
Factions. Name, goal, standing, as a delta, not a snapshot. What tends to work is writing the standing from the party's side of it, since the question you stop to check mid-scene is whether these people trust us right now, not how the faction feels internally. So not "uneasy truce": the last thing that moved the needle, which way, and when. Example: The Kell Street Consortium, runs the river tolls, standing: warmer to us since we let Talla's crew walk at the bridge, session 14.
Loot log. Item, who's carrying it, session found. This is the running index across sessions that a single night's loot list, by design, doesn't give you on its own. Example: Varek Oss's signet ring, held by Mira, session 11, opens his study if you get past the steward.
Session index. Session number, date, one line on what happened, one more line for the thing worth remembering. Write the one-liner as a person doing something, not a plot summary: "Varek handed over the ring" tells you more, three months later, than "searched the counting house," because that's how the table will actually ask you to look it up.
A tracker that only grows stops being trustworthy. Fix it with one more verb: retire.
A tracker that only grows stops being trustworthy. Six months in, it's half graveyard, and nobody checks it live because half of what's on it is dead. Fix it with one more verb: retire. A quest that resolves, a faction that goes quiet, an NPC who dies: don't delete the row.
Strike the name, add one line on why it stopped mattering, then move it to the bottom of its table (the NPC roster can do this right in its own note column; Quests and Factions get their own retired block below the live rows). A block of struck rows costs nothing to skip past mid-session. A missing row costs you having to remember it existed at all, and campaigns have a way of resurrecting exactly the threads a GM assumed were closed for good.
Once a month, scan anything still marked active that hasn't moved in four or more sessions and force a call: resolve it, fail it, or retire it. Most quest tracking only holds three states: active, complete, or failed; this sheet's fourth state, retired-and-kept, is yours alone to keep.
Don't keep two records of the same night. The line worth remembering lives on the row you're already filling in.
Don't keep two five-part records of the same night. The line worth remembering lives right on the session index row you're already filling in, something someone actually said, not paraphrased. Want the full narrative version, with a rotation habit for who writes it and a filled-in example? That's the session recap template, not a second habit to maintain on this sheet.
SESSION INDEX ROW Session # | Date | One line (a person doing something) | Line worth remembering (something someone actually said)
The fix isn't a better sheet, it's a smaller habit, timed right: fill it in the same night you play.
Every GM starts a tracker. Most stop updating it by session six, not because the format is wrong but because updating it competes with prep time on the one night a week set aside for the game. The fix isn't a better sheet, it's a smaller habit, timed right: update the session index and anything new in the NPC, quest, or loot rows the same night you play, while it's a two-minute task.
Wait a week and it's twenty minutes. Wait a month and it's a reconstruction you'll never actually get around to. A tracker that gets updated before you close the laptop tends to beat the one with the most columns.
What to fill in the same night you play:
Quests get their own tab: click "+ New Quest," add a title and details, and its status moves through active, complete, or failed, matching this sheet's first three states. NPCs, locations, and items live in the Codex, with Factions as its own section there. Loot from a session lands on that session's Spoils tab by itself, kills, key items, coin, and who went down, without you tallying any of it by hand.
What stays yours either way: the party roster's debts and traits, the session index's one-liners, and a row's retired history, those are judgment calls, not something to pull off a transcript. Hand-tracking any of it, in the Codex or on this sheet, is free forever, and players are always free.
Print the block below for a binder, or copy the plain text under it into wherever you keep notes.
Same tables as above, plus the retired rows for quests and factions. Each one shows its columns and one filled-in row; print this block, or copy the plain-text version below it into whatever you keep notes in.
| Name | Player | One trait | Owed or owes |
|---|---|---|---|
| Mira Voss | Priya | Never pays full price for anything | Owed a favor by the harbormaster |
| Name | Location | What they want | One-line note |
|---|---|---|---|
| Varek Oss | The counting house on Kell Street | His signet ring back before his steward reports it missing | Helpful only while the ring is missing |
| Sella | The ferry landing | (met once, no want yet) | Sold them the river map |
| Name | Status | Current state |
|---|---|---|
| The Kell Street Debt | Active | Given by Varek Oss; waiting on Talla to name her price before pressing further |
| The Salt Road escort | Retired | The caravan left without them, session 9; nobody has asked since |
| Name | First session | What's there |
|---|---|---|
| The Sunken Tollhouse | 12 | Flooded customs post the smugglers use as a market |
| Name | Goal | Standing (last thing that moved it, and when) |
|---|---|---|
| The Kell Street Consortium | Runs the river tolls | Warmer to us since we let Talla's crew walk at the bridge, session 14 |
| Item | Who's carrying it | Session found |
|---|---|---|
| Varek Oss's signet ring (opens his study, past the steward) | Mira | 11 |
| Session | Date | One line (a person doing something) | Line worth remembering |
|---|---|---|---|
| 14 | Mar 3 | Varek handed over the ring | “Before my steward notices, or not at all.” |
PARTY ROSTER Name | Player | One trait | Owed or owes NPC ROSTER Name | Location | What they want | One-line note QUESTS Name | Status | Current state --- retired --- Name | Status | Why it stopped mattering LOCATIONS VISITED Name | First session | What's there FACTIONS Name | Goal | Standing (last thing that moved it, and when) --- retired --- Name | Why it stopped mattering LOOT LOG Item | Who's carrying it | Session found SESSION INDEX Session # | Date | One line (a person doing something) | Line worth remembering
Enough to answer what comes up mid-session without scrolling: the party and what they're owed, the NPCs met and what they want, what's being chased, where the party's been, the standing factions, what's been won, and a session-by-session index. Anything past that tends to become its own chore.
Yes, this one. Copy the template below into whatever you keep your notes in, or print it for a binder. No account, no subscription.
Don't delete the row. Strike the name, add one line on why it stopped mattering, and move it to the bottom of its table. See Retire, don't delete above.
No. Add one column to your session index: the line worth remembering, something someone actually said. Want the full narrative version instead? That's the session recap template, a different document with a different job.
The same night you play, before you close the laptop. Any later and a two-minute update turns into a twenty-minute reconstruction.
Yes. Print the page for a binder, or keep it open on a laptop or tablet during the session and update it live between scenes.
More: the session recap template · what makes a good session recap · the honest tools roundup · What is Threadfall? · all Threadfall guides