Zombie Apocalypse 999
Transform your Minecraft server into an epic survival experience with evolving zombies, blood moons, crafting, and dynamic mutation mechanics!
Zombie Apocalypse 999 is a comprehensive zombie survival plugin that introduces unique zombie mutations, an evolving threat system, player infection, custom crafting, safezones, permanent hearts, and configurable gameplay mechanics. Each day brings stronger zombies, new challenges, and evolving threats.
Features
🧟 Dynamic Zombie Evolution System
- Zombies gain experience from killing passive mobs and players, leveling up to become stronger
- Each level increases speed, health, and damage
- Zombies display their level above their head (e.g. "Zombie LV3")
- Normal zombies that reach max level mutate into a random special type
- Fully configurable EXP values and max level cap
🌙 Blood Moon Events
- Powerful zombie surge events that occur on a configurable schedule (default every 5 days)
- Massively increased spawn rates and mutation chances during blood moons
- Dramatic announcement with sound effects and particles
- Can ignore darkness requirements so zombies spawn everywhere
- Supports advanced cron-like scheduling with time windows
🧬 Unique Zombie Mutations
Every zombie has a chance to spawn as one of 11 unique mutation types:
| Mutation | Description |
|---|---|
| Tank | Massive health pool with damage resistance, slow but devastating |
| Charger | Lightning-fast zombie that rushes players with a speed boost |
| Assassin | Invisible with a faint particle aura, ambush specialist |
| Blight | Spreads poison on hit with a toxic particle cloud |
| Burster | Explodes on death, releasing a poison cloud and dealing area damage |
| Spitter | Ranged attacker that launches poison projectiles |
| Frost | Applies slowness on hit, chilling players to the bone |
| Shrieker | Screams to alert and aggro all nearby zombies toward the player |
| Cryo | Leaves frozen trails, can flash-freeze players, shatters on death dealing AoE damage |
| Inferno | Shoots fireballs, leaves fire trails, and drops lava on death |
| Leech | Steals health on hit, has a life-steal aura, heals nearby zombies on death |
Each mutation has individually toggleable abilities in the configuration. When a player becomes a mutation through infection, the mutation can also grant them permanent extra hearts (configurable per mutation).
🫀 Custom Item Drops
- Zombie Heart — All zombies have a 5% chance to drop a Zombie Heart (configurable)
- Each mutation type has its own unique loot table with configurable drop chances
- Loot tables support per-item drop chances and custom materials
🧪 Crafting System
Access the crafting menu with /za crafting to craft special items:
Cure Potion
- Recipe: 1 Water Bottle + 2 Rotten Flesh + 2 Diamond Blocks
- Drinking the Cure Potion removes all infection and restores you to normal
Purified Zombie Heart
- Recipe: 8 Zombie Hearts + 1 Cure Potion (center)
- Eating a Purified Zombie Heart permanently grants +2 extra hearts
- Extra hearts persist through infection, mutation, curing, and death — they are truly permanent
- Stackable and can be used multiple times for even more hearts
The entire crafting system can be enabled or disabled by server owners.
❤️ Permanent Extra Hearts
Players can permanently grow their hearts beyond the default 10 through two sources:
- Purified Zombie Hearts — each one eaten grants +2 permanent hearts
- Mutations — each mutation type can grant a configured number of permanent hearts when a player becomes it (default 30 per mutation)
A master cap limits how many hearts any player can hold: the total (base 10 + all extra) can never exceed the configured maximum (default 30). Once a player is at the cap, extra hearts are not applied and items are not consumed. The cap and both heart settings are fully configurable.
🦠 Player Infection System
- Zombies have a configurable chance to infect players on hit
- Infection builds up over time, displayed as a boss bar
- Golden apples and enchanted golden apples can reduce infection (individually configurable, can be disabled)
- At 100% infection, the player transforms into a zombie with a random mutation
- Infected players gain abilities matching their mutation type
- Infected players are ignored by zombies and can hunt other players
- Use a Cure Potion to fully reverse the transformation and restore your health — all permanent hearts are kept
🛡️ Safezone System
- Create protected areas where zombies cannot spawn or enter
- Each player can own up to 3 safezones (configurable)
- Safezones start with a 10-block radius and can be expanded up to 50 blocks
- Optional border particles to visualize safezone boundaries
🌍 Per-World Configuration
- Configure different zombie behavior for each world (Overworld, Nether, End)
- Per-world settings for mutation rates, spawn rates, damage, speed, and health multipliers
- Enable fire immunity, teleportation abilities, or restrict which mutations can spawn
- Override spawn time modes and zombie caps per world
🎚️ Difficulty Presets
Four built-in difficulty presets that adjust multiple settings at once:
| Preset | Description |
|---|---|
| Casual | Relaxed experience — fewer zombies, lower infection chance, slower scaling |
| Normal | Standard balanced experience |
| Hardcore | Challenging survival — more zombies, higher mutation rates, stronger enemies |
| Nightmare | Brutal difficulty — maximum spawns, very high infection chance, no golden apple cures |
🧠 Advanced Zombie AI
- Memory System — Zombies remember players they've seen and pursue them
- Noise Detection — Sprinting, eating, shooting bows, and placing torches attract nearby zombies
- Pack Behavior — Zombies form groups with leaders that coordinate attacks
- Block Breaking — Zombies can break through doors, fences, and chests to reach players (configurable per-block cooldowns)
- Sunlight Protection — Zombies don't burn in sunlight by default (configurable)
🏗️ Structure Generation
Ruined structures spawn naturally in newly generated chunks, adding atmosphere and loot to explore:
| Structure | Description |
|---|---|
| Ruined House (Small) | A small damaged wooden house with a crafting table, chest, cobwebs, and a hidden zombie spawner underground |
| Ruined House (Large) | A 2-story wooden house with beds, cobwebs, vines, structural damage, and a hidden zombie spawner |
| Ruined Hospital | A large 2-story white concrete hospital with patient rooms, storage rooms, loot barrels, a "HOSPIT L" sign with missing letter, redstone "blood" on floors, vines, structural damage, and two hidden zombie spawners |
Ruined Hospital Loot:
- Patient Room Barrels — Rotten Flesh (0-4), Cobwebs (0-5), Redstone (0-3)
- Storage Room Barrels — Iron Ingots (0-8), Diamonds (0-3), Mending Book (0-1), Cobwebs (0-8)
- Each possible amount has an equal chance of being selected (including getting 0 of an item)
- Loot is scattered randomly across barrel slots
All structures have configurable spawn chances, biome restrictions, and Y-range.
📦 Custom Resource Pack
- Sends a custom zombie texture pack to players when they join
- Zombies can appear as Zombie, Husk, or Drowned variants, each with its own custom texture
- Optional download prompt and SHA-1 hash caching so returning players only download once
- Players who decline the pack can be kept or removed (configurable)
- The pack can be fully disabled to keep vanilla zombie looks
Commands
Player Commands
| Command | Description |
|---|---|
/za or /zombieapocalypse999 |
Show help and available commands |
/za crafting |
Open the crafting menu GUI |
/za info |
View current day, mutation rate, difficulty, and active zombie counts |
Admin Commands (requires zombieapocalypse.admin)
| Command | Description |
|---|---|
/za reload |
Reload all configurations without restarting |
/za preset <casual\|normal\|hardcore\|nightmare> |
Change difficulty preset |
/za spawn <type> |
Spawn a specific zombie mutation type |
/za killzombies |
Remove all custom zombies from the server |
/za clearzombies <radius> |
Clear custom zombies within a radius around you |
/za forcebloodmoon |
Force start a blood moon event |
/za forcestopbloodmoon |
End the current blood moon event |
/za event <start\|stop> <bloodmoon> |
Control special events |
/za cure give <player> <amount> |
Give cure potions to a player |
Safezone Commands (requires zombieapocalypse.safezone or zombieapocalypse.admin)
| Command | Description |
|---|---|
/za safezone create <name> |
Create a safezone at your location |
/za safezone remove <name> |
Remove a safezone you own |
/za safezone list |
List all safezones |
/za safezone expand <name> [amount] |
Expand a safezone's radius (default +5 blocks) |
Aliases
/za→/zombieapocalypse/za999→/zombieapocalypse999
Permissions
| Permission | Description | Default |
|---|---|---|
zombieapocalypse.admin |
Access to admin commands (reload, spawn, kill, blood moon, cure give, presets) | OP |
zombieapocalypse.spawn |
Permission to spawn zombies manually | OP |
zombieapocalypse.safezone |
Permission to create and manage safezones | — |
Configuration
All gameplay settings live in the plugin's main configuration file and are loaded with /za reload. Default values are shown in parentheses.
General
| Option | Description |
|---|---|
debug.enabled (false) |
Enables verbose debug logs in the console for troubleshooting |
world-whitelist (empty) |
List of worlds where the plugin is active. Leave empty for all worlds |
Difficulty Presets
| Option | Description |
|---|---|
difficulty.current_preset (normal) |
The currently active preset: casual, normal, hardcore, nightmare, or custom |
Each preset (casual, normal, hardcore, nightmare) defines the following values, applied when the preset is active:
description— Display text for the presetmutation_rate_base/mutation_rate_daily_increase— Base and daily growth of the mutation chancezombie_base_speed/zombie_base_damage— Starting zombie combat statszombie_max_speed/zombie_max_damage— Hard caps for scalingmax_zombies_per_chunk/max_zombies_worldwide— Spawn density limitsbloodmoon_enabled/bloodmoon_frequency— Blood moon toggle and intervalallow_golden_apple_cure/golden_apple_cure— Whether golden apples cure infectioninfection_chance_on_hit— Infection application chance on zombie hitspawn_rate_multiplier— Global spawn pressure multiplierzombie_speed_multiplier/zombie_damage_multiplier— Multipliers applied to zombie stats
Zombie Stats
| Option | Description |
|---|---|
zombie_stats.base_speed (0.23) |
Base movement speed of newly spawned zombies |
zombie_stats.base_damage (2.0) |
Base attack damage of newly spawned zombies |
zombie_stats.max_speed (0.35) |
Hard cap on how fast zombies can scale |
zombie_stats.max_damage (40.0) |
Hard cap on how strong zombie damage can scale |
Mutation Rates
| Option | Description |
|---|---|
mutation_rates.base (10.0) |
Base chance (%) a spawned zombie is a special mutation |
mutation_rates.daily_increase (1.5) |
How much the mutation chance (%) grows each day |
Spawning Rules
| Option | Description |
|---|---|
zombies.spawn_time_mode (both) |
When zombies spawn: day, night, or both |
zombies.require_darkness (true) |
If true, zombies only spawn in low light levels |
zombies.max_light_level (7) |
Max light level a block can have for zombie spawning |
zombies.max_per_chunk (20) |
Max zombies allowed in a single chunk |
zombies.max_worldwide (100) |
Max zombies allowed across the entire world |
zombies.bloodmoon_ignores_darkness (true) |
Darkness checks are skipped during blood moons |
zombies.burn_in_sunlight (false) |
If true, zombies burn in sunlight like vanilla |
zombies.bloodmoon_enabled (true) |
Whether periodic blood moons occur |
zombies.bloodmoon_frequency (5) |
How often blood moons occur (every X days) |
zombies.closest_to_player (2) |
Minimum distance (blocks) zombies spawn from players |
zombies.furthest_from_player (30) |
Maximum distance (blocks) zombies spawn from players |
Blood Moon Events
| Option | Description |
|---|---|
events.bloodmoon.default_spawn_multiplier (2.0) |
Spawn multiplier used by periodic and forced blood moons |
events.bloodmoon.default_mutation_multiplier (10.0) |
Mutation chance multiplier during blood moons |
events.bloodmoon.schedule_enabled (false) |
If true, use the schedule list instead of simple "every X days" |
events.bloodmoon.schedule |
Cron-like entries with day patterns (*, */5, 3,7,12, 10-20), start/end world ticks (0-23999, wrap across midnight), spawn/mutation multipliers, and an id label |
Mutation System
| Option | Description |
|---|---|
mutation_system.show_mutation_names_above_zombies (true) |
Show each zombie's mutation type as a nameplate |
Per-World Settings
Each world can override global behavior. If a world is not listed, defaults apply. Available options:
enabled(true) — Whether zombies spawn in this worldmutation_rate_multiplier(1.0) — Multiplies the base mutation ratespawn_rate_multiplier(1.0) — Multiplies zombie spawn frequencydamage_multiplier(1.0) — Multiplies zombie damagespeed_multiplier(1.0) — Multiplies zombie speedhealth_multiplier(1.0) — Multiplies zombie healthfire_immune(false) — Zombies take no fire damagecan_teleport(false) — Zombies can teleport like Endermenteleport_chance(0.1) — Chance to teleport when damaged (if enabled)teleport_range(8) — Maximum teleport distanceenabled_mutations/disabled_mutations(empty) — Restrict which mutations can spawncustom_spawn_time_mode(null) — Override the global spawn time mode for this worldmax_zombies_override(null) — Override the global worldwide zombie cap for this world
Safezones
| Option | Description |
|---|---|
safezones.enabled (true) |
Enable or disable the safezone system |
safezones.default_radius (10) |
Default radius (blocks) for new safezones |
safezones.max_radius (50) |
Maximum radius a safezone can be expanded to |
safezones.max_per_player (3) |
Maximum safezones a single player can own |
safezones.remove_zombies_on_create (true) |
Teleport zombies out when a safezone is created |
safezones.show_border_particles (true) |
Show particle effects at safezone borders |
safezones.border_particle_interval (40) |
How often (ticks) border particles appear (20 ticks = 1 second) |
Mutation Types
Each of the 11 mutations (tank, charger, assassin, blight, burster, spitter, frost, shrieker, cryo, inferno, leech) has its own block of settings:
spawn_chance— Relative weight for this mutation to be chosen (higher = more common)health_multiplier/speed_multiplier/damage_multiplier— Stat modifiersdamage_bonus— Extra attack scaling for fast striker-type mutationsbase_health— Direct base max health override for that mutationextra_hearts(30) — Permanent extra hearts granted to a player when they become this mutation (capped by the master heart cap)flash_freeze_chance— Chance (%) to apply a cryo freeze burst on hitfrozen_trail_duration/scorched_earth_duration— Seconds trail effects persistshatter_damage— Damage dealt by cryo death shatterfireball_cooldown— Seconds between inferno fireball attacksmeltdown_enabled— If true, inferno death can place lavaleech_aura_damage/leech_aura_radius— Passive life-steal aura valuesleech_on_hit_heal_multiplier— Percent of dealt damage returned as healing on hitdeath_heal_amount/death_heal_radius— Heal burst amount/radius on leech deathabilities— Toggle each individual ability on or off
Loot Drops
Each zombie type (normal, tank, charger, assassin, blight, burster, spitter, frost, shrieker, cryo, inferno, leech) has its own loot table:
enabled— Whether this zombie type drops lootdetailed_items— Each item entry has amaterialname and adrop_chance(%) for how often it drops
Advanced AI
| Option | Description |
|---|---|
ai.targeting.allow_creative / allow_spectator (false) |
Whether zombies target creative/spectator players |
ai.memory_duration (5000) |
Milliseconds a zombie remembers a player after losing sight |
ai.noise.sprint_range (20) |
Distance (blocks) sprinting attracts zombies |
ai.noise.eating_range (12) |
Distance eating attracts zombies |
ai.noise.bow_range (25) |
Distance shooting a bow attracts zombies |
ai.noise.torch_range (30) |
Distance placing a torch attracts zombies |
ai.group.leader_chance (0.3) |
Chance a spawned group has a leader |
ai.group.radius (15) |
Radius used for pack aggro spread |
ai.group.follow_radius (10) |
Distance followers keep from their leader |
ai.breaking.enabled (true) |
Master toggle for zombie block-breaking AI |
ai.breaking.radius (2) |
Max distance from which zombies consider blocks for breaking |
ai.breaking.default_cooldown_ticks (60) |
Default break delay (ticks) for blocks without an override |
ai.breaking.blocks |
Per-block cooldown overrides in ticks (doors, fences, chests) |
Evolution
| Option | Description |
|---|---|
evolution.enabled (true) |
Master toggle for zombie leveling/evolution |
evolution.exp_per_passive_mob (1.0) |
Experience gained per passive mob kill |
evolution.exp_per_player_kill (10.0) |
Experience gained per player kill |
evolution.max_level (10) |
Maximum level a zombie can reach; at max level normal zombies may mutate |
Infection System
| Option | Description |
|---|---|
infection_system.enabled (true) |
Master toggle for infection mechanics |
infection_system.chance_on_hit (5.0) |
Chance (%) per hit that a player becomes infected |
infection_system.infection_increase (10.0) |
How much (%) infection increases per successful infection roll |
infection_system.max_infection (100.0) |
Infection level that triggers full zombification |
infection_system.show_infection_bar (true) |
Show a boss bar with the player's current infection level |
infection_system.allow_golden_apple_cure (true) |
Whether golden apples can reduce infection |
infection_system.golden_apple_cure_percent (20.0) |
How much (%) a golden apple reduces infection |
infection_system.enchanted_golden_apple_cure_percent (50.0) |
How much (%) an enchanted golden apple reduces infection |
infection_system.max_total_hearts (30) |
Master cap on the total hearts a player can have (base 10 + all extra hearts from Purified Zombie Hearts and mutations). Set to -1 for no cap |
Custom Crafting
| Option | Description |
|---|---|
custom_crafting.enabled (true) |
Enable or disable the crafting menu and recipes (Cure Potion and Purified Zombie Heart). Admins can still give Cure Potions with /za cure give when disabled |
Custom Item Drops
| Option | Description |
|---|---|
custom_drops.zombie_heart.enabled (true) |
Whether managed zombies drop Zombie Hearts |
custom_drops.zombie_heart.drop_chance (5.0) |
Drop chance (%) for Zombie Hearts |
Resource Pack
| Option | Description |
|---|---|
resource_pack.enabled (true) |
Master toggle for the resource pack system |
resource_pack.zombie_custom_textures (true) |
Whether zombies use custom textures from the pack |
resource_pack.url |
Direct download URL (http/https) to the resource pack .zip |
resource_pack.hash |
Optional SHA-1 hash of the .zip so clients can cache it |
resource_pack.force (false) |
If true, players who decline/fail the download are kicked |
resource_pack.prompt_message |
Message shown to players when the pack is offered |
Persistent Data
| Option | Description |
|---|---|
data.current_day |
Internal day counter used for scaling and event logic. Do not edit manually |
Structures
Structure spawn chances, biome restrictions, and Y-ranges are configured separately per structure (Ruined House Small, Ruined House Large, Ruined Hospital).
Zombie Mutation Types
Available types for /za spawn: normal, tank, charger, assassin, blight, burster, spitter, frost, shrieker, cryo, inferno, leech
Experience a truly dynamic and evolving zombie apocalypse where every day brings new challenges and stronger threats!
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 | ||||
| 17h ago | 1 |
- Added: Master cap on the total number of hearts a player can have — extra hearts gained from Purified Zombie Hearts and from mutations are clamped so a player's total hearts (base 10 + extra) can never exceed the configured maximum (default 30)
- Added: Per-mutation extra heart grants — each mutation type can be configured to grant a set number of permanent hearts when a player becomes it, capped by the master heart cap (default 30 per mutation)
- Added: A fully configurable custom texture pack system that sends the server's zombie pack to players when they join, with optional download prompts and caching so returning players only download it once
- Added: Server owners can now enable or disable the custom crafting system entirely (Cure Potion and Purified Zombie Heart recipes)
- Added: Zombie Hearts can now be enabled, disabled, and have their drop chance adjusted to fit the server's difficulty
- Added: Zombies now randomly spawn as Zombie, Husk, or Drowned variants in any biome, each with its own custom texture
- Added: Zombies spawned from dungeon spawners inside ruined structures also use the new random variants
- Added: The custom texture pack is optional by default, so players who decline it are not removed from the server
## Bug Fixes
- Fixed: Zombie Heart drop chance was not being respected, causing hearts to always drop at a fixed rate regardless of the configured chance
- Fixed a bug where zombies would target spectator and creativemode players
- Ruined Hospital Structure** — A new 2-story white concrete hospital that generates naturally in the world
- Features a "HOSPIT L" sign on the front with a missing letter and a red cross symbol
- Contains multiple patient rooms across both floors, each with a bed and a loot barrel
- Two storage rooms on the first floor with higher-value loot barrels
- Redstone dust scattered on floors throughout the building to simulate blood
- Vines growing on the exterior walls for an abandoned look
- Cobwebs in corners and ceilings
- Random structural damage — missing blocks in walls, floors, and ceilings
- Two zombie spawners hidden underground beneath the first floor
- Staircase connecting the first and second floors
- Configurable spawn chance, biome restrictions, and Y-range in
structures.yml
### Hospital Loot
- Patient Room Barrels** — Each contains a random amount of: Rotten Flesh (0-4), Cobwebs (0-5), Redstone (0-3). Each possible amount has an equal chance of being selected, including 0
- Storage Room Barrels** — Each contains a random amount of: Iron Ingots (0-8), Diamonds (0-3), Mending Book (0-1), Cobwebs (0-8). Same equal-chance system for all amounts
- All loot is scattered randomly across barrel slots rather than stacked in order
- Crafting Menu GUI** — New
/zombieapocalypse999 craftingcommand (aliases:/za crafting,/za999 crafting) opens a crafting menu with two recipe buttons and a close button - Zombie Heart Drop** — All managed zombies now have a 5% chance to drop a custom "Zombie Heart" item (rotten flesh with custom NBT, stacks to 64)
- Purified Zombie Heart** — New craftable item made from 8 Zombie Hearts and 1 Cure Potion in a crafting GUI. Eating it permanently grants +2 extra hearts
- Permanent Extra Hearts** — Extra hearts from Purified Zombie Hearts persist through infection, mutation, curing, and all gameplay events
- Zombie Heart drop chance** is configurable in
config.ymlundercustom_drops.zombie_heart
## Changes
- Removed the standalone
/curecommand — the Cure Potion recipe is now accessed through the Crafting Menu GUI - Added
/zombieapocalypse999command with alias/za999as an additional way to access plugin commands - Updated help menu to include the new crafting command
## Bug Fixes
- Fixed hearts not restoring after curing infection** — Players who were fully infected and used a Cure Potion would remain at reduced max health because the infection was cleared before checking if the player needed full restoration. Hearts, potion effects, and metadata are now properly restored
- Added
/za cure give <player> <amount>so admins can directly distribute cure potions. - Added per-world mutation allow/deny behavior using
enabled_mutationsanddisabled_mutations. - Added scheduled blood moon windows with day-pattern matching and configurable spawn/mutation multipliers.
- Added a new world structure:
RuinedHouse2(two floors, ruined oak style, vines, cobwebs, top-floor bed, underground zombie spawner).
### Changes
- Blood moon behavior now supports configurable multipliers for spawn pressure and mutation rate.
- Blood moon scheduling can run independently from simple periodic intervals when enabled.
- Spawned mutation selection now consistently follows per-world mutation restrictions.
### Bug Fixes
- Zombified piglins are no longer affected by zombie-specific apocalypse systems and keep vanilla aggro behavior.
- Added one custom structure with configurable generation options in structures.yml
- Added per-world settings support
- Forgot everything else I added sorry
- Added /cure command that opens a custom GUI for crafting Cure potions
- Implemented Cure potion recipe system with custom crafting interface
- Added Cure potion item that can cure infection and revert zombies back to players
- Created GUI interface showing the recipe: water bottle in center, rotten flesh on sides, diamond blocks above and below
- Added crafting functionality that checks for required materials (1 water bottle, 2 rotten flesh, 2 diamond blocks)
- Implemented infection reset functionality that sets infection level to 0 when using Cure potion
- Added system to revert fully infected players (zombies) back to normal players when using Cure potion
- Integrated Cure potion with existing infection system for proper functionality
- Added configurable zombie sunlight burning behavior (
burn_in_sunlight: true/false) - Added configurable drop chances for all zombie types (normal, tank, charger, assassin, etc.)
- Added loot drops for normal zombies with configurable drop chance
- Added support for individual item drop chances within each zombie type
- Added protection to prevent custom zombies from transforming into drowned when underwater
### Changes
- All zombie types now support configurable drop chances in the configuration file
- Normal zombies can now drop items based on the new loot drop system
- Sunlight burning behavior can now be toggled via configuration
- Loot drops now support both simple format (common chance) and detailed format (individual chances)
### Configuration Updates
- Added
zombies.burn_in_sunlightoption to control if zombies burn in sunlight - Added
item_drop_chanceoption for common chance across all items in a type - Added
detailed_itemsoption for individual item drop chances - Added
normalzombie type to the loot_drops configuration
- Added configurable zombie spawn distances with
closest_to_playerandfurthest_from_playeroptions - Added explanatory comments for the new spawn distance configuration options
### Changed
- Zombies now spawn within a configurable distance range from players instead of a fixed range
- Default closest spawn distance is set to 2 blocks from player
- Default furthest spawn distance is set to 30 blocks from player
- Dynamic Zombie Evolution System**: Zombies now gain experience from kills and level up to become stronger
- Zombies gain 1 EXP per passive mob killed, 10 EXP per player killed
- Each level provides 1% more speed, HP, and damage
- Zombies display their level as "LV(number)" when nameplates are enabled
- Max level is 10, where normal zombies gain a mutation and mutated zombies gain a second mutation
- Experience required per level: 10 × level (e.g., 10 EXP for level 1→2, 20 EXP for level 2→3)
- New Commands**:
/za clearzombies <radius>- Removes all custom zombie mutations within a specified radius around the player/za event <start/stop> <bloodmoon>- Manually trigger or stop special events like blood moons
- Enhanced Event System**:
- Blood moon events can now be manually controlled
- Configurable Evolution System**:
- Enable/disable evolution system entirely
- Configure EXP rewards for different kill types
- Set maximum level cap
- All settings reloadable at runtime
- Fixed A Bug That Was Causing All Config Changes To Be Overwritten
- Fixed More Minors Bugs
- Fixed Minor Bug For Task Exception #10
- Added World-Whitelist Configuration Option
- Fixed issue where it wasn't working on multiple worlds
- Added /za forcestopbloodmoon command to stop bloodmoons
- Fixed issue where config values were missing
- Added a /za killzombies command
- Added a config option in the config.yml for you to enable/disable the Bloodmoon
- A new zombie mutation, "The Leech," has been added.
- The Leech has a chance to spawn based on the
spawn_chancesetting in theconfig.ymlfile. - Abilities:**
- Leeching Aura:** The Leech has a passive aura that drains health from nearby players and zombies, healing itself in the process.
- On-Hit Heal:** When The Leech damages a player, it heals for a portion of the damage dealt.
- Death Heal:** When The Leech dies, it releases a burst of healing energy that heals other nearby zombies.
#### Bug Fixes
- Fixed a bug where the day cycle and mutation rate would increase even when no players were online.
- Added Cryo Zombie:** A frost-based zombie with abilities focused on slowing and freezing players.
- Added Inferno Zombie:** A fire-based zombie that creates environmental hazards and attacks from a distance.
#### Configuration Rework
- Modular Mutations:** The
config.ymlfile has been restructured to make all mutations modular. Each mutation type now has its own subsection for easier management. - Customizable Abilities:** All abilities for the new Cryo and Inferno zombies (e.g., freeze chance, fireball cooldown) are now fully customizable in the config.
- Simplified Disabling:** Mutations can now be disabled by setting their
spawn_chanceto0. The separateenabledflag has been removed. - Configuration Warning:** The server console will now display a warning message on startup for each mutation that has a spawn chance of 0, to alert server owners of intentionally or accidentally disabled mutations.
#### Command Updates
- The
/za spawncommand has been updated to allow for manual spawning ofcryoandinfernozombies. - The help message for the command now lists the new zombie types.
#### Zombie Population Control
- Worldwide Zombie Limit:** Added a configurable
max_worldwideoption (default: 100) to limit the total number of special zombies allowed to exist in the world at one time. - Per-Chunk Zombie Limit:** Added a configurable
max_per_chunkoption (default: 20) to prevent too many zombies from spawning in a single chunk. - Dynamic Spawning:** The zombie spawning system now respects both the worldwide and per-chunk limits, preventing new spawns if either cap is reached.
- New Zombie Mutation: Shrieker:**
- A new, fast, non-attacking zombie that shrieks to attract other zombies to the player's location.
- Configurable spawn chance (default 10%).
- Drops an Echo Shard on death.
- Configurable Stat Caps:**
- Added
max_speedandmax_damageoptions to theconfig.ymlto prevent zombies from becoming infinitely powerful.
### Configuration Changes
- The spawn chances for all existing zombie mutations have been adjusted to accommodate the new Shrieker zombie.
- Added a new
shriekersection to theloot_dropsconfig.
### Bug Fixes
- Resolved an issue that caused the plugin to fail to load if the
config.ymlfile was missing.
Breaking Enabled — Option to turn zombies’ block-breaking behavior on or off.
Breaking Radius — Sets how far zombies can reach to break blocks around their target.
Default Cooldown — The general cooldown between block-breaking attempts for all blocks.
Per-Block Cooldowns — Specific cooldowns for individual blocks, so some blocks can take longer or shorter to break than others.
Behavior Changes:
Zombies will now follow the configured rules instead of hardcoded values.
Any block not listed under per-block cooldowns will use the default cooldown.
Zombies can now break blocks in their way.
Config-controlled with block_breaking.enabled, radius, cooldown_ticks, breakable_blocks.
Noise & Light Awareness (Aggro Triggers)
Zombies aggro when players:
Sprint
Eat food
Shoot bows
Place torches/light blocks
Smarter Targeting (Memory System)
Zombies remember their last seen target for a few seconds instead of instantly dropping aggro.
Nearby zombies aggro when one spots a player.
Leader/Follow Behavior
Each group has a leader
Followers move toward their leader when idle.
Blood Moon Enhancements
Doubles zombie spawn counts.
Applies strength buffs.
Adds sounds & particles when triggered.
Smarter safe spawn location checks.
Integrated with time-of-day config (day, night, both).
Zombies constantly scan for nearby players within a 50-block radius.
They calculate distance to each player and target the closest uninfected player.
Fully infected players are ignored, effectively removing them from the zombie’s threat list.
If no uninfected players are nearby, the zombie stops targeting anyone.
Every 10 ticks, the plugin loops through all zombies in all worlds to refresh AI targets and abilities.
Zombies check if their current target is still valid, updating movement, potion attacks, or burster effects.
This ensures the AI remains responsive and adaptive in real-time.
If no valid target exists, zombies reset their target to null, preventing wandering aimlessly or attacking fully infected players.
This keeps AI efficient and purposeful, ensuring they always prioritize threats.
Added infection system with configurable infection chance, max infection, and increase per zombie hit.
Players now have infection percentage tracked persistently (players.yml).
Infection can be visualized with a boss bar showing current infection percentage.
Players can be cured partially by consuming golden apples or enchanted golden apples.
Infection spreads when infected players kill other players or are killed by zombies.
Fully infected players transform into mutated zombies with one of several mutation types: tank, charger, assassin, blight, burster, spitter, frost.
Mutations provide unique attributes: max health, potion effects, and visual indicators.
Fully infected players display custom name (Infected <player>).
Infection persists across player disconnects and server restarts.
Added support for sunlight protection on zombies (prevent natural burning).
Infection system and mutation features are fully configurable in config.yml.
Added /zombieapocalypse and /za command handler.
Commands implemented:
/za reload – reloads config and infection settings.
/za info – shows current day, mutation rate, blood moon status, and active zombies per type.
/za spawn <type> – spawn custom zombies (normal, tank, charger, assassin, blight, burster, spitter, frost) near player.
/za forcebloodmoon – triggers blood moon event immediately.
Command permissions:
zombieapocalypse.admin for reload and force blood moon.
zombieapocalypse.spawn for spawning zombies.
Spawned zombies now scale base speed and damage with current day (speed and damage multipliers applied).
Added Burster ability: gains speed boost when near a player (<5 blocks).
Modified AI for creatures to run from fully infected players (similar to running from zombies).
Blight and Frost zombie attacks now apply unique potion effects on players:
blight → poison effect.
frost → slowness effect.
Zombies spawned via commands now fully support mutation-based attributes and visual setup.
Boss bar dynamically updates infection progress and changes color when fully infected.
🐛 Bug Fixes
Mutation System
✅ Fixed mutation percentage normalization - Now properly handles config values that sum to 100% or less
✅ Fixed fallback behavior - When total mutation chance < 100%, remaining percentage becomes normal zombies
✅ Added config validation - Plugin now validates mutation chances and warns if they exceed 100%
AI & Pathfinding
✅ Fixed AI targeting conflicts - Removed excessive zombie.setTarget() calls that interfered with Bukkit's pathfinding
✅ Fixed erratic movement - Replaced velocity-based hacks with proper pathfinding approaches
✅ Improved obstacle avoidance - Enhanced navigation without causing erratic zombie motion
Spawning System
✅ Fixed spawn location validation - Improved spawn point checking to prevent zombies spawning in invalid locations
✅ Fixed chunk density tracking - Properly handles zombie counts per chunk for mutation surge warnings
✨ New Features
New Mutation Types
🧪 Blight Zombie - Inflicts Poison II on hit with green particle aura (-20% health, normal speed)
💥 Burster - Explodes in poison cloud on death with green swirl particles (0.5x health, 1.2x speed)
🧪 Spitter - Ranged attacker that throws harming and poison potions (2x health, 0.5x speed)
❄️ Frost Zombie - Applies Slowness II and Mining Fatigue on hit with snowflake particles (normal stats)
Enhanced Game Systems
🎯 Improved AI Targeting - Better player detection and priority targeting
🧭 Advanced Navigation - Zombies can now navigate obstacles more effectively
💧 Water Navigation - Zombies get Dolphin's Grace in water and can swim toward targets
🪜 Ladder Climbing - Zombies can now climb ladders to reach players
New Abilities & Effects
🧪 Spitter Projectiles - Throws harming + poison potions at players within 15 blocks
💥 Burster Death Explosion - Creates poison cloud explosion affecting nearby entities
❄️ Frost Debuffs - Applies slowness and mining fatigue on hit
🧪 Blight Infection - Poisons players on successful attacks
Command System Enhancements
📊 /za info - Now shows detailed zombie counts by type
🎮 /za spawn - Supports all new mutation types (blight, burster, spitter, frost)
🌕 /za forcebloodmoon - New admin command to manually trigger blood moon
📝 Enhanced help - Better command descriptions and usage examples
Performance Optimizations
🚀 Chunk-based AI processing - Distributed AI updates across loaded chunks
📊 Reduced entity scanning - More efficient zombie processing
🎯 Optimized targeting - Better performance for player detection
🔧 Technical Improvements
Configuration System
📋 Complete config.yml - Full configuration with all mutation types and settings
🔍 Config validation - Automatic validation of mutation percentages
📊 Config documentation - Comprehensive comments explaining all settings
Event Handling
🧟 Enhanced death events - Proper handling of burster explosions
⚔️ Improved combat events - Special effects for all mutation types on hit
☀️ Sunlight protection - Fixed zombie combustion prevention
Persistence & Data
💾 Proper data saving - Current day and game state persistence
🏷️ Enhanced metadata - Better zombie type tracking and identification
📈 Statistics tracking - Zombie counts and type distribution
Visual & Audio Effects
✨ Particle systems - Unique visual effects for each mutation type
🔊 Sound effects - Appropriate sounds for abilities and events
🎨 Custom names - Colored names showing zombie types and health
🛡️ Balance & Gameplay
Progression System
📈 Daily scaling - Zombie stats increase by 5% per day
🌕 Blood moon events - Every 5 days, mutation rate becomes 100%
🎯 Group spawning - Zombies spawn in groups that grow with each day
Difficulty Tuning
⚖️ Configurable stats - All zombie attributes adjustable via config
🎚️ Mutation tuning - Individual mutation chances configurable
📊 Density limits - Prevents excessive zombie clustering
📋 Admin & Utility Features
Debug Tools
🔍 Mutation distribution logging - Shows current mutation chances
🧹 Cleanup command - Emergency zombie removal utility
📊 Status reporting - Detailed game state information
Permission System
🔐 Enhanced permissions - Separate permissions for admin and spawn commands
👥 OP defaults - Appropriate default permission settings
🚀 Performance & Stability
Memory Optimization
📉 Reduced entity scanning - More efficient world entity processing
🎯 Targeted updates - Only process zombies that need AI updates
🗺️ Chunk-based processing - Distributed workload across loaded chunks
Error Handling
🛡️ Exception handling - Better error recovery and logging
📝 Debug logging - Comprehensive debug information
🔄 State recovery - Proper plugin disable/enable handling
Group Spawning System
Now spawns zombies in groups of 2-6 initially.
Group size increases by +1 per day (Day 1: 2-6, Day 2: 2-7, etc.).
Blood Moon effect: Doubles spawn group size for extra difficulty.
Uses optimized spawn attempts to reduce failed spawns.
Enhanced Sensing & Tracking
Zombies detect players within 50 blocks, ignoring walls.
Prioritizes nearest player efficiently (squared distance checks).
During Blood Moons, zombies have permanent Night Vision.
Improved Pathfinding
Obstacle avoidance (zombies path around blocks better).
Auto-jump when stuck.
Sideways path correction if blocked.
Ladder/Vine climbing support.
Swimming & Water Navigation
Zombies now swim with Dolphin's Grace effect.
Move faster toward players in water.
Optimized Performance
AI updates run every 10 ticks (0.5s) instead of every tick, reducing lag.
Efficient group spawn checker (reduces chunk load).
Cracks down on unnecessary calculations (distance checks).
Bug Fixes & Enhancements
Fixed zombies getting stuck easily on blocks.
Better collision handling during movement.
More consistent Blood Moon effects (applies to all zombies).
Removed the non-existent method setCanBurnInDay(boolean) from zombie creation methods.
Ensured that the MobBurnPreventionListener effectively cancels the combustion event for zombies exposed to sunlight.
Improved logging for better debugging and tracking of events.
Enhanced configuration file (config.yml) to include detailed settings for mutation rates and zombie stats.
Configuration Changes
config.yml
Added sections for mutation_rates and zombie_stats to allow for easy customization of zombie behaviors and attributes.
Included a data section to track the current day in the game.
Zombie Spawn Locations
Fixed floating/buried zombies by using getHighestBlockYAt() for Y-coordinate calculation.
Old: player.getLocation().add(x, 0, z)
New: Proper ground-level spawning
Null Attribute Checks
Added null checks for zombie attributes (MOVEMENT_SPEED, ATTACK_DAMAGE).
Assassin Zombie Glow
Replaced deprecated Particle.SPELL with SPELL_WITCH.
✨ New Features
Blood Moon Event
Every 5 days:
Sets mutation rate to 100%
Broadcasts warning message (ChatColor.DARK_RED)
Zombie Whispers
Random creepy messages with ENTITY_ILLUSIONER_PREPARE_MIRROR sound.
Chunk Mutation Tracking
Chunks with 20+ zombie spawns get 100% mutation rate.
Persists via HashMap<Location, Integer>.
New Commands
/zombieapocalypse info - Shows day/mutation rate.
/zombieapocalypse spawn <type> - Admin-only mutant spawning.
⚙️ Config Changes
yaml
Run
Copy code
zombie_stats:
base_speed: 0.23
base_damage: 2.0
tank_health_multiplier: 3.0
mutation_rates:
base: 10.0
daily_increase: 1.0
🔐 Permissions
yaml
permissions:
zombieapocalypse.info: true
zombieapocalypse.spawn: op