I was thinking about the next D&D campaign I want to run, and the idea of a Goblin War sounds super interesting. The Goblinoids have organized into a coherent army, and have decided to carve out land that is theirs, to create their own Goblin Nation. Sounds fun!
So as I’m researching war campaigns, there is a pretty big gap in the official rules regarding Mass Combat, and everyone has taken a stab at making a system that works. The source of the confusion comes from the history of D&D. You see, the game comes from War games, like Warhammer 40K, where two players have dozens of minis on the battlefield, essentially playing a more complicated version of chess. The idea of roleplaying came from looking at a single unit, and wanting to give each one of those miniatures a name and a story. So war feels like it should fit into a D&D campaign, but as the game has turned from simulation to story based adventures, it is hard to maintain a level of mechanics that fit that pattern of play. So how do you turn that mass combat from simulation to story based? Well, each degree you turn that dial, you can find a new system online to match. Some people just have a side game of the respective wargame going on, and others just have it as a dramatic background, with the results already predetermined, for whatever the story is.

Well, I’ll add a system to the dial. I still want the results to be unexpected, so the players can react to what’s happening on the battlefield, but simple enough to be determined in a single d20 roll after every encounter within the battle.
My first question is “How do you make the players actions MATTER?” You have to make their actions lead to a consequence, but not determine the tide of battle entirely. You want a level of chance, without the party waiting for you to figure it out.
My incredibly detailed and innovative solution is a countdown.
The short version is that both armies start at 10, and the first side to 0 loses. The players have goals that drop the enemy side, and after each goal there is a random roll for either their side or the enemy side to drop.
In order for this to work, your party has to be considered separate from the common soldier, which they often are anyway. They are a team of commando, special operations, who get special missions both in and out of battle. We have some real world examples of this, like the Navy Seals and Green Berets, but we also have some wonderful fictional examples, like Clone Force 99 from The Bad Batch in Star Wars, or the Howling Commandos that fought with Captain America in Captain America: The First Avenger.

Pre-Battle
Most pre-industrial war was really about pre-battle skirmishes, which then came to a head in the major pitched battles. These skirmishes are often very similar to classic D&D adventures. It might be spying on the enemy to gather intelligence, assassinating a prominent leader, cutting supply lines, as well as defending your own resources. There are so many missions you can come up with, just by watching a good war movie.
This is really the bread and butter of your war campaign. If you want more complexity, you can make it so these missions aren’t automatic successes. In war, it can often be better to retreat from a bad mission, and live to fight another day.
Lose the battle, win the war.
The number of missions leading up to a battle can be up to you, but I think, as with many things, three is the magic number.
Now it’s time to set up the battle itself. If the two armies in this battle are equal size, they both have their counter set to 10. If one army is smaller than the other, then you approximate the difference, where the larger army is 10, how much smaller the smaller one is.
Then, you look at your missions. For every successful mission your party completes, you -1 the enemy size. If they failed any missions, or if the enemy was able to accomplish any missions that are story-relevant, then you -1 the allied army.
Let the players know these scores, because a countdown is the simplest way to introduce tension beyond the immediate fights the party is involved in.

Party Objectives
So now that we have our starting numbers, the battle begins. The standard advice here is “Think Big, Play Small”, so that’s what we’re going to do. You want to give the party a tactical objective. These objectives can play like little scenes, not necessarily related to each other. Obviously the enemy units will be related, but you can take hard cuts in between them, and not worry about them fitting into some massive map. The goal can’t be to kill every enemy you see, because the army sizes are so massive, and like the missions before the battle, it is okay if your mission doesn’t succeed, and your party has to retreat. They will have another chance.
- Take and hold that bridge/hill/etc
- Escort your healers to the wounded
- Take out enemy mages/archers/siege engine/etc
- Protect your mages/archers/siege engine/etc
- Loot their supplies
- Defend our supplies
- Fight the enemy Commander
- Defend your Commander
There are so many tactical objectives, and you don’t need to think tactically when determining what is next, because that is up to the Generals. We can trust, like a good soldier does, that the general knows what is the most beneficial thing to do, so as a DM just choose what sounds fun, interesting, challenging, whatever you want. You don’t have to explain why it’s the most important objective right now.
If your party succeeds, then you -1 from the enemy army, but if they fail in their mission, then you -1 from your allied army.

Random Events
After each Party Objective, you will roll on the Random Events table for what else is happening in the background of the battle. Most results are -1 from one side or the other, but there are some that are special.
This basic d10 table can be extremely modified depending on how much you want to personalize the battle. Below is a standard that should work for most battles on an open field.
| 1-3 | -1 Ally | Allied Unit Falls |
| 4-6 | -1 Enemy | Enemy Unit Falls |
| 7 | +1 Ally | Allied Reinforcements Arrive |
| 8 | +1 Enemy | Enemy Reinforcements Arrive |
| 9-10 | -1 BOTH | Inclement Weather |
Feel free to make your players roll this, each of them taking turns, so it’s less watching you settle the rest of the battle. Or you can have one player roll, one tracks enemy army, and the other tracks the allied army, to have everyone feel engaged in the larger picture.
Whichever is the first army to 0 loses the battle.
This system gives the ally side a slight advantage, all else being equal, as there is no accounting for an enemy special unit, unless you want there to be.
What you roll could also affect what is the next Party Objective. If an Enemy Unit Falls, then maybe they were the ones guarding the mages/archers/siege engine and so that’s the next Party Objective. If you really want to spend time on it, then you can have every Random Event be the cause of a related Party Objective, so the chaos of battle makes the flow of encounters feel more chaotic yet authentic.

If the party begins to earn command within the army, I really like the MCDM Kingdoms & Warfare system, which can add to this fairly easily. In that system, each player controls one or more units within the army. So by adding that system, each time an MCDM unit is removed from battle, that side gets -1. Again, that should give the allied army a slight advantage, which is preferable, but victory is never guaranteed.
Lastly, you can eventually bring this to the War scale. Whoever loses the battle gets -1 from their total score, and the first side to 0 loses the war. Again, this can be as modified as is interesting to you. Is the party involved in every battle? Are certain battles worth more to the war than others? You can choose just how crunchy you want to make it.
This is nicely done. Sound approach to track progress of a war in the bacground inwhich players will be impacted and also alliws them to participate. I am going to implement tjis or a form of it in my current story. It fits very well. Thanks.
LikeLike