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:


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.