NPC Name
One line: who they are · where they stand
Using this template
Duplicate this file, rename it npc-<slug>.html, and replace every field below. Set the marker to 🌊 Fluid. Update the rail anchors to match your sections. Do not leave template text in a real page — filler here has escaped into live pages before.
At a Glance
- Role
- What they are for, in one line
- Allegiance
- House, faction, or none
- Description
- A comma-run of sensory tags, not a paragraph — build, hair, voice, smell, hands. Scannable mid-sentence. e.g. “Gaunt, paper-thin skin, bald, smells of soil, dirt under his fingernails, rich voiced, slight rasp when he breathes”
- Mannerisms
- Two or three physical tics you can perform without thinking. e.g. “Maintains eye contact constantly while speaking, snorts when annoyed”
- Tell
- The one behaviour — usually verbal — that gives them away
- Found at
- Where the party can reliably reach them. If they move, put a
d6location table here. - Statline
- Reskinned <MM creature> (CR —) · see the reskin rule
Voice & Manner
How they talk. Cadence, vocabulary, what they do with silence. Two or three sentences you can actually perform.
“One line in their voice — the one you'd say first if the party walked in right now.”
Wants · Needs · Has
Three fields, not one. Has is the one that does structural work: it is the inventory of everything the party can get out of this NPC — objects, services, permissions, and facts. When a module's Information Routing leans on a person, this is where you check whether killing them takes a fact out of the world.
- Wants. What they will trade for, and say out loud. Concrete enough to hand them.
- Needs. The deeper drive, which they may not name and may not know. What they'd actually take instead of what they asked for.
- Has. Everything obtainable from them. Include the intangibles — “the right to declare people friends of the Raindrinkers” is a real entry. List facts explicitly, and mark any fact that no one else in the module carries.
The sole-source check
If a fact appears in this NPC's Has and nowhere else in the module, they are a single point of failure. Either give the fact a second route or write the fallback now — see the routing rule in Module Design.
Standing — where they sit relative to everyone else
Disposition is relational, not a friendly/hostile dial. Write their position against the other named NPCs, so the party's choices with one person move another.
- Toward <NPC>. How they read them, and what the party earns or loses by siding with them. e.g. “Befriend Tatien and Ulroch will be against you; earn Tatien's enmity and Ulroch may yet help you.”
- Toward <NPC>. The second axis.
- What moves them. The lever that changes their standing, and what it costs to pull.
Behind the screen
What is true that they will not say. What the party can earn from them, and what it costs. If they have a turn — a point where they flip, break, or reveal — put it here.
In a Fight
Whether they want one at all, and what they do instead if they don't. Reskin an existing 2014 MM creature at the right CR — same statline, at most one or two clearly-labelled house tweaks. Do not invent a block.
NPC Name
Size type, alignment · reskinned <MM creature> (MM, CR —)
As written. The statblock's own features, unchanged.
House tweak — Name. The one thing you changed, and why it fits the reskin.