So, I mentioned a while back that I'm working on a tool that applies racial (and other) templates to statblocks. (I'm still working on it, albeit slowly; too much work recently. I was hoping to get it able to automatically pick spells this week (cantrips for High Elves, replacement cantrips for casters with races that provide cantrips they already know, cantrips and 1st level spells for Variant Humans with the Magic Initiate feat, etc)). Oh well, that can be next week.
The code I have derives everything in the statblock from values you enter. Here's the simplest statblock definition:
(I think this is safe to share ;-) )
The code assumes that the npc will be level 1, challenge 0, have one language (which will almost certainly be generated as Common), etc.
So why am I boring you with this?
Because there are a couple of small anomalies that I found in importing all the statblocks, and I have this strange belief that some people might find them interesting. As to why the anomalies exist, pass. I've used all but one of these statblocks in games, and they all feel balanced. Maybe they were tweaks to get the balance right. Maybe they are the fossil record of changes in the MM statblocks - little things that weren't updated when some changes were made.
First up, the actual anomalies:
There. That's got this out of my head. Now I can just sit back and discover that I really am the only one who finds it interesting
The code I have derives everything in the statblock from values you enter. Here's the simplest statblock definition:
Code:
npc "Commoner" do
stats 10,10,10,10,10,10
uses :Club
end
(I think this is safe to share ;-) )
The code assumes that the npc will be level 1, challenge 0, have one language (which will almost certainly be generated as Common), etc.
So why am I boring you with this?
Because there are a couple of small anomalies that I found in importing all the statblocks, and I have this strange belief that some people might find them interesting. As to why the anomalies exist, pass. I've used all but one of these statblocks in games, and they all feel balanced. Maybe they were tweaks to get the balance right. Maybe they are the fossil record of changes in the MM statblocks - little things that weren't updated when some changes were made.
First up, the actual anomalies:
- The very first NPC - the Acolyte - is listed as a 1st-level spellcaster, but has 3 1st-level spell slots (the slots a 2nd-level spellcaster would have). In every other case, where a statblock says that an NPC is a Nth level spellcaster, they have the spell slots of a level N PC spellcaster.
- The Assassin has an effective challenge rating of 9, although it is listed as 8. That is, every creature in the MM has a proficiency bonus that is calculated from challenge rating, using the same table that a PC would use. A creature (Or PC) with CR 8 should have a proficiency bonus of +3, but the Assassin uses a +4
- NPC statblocks are built in a similar fashion to PCs. they have levels, proficiencies, saves, even expertise.
- Every NPC uses d8 hit dice. All of them express their hit points as "Hit Points: <average roll> (Xd8 + Y)", where X is the level and Y is their CON modifier multiplied by X.
- Every NPC has a proficiency bonus calculated from their Challenge Rating, using the standard PC table (barring anomalies)
- If Skills are listed, the NPC has either proficiency or expertise. It's easy enough to see which
- Standard attacks and damage are all worked out in the same way PCs calculate them. Additional effects are not. For instance, NPC effects that do something on a hit have a DC of 15. One of these is the Gladiator's Shield Bash attack. If that uses the normal Shove action, it would be a DC of 1d20 + the Gladiator's Athletics of 10 - an average DC of 20. It looks like the Shield Bash is a version of the bonus action shield bash option in the Shield Master feat, but simplified and balanced for use by the GM.
There. That's got this out of my head. Now I can just sit back and discover that I really am the only one who finds it interesting

Last edited: