Using Morale Rolls to Simplify NPC Combat
Or, The Skill Challenge Will Continue Until Morale Improves
What can you do when there are too many pieces on the chessboard?
For any Dungeon Master, it's likely a familiar scene - your D&D party arrives at the scene of a significant showdown with the BBEG. The antagonist looms large, but he's not alone, and neither are the PCs. Maybe the knave is flanked by a horde of fell lieutenants, matched in strength by the gaggle of powerful NPCs the party has invested significant time befriending and recruiting to their cause. Perhaps a massive pitched battle between the forces of good and evil rages around them, and this fight scene represents your party having sought out the villain on the field.
No matter what the precise setup, a few problems quickly emerge in scenarios like these:
Problem 1: You don't want to try to run a huge battle between the party's NPC allies and their enemies. It's difficult to keep track of everyone individually, time-consuming to make sound and in-character tactical decisions from a bunch of different perspectives, and generally pulls focus from the efforts of the PCs. This is the combat equivalent of a DM having a conversation with themselves as two separate NPCs while the party looks on - awkward, boring, and often hard to follow.
Problem 2: You don't want an NPC to kill the boss. There is no quicker way to take the wind out of the player characters' sails than to have their powerful ally step in and wipe the floor with the boss they themselves were meant to defeat. But if the NPC is on the field of battle, it's their turn in the initiative order, and they have a clear shot, surely they're going to take it, and there is a 99% chance it will feel to your players like a kill-steal. And yet, at the same time...
Problem 3: You don't want the party to feel like their efforts to recruit allies were in vain. If you simply handwave the NPC portions of the battle using the logic that the villain coincidentally brought just the right number of minions to occupy the NPC allies, whether that's a single high-level spellcaster or an entire battalion, it can feel cheap, like recruiting the NPCs for the battle was a waste of time. In the long run, this can undermine any sense that the NPCs are real and that getting to know them can provide tangible mechanical benefits.
I break my long hiatus here with a little design hack to confront these problems: using morale rolls to simulate non-player-character combat in D&D. This system turns the NPC portions of the battle into a very simple skill challenge which the party can influence somewhat with their actions, keeping NPCs involved in the fight while also leaving space (particularly in the latter stages of the combat) for the player characters to shine.
Making Morale Rolls
Morale rolls act as a simple way to simulate and narrate how a battle the PCs are not directly involved in is going. Either at the end of each round or at a single generic "NPC" initiative mark, the DM rolls a d6 to decide this.
- A 1 is a critical failure for the heroes' allies - they suffer two failures.
- A 2 or a 3 is a soft failure for the allies - they suffer one failure.
- A 4 or 5 if a soft success for the heroes' allies - the enemy force they are fighting suffers one failure.
- A 6 is a critical success for the heroes' allies - the enemy force they're fighting suffers two failures.
A morale roll is made with advantage if, at any point during the last round, an enemy is reduced to 0 hp or a player character rolls a critical success. A morale roll is made with disadvantage if, at any point during the last round, a player character or NPC ally is reduced to 0 hp, or if an enemy rolls a critical success. Advantage and disadvantage on morale rolls stack throughout the round and cancel one another out in a 1:1 ratio. The idea here is that, if your heroes are striking serious blows at their opponents or pulling off maneuvers with aplomb, that's going to inspire your NPC allies to rise to the occasion as well; on the flip side, if the enemy is mopping the floor with the party, your NPC allies are probably too stressed out and distracted to defend themselves properly.
You can define additional conditions which trigger advantage or disadvantage - using only the above rules for conferring them will naturally put your players at more of a disadvantage the longer the fight drags on, as towards the end of a combat there are likely few evil minions remaining to reduce to 0 hp but still (hopefully!) a number of PCs and NPCs for the enemy to take down. Consider adding thematically appropriate ways for your players to swing the tide of morale - maybe advantage is granted if the paladin uses their action to successfully pray to their deity (Religion check!), or disadvantage is given if the party moves too far away from their allies, leaving them exposed. The idea is to give your players a way to influence how their allies are faring without asking them to directly intervene, and to simulate the vicissitudes of battle - a party with advantage on a morale roll can still roll a 1 and find their NPC allies in a tight spot even while the players bask in a small victory.
The Failure Track
Instead of interpreting stat blocks and writing out combat tactics, the only major prep this method requires is for you to define the consequences of failed morale rolls. For each side of the conflict whose behavior in combat you'd like to manage with morale rolls, you must define a series of consequences which involve the character or group in question losing some resources - a fraction of their HP, spell slots, once-per-day ability uses, magic item charges, etc. Depending on how squishy you want or consider each side of the conflict to be, you can spread these consequences out across between 6 and 10 failures - closer to 6 for those who are weak, wounded, or demoralized and have a high chance of being taken off the field by a swing of favor against them, closer to 10 for a formidable foe who's unlikely to be easily ruffled or downed. (Alternatively, calculate these based on how many rounds you expect the combat to last - n failures for a squishy NPC and 2n failures for a sturdy one, where n is the number of expected combat rounds.) No matter how many failures you define, make sure that if all of these failures are suffered, the consequences are catastrophic failure - the besieged city falls, the battle is lost, or the NPC or company in question goes unconscious or dies.
For an high-level NPC of the allies, the failure track might look like this:
1 - highest level spell slots depleted
2 - 25% of health depleted
3 - mid level spell slots depleted
4 - 50% of health depleted
5 - all spell slots depleted
6 - 75% of health depleted
7 - once-per-day ability depleted
8 - unconscious
9 - two failed death saves
10 - dead
Importantly, you only need one track or collection of consequences for the heroes' allies and one set of consequences for the enemy forces - this is part of how morale rolls help to simplify combat. For a collection of NPCs, the failure track might look like this:
1 - Recruited Townsfolk flee the battle
2 - Mentor NPC has lost 33% of their health
3 - Beloved Comic Relief is knocked unconscious
4 - Mentor NPC has depleted their high-level spell slots
5 - Earnest Martyr is killed protecting Beloved Comic Relief
6 - Mentor NPC has lost 66% of their health
7 - Beloved Comic Relief fails two death saving throws
8 - Mentor NPC has depleted their low-level spell slots
9 - Beloved Comic Relief is killed
10 - Mentor NPC falls unconscious
For a siege or pitched battle in which the party's allies are trying to hold the line while the party battles some central problem or key strategic figure, the failure track might look like this:
1 - enemy forces are able to scale the battlements / engage the front line
2 - enemy forces are able to set off explosive charges at strategic locations
3 - enemy forces have breached the front gate / managed to flank an allied formation
4 - enemy forces have managed to capture a strategic foothold on the field / in the city
5 - enemy forces have surrounded an important /beloved allied company, cutting them off from aid or retreat
6 - the important / beloved allied company is defeated
7 - enemy forces breach an inner enclave or sanctuary
8 - enemy forces have managed to surround the party
As you can see from the above examples, I typically arrange consequences in a chain, where the severity builds up as the failures do, but you can also create a roll table of consequences and roll for them randomly as the conflict proceeds, adding an even greater element of chance and fate. Just make sure you reserve the final, catastrophic failure for if the failure track fills up.
When creating an opposing failure track for the enemy forces, consider designing it such that the NPCs cannot entirely defeat or kill the enemy in question by themselves, but can significantly deplete its health or resources. Rather than the enemy failure track ending with death saves, consider concluding the track with the enemy in question trying to flee the battlefield, or refocusing their efforts on the PCs out of rage or frustration. Particularly if the enemy in question is the boss, this keeps them bloodied but available for your PCs to finish off.
Let's look at some use cases for morale rolls.
Use Case 1: PCs and Friends vs. Boss and Friends (i.e. Jets vs. Sharks)
The party watches as the thin air before them splits open and the great fiend steps out. The Saints and Saintsguard at their side let out hisses of disgust as its grotesque form is followed several servants summoned from the Hells - a winged archer already knocking an arrow, a hulking brute hefting a flaming sword, and a lithe assassin twirling cursed blades. After an appraising gaze over the assembled, the fiend smiles a terrible smile. "A party - how fun." Then, turning to its lieutenants: "Kill the spares. The Saints are mine."
The most classic use for morale rolls is to separate a boss combat featuring many extraneous combatants into two halves - a strategic fight between the PCs and the boss taking place in the foreground, and a more cinematically narrated fight between the allied NPCs and the enemy goons taking place in the background. This cuts down on overhead and keeps the focus on the efforts of the PCs while still including elements chance, strategy, and consequences for the background combatants. Whenever one background faction manages to finish off the other, perhaps the remaining forces join the PC portion of the fight, turning the tide in their favor... or against.
Typically, when running this type of combat, I run it in two phases. In the first phase, the NPCs square off against the boss, while the PCs are distracted by minions. In the second phase, the exhausted (or, alternatively, cocky) NPCs hang back and let the newly freed-up player characters tag into the fight and finish off the boss. If the NPCs are racking up failures in the first phase, the PCs will be motivated to take out the minions as quickly as possible to save them, perhaps using up some of their big guns early on and giving the boss more of a chance later on. If the NPCs are racking up successes, the party will feel grateful to them for softening up the boss for them and be satisfied with the NPC's contribution when they take over the fight.
A few tips on running this kind of combat scenario with morale:
- Split the party. Put an obstacle of some kind between the party and the BBEG to signal the separation between the two halves of the fight. Maybe the boss erects a Wall of Force so he can settle a score against the allied NPCs alone. Maybe the party pursues the villain to a high tower while NPCs fight in a courtyard far below. You might even narrate the enemy and and a high-level spellcaster NPC popping in and out of existence as they chase each other through plane shifts, banishments, and dimension doors where the PCs cannot easily follow, only getting glimpses of the combatants throughout. This will help signal to your party that they should focus on what's in front of them first before running to their allies' aid.
- Make a moment of tagging the NPCs out and the players in. When the players mow down the minions and move the battle into its second phase, it's time for the NPCs to take a step back and let the PCs handle the rest. Perhaps NPCs are the worse for wear thanks to morale rolls, and need to be relieved of combat duties; if things went swimmingly for them in the first round, maybe they cockily step back and let the PCs take this one. Either way, take a moment here to narrate cinematically how much the NPCs managed to ruffle or rough up the enemy, and likewise how much of a mark the enemy has left on them - this will give your players a cue to appreciate that their allies have contributed and sacrificed for the good of the group, but have given as much as they can or will to this fight: it's up to the party now.
Use Case 2: Mass Combat Alongside PC Combat
It's been some time since the front lines of the two armies collided with the scrape of metal on metal and the cries of the wounded, and yet it passed as if in mere moments as the party cut their way across the battlefield in search of their foe and, finally, located them - the enemy general, surrounded by heaps of dead and being given a wide berth by the living hoping not to join them. As the general's eyes fall on you, you see them glint with satisfaction: finally, some worthy opponents.
Making a big battle between an abstractly huge number of the PC's allies (like the garrison of a besieged city) and a similarly abstractly huge number of enemies (like an invading army) feel like more than set dressing hidden behind invisible walls is a tricky thing, especially when the PCs are engaged with only a small part of it. You want the battle going on beyond the PCs' immediate vicinity to feel dynamic and exciting; you want to make it feel like the outcome matters, and like the PCs have a chance of affecting that outcome even though they can't be everywhere at once. But you don't want to have to keep track of an entire army's worth of one-on-one combat, or to invent an entire old-school wargame's worth of rules to describe engagements between military units.
Enter morale rolls, which let you know what effects your PC's efforts fighting the villain are having on the general mood and swing of the larger battle. Did the PCs strike a near-mortal blow against the enemy general? With a cheer, a nearby company on the battlefield rallies and makes a devastating counterattack against an enemy threatening to break their lines. Is an undead T-rex (the enemy force's ace in the hole) flinging the PCs around like ragdolls? Dismayed and distracted, the reinforcements on the battlements find themselves overwhelmed by enemy combatants scaling siege ladders at record speed.
My biggest piece of advice for running this type of combat scenario with morale rolls is to still try to put a human (or elven, dwarven, orcish, whatever) face on the successes and losses of the failure track. Instead of just saying the front line has buckled, narrate how a military unit the players have come to like is scattered, or a beloved NPC in the vanguard is captured. Instead of just reporting that the enemy has breached an inner sanctum, narrate how enemy forces are pouring into a hastily-constructed field hospital in the temple, finishing off the sick and wounded who couldn't flee in time. Be specific and cinematic - it will give your players a reason to care.
Example: Fiends vs. Saints
In a homebrew campaign, my players went toe-to-toe with a mid-level fiend. Knowing they were likely not powerful enough to deal with it on their own, they recruited two saints - demigods in the flesh - to help them bring the fiend down. Given the lore of the game and the time the party invested in befriending and recruiting the saints to their cause, I couldn't deny them the opportunity to use them as resources to even the odds. But on some level, I also worried that in a battle between a powerful fiend and two demigods, my barely-Tier-3 party would feel a little... superfluous to the conflict.
The solution: a two-phase morale fight. In phase 1, the fiend would divide the battlefield with a Wall of Force and take the opportunity to duel the saints two-on-one, simultaneously summoning a few mid-level minions to keep the party busy elsewhere. In phase 2, after the party downed the minions, the fiend would either suffer a concentration-shattering blow or feel he had mopped up the saints sufficiently to drop the Wall and deal directly with the party.
The practical upshot? As the saints racked up failures in phase one, the party felt the urgency of taking out the minions in order to jump in and swing the tide of battle back in their favor. By the time they managed to break through and confront the boss, the saints were low on spell slots, bloodied, one even unconscious... but so was the boss, sitting at less than half his original health and now well within the realm of possiblitity for the party to finish off. Grateful for their allies' efforts, the party made a point of drawing the fiend's attention - and ire - away from the wounded NPCs in addition to working together to take him down. This added a whole new layer of tactics to the fight, and made their eventual victory that much sweeter - though one of their allies was on death's door, they chased the fiend back into the Hells in time to save them.
Best of all, until my players jumped in toe-to-toe with the fiend, I didn't have to roll a single NPC attack, keep track of NPC status conditions, choose specific spells for the NPCs to cast, or frantically skim a creature stat block for an NPC save DC or modifier - with just the morale rolls to guide me, I was free to narrate more fluidly and cinematically the highs and lows of the fight going on just out of reach.
Here's hoping this is helpful, and saves at least one DM out there the headache of trying to juggle powerful or plentiful NPCs while trying to keep a boss fight satisfying. If you try this out in your game, please get in touch! I'd love to hear how it goes. Alternatively, I'm 99% sure I'm not clever enough to be the first one to come up with a hack like this, so please feel free to point me to hacks and subsystems that do this, but better, if they exist.