Random NPC Generator for D&D
This NPC generator creates one complete character per click: a name, species, occupation, look, quirk, voice, what they want and a secret. Lock any field you like and press Generate again to reroll only the rest, so you can keep a good name and find a better secret, or keep the secret and change everything else.
Roll an NPC
How to use the NPC generator
- Optionally set a role (Anyone, Commoner, Merchant, Authority, Underworld, Faith & lore or Traveller), a species and a gender.
- Press Generate NPC to create one.
- Lock the fields you want to keep, then press Generate again to reroll only the unlocked ones.
- Favourite the NPC or copy it as Markdown for your session notes.
What the generator gives you
Each NPC has eight fields:
| Field | Example |
|---|---|
| Name | built by the same engine as the fantasy name generators, matched to the species and gender |
| Species | human, elf, dwarf, halfling, gnome, orc, dragonborn, tiefling or goliath |
| Occupation | ratcatcher, pawnbroker, harbourmaster, forger, bone-reader, disgraced knight |
| Look | ink stains up to the elbows; a dented helmet worn indoors |
| Quirk | apologises to furniture; whistles when lying |
| Voice | answers questions with questions; uses food metaphors for everything |
| Wants | learn to read; prove they did not start the fire |
| Secret | informs for the town watch; has never actually been to sea |
The role filter controls the occupation list. Commoner gives you millers and gravediggers, Underworld gives you fences and card sharps, Faith & lore gives you hedge witches and archivists. With Anyone, the role is picked at random. Humans come up most often when species is left open, which is about right for most towns.
Locking fields
Every field has a lock toggle. A locked field keeps its value; Generate rerolls everything else. The page link stores the locks, so a shared link shows the same NPC.
This is the fastest way to build someone specific. Say you need a corrupt official. Set the role to Authority and generate until the occupation fits. Lock it. Generate until the secret is good. Lock that. Reroll the voice and look a few more times until the character makes sense to you. Changing the role filter only rerolls the occupation, and changing species or gender only affects the fields that depend on them.
The minimum an NPC needs
Most NPCs get thirty seconds of screen time. In thirty seconds the players notice two things: how the character sounds, and what they want from the party. Everything else is optional.
- The voice makes the NPC recognisable. If you can do one consistent thing with your voice or manner, players will remember the character next session.
- The want gives the NPC a reason to talk. Someone who wants to pay off a debt before the full moon will try to sell the party something, ask for a loan or offer a job.
Look and quirk are for when the party sticks around. The secret is for when the party starts asking questions.
Improvising when players go off-script
Players will talk to the person you did not prepare. Keep the generator open in a tab during the session. When the party turns to the stable hand, press Generate with the role set to Commoner, read the voice line, and start talking. You have the want in front of you if they ask what the stable hand is up to.
If the improvised NPC turns out to be fun, favourite them right away. Favourites stay in your browser, on that device, between sessions.
Using the secret without dumping it
A generated secret is not a reveal. It is a reason for the NPC to behave a little oddly. Someone who “sold the town’s location to raiders” is nervous when raiders come up, overly generous to the watch, and has more coin than a cooper should. Show those things and let the players connect them.
Three ways to let a secret out slowly:
- Something the NPC owns does not fit their job.
- Another NPC hints at it, wrongly or half right.
- The NPC lies about something small and gets caught.
Many secrets never come out at all. That is fine. They still made the character feel like a person while you played them.
Keeping a recurring NPC list
Recurring NPCs are where a campaign gets its texture. Favourite every NPC the party likes, hates or kills, then use Copy as Markdown to paste them into Obsidian, Notion or a plain notes file. Each NPC copies as a heading with the eight fields as a list. Add one line after each session about what happened with them. Next time the party walks into the tavern, you know who is at the bar and what they think of the party.
Quick voice tricks
If voices are not your thing, change how the NPC talks instead of how they sound:
| Trick | How to do it |
|---|---|
| Speed | talk noticeably faster or slower than you usually do |
| Volume | whisper, so players lean in, or speak a bit too loud |
| Posture | sit back, lean forward, or keep one hand on your chin |
| Verbal tic | start every answer with “Well now…” or end with “…you see?” |
| Formality | full titles and long sentences, or one-word answers |
| Repetition | the NPC repeats the last word the player said |
Pick one trick per NPC and stick with it. A single tic used every time works better than a full accent that slips.
Frequently asked questions
What is the best way to make a D&D NPC quickly?
Give them a want and a voice. Those two fields cover what players notice in a short scene, and you can add a look, quirk or secret when the party sticks around.
Can I keep some details and reroll the rest?
Yes. Each field has a lock toggle. Locked fields keep their values and Generate rerolls only the unlocked ones.
Does this work as an NPC name generator?
Yes. Lock nothing, set the species and gender you want, and the name field gives a species-appropriate name each time. For a list of 10 names at once, use the fantasy name generators.
What species can a random NPC be?
Human, elf, dwarf, halfling, gnome, orc, dragonborn, tiefling or goliath. Leave species on Any and humans appear most often, or pick one to fix it.
How do I save NPCs between sessions?
Use the Favourite button, which keeps NPCs in your browser on that device, or copy them as Markdown into your campaign notes. The page link also reproduces the exact NPC for anyone who opens it.