Creative players plus a lot of allied NPCs often means mass combat to take on big challenges. However, most mass combat rules are tiresome and time-consuming, taking away from the core fun of role-playing games. So I developed my own abstract system that focuses on role-playing, a few skill checks, and level-appropriate party-scale combat encounters.
Here is how a game a few weeks ago went, edited for length and clarity:
Lego GM: "So, as you all decided last time, you are leading a strike force to destroy a hive of beholders before it can grow into a tyrant ship. It will take the fleet a couple weeks to get to the moon the beholders have burrowed into. What will you be doing with your time?"
Rogg: "Tactical planning and military leadership, as usual."
Martin: "Mingling with all the different races and helping them cooperate."
Lyra: "Assisting the others."
Dlaeros: "This is the first real mission for our new carrier fleet, and I am the one who designed these ships, so I'll make sure everything is working right and fix or improve things as needed."
Liu: "Beholders should be vulnerable to things like pepper spray because of all the eyes, so I'll work in the ship's alchemy lab and try to make smoke rockets with a blinding effect.
<roll skill checks>
Lego GM: "Ok, so you have a good tactical plan and the ships are working fine. Your pepper-spray rockets will give the fleet bombardment, the goblin space marines, and Team Wormslayer an extra d4 on their combat rolls. Dleraos, roll for the tactical approach and fleet bombardment." <roll several checks> "All successes. The ships avoid detection, and surprise the hive with a barrage that takes down the sentries and allows all your allies to move in at once. Now, roll your squads."
Liu: "Team Wormslayer, success, barely. The rockets made the difference."
Martin: "Hobgoblin broomstick riders and windsurfers, success."
Rogg: "Goblin space marines, failure. We'll have to rescue them."
Lyra: "Pegasus riders, success. Sasha and the kobold paladins, success."
Dlaeros: "Shikara Shrine, another failure."
Lego GM: "So, that is two combat encounters for the party before you go into the core of the nest and take on the hive mother."
Simple RulesDivide the enemy force into roughly-equal-power fronts that would each be a Hard encounter for the party. Then, divide all allied troops into that many units and roll and role-play for unit bonuses. Have all ally units roll for success or failure on their front. The DC is 10 for equally matched power, greater if the allies are underpowered, less if they are more powerful. Whenever a unit fails, the PCs, functioning as the tactical reserve, come in to rescue them in a level-appropriate combat encounter.
This system basically uses the allied troops to turn a huge mass of enemies into a game session's worth of fun balanced encounters where the party is protecting wounded or fleeing allies and NPCs. It is best for smaller-scale missions in games where the players are mainly focused on roleplaying and don't care too much about timing and realism. For more structure, or really large fights, use the full rules to simulate battle leadership:
1) Divide the enemy force into roughly-equal-power fronts that would each be a Hard encounter for the party. A front could be a company of low-level troops, a platoon of high-level NPCs, a powerful enemy like a dragon, or some mix.
2) The party gathers up a lot of allies. These allies are, like the enemies, put in roughly-equal-power units that would be a Hard encounter for the party. There should be at least as many ally units as enemy fronts. The players assign one unit to each front, with the rest being reserve units. If the allies are weaker, spread them thin and increase the combat DC below.
3) The party member with the highest History check rolls it to come up with a military strategy. Other people can use other checks, like Persuasion to improve morale or Nature to set up terrain advantage. This check represents days of work, so each person can only make one. The party check results are translated into unit bonuses as follows: <5 means -2, <10 means -1, >15 means +1, >20 gives +2, etc. If the allies are people that the party has helped out or invested resources in, they can get additional bonuses. Give bonuses for good role-playing and a history of caring about the NPCs.
4) Set a DC for each front based on the difficulty of the fight. By default, all fronts have the same DC, but different situations can make that change. If the players did a good job matching the strengths of allies to the appropriate front, the DC is lower for those fronts. DCs should be around 10-15 for battles where the PC side has the initiative and upper hand, or 15+ for harder and more desperate fights.
5) Have the players roll a check for each front-line unit. Each player should roll for units that their character is closest to or cares about more. Let them use inspiration on these if they want.
5a) Success means the unit achieved its tactical objectives and won that front. After there is a success on every front, the battle is won.
5b) If a unit succeeds by 5 or more, it has won a resounding victory and can then be used as a reserve unit.
5c) For each unit that fails its check by 5 or more, the PCs must commit a reserve unit to that front or the battle is lost (They can use units that were front-line this turn and won resounding victories). The PCs can function as one reserve unit, rushing into a level-appropriate Hard combat encounter where they have to hold the line, defeat the enemy force, and protect their wounded and routed allies from being killed. If they prevail, it counts as a success on that front.
5d) If no unit fails by 5 or more, the PCs may move in to assist a unit that is still in a standoff. This will be an easier encounter, because they will have backup from NPCs capable of fighting. Just use a few NPC allies by default, not the whole unit, because the rest are healing, regrouping, etc. If the PCs defeat the enemies, and also heal and rally most of the ally troops, then those troops can then be used as a reserve unit.
6) Repeat step 5 for each front not yet won, until the battle is a victory or defeat.
This system lets the PCs do great things in just a few dice rolls, and turns each battle into a sequence of level-appropriate combat encounters that make a fun game session. And it actually simulates battle leadership better than the tactical micromanagement of most mass combat rule systems.
In most games, it is rare for there to be more than a couple dozen fronts. By the time the PCs are leading thousands of troops, their level should be in the teens. In 5th edition, a company of 100 Guards and 10 Scouts led by a Knight (or Bandit Captain, Cult Fanatic, Druid, Priest, etc.) is a Hard encounter for a level 15 party of five people. I have actually playtested these kinds of encounters, and they are balanced, as long as the party is smart and uses area effect spells and/or finds ways to prevent being targeted by lots of ranged attacks at once.