NPC Agent Placement System V0.5
u/Capsandnumbers
This is a project to allow DMs a fun side system for high-level PCs, without being cumbersome at the table. Inspiration was drawn from the D&D board game Lords of Waterdeep, and the Assassin Contracts system from the Assassin's Creed games.
The Big Idea
The aim is for the PCs to be able to recruit NPCs into their own adventuring guild and send them on quests. The central idea is to easily take variables readily available at the table and automatically generate a suitable d100 table to represent their chance of success in their mission. Currently this project uses the graphing calculator Desmos.
The Maths
The calculator can be found here:
Calculator V15
It works by using the shape of the tanh function to get the boundaries between outputs to squish together as they shift either one way or the other, using a variable m that is determined by the following input variables:
- Level of the Mission - LM
- Average level of the NPC party - LP
- Number of people called for by the mission - NM
- Number of people in the party - NP
- How well the party suits that mission - PP
- Reputation of the party in that region - R
These are meant to be easily calculated at the table, see the Process section for details.
There are also a number of controller variables built in to help a DM easily arrange the odds to their taste. These include:
- Strength Factors (a), these aim to change the responsiveness of the system to changes in individual effects, or to changes in m overall
- Offsets (m), each outcome boundary is a separate tanh function, varying by offsetting each a given amount. You can use these to move boundaries closer together or further apart
- Steepnesses (k), these change how slow or fast the function moves with respect to m. Changing these can let one outcome grow faster or slower than the others.
When I'm manipulating the controller variables I find it helpful to calibrate using the case where:
- LP = LM = 5 - You're generally experienced enough
- NP = NM = 5 - You're sending the right number of people
- PP = 4 - Most of the roles asked for are covered
- R = 0 - The region is neutral towards your party
You can also change anything about the plotting that you like. Any changes you make and save (With a Desmos account) are saved separately.
Reputation
Split your setting into Regions. These should be few enough for you track it all, maybe using a spreadsheet.
Each Region has a reputation number to it. As NPCs complete missions, the PCs' reputation may improve or deteriorate in that region. This affects the odds of success of future missions in the region, as well as how NPCs treat your PCs as they go about their regular adventuring.
Every so often, average out reputation scores between regions where word would spread between them, and where the difference in reputation is over 10 points.
Reputation | Attitude | Means | Possible Actions |
---|---|---|---|
40 ― 50 | Helpful | Will take risks to help you | Protect, back up, heal, aid |
10 ― 39 | Friendly | Wishes you well | Chat, advise, offer limited help, advocate |
-9 ― 9 | Indifferent | Doesn’t much care | Socially expected interaction |
-39 ― -10 | Unfriendly | Wishes you ill | Mislead, gossip, avoid, watch suspiciously, insult |
-50 ― -40 | Hostile | Will take risks to hurt you | Attack, interfere, berate, flee |
The Process
For this section we'll be using the following example mission:
Find a Kidnapped Construct
Level 2 Mission:
1 Fighter, 1 Rogue, 1 Wizard
Critical Success: 1000gp + A magic item from Magic Item Table B (DMG p.144) + A small catlike construct
Success: 500gp + A magic item from Magic Item Table B
Mixed: 100gp + A magic item from Magic Item Table A (p.144)
Failure: 100gp expenses
Failure Requiring Intervention: The kidnapper has also kidnapped a party member!
All but the results for a Critical Success the players know in advance. More missions can be found here.
Step 1
First, look at the NPCs in your guild and sort them as well as can be into categories. For now I'm using the classic four D&D classes:
- Fighter
- Rogue
- Wizard
- Cleric
We also use levels 1-5 for the purposes of this. These are separate to usual class levels, but 1 level approximates to about 2 class levels. A class-level 10 NPC gains nothing but gold from working for the party.
Step 2
Next, decide who will go on this quest. You may select as many as the mission asks for, as well as an extra 1.
For example, let's say you send:
Jozan, Level 4 Cleric
The most experienced of your guild, here to provide leadership to your underleveled team
Lidda, Level 1 Rogue
The least experienced, in need of the training
Mialee, Level 2 Wizard
A solid pick and reliable in these sorts of encounters
Nott, Level 2 Rogue
Decent in a fight but certainly no warrior
The average level of this team is (4+1+2+2)/4 = 2.25, Jozan's experience makes up for Lidda.
The appropriateness of this team is given by matching them to the example composition as ideally as you can. Here we match the wizard and the rogue but not the fighter, so we have PP = 2 for that.
Step 3
So we have the following input variables:
- LM = 2
- LP = 2.25
- NM = 3
- NP = 4
- PP = 2
- R = 0
Plugging these numbers into the calculator and reading off the results gives:
Find a Kidnapped Construct
d100 | Outcome |
---|---|
88-100 | Critical Success |
36-87 | Success |
25-35 | Mixed Outcome |
8-24 | Failure |
0-7 | Failure Requiring Intervention |
Step 4
The players roll when the NPC team returns, which may be functionally immediately, or may depend on the distance the team needs to travel. You might require a mission to take a number of days equal to the mission's level, to represent the difficulty of it. You may choose to show the players how their choices have affected the odds.
Step 5
Now we need to allocate experience!
An NPC needs 10 XP to level up. Use the following table to decide how much experience each NPC gets. This is a little bit of bookkeeping for the DM, you may like to appoint one PC the role of Guildmaster.
If an NPC levels up and there are still XP to factor in, the extra XP adds to their newly empty XP bar.
Experience
Character Level | XP Gained | Outcome Needed |
---|---|---|
Mission Level -3 or less | 0 XP | Any Outcome |
Mission Level -2 | 4 XP | Better than Mixed |
Mission Level -1 | 3 XP | Better than Failure |
Mission Level | 2 XP | Better than Fail Req. Int. |
Mission Level +1 | 1 XP | Any Outcome |
Mission Level + 2 or more | 0 XP | Any Outcome |
This counters powerlevelling newbies by having them tag along on overly hard missions. The maths scales, but is still simple enough to do at the table.
So for our example party, let's assume they've had a Mixed Outcome:
- Jozan gets 0 XP - Nothing he hadn't seen before
- Lidda gets 3 XP - A quarter of the way to level 2
- Mialee gets 2 XP - Less of a learning experience for her
- Nott gets 2 XP - As above, all in a day's work
And that's it! Payment will go here later.
Things I'm Thinking About
In rough order of importance to me:
- Look at payment of NPCs
- Look at implementing some kind of equipment system
- Explore giving a bonus based on your guilds' speciality
- Look at using a custom calculator rather than Desmos - Feel free to message if you can help with this
- Explore putting in some kind of quirk system as in Darkest Dungeon
- Explore changing the maths so that some missions favour a mixed result or a critical result
- Think about randomly generating missions
Thanks
Thanks to u/AgentFyre for useful discussions, design input, and whole mission concepts, and r/DNDBehindTheScreen for valuable feedback
Previous Versions:
- System Document V0.4, V0.3
- Reddit post (V0.1 and V0.2)
Changes Since V0.4:
- Added artwork (See credit section)
- Changes to calculator including automatic table of results
- Added Critical Success details to example mission
- Added reputation section
- Started mission bank
- Tidied up a bit
Changes Since V0.3:
- Added section on experience
Contact & Credit
You can message any feedback to u/Capsandnumbers on reddit. If you'd like to be kept updated on this, you can message me your email address and I'll send you updates as they occur.
No need to go out of your way to credit me, but please mention my name if someone asks who's done this!
If you really like this and want to hand me some cash, here is a Ko-Fi account.
This system is unofficial Fan Content permitted under the Fan Content Policy. Not approved/endorsed by Wizards. Portions of the materials used are property of Wizards of the Coast. ©Wizards of the Coast LLC.
Image Credit: Kicking Back - Ralph Horsley
© Wizards of the Coast LLC.