Hero Image

NPC Framework

NPC Framework

A non-player character is anyone in the world the players interact with who isn't trying to kill them — at least not yet. This section provides a minimal construction framework for creating and running NPCs without full stat blocks, and a tracking approach for making recurring characters feel like part of a living world.

Quick NPC Construction

A playable NPC needs three things: what they want, what stands between them and that want, and how they respond to the players.

That's it. A name, a physical description, and a backstory are useful when they serve the interaction — but they are not what makes an NPC work at the table. The three-element minimum is sufficient to run any NPC through any kind of scene: social, investigative, or transactional.

Build the three elements before the session. Fill in color during it, or between sessions as the character becomes established.

Want, Obstacle, Response

Want is the NPC's motivation — what they are pursuing independently of the player characters. It should be specific enough to drive behavior. "Power" is too abstract to be useful at the table. "Become head of the guild before their rival does" generates behavior the GM can play consistently across multiple scenes.

Want operates independently of the players. An NPC with a want is doing something between sessions. When the players encounter them, they are catching the NPC mid-process — not waiting for the players to give them a purpose.

Obstacle is what stands between the NPC and their want. This is the source of tension that makes the NPC a character rather than a fixture. An NPC who already has what they want has no reason to engage with the players except as set dressing. The obstacle is the opening through which the players can become relevant to the NPC — and through which the NPC becomes interesting to the players.

The obstacle doesn't have to be the players themselves. A merchant wants to expand their operation; the obstacle is a rival who controls the only available routes. The players can help, complicate, ignore, or exploit that situation — but the obstacle exists regardless of their choices.

Response defines how the NPC reacts when the players enter their situation. Five common types:

  • Cooperative: The NPC is openly helpful. They share what they know, facilitate what the players need, and ask for little or nothing in return. Useful for established allies and incidental contacts, but too many cooperative NPCs flatten the social texture of a setting.
  • Transactional: The NPC helps, but at a cost. They are not hostile — they simply expect something in return. The exchange defines the relationship and creates a web of ongoing obligations.
  • Hostile: The NPC is actively opposed to the players' goals, presence, or faction. Hostility doesn't require personal animus — it can be professional, ideological, or circumstantial.
  • Indifferent: The NPC doesn't care. They have their own problems and the players are not among them. They can be made to engage, but it requires the players to make themselves relevant to the NPC's want or obstacle first.
  • Layered: The NPC presents one response and holds another underneath. The cooperative contact who is feeding information to an opposing faction. The hostile official who privately wants the players to succeed. Layered NPCs require the players to work past the surface response before the real shape of the relationship emerges.

Differentiating NPCs at the Table

The goal is memorability, not performance. A GM running six distinct NPCs across a session cannot rely on extended character work for each one. Three anchors make an NPC recognizable without preparation:

One speech pattern or verbal tic: A character who asks a question at the end of every statement. A character who never refers to themselves in the first person. A character who uses professional jargon from their field even in casual conversation. The pattern doesn't need to be elaborate — it needs to be consistent enough that players recognize the character when the GM slips back into it.

One physical detail the GM returns to: Not a full description — one specific detail that gets mentioned when the NPC appears. The clerk who is always eating something. The official whose uniform is never quite right. The contact who doesn't look at whoever they're talking to. Physical details anchor an NPC in the fiction when the GM brings them back after a long absence.

One piece of information only they hold: Every meaningful NPC knows something the players don't. This creates the information asymmetry that makes social scenes function as actual play rather than exposition delivery. An NPC with exclusive knowledge has leverage — and so do the players, if they realize it. The question of how that information is exchanged, withheld, or extracted is what the scene is actually about.

Information asymmetry applies even when the players don't know it exists. The GM knowing that a specific NPC holds a specific piece of knowledge changes how that NPC is played, regardless of whether players think to ask.

Tracking Recurring NPCs

An NPC who appears more than once needs three tracked fields maintained between sessions:

Current want: What are they pursuing right now? This may evolve as events progress. An NPC whose obstacle was removed will shift to a new want. An NPC who suffered a setback may have revised their approach or redirected their efforts.

Player history: What have the players done that this NPC knows about and cares about? Not a complete log — only the events the NPC would have observed, heard about, or been directly affected by. This is the input to disposition.

Current disposition: How does this NPC currently regard the players? Disposition runs from actively helpful to actively hostile, and it should shift in response to player history. An ally the players ignored at a critical moment is a cooler ally next time. A neutral contact who received unexpected help without being asked has reason to reciprocate. A hostile NPC who was treated with respect despite the conflict may carry residual complexity into future encounters.

The world should remember what the players have done even when the players don't. When a recurring NPC reacts to events the players have half-forgotten, it signals that choices have weight — which is the foundation of meaningful play.

Tracking doesn't require a dedicated system. A single line per recurring NPC — want, one relevant event, current disposition — is sufficient. Update it after any session where the NPC appeared or where something happened that would affect them.

When an NPC Becomes a Threat

An NPC crosses into Threat territory when direct opposition requires mechanical resolution — when the conflict between them and the players becomes a matter of dice rather than conversation. This may happen mid-scene or arrive as the destination of a slow-building antagonism. In either case, have a stat block ready before the scene reaches that point. Building one during a confrontation wastes time and produces unfocused results.

Three things carry over from the NPC framework into the stat block:

Motivation drives tactical behavior. An NPC who wants to capture the players alive fights differently than one who wants to eliminate them. An NPC whose obstacle is a time limit pushes aggressively rather than plays defensively. The stat block defines what the NPC can do mechanically; want and obstacle determine what they will do and when they will stop.

Behavior maps to the intelligence tiers in Threat Building. An NPC who has been established as canny and strategic belongs at high intelligence (Wit 4D+) — they will use cover, coordinate with allies, and retreat when losing. An NPC who has been played as reactive and impulsive belongs lower on the scale and should fight accordingly. The stat block shouldn't contradict the character the players have already encountered.

Established personality carries into the encounter as the NPC's voice. An NPC who has spoken with the players, made threats, or revealed something about themselves should continue doing so during the confrontation. An NPC who goes silent the moment combat begins is harder for players to engage with — and easier to forget afterward.

Assign a power package based on the NPC's established role and the party's current level.

See Threat Building for scaling guidance.