Removing the “Null Result” from tabletop RPG combat

I was inspired by a tweet.

In many combat systems of many tabletop RPGs, if you roll to attack and miss, then nothing happens. Both as a GM and a player, I’ve always disliked this. It feels like a waste of a turn, and it feels boring. I can even hear a strawman that says, “Kids these days with their short attention spans. Back in my day, we just missed and moved on, and we liked it. It’s realistic. That’s what happens! Or do you want a participation trophy?”

Yes. Players want to do something (and/or players want a choice). One could argue that “missing” is “doing something”, but a miss feels more like the absence of something because the miss doesn’t really do anything. Honestly, it’s even worse when both the PCs and their foes are missing each other. Miss, miss, miss. (And you know what else is annoying? Rolling a hit and rolling a 1 for damage anyway. It feels like a hit that’s basically still a miss anyway.)

As pointed out in the inspiring blog post, Chris McDowell has tackled this in an interesting way in Into the Odd and Electric Bastionland. Everyone always hits. So, no more misses. It’s solved! And it even alleviates the parenthetical annoyance of rolling a 1 for damage. In a sense, since you always “hit”, that 1 is a “miss” (or, rather, a not very solid hit). You have two pools of HP: one that’s actually called HP, and then damage comes out of your Strength score when you don’t have HP left. HP heals quickly. It’s luck, it’s skill, it’s “a measure of [the character’s] ability to avoid life-threatening Damage” (from page 8 of the remastered Into the Odd). Strength takes a lot longer to heal, and, at 0, you die.

And I also love the split between short-term HP and long-term HP. In some popular games, you have inflated pools of abstract HP that represents anything from luck to skill to actually having chunks of flesh sliced off of you. I don’t like the feel of that, so actually splitting HP into two pools helps distinguish when a creature is actually in danger.

However, this approach has one glaring weakness: it doesn’t slot neatly into existing games. AC doesn’t exist anymore. Granted, I play a lot of MÖRK BORG, but, even then, this system favors very low damage reduction for armor, which doesn’t gel with MB’s armor system.

Plus, I like rolling to hit. I want the illusion of failure, even if I do always succeed in some way.

Okay, so let’s just… merge the two systems.

Meat, Grit, Wounds, and Fatigue

Take a creature’s HP and divide it in half into two limits, Meat and Grit. Instead of losing Meat, you accumulate Wounds; instead of losing Grit, you accumulate Fatigue. This adds more terms to know, but addition is faster than subtraction, and being able to compare Wounds (missing Meat) and Fatigue (missing Grit) will be important.

  • Roll to hit like normal.
  • If you hit, deal damage, adding to their Wounds and Fatigue.
  • If you miss, deal damage, adding to their Fatigue.
  • When Fatigue reaches Grit, damage adds to Wounds.
  • When Wounds reach Meat, you die.

So, each attack either makes solid contact or it wears down the opponent.

To me, this is giving verisimilitude, which is something that I personally treasure when it comes to tabletop RPGs. It feels like this just makes sense. Even if you don’t actually hit your opponent, each swing brings you closer—not just because you get another chance but also because your opponent is getting tired. Breathing gets ragged. Faces and underarms get drenched in sweat.

  • Fatigue can never be lower than Wounds.
  • Short rest: ~10 minutes. Remove d6 Fatigue.
  • Long rest: ~6 hours. Remove all (possible) Fatigue; if your Fatigue is equal to your Wounds, remove d6 Wounds.
  • Full rest: ~1 week. Remove all Fatigue and Wounds.

But those are just my suggestions. (Also, wait a second. You could tie the long rest die size to the number of hours spent resting, like d4 for 4 hours and d12 for 12 hours. I probably wouldn’t go lower than a d4 or higher than a d12.)

You can still roll 1 damage, which is a bummer, but you’re always doing something—you’re always moving the scene closer to your goal.

This also makes doing an extra something a bit more appealing. A lot of OSR-style and NSR-style games leave advanced maneuvers (e.g. attacking a particular body part, throwing a battleaxe, tripping an opponent with a guisarme) up to GM arbitration. These should be harder to pull off! But I have found across many different tabletop RPGs, that players are less willing to take risks because missing means that nothing happens—so you might as well just do normal damage the normal way because getting creative isn’t always risk-free. But, with this system, again, missing still does something.

You could split HP into Meat and Grit without having it evenly split, but this gets a little funky to manage with recovery (which really only matters for PCs anyway, though). “Missing Grit cannot be less than missing Meat” loses the i.e. part, and you’ll just have to watch the difference between current and maximum Meat and Grit yourself.

Wrapping Up

That’s it. As always, I’m tempted to write a dozen more paragraphs right here in this blog post, but I’ll keep this simple. This creates an extra resource pool to keep track of by splitting HP into two separate attributes, and reducing maximum Grit as one suffers Meat damage might feel annoying at first, but it’s not that bad.

Also, you can just subtract damage from your Meat and/or your Grit like you would with HP, and the rule for restoring lost Grit/Meat becomes “missing Grit can never be lowing than missing Meat”, which is a bit more annoying to track.

Oh, and one last thing. I almost forgot. When leveling up characters and such, their Meat should stay the same, and their Grit should increase as HP would’ve. You’re getting better—not beefier. In games with Constitution or Toughness (or even just Strength), it might not be a bad idea to add any modifiers to one’s Meat. Because, in that case, you might actually be getting beefier.


Leave a Reply

Your email address will not be published. Required fields are marked *