The Blood Moon is the recurring 7-day horde event in 7 Days to Die. By default it starts at 22:00 in-game time, lasts 6 hours (ending at 04:00), and recurs every 7 in-game days. The number, type, and aggression of zombies scale with each player's Game Stage. On a multiplayer server the default settings become either trivial for small high-stage groups or unplayable for large communities - this guide walks through every server-side knob that affects the horde and how they interact.
Three layered limits govern how many zombies are alive at once during a Blood Moon. They all apply - the actual cap is whichever fires first.
BloodMoonEnemyCount) - the maximum alive at once per player. Default 8.MaxSpawnedZombies) - the total simultaneous zombies anywhere on the map. Default 64. The in-XML comment on the per-player setting states: "MaxSpawnedZombies overrides this number in multiplayer games."gamestages.xml. Low Game Stage parties get fewer zombies than the per-player cap would suggest. Higher Game Stages get larger and more frequent waves with feral and special variants.So on an 8-player server with all defaults: BloodMoonEnemyCount × players = 64, which exactly matches the default MaxSpawnedZombies. Any larger party - or any boost to per-player count - hits the map cap before per-player. Raising the per-player count without also raising the map cap does nothing on a busy server.
Where these settings live, as of V3.0 and later. The gameplay values on this page are still right, but they are no longer properties in serverconfig.xml. V3.0 removed 30 properties from that file and moved the gameplay rules into sandbox options. A V3.2.0 server does not read BloodMoonFrequency, DayNightLength, LootAbundance or XPMultiplier from the config file, and adding them there changes nothing and raises no error. Set them with a SandboxCode before the world is created, or with setgamepref on a running server. See the SandboxCode migration guide and the current serverconfig.xml reference.
Defaults below are the game's own. The "Where to set it" column says which of the two systems each one belongs to: sandbox means a sandbox option, reached through SandboxCode or setgamepref; serverconfig.xml means a property the server still reads from the file. See the serverconfig.xml reference.
| Setting | Default | Where to set it | Effect |
|---|---|---|---|
BloodMoonFrequency | 7 | sandbox | In-game days between Blood Moons. Set to 0 to disable horde nights entirely. |
BloodMoonRange | 0 | sandbox | How many days the actual horde day can deviate randomly from the frequency. 0 = exact every Nth day. |
BloodMoonWarning | 8 | sandbox | Hour number on a horde day when the red number warning starts showing. −1 hides the warning entirely. |
BloodMoonEnemyCount | 8 | sandbox | Per-player simultaneous zombie cap during the horde. Multiply by player count to get the theoretical concurrent total - but the map cap below still applies. |
MaxSpawnedZombies | 64 | serverconfig.xml | Hard cap across the entire map at any moment. The single biggest server-load lever; raising this needs CPU and RAM headroom. This one is still a server property. |
EnemyDifficulty | 0 | sandbox | Zombie aggression. The game calls it Enemy Aggression; Feral means they are far more aggressive and sense you from further away. |
LootAbundance | 100 | sandbox | Loot multiplier as a percentage. Default 100 = 1×. Raise it on busy servers if loot scarcity becomes the bottleneck for surviving repeat hordes. |
There's no universally correct setting - it depends on the host's hardware and the average Game Stage of your group. The principle is: keep the concurrent zombie load below what your CPU can simulate without the AI tick-rate dropping. Test, watch your server console for "long simulation" warnings, then adjust.
| Player count | Conservative (smooth) | Aggressive (challenging) |
|---|---|---|
| 1 - 4 players | EnemyCount 8, MaxSpawned 64 (defaults) | EnemyCount 12, MaxSpawned 80 |
| 5 - 8 players | EnemyCount 6 - 8, MaxSpawned 64 - 80 | EnemyCount 10, MaxSpawned 100 |
| 9 - 16 players | EnemyCount 4, MaxSpawned 80 - 100 | EnemyCount 6, MaxSpawned 120+ |
| 17+ players | EnemyCount 3 - 4, MaxSpawned 100 - 120 | Per-base instancing or split-server is more reliable than raising caps further. |
The "aggressive" column assumes you've validated server CPU headroom under sustained spawning - Blood Moon is the worst-case load spike on a 7D2D server, and an under-provisioned host will desync before it crashes.
You can tune when the horde happens, not just how much:
BloodMoonFrequency (e.g. 5) to compress the survival cycle - useful for servers with high turnover or session-based play.BloodMoonRange from 0 (exact) to 1 - 2 (small jitter) to keep regular players from stockpiling exactly the right amount of ammo for Day N. Don't go higher than 2 - too much randomness erodes the "preparation" loop the game is built around.BloodMoonWarning to −1 if your server runs on hardcore PvP rules and you don't want the red day-counter telegraphing horde nights.Game Stage on a multiplayer party uses diminishing returns, not averaging. The highest-stage member contributes ×1.0, the second ×0.5, the third ×0.25, and so on. Practical implication: a single high-level player joining a low-level group will still drag the party's Game Stage upward, and therefore the Blood Moon difficulty upward - even though loot rolls for each individual are based on per-player Loot Stage. See Leveling Speedrun for the full mechanic.
BloodMoonEnemyCount alone on busy servers - useless if MaxSpawnedZombies isn't raised proportionally; the map cap fires first.EnemyDifficulty - flipping from 0 to 1 makes every zombie hit harder and tank more, which is a separate scaling axis from spawn count.serverconfig.xml reference