Variant Rules
Comments from the Thumb: It occurred to me the other day while building a dungeon that swarms aren’t particularly threatening. Sure, maybe they’re scary and annoying, especially to low level players, but let’s look at the rules. We’ll go with a swarm of insects for this example.
Puny Bugs
The swarm of insects has 22 HP and an AC of 12. While they are resistant to weapon damage and immune to just about every condition in the book, they’re still no match for any one character over about level 2. Just a few swings of the barbarian’s axe and they’re mincemeat. The rogue can even sneak attack them! Imagine this: thousands of itty-bitty spiders are descending upon the party. The rogue steps up to bat. We’ll assume they get sneak attack. A few slashes of a dagger and all 8436 (roughly estimated) spiders are dead.
What. What even.
A swarm should be easy to barbecue via fireball or the like, but nigh-impossible to melee to death unless you have a giant flyswatter, especially for swarms of insects. Have you ever tried to swat a fly out of the air? Try it with a sword. You have a few options here if you want your swarms to continue to be threatening at higher levels.
The first option is to beef up the swarm. Higher AC or HP is the simplest route. Maybe give them a trait that doubles their resistance, making attacks do 1/4 damage. For insect swarms, I might even make them outright immune to piercing and slashing. Definitely make them vulnerable to non-weapon damage to compensate though (fire, cold, lightning, acid, poison, force, thunder, etc.).
Variant 2: Swarms as Hazards, Not Enemies
Your next option is to ditch the stats altogether. The DMG contains rules for dungeon hazards. Do something like that. Here, I’ll take a crack at it, once again using the swarm of insects. For fun, we’ll use centipedes.
Centipede Swarm
A swarm of centipedes typically covers a 5 foot square, has 10 hit points, an AC of 12, and is immune to nonmagical bludgeoning, slashing, and piercing damage. When a creature moves within 5 feet of the swarm for the first time or starts its turn there, the swarm immediately moves to occupy the creature’s space, and the creature must make a DC 12 Dexterity saving throw. On a successful save, the creature becomes aware of the swarm if it wasn’t already, and suffers no further effects. On a failed save, the creature takes 1d6 piercing damage as the centipedes begin to climb all over its body and bite it. The centipedes then move with the creature until they are removed or destroyed.
At the start of the creature’s next turn and every turn thereafter, it can use its action to make a DC 15 Dexterity saving throw. On a success, the creature shakes the centipedes off and the effect ends. On a failure, the creature takes another 1d6 piercing damage and 3d6 poison damage, and is poisoned for the next minute. A centipede swarm that is reduced to 0 hit points is instantly destroyed. The swarm can also be removed by jumping into water or similar methods, at the DM’s discretion.
One thing to note: as with everything in D&D, you can adjust all of the swarm’s stats to make it harder or easier for your party. Feel like the saving throw DC is a bit low? Want the damage to be a bit higher? Maybe give it vulnerability to fire, cold, acid, etc.? That’s your prerogative. You can also replace the centipedes with any other poisonous creepy crawly.