Skip to main content

NPC dossier / tracker for DMs

NPC
Quill Harrowfen
Role
Contact
Faction
Archivists of Ewenfast
Last seen
Session 12 / Rumerton Commons
Disposition
Indebted
They want
A stolen ledger page back
Next use
Pays off in Saltwright

Track NPCs by what they want.

This is a working dossier ledger, not a cast list. Each row tracks who an NPC is to the party, what they want, what the players know, and what stays on your side of the screen. Copy it into any notes app, or use it as-is.

Two example dossiers below show what a filled-in entry looks like. The structure is system-agnostic; the names are placeholders you can replace.

Two worked dossiers

One ally of convenience. One quiet suspect.

Same thirteen rows. Very different NPCs. Read either ledger card for a minute and you should be able to run the NPC next session.

Contact / archivist, Ewenfast

Quill Harrowfen

Ally of convenience. Accepts coin; remembers favors longer than debts.

Role at the table
Contact. Hires the party, points them at information.
Faction
Archivists of Ewenfast (independent scholars, not a guild).
First appearance
Session 9, hired them for the Redmarket job.
Last seen
Session 12, Rumerton Commons, before the Fellwake sailed.
Current location
Rumerton. Expected in Saltwright within a tenday.
What they want
A stolen ledger page recovered before a patron claims it.
What the party wants from them
Payment owed for the Redmarket job; a clean read on the sigil pendant.
Disposition toward the party
Indebted. Warmer than the contract requires.
Known relationships
Cass: agreed to share the pendant lead. Factor Madric: tense, treats him as a rival.
PublicPublic facts players know
Archivist. Paid 500g for the Redmarket job. Wears the Ewenfast ring.
DM onlyDM-only secrets
Building a private case against the Madric family. Her copy of the ledger is the real one.
Open thread / next use
Pays off in Saltwright if the party arrives before the ledger does.

Last change from session notes

Session 12: moved from "hired us" to "indebted." Expects the party in Saltwright.

Suspect / trade factor, Mireport

Factor Madric

Not an enemy yet. Owes less than he collects; remembers every skipped ledger line.

Role at the table
Suspect. Hires adventurers openly; something is under the hires.
Faction
Mireport Factors' Guild (trade, not crime, on paper).
First appearance
Session 7, the warehouse contract at Mireport.
Last seen
Session 12, Mireport docks. Watched the Fellwake leave without goodbye.
Current location
Mireport. Moves only for the Guild.
What they want
The ledger line the party left unsettled. And the names who saw him skip 2%.
What the party wants from them
An honest read on who paid the smugglers. Later, passage north without a flag raised.
Disposition toward the party
Cool. Not hostile. One more skipped ledger and that changes.
Known relationships
Rival to Quill Harrowfen. Patron of the Fellwake's captain. Unknown tie to the sigil pendant.
PublicPublic facts players know
Trade factor. Hires openly. Keeps receipts. Has never lied to the party.
DM onlyDM-only secrets
Skims 2% off every Guild cargo through Mireport. The unpaid ledger line would expose the skim.
Open thread / next use
If the party returns to Mireport owing nothing, he becomes a reluctant witness.

Last change from session notes

Session 12: moved from "warm" to "cool." Not an enemy yet.

The tracker / thirteen rows

What each row is for.

Three groups. Identity is written once. Story state is where most session updates land. The knowledge split is how you keep the table honest without spoiling the long game.

Group

Identity

Who they are and how the party would name them. Fill these once and leave them alone.

  1. Name

    The name the party uses. Put the true name in parens if it differs.

    Example / Quill Harrowfen (recorded as Q. Harrowfen on the Ewenfast rolls).

  2. Role at the table

    Pick one tag. Not alignment. Not class. Why they exist in the story.

    Example / Tags: ally, rival, contact, villain, vendor, witness, patron, suspect, faction member.

  3. Faction or group

    If any. "Independent" is a valid answer. Leave it blank only if the NPC is truly solitary.

    Example / Archivists of Ewenfast. Not a guild, not a cult; a loose ring of scholars.

  4. Known relationships

    One line per connection. Name who, not what class they are.

    Example / Cass: owes a favor. Factor Madric: rival, openly.

Group

Story state

What changes session to session. These rows age fastest; update them when the NPC touches a scene.

  1. First appearance

    Session number and one-line scene. So future-you can find the origin fast.

    Example / Session 9, the archivist hired the party in Rumerton.

  2. Last seen

    Session number and where the NPC was when the party left them.

    Example / Session 12, Rumerton Commons, before the Fellwake sailed.

  3. Current location

    Where they are now, if it differs from last seen. Otherwise leave this blank.

    Example / Rumerton. Expected in Saltwright within a tenday.

  4. What they want

    Their own goal in one sentence. Not your plan for them.

    Example / A stolen ledger page recovered before a patron claims it.

  5. What the party wants from them

    Blank if nothing. This row makes priority obvious at a glance.

    Example / Payment for the Redmarket job; a clean read on the sigil pendant.

  6. Disposition toward the party

    Warm, cool, wary, hostile, indebted, indifferent. Change it when it changes.

    Example / Indebted. Warmer than the contract requires.

Group

Knowledge split

What the players already know, what they do not, and the one thread that keeps this NPC in the log.

  1. Public facts players know

    Three or four things any player could name without a check.

    Example / Archivist. Paid well for the last job. Wears the Ewenfast ring.

  2. DM-only secrets

    What is true but hidden. Add a reveal trigger if one is ready.

    Example / Building a private case against a patron. Her copy of the ledger is the real one.

  3. Open thread / next use

    The one reason this NPC still exists in the log. Blank for three sessions means archive.

    Example / Pays off in Saltwright if the party arrives before the ledger does.

One more row

One connective row: last change from session notes.

Below the thirteen fields, keep a one-line delta from the last session that touched this NPC. It is the ledger's tie to your session notes. A row with no delta for three sessions and a blank open thread is safe to archive.

Tracker rhythm

Add late. Update briefly. Archive often.

A tracker fails when it becomes a second campaign to run. These three rules keep it under thirty rows and keep every row alive.

  1. 01

    First time they matter

    Add

    Open a row the first time the NPC does something the party will remember next session. Not sooner. A named innkeeper with no thread stays a name in your session note; they are not a tracker row yet.

  2. 02

    Right after play

    Update

    Touch the row only when the NPC changed. Update disposition, last seen, what they want, and the open thread. Leave identity rows alone unless the party learned something new.

  3. 03

    Three quiet sessions

    Archive

    When an NPC has gone three sessions with no new thread, no unmet promise, and no faction pull, move the row to an archive list. The tracker only holds NPCs who still matter.

A quiet tavern hearth at evening, with open ledgers and mismatched chairs pulled up to a long table.

The tracker exists for the people the party will remember next session. Nothing else.

Margin rule / cut

Leave these out of the tracker.

Every row you write is a row you maintain. Keep the tracker small by keeping these out of it.

  • Mechanics and numbers. Those live in your rules tools, not the tracker.
  • Every innkeeper, every guard, every vendor without a thread.
  • Personality quirks the players never actually saw.
  • Backstory you will rewrite the first time it contradicts play.
  • Secrets that lead nowhere. If the reveal never fires, the secret is prep debt.
  • Copy-pasted descriptions from bestiaries or sourcebooks.

Margin rule / write

How this fits Multiloop

The tracker is the one sheet you maintain. Multiloop keeps its rows connected to the session notes and campaign records that touch them.

  1. 01In Multiloop, NPCs live in Entities and can link to factions, locations, other NPCs, and relationships.
  2. 02Session notes drive Analysis. Analysis reads a note and proposes updates to NPC rows: a changed disposition, a new open thread, an updated last-seen.
  3. 03You review every suggestion and approve only what should change. Nothing updates on its own.

Sharing is per NPC, not per field. You can share an NPC page with players when they have earned it, or keep sensitive ones DM-only. The public facts and DM-only secrets in this tracker are a prep convention you keep in your notes, not a masked view the product renders.

Next prep opens with the handoff, the approved NPC changes already in place, and the archive list showing which rows have gone quiet.

Copy the outline into your notes app.

Markdown / plain text

This works in a plain document, a markdown file, a notebook page, or a campaign workspace. One file per NPC, or one block per NPC in a single file. Select and copy.

# NPC: [Name]

Identity
   Role at the table:
   Faction or group:
   Known relationships:
     -

Story state
   First appearance:
   Last seen:
   Current location:
   What they want:
   What the party wants from them:
   Disposition toward the party:

Knowledge split
   Public facts players know:
     -
   DM-only secrets:
     -
   Open thread / next use:

Last change from session notes:

FAQ

Before you open your first row.

How is this different from a cast list or character sheet?
A cast list names everyone. A character sheet holds mechanics. This holds only NPCs who still matter to the story, and it tracks why. The tag, the disposition, and the open thread are the parts a cast list leaves out.
How many NPCs should I track?
As many as have an open thread. When an NPC has gone three sessions with no new thread, no unmet promise, and no faction pull, archive the row. Most running campaigns settle at fifteen to thirty active entries.
What about shopkeepers, guards, and walk-ons?
Do not open a row the first time someone is named. Open it the first time they do something the party will remember next session. A named innkeeper with no thread stays a line in your session note.
Does this work outside D&D?
Yes. The structure is system-agnostic. It works for Pathfinder, Call of Cthulhu, Blades in the Dark, and most campaign-based tabletop RPGs.
Do I need a tool, or will a document work?
A document works. Many DMs run the tracker as a spreadsheet or a single markdown file sorted by NPC name. A campaign manager helps once rows start connecting to factions, locations, and session threads and you want those connections to stay current.
Can I share NPC pages with my players?
In Multiloop, yes, one NPC at a time. You share an entire NPC page with players when they have earned it, or keep it DM-only. The public and DM-only rows in this tracker are a prep convention for your own notes; they are not a masked view the product renders.

Get Early Access

Keep the ledger connected after the game.

Multiloop holds each NPC in Entities, links them to factions, locations, and relationships, and proposes row updates from your session notes for you to approve.