NPC Management for Game Masters: Track Characters That Actually Matter
Stop losing NPCs in scattered notes. Link every character to their location, faction, and quest so context surfaces the moment a player asks. Free, any system
By Jon ·
What you'll learn: How to create NPCs that stay useful across dozens of sessions, connect them to your world, and find them instantly mid-game. Kanka features used: Character entries, Entry Relations, @mention system, Property Kits Time to complete: 15 minutes for your first three NPCs
Session 6. A player says: "We want to go back and talk to that blacksmith from session 2." You created him on the fly, name: "Brom." No other details. In a flat note system, you search "Brom" and find a single line. What did he look like? What did he know? Where was his shop?
Now picture the alternative. Brom's Character entry shows a Location relation ("Shop in Thornmere's Market District"), his @mentions in the session 2 journal ("Brom mentioned strange noises from the old mine"), and a single Tag (Status:Seed). In Kanka, Tags are an incredibly convenient way to group entries that don’t always fit under the same umbrella, like Gods. They might be creatures, they might be Characters, but giving them that Deity Tag makes it oh so much easier to find them. You have everything you need to improvise a rich follow-up — because the system captured the connective context around Brom, not just his name.
That's the difference between storing NPCs and actually managing them. This guide covers the creation pattern that makes every Non-Player Character findable, connected, and worth keeping.
If you're building your world from the ground up, our Worldbuilding Fundamentals hub covers the broader structure this fits into.
How Many NPCs Do You Need?
Three deep NPCs with real connections beat twenty shallow names in a spreadsheet. The "NPC bloat" problem isn't about memory. It's about signal to noise ratio.
A campaign with 200 NPCs where 180 have nothing but a name is harder to search than a campaign with 20 where each one links to locations, factions, and plot. The litmus test: if an NPC doesn't have at least one Relation to another entry, they're not yet fully integrated into your world..
Start with three for session 1: a quest-giver, an ally, and an obstacle. Create every other NPC reactively: only when a player engages with a background character enough to make them worth tracking. Don't build profiles for unnamed tavern patrons. Build them for Brom, the blacksmith your players decided to care about.
Here's the ceiling and floor for session prep:
| Guideline | Rule |
|---|---|
| Session 1 minimum | 3 NPCs (quest-giver, ally, obstacle) |
| Session 1 maximum | 10 named NPCs |
| Creation trigger | A player interacts with the character |
| Archive trigger | If repeatedly no relations after multiple sessions, consider merging, archiving, or connecting |
| Background characters | Don't create entries for unnamed crowds |
The Three-Point Creation Pattern
Every NPC gets three things at birth. No more, no less.
1. A Type field. Not a physical description, a role. "Innkeeper," "Guard Captain," "Fence." During play, you're scanning for function, not eye color. Put the role in the Type field on the Character entry. It shows up in search results and hover previews, so you can spot the right NPC without clicking through.
2. One Relation. Link the NPC to a Location or Organization. Click Relations on the Character's overview, add a connection to wherever they operate. Brom gets linked to Thornmere's Market District. Now searching for that Location also surfaces Brom, cross-referencing happens automatically.
3. One @mention. Write @Brom in the session journal where they first appear. That's it. The @mention system auto-links to Brom's full profile and adds the journal to his "Mentioned In" list. Over time, this list becomes Brom's story: every scene he appeared in, every plot thread he touched, aggregated without extra work.
[Screenshot: Character entry for "Brom" showing Title field ("Blacksmith"), one Relation to "Thornmere - Market District," and a Mentioned In list with two session journal links]
It should now look something like this.
The Character Card Pattern
For NPCs who stick around past their first scene, apply a Property Kit with 3–5 lightweight fields. Create the template once, then apply it to every new NPC with a click.
| Property | Purpose | Example |
|---|---|---|
| Motivation | What drives them | "Revenge against the Guild" |
| Secret | What they're hiding | "Works for the Merchant Consortium" |
| Attitude Toward Party | Current disposition | "Suspicious, trusts no one new" |
| Voice Note | One-line speech cue | "Speaks slowly, avoids eye contact" |
| Status | Campaign lifecycle tag | "Active / Seed / Archived" |
Set up the kit by clicking on Property Kits in your sidebar.
For NPCs who are merchants or carry plot-relevant items, add entries to their inventory. Each item can either link to an Item entry, or remain free text for now, creating another relational thread your players can pull on.
How Do NPCs Connect to Everything?
An NPC's value isn't in their profile it's in their connections. A 500-word backstory that connects to nothing is less useful than a one-line character with entry relationships to two Locations, one Organization, and three other Characters.
The connections are what make NPCs findable, surprising, and useful during play. When you search a Location, related NPCs surface. When you open an Organization, its members appear. When you check a Character, their allies and enemies show up. This is auto-linking doing the memory work for you, it helps your campaign become a living index your Campaign Dashboard showcases.
The Connection Minimum
After an NPC has appeared in 2+ sessions, they earn three Relations:
| Relation Type | What It Creates | Example |
|---|---|---|
| Location | Where they operate | Brom → "Runs shop in" → Thornmere City |
| Organization | Who they serve or oppose | Brom → "Secretly reports to" → Thieves' Guild |
| Character | Who they know | Brom → "Owes a debt to" → Captain Aldara |
Use custom Relation labels that tell a story. "Owes a debt to" is more useful mid-session than "Connected to." Enable Reciprocal link on the Character entry so connections are always bidirectional, linking Brom to the Thieves' Guild automatically creates the reverse link on the Guild's page.

It should now look something like this.
Identity Fields Players Ask About
Fill the fields your table actually references during play:
- Pronouns — dedicated field on every Character entry
- Age: While the Age field is free text, you can create a reminder after the character is created, and it can be linked to your fantasy calendar, which will then show their age in relation to the ‘present’.
- Appearance Traits — keep it to one sentence; players remember "missing left hand" better than a paragraph
The Status field on Character entries works as an archival tool. Deceased NPCs keep all their Relations as historical context: a dead NPC's connections still tell the story of who they were, while someone missing might signal that they are part of the next hook.
Deeper Connection Tools
For dynasty or lineage NPCs, use Family entries with member tracking instead of just Character-to-Character Relations. Premium campaigns get Family Tree Visualization for visual genealogy mapping.
Individual NPC connections are the atoms of your campaign wiki. At scale, these connections form emergent patterns — faction alliances, regional power structures, narrative themes.
If you have any questions, join us over on our Discord! We also have more tutorials on our blog.
Related Articles
Stop building worlds you'll never use. Start with one town, expand from play, and let a relational system keep it all connected. Free, no entry limits.
Organize fantasy locations from continent to single room. A D&D world building hierarchy that stays searchable as your campaign grows past 200 entries
Factions should start fights, not just fill lore pages. Link members, territory, and rivalries into a political web your players will actually navigate