Turn your Minecraft world into a nonstop survival scenario.
Server-side only: install it on the server. Players do not need the mod installed on their clients to join.
Current build targets: NeoForge 1.21.1, NeoForge 1.20.1, and Forge 1.20.1.
This mod removes the "safe daytime" feeling by spawning zombie-type mobs around players all day and night. As in-game days pass, those mobs get more dangerous through scaling and configurable attribute systems.
If you want tension at all times instead of a peaceful daytime loop, this mod is built for that.
- Zombies can be configured to ignore sunlight burning (enabled by default).
- Zombie-class mobs spawn around survival players day and night.
- Torch/lantern/glowstone-style light can optionally block custom spawns.
- Optional zombie block breaking can add configurable base pressure after a chosen day.
- Horde events can occur naturally or be started manually.
- Blood moon nights can occur randomly or be forced manually.
- Difficulty scaling increases pressure over time.
- Early-game daytime spawning can be delayed for a configurable number of days.
- Optional morning day-counter titles can show the current day at dawn.
- Advanced attribute modifiers let you tune enemy stats deeply.
- Biome and dimension context profiles let stats change by location.
- Custom spawn placement avoids unloaded chunks to reduce server stalls.
- Most behavior is configurable live with commands.
- Config file includes extensive comments and safe ranges.
- Server-only install support for multiplayer servers.
This is not "just more zombies." It is a complete configurable zombie-pressure system.
Custom spawning can run 24/7 near players. You control:
- how often spawn checks happen
- chance of a spawn wave
- how many mobs per wave
- per-player nearby cap
- how far from players mobs can spawn
- how many spawn position attempts are made per mob
Result: day and night are both dangerous, and pressure can be tuned for casual servers or hardcore worlds.
Hordes are timed high-pressure events:
- increased spawn intensity
- larger wave sizes
- configurable duration and frequency
- optional on-screen alerts for players
Admins can force-start or stop hordes with commands.
Every night can roll a blood moon chance:
- stronger spawn pressure than normal nights
- stacks with other multipliers
- can be forced by command now/tonight
The mod can scale enemy pressure as days pass:
- legacy scaling fields for movement speed and health boost
- full attribute scaling through the new attribute system
- configurable start day and max day for progression curve
This creates a "race against time" survival feeling.
Spawn composition can change by biome:
- deserts/badlands: more husks
- water biomes: more drowned
- mushroom fields can be safe zones (configurable)
Optional custom spawning in Nether and End is supported.
After a player death, spawn pressure can be reduced temporarily to prevent repeated instant deaths and frustration loops.
Zombies can be allowed to break blocks after a configured day.
This is off by default because it can damage bases. If enabled, you control:
- start day
- check interval
- break chance
- range
- max block hardness
- whether blocks drop items
- whether a target or obstacle is required
- whether mobGriefing can stop it
- whether containers, tool-required blocks, and light sources are protected
The default hardness limit is meant for soft blocks and wooden doors, while stone, ores, containers, machines, and light blocks stay protected unless you loosen the safety settings.
Use /zblockbreak dayone if you want to enable it and make it active immediately.
- kill tracking
- kill milestones with advancements at 250, 1000, and 3000 zombie kills
- cooldown tracking
- optional atmospheric spawn particles/sounds
- optional extra drops
- optional debug logging for troubleshooting
This mod now includes a layered attribute pipeline for zombie-class mobs when they enter the world:
- Health
- Attack damage
- Movement speed
- Armor
- Follow range
- Knockback resistance
For each spawned mob, attribute value flow is:
- start from vanilla base value
- apply
baseprofile (global for all zombie-class mobs) - apply
variantprofile (zombie/husk/drowned/zombie villager) if enabled - apply
contextmultipliers (biome/dimension) if enabled - apply attribute day-scaling (if enabled)
- apply legacy scaling compatibility values (health/speed)
- clamp to safe min/max values
You can now tune difficulty in a controlled way:
- "All mobs are 15% faster globally"
- "Husks hit harder than regular zombies"
- "Drowned are tankier in water biomes"
- "Nether spawns are faster and more aggressive"
- "Late-game scaling increases follow range so mobs detect players sooner"
Context profiles multiply attributes based on spawn location.
Contexts:
desertwatermushroomnetherend
If multiple contexts apply, multipliers stack multiplicatively.
Example:
- Desert speed multiplier =
1.10 - Nether speed multiplier =
1.20 - Spawn in Nether desert-like context => combined speed multiplier is about
1.32
All commands require OP level 2.
| Command | What it does |
|---|---|
/zhelp |
Shows built-in command help. |
/zburn <true|false> |
Controls zombie daylight burning. true means they burn in daylight, false means they do not. |
/zday [status|set <day>] |
Shows or sets the world day counter. |
/zkill |
Removes all zombie-class entities from loaded levels. |
/zcleanup [uninstall] |
Removes loaded zombie leftovers, resets apocalypse event state, and can pause core systems for safe temporary removal. |
| Command | What it does |
|---|---|
/zhorde start |
Starts a horde event immediately. |
/zhorde stop |
Stops the active horde event. |
/zhorde status |
Shows horde/blood-moon state and active spawn multiplier. |
/zbloodmoon |
Forces blood moon now if night, or queues it for tonight if day. |
| Command | What it does |
|---|---|
/zstats |
Shows your own stats if run by player; server summary if run from console. |
/zstats <player> |
Shows stats for a specific player. |
/zstats all |
Shows server totals. |
/zstats clear |
Clears tracked stats, milestone progress, and cooldown state. |
| Command | What it does |
|---|---|
/zscaling status |
Shows current scaling day/factor and attribute system status. |
| Command | What it does |
|---|---|
/zdayspawn status |
Prints full spawn/settings summary. |
/zdayspawn enabled <true|false> |
Master toggle for custom spawning. |
/zdayspawn chance <0.0-1.0> |
Spawn-wave chance per spawn interval. |
/zdayspawn babychance <0.0-1.0> |
Chance for baby zombie spawns. 0.0 disables new baby zombie-class spawns. |
/zdayspawn interval <ticks> |
Normal spawn interval. |
/zdayspawn eventinterval <ticks> |
Spawn interval during horde/blood moon. |
/zdayspawn amount <1-50> |
Zombies attempted per wave. |
/zdayspawn attempts <1-40> |
Spawn position attempts per zombie. |
/zdayspawn max <1-500> |
Max nearby zombie-class mobs per player. |
/zdayspawn range <16-128> |
Horizontal spawn range around player. |
/zdayspawn mindist <8-64> |
Minimum spawn distance from player. |
/zdayspawn daylightstart <0-3650> |
Disable custom daytime spawning until this day counter. |
/zdayspawn maxlight <-1-15> |
Maximum block light for custom spawns. -1 ignores light. |
/zdayspawn daycounter <true|false> |
Toggle the morning on-screen day counter. |
/zdayspawn sky <true|false> |
Overworld spawn requires open sky. |
/zdayspawn variants <true|false> |
Enable variant spawning logic. |
/zdayspawn nightboost <true|false> |
Enable night spawn chance boost. |
/zdayspawn horde <true|false> |
Enable horde system. |
/zdayspawn hordechance <0.0-1.0> |
Chance scheduled horde day starts a horde. |
/zdayspawn bloodmoon <true|false> |
Enable random blood moon system. |
/zdayspawn scaling <true|false> |
Enable day-based scaling. |
/zdayspawn attributes <true|false> |
Enable advanced attribute modifier system. |
/zdayspawn attributescaling <true|false> |
Let attribute values scale by day factor. |
/zdayspawn variantprofiles <true|false> |
Enable per-variant attribute profiles. |
/zdayspawn contextprofiles <true|false> |
Enable biome/dimension context multipliers. |
/zdayspawn biomes <true|false> |
Enable biome-based variant chance modifiers. |
/zdayspawn nether <true|false> |
Allow custom spawning in Nether. |
/zdayspawn end <true|false> |
Allow custom spawning in End. |
/zdayspawn cooldown <true|false> |
Enable death cooldown system. |
/zdayspawn effects <true|false> |
Enable spawn particles/sounds. |
/zdayspawn debug <true|false> |
Enable debug logging. |
| Command | What it does |
|---|---|
/zblockbreak |
Shows current zombie block-breaking settings. |
/zblockbreak status |
Shows current zombie block-breaking settings. |
/zblockbreak dayone |
Enables zombie block breaking and sets the start day to 0. |
/zblockbreak enabled <true|false> |
Toggles zombie block breaking. |
/zblockbreak startday <0-3650> |
Sets the day when block breaking can start. |
/zblockbreak interval <20-72000> |
Sets how often each zombie can attempt block breaking. |
/zblockbreak chance <0.0-1.0> |
Sets the chance per scheduled block-breaking check. |
/zblockbreak range <1-4> |
Sets how far in front of the zombie it checks. |
/zblockbreak hardness <0.0-50.0> |
Sets the maximum block hardness zombies can break. |
/zblockbreak drops <true|false> |
Toggles item drops from zombie-broken blocks. |
/zblockbreak target <true|false> |
Requires zombies to have a valid target before breaking. |
/zblockbreak obstacle <true|false> |
Requires a blocked path or covered target before breaking. |
/zblockbreak mobgriefing <true|false> |
Makes mobGriefing and loader mob-griefing events control this feature. |
/zblockbreak containers <true|false> |
Allows or blocks breaking chests, furnaces, and block-entity blocks. |
/zblockbreak toolblocks <true|false> |
Allows or blocks breaking blocks that require the correct tool. |
/zblockbreak lights <true|false> |
Allows or blocks breaking light-emitting blocks. |
| Command | What it does |
|---|---|
/zattr status |
Shows attribute/scaling status summary. |
/zattr keys |
Shows key-group format guide. |
/zattr keys all |
Prints all available numeric and toggle keys. |
/zattr get <key> |
Reads one numeric key value. |
/zattr set <key> <value> |
Live-updates one numeric key value. |
/zattr toggle <key> <true|false> |
Live-updates a supported boolean toggle key. |
| Term | Meaning |
|---|---|
| Zombie-class | Zombie, Husk, Drowned, Zombie Villager. |
| Key | The exact setting identifier used by /zattr get and /zattr set. Example: base.health.multiplier. |
| Toggle key | A boolean key used by /zattr toggle. Example: attributes.enabled. |
| Multiplier | A percentage-like scale factor. 1.0 = unchanged, 1.25 = +25%, 0.8 = -20%. |
| Bonus | Flat amount added/subtracted after multiplier. |
| Context profile | Attribute multipliers that apply in specific biome/dimension contexts. |
| Variant profile | Attribute profile for one mob variant (zombie/husk/drowned/villager). |
| Scaling factor | Day progression value from 0.0 to 1.0 based on your scaling start/max days. |
| Legacy scaling | Older compatibility scaling fields (legacy.speedMultiplier, legacy.healthBonus). |
| Spawn interval | Time between spawn checks. 20 ticks = 1 second. |
| Spawn attempts | Number of location tries per mob to find valid spawn points. |
| Per-player cap | Max nearby zombie-class mobs around each player before new spawns are skipped. |
General shape:
group.subject.attribute.mode
Examples:
base.health.multipliervariant.husk.attack.bonuscontext.nether.speed.multiplierlegacy.healthBonus
base.<health|attack|speed|armor|follow|knockback>.<multiplier|bonus>scale.<health|attack|speed|armor|follow|knockback>.<multiplier|bonus>variant.<zombie|husk|drowned|villager>.<health|attack|speed|armor|follow|knockback>.<multiplier|bonus>context.<desert|water|mushroom|nether|end>.<health|attack|speed|armor|follow|knockback>.multiplierlegacy.<speedMultiplier|healthBonus>
attributes.enabledattributes.scalingattributes.variantProfilesattributes.contextProfiles
base.health.multiplierbase.health.bonusbase.attack.multiplierbase.attack.bonusbase.speed.multiplierbase.speed.bonusbase.armor.multiplierbase.armor.bonusbase.follow.multiplierbase.follow.bonusbase.knockback.multiplierbase.knockback.bonus
scale.health.multiplierscale.health.bonusscale.attack.multiplierscale.attack.bonusscale.speed.multiplierscale.speed.bonusscale.armor.multiplierscale.armor.bonusscale.follow.multiplierscale.follow.bonusscale.knockback.multiplierscale.knockback.bonus
variant.zombie.health.multipliervariant.zombie.health.bonusvariant.zombie.attack.multipliervariant.zombie.attack.bonusvariant.zombie.speed.multipliervariant.zombie.speed.bonusvariant.zombie.armor.multipliervariant.zombie.armor.bonusvariant.zombie.follow.multipliervariant.zombie.follow.bonusvariant.zombie.knockback.multipliervariant.zombie.knockback.bonus
variant.husk.health.multipliervariant.husk.health.bonusvariant.husk.attack.multipliervariant.husk.attack.bonusvariant.husk.speed.multipliervariant.husk.speed.bonusvariant.husk.armor.multipliervariant.husk.armor.bonusvariant.husk.follow.multipliervariant.husk.follow.bonusvariant.husk.knockback.multipliervariant.husk.knockback.bonus
variant.drowned.health.multipliervariant.drowned.health.bonusvariant.drowned.attack.multipliervariant.drowned.attack.bonusvariant.drowned.speed.multipliervariant.drowned.speed.bonusvariant.drowned.armor.multipliervariant.drowned.armor.bonusvariant.drowned.follow.multipliervariant.drowned.follow.bonusvariant.drowned.knockback.multipliervariant.drowned.knockback.bonus
variant.villager.health.multipliervariant.villager.health.bonusvariant.villager.attack.multipliervariant.villager.attack.bonusvariant.villager.speed.multipliervariant.villager.speed.bonusvariant.villager.armor.multipliervariant.villager.armor.bonusvariant.villager.follow.multipliervariant.villager.follow.bonusvariant.villager.knockback.multipliervariant.villager.knockback.bonus
context.desert.health.multipliercontext.desert.attack.multipliercontext.desert.speed.multipliercontext.desert.armor.multipliercontext.desert.follow.multipliercontext.desert.knockback.multiplier
context.water.health.multipliercontext.water.attack.multipliercontext.water.speed.multipliercontext.water.armor.multipliercontext.water.follow.multipliercontext.water.knockback.multiplier
context.mushroom.health.multipliercontext.mushroom.attack.multipliercontext.mushroom.speed.multipliercontext.mushroom.armor.multipliercontext.mushroom.follow.multipliercontext.mushroom.knockback.multiplier
context.nether.health.multipliercontext.nether.attack.multipliercontext.nether.speed.multipliercontext.nether.armor.multipliercontext.nether.follow.multipliercontext.nether.knockback.multiplier
context.end.health.multipliercontext.end.attack.multipliercontext.end.speed.multipliercontext.end.armor.multipliercontext.end.follow.multipliercontext.end.knockback.multiplier
legacy.speedMultiplierlegacy.healthBonus
-
Make all spawned mobs slightly tankier:
/zattr set base.health.multiplier 1.15 -
Make only husks hit harder:
/zattr set variant.husk.attack.multiplier 1.30 -
Make drowned faster in water areas:
/zattr set context.water.speed.multiplier 1.20 -
Disable biome/dimension context effects quickly:
/zattr toggle attributes.contextProfiles false -
Check current value before changing:
/zattr get variant.drowned.armor.multiplier -
List all keys if unsure:
/zattr keys all
All settings are in the common config (zombieapocalypseaddon-common.toml) and include explanatory comments.
Main sections:
generaldayspawningvariantsblockbreakinghordebloodmoonscalingattributesnightspawningbiomesdeathcooldowneffectsstatisticsdrops
- Install on the server for multiplayer worlds.
- Client install is optional. Players can join without the mod.
- Install on the client only if you also want it active in singleplayer.
- Intended for NeoForge or Forge servers matching the release file you download.
- For troubleshooting, enable debug logs with:
/zdayspawn debug true
- Build:
./gradlew build - Full clean build:
./gradlew clean build - Run tests:
./gradlew test