itch.io is community of indie game creators and players

Devlogs

HP to AC Conversions

RolledLow's Blog
A downloadable project

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.

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.

ShadowDark Charts

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

Leave a comment