HP to AC Conversions


Getting rid of Monster AC is not a new idea. Into the Odd gets its inspiration from Radically Faster Combat: Auto-Hits. I first saw in Index Card RPG. Both have the goal of simplifying how the games plays.

I’m going to make it complicated again, with math and charts. I’m not entirely sure how this information is useful. Honestly, I was scratching an itch. I think it’ll be fun to see what other’s make of it. Heck, it might just be a “Well that was interesting. What’s next?” thing. Regardless, I’d love to know what you think.

One way to think of HP and AC is as a way for GM’s to manipulate how many rolls are needed to deplete a monster of HP.

For example in ShadowDark, a typical Level 1 (HD1) monster has 4 hit-points and armor-class 12. Players will roll a d20 against the AC12 and hit 45% of the time. Players attacking with a d6 weapon will make three (3) attack-rolls and hit twice before its demise. In short, it takes three rolls to kill a Level 1 monster by using a d6 weapon.

So what happens when, instead of AC to roll-against, monsters have more hit-points? Specifically, how many hit points are needed to maintain the same number of to-hit rolls at AC1? In the case of a Level 1 ShadowDark monster, it’s 9 hit points.

Here’s a procedure to work that out:

  1. Find the average damage roll of the PC’s weapon die: PC_Damage = (sum_all_PC_Weapon_sides) / number_of_sides
  2. Get the monster’s HP. If you know the Hit Die this formula calculates it: Default_Monster_HP = (Monster_Level + (HD_size * Monster_Level)) / 2
  3. Workout the odds (as a percentage) of a successful roll-to-hit: hit_percent = (Attack_Die_Sides - (Monster_AC-1)) / Attack_Die_Sides Attack dies are the ubiquitous d20.
  4. Calculate the number of hits needed to reduce the monster’s HP to 0: hits_needed = Default_Monster_HP / PC_Damage
  5. The total rolls-to-hit needed will be: attempts_total = hits_needed / hit_percent
  6. The same monster with AC 1 will need these HP to be equivalent: hp_total_at_1 = attempts_total * avg_damage

But, I wanted more than just a formula for a single combination. I wanted a chart to visualize all the combinations. I also wanted to do it myself as a way to develop my Python programming skills. So, I created a Jupyter Notebook on Kaggle and figured it out. The entire code is there for anyone who wants to look at how it’s done under hood.

For my purposes, monsters are nothing more than a bag of hit-points. It’s a terrible way to run monsters. Obviously, good monsters do more than stand there waiting to get hit. Read Monster Overhaul and Forge of Foes to learn about making great monsters.

B/X, OSE, HD8 Charts

This first chart is based on a d8 Hit Die, like B/X and Old School Essentials (OSE). For example a Level 8, AC 6, 36 HP monster needs 48 HP at Level 1 to survive the same number of attacks.

It also illustrates how the equivalent hit-points change as the armor-class increases or decreases. Finding other numbers within a point or two of48 suggests mathematically equivalent foes.

That Level 8, AC 6, 36 HP monster is close to a Level 1, AC 19, 45 HP Monster. It also shows that’s roughly the same as a Level 10, AC 2, 47 HP monster.

This next chart, also based on d8 Hit Dice shows the number of rolls instead HP. So, for example, it can be used to determine that 26 rolls will be needed to take down a Level 14, 63 HP, AC 7 monster. This chart could be used to find equivalent monsters. Just follow the diagonal.

ShadowDark Charts

I used Matt Dietrich’s excellent ShadowDark Guide to Monster Statistics for the HP scale. ShadowDark has a slightly different HP scale than OSE. It’s not a big deal but you can see what’s happened in levels 19 and 20. It looks like the 20 level HD8 scale was compressed into 19 levels and level 20 was given a lot more HP.

This chart shows changes in rolls to hit.

The PDF, image and CSV files are available as PWYW. Or get the open source Jupyter Notebook on Kaggle​

Leave a comment

Log in with itch.io to leave a comment.