Shadowdark War Machine
Table of Contents
The Shadowdark War Machine System Overview Warbands (Units) Calculating Army Strength Calculating Combat Bonus Rolling for Battle Results Battle Results Morale, Fleeing & Routs Seiges Besieging Recently I was discussing mass combat rules in Shadowdark, as well as the various approaches to mass combat in other games like D&D. Overall, I think there are two main kinds of mass combat subsystems that exist within the hobby; the first is what I’m going to call the “round-by-round” mass combat system, which is where you play through the mass combat on a round-by-round or turn-by-turn basis with combat units taking actions. There are some great examples of this, such as:
- Chainmail, which is both a standalone wargame and the mass combat system for OD&D
- Hellmarch by Alchemic Raker, a mass combat system for Shadowdark, based on Chainmail
- The as-of-yet unreleased Western Reaches “Warbands” rules, which you can see a preview of here on discord
These systems are great when you want to play the battle out and dive into the moment-by-moment action.
The second kind of mass combat subsystem that exists is what I’m calling the “quick resolution” kind. This kind of subsystem seeks to abstract the whole battle into a very limited set of rolls. Some really good examples of this are:
- The “War Machine” and “Siege Engine” rules in BECMI D&D, available in the Rules Cyclopedia which resolves mass combat in a single d100 roll after some maths to determine modifiers
- The “Warfare” rules in Knave 2e, which resolves mass combat with three d20 rolls
This second kind of “quick resolution” subsystem is good for when the combat is so large that playing it out on a round-by-round basis would be incredibly cumbersome, or when the outcome of a battle is important, but the play-by-play of how it comes to be, is not. Unfortunately, as far as I can tell, no subsystem in this “quick resolution” category really exists for Shadowdark, so I’ve set out to make one.
The Shadowdark War Machine
For this system I primarily took inspiration from the Knave 2e warfare system, and the BECMI “war machine” system. The goals of this subsystem are as follows:
- All of the outcomes of the battle should be determined by a single, small set of rolls that can be done quickly & easily at the table
- A variety of outcomes should be determined, such as: casualties, NPC & loot captures, whether units break & flee, etc. Not just who “wins” and who “loses”
- The system should take army size, experience, and other advantages & disadvantages into account — you should be able to gain an edge with good preparation
- The system should be somewhat compatible with the 1st party “Warbands” system being put out in the Western Reaches product line. “Compatible” here means that you can take a warband and translate it into a unit in this system — you shouldn’t need entirely new statblocks to use this system
- The system should also have modifications to handle sieges, not just open warfare
System Overview
- Calculate the relative “Army Strength” of each army, based on their units & any advantages they might have
- Based on the difference in strength, determine a “Combat Bonus” for the strongest side
- The strongest side rolls three DC 12 checks, adding their Combat Bonus, for each success they get to choose a result, and for each failure the weaker side gets to choose a result
- The side who chose the most results, wins the battle
- Check for morale and routs
Warbands (Units)
In this system, units will work the same way that the Western Reaches “warbands” work. I’m not going to reduplicate the rules for warbands here, as I have no right to, but an overview of the relevant mechanics are as follows:
- Warbands range from level 2–10, and are comprised of creatures of a similar type between levels 1—5. Any creature of level 6+ should be counted separately as an individual unit
- The cost to maintain a warband for a month is 10gp per level
Calculating Army Strength
The base Army Strength is, very simply, the sum of the level of all of the units within that army. For example, if you have an army made up of:
- 2 light ranged units (LV 3)
- 4 heavy melee units (LV 4)
Then your Army Strength is 22 (2×3 + 4×4). You can then add in bonuses for any advantages, for example a bonus for learning secret intel on the enemy’s plan, or for charging downhill with cavalry. In general, most bonuses should be around a +1 or +2, and the total bonuses should never be higher than 50% of the base army strength (so in our example, the bonuses should never total more than +11).
You should make these calculations for both armies.
Calculating Combat Bonus
Once Army Strength for each army has been calculated, Combat Bonus is easy to determine. We just need to look at how much stronger the strongest side is, in relation to the weaker side. You can do this by dividing the strongest Army Strength by the weakest Army Strength, and then consulting the table below, which will give you the Combat Bonus for the strongest army.
| Army Strength Quotient | Combat Bonus |
|---|---|
| ≤ 1.5× | +2 |
| ≤ 2× | +4 |
| ≤ 3× | +6 |
| ≤ 4× | +8 |
| > 4× | +10 |
Rolling for Battle Results
Now that we have the Combat Bonus for the strongest army, that side makes three DC 12 checks, adding their Combat Bonus. For each successful check, the strongest side gets to choose a Battle Result, and for each failure, the weakest side gets to choose a Battle Result. These Battle Results are chosen in secret, and are only revealed at the end. After the battle, the side who chose the most Battle Results is the victor, and the other side must leave the field of battle in defeat.
For each of the three rolls, critical successes (natural 20) and failures (natural 1) also have special effects:
- A critical success causes the weaker side to lose an additional 10% of their force
- A critical failure causes the stronger side to lose an additional 10% of their force
Battle Results
The battle results that can be chosen from after each roll are as follows:
- Capture. Capture an enemy character/NPC
- Plunder. Steal an item from the enemy
- Decimate. Kill 10% of the enemy forces
- Liberate. Block a Capture
- Protect. Block a Plunder
- Defend. Block a *Decimate
These results are to be chosen in secret, and only revealed at the end. Once they are revealed, blocks are evaluated, and final results are determined.
Morale, Fleeing & Routs
If a side makes no Battle Result picks — that is, if they win none of the three rolls — or if they lose 30% or more of their troops, then each of their units will make a morale check. For any units who fail, there is a 3:6 chance that they rout — they flee from the battle and survivors will return to their homes within 1d10 weeks. Otherwise, they flee to a nearby area & will need to be regrouped.
Seiges
Sieges occur when one side is defending from within a sufficiently fortified area, e.g. a walled town or castle, and the enemy is attacking from without. In the event of a siege, make the following modifications:
- The defending side’s Army Strength is doubled
- The defending side is immune to morale checks, and will not flee nor rout.
- The casualties of the defending side are halved
Besieging
The attacking side has the option to “besiege” the fortified defenders — surrounding them and not allowing anyone in or out. For each week that they successfully besiege, their Army Strength increases by 50%.
© 2026 Chaotic Wizard.
Shadowdark War Machine is an independent product published under the Shadowdark RPG Third-Party License and is not affiliated with The Arcane Library, LLC. Shadowdark RPG © 2023 The Arcane Library, LLC.
Illustration by Chamomile Has Adventures is licensed under CC BY 4.0.