For Forge, requires Atlas Lib.
This mod will only support Neoforge instead of forge in 1.21 +
Invasions
You hear the howls of a nearby horde

On a configurable nights hordes of monsters will attack your base in waves from midnight until morning, with the encounterable mobs and times of day also being configurable.
For guides about configuring the mod in version 1.2.0+ check here.
Infection
If enabled players and horses can be infected after being hit by a zombie, turning into a zombie after 5 minutes have passed or they die with the infection.
In a players case this will kill them and spawn a zombie player in their place.
This infection can be cured with a golden apple with the default settings, but can be configured to be any item which can be consumed, but not reversed.
Optional settings that are enabled by default extends this to villagers, preventing zombie villagers from being cured.
Has an option in the config to add any zombie variants of other mods mobs to the list of entities that can become zombified, providing there is a corresponding zombie for it to convert into.
1.3.0+ now has support for custom textures to make it possible to add zombified variants of similar mobs.

Zombie Players

When a player dies from infection or dies when an optional setting is enabled a zombified version of that player spawns in their place, containing all their items, or when underwater a drowned version.
By default zombie players are immune to sunlight, but this can be disabled in the config.
Other Misc Tweaks
Optional settings to make zombie horses a hostile mob (enabled by default) and to prevent undead mobs from burning in sunlight (disabled by default).
Special thanks to bstylia14 for the original mod concept and for providing ideas and help during development, as well as Ski_Z for helping find a lot of bugs and giving mod suggestions.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 | ||||
| 16h ago | 1 |
~ Reverted hordes:set_entity_nbt to being a spawn entity function (which fixed some script errors)
~ Fixed hordes:spawn_table value not being read correctly
~ Reverted hordes:set_entity_nbt to being a spawn entity function (which fixed some script errors)
~ Fixed hordes:spawn_table value not being read correctly
~ Fixed issues with hordes:weighted_random function
~ Reverted hordes:set_entity_nbt to being a spawn entity function (which fixed some script errors)
~ Fixed hordes:spawn_table value not being read correctly
~ Rewrote hordeEventByPlayerTime to use a value stored in player nbt instead of game statistics, which fixes multiple issues
~ Fixed issues with spawnFirstDay
~ Added an extra check to remove the infected effect when applying infection immunity
~ Fixed an issue with the other player sleep message that could cause players to be kicked from a server
~ Fixed issues with zombie player names that could cause players to be kicked from servers
~ Fixed several issues with the hordes:weighted_random function causing scripts to not be loaded correctly and crash when they are
~ Fixed the infected effects negative speed modifier not being properly cleared when the effect is removed (note: this will not clear the modifier if you already have it, you will have to either die or edit your playerdata to remove it)
~ Rewrote hordeEventByPlayerTime to use a value stored in player nbt instead of game statistics, which fixes multiple issues
~ Fixed issues with spawnFirstDay
~ Added an extra check to remove the infected effect when applying infection immunity
~ Fixed issues with the other player sleep message
~ Fixed several issues with the hordes:weighted_random function causing scripts to not be loaded correctly and crash when they are
~ Rewrote hordeEventByPlayerTime to use a value stored in player nbt instead of game statistics, which fixes multiple issues
~ Fixed issues with spawnFirstDay
~ Added an extra check to remove the infected effect when applying infection immunity
~ Fixed an issue with the other player sleep message that could cause players to be kicked from a server
~ Fixed issues with zombie player names that could cause players to be kicked from servers
~ Fixed several issues with the hordes:weighted_random function causing scripts to not be loaded correctly and crash when they are
~ Fixed the infected effects negative speed modifier not being properly cleared when the effect is removed (note: this will not clear the modifier if you already have it, you will have to either die or edit your playerdata to remove it)
\+ added hordes reload command
\+ added husk players
\+ add support for oceanic expanse to spawn drowned players if that mod is installed
\+ Added the following universal functions:
hordes:random
hordes:weighted_random
hordes:set_player_nbt
hordes:set_variable
hordes:call_script
hordes:break
hordes:return
hordes:cancel
\+ added hordes:is_called condition
\+ added hordes:get_variable value
\+ added an operation value to the wearables protection config, to specify the mode protection attributes are added
\+ added unique message if another player's horde is preventing you from sleeping
\+ if enabled in the config the protection sound now plays if the random infection roll would cause them to be infected if they didn't have an infection resistance attribute
Changes
~ improved script error logging in the hordes.log file
~ improved error message sent to players on log in
~ changed hordes:set_entity_nbt to a universal function
~ updated to hordes data version 11, your configs may not be compatible
~ updated commands to use the new 1.20.1 hordes command
## Version Parity Changes from 1.21
\+ rework of infection system - entity infectivity and infection resistance are now attributes
\+ complete rework of config structure
\+ added a resource loader to the hordes config folder
\+ added values
hordes:day
hordes:spawn_table
\+ added spawndata function:
hordes:add_reward_command
\+ made entity chance to cause infection an attribute
\+ added forge event HordeFindSpawnPosEvent for other mods to hook into to change horde spawn positions
\+ changed the hordes spawn distance to be configurable
\+ added config option to disable zombie player cape rendering (in case other mods cause issues)
\+ added mod reference to mixin method names to make determining if this mod is the cause of issues more easily
\+ added visual effect to make infected entities slightly yellow
+ added reward commands function for horde events
~ tweaked infection visual effects slightly
## Fixes
~ fixed crash from horse flee ai
~ fixed issues with infection resistance attribute tooltips
~ fixed lag on some clients with the infection overlay rendering
~ made hordes random more determanistic
~ fixed issues with spawnFirstDay in the config not working correctly
~ fixed zombie piglins not respecting the aggressiveZombiePiglins option when they are able to cause infection
~ made horde mob passengers no longer add to mob cap
~ made scheduled hordes for online players prevent other players sleeping
~ fixed potential null pointer on entity update event
~ fixed player zombes dropping items on conversion
~ rework hordes:day condition to read from event day not player day
- remove hordes:player_day, and redirect any calls to hordes:day
\+ if enabled in the config the protection sound now plays if the random infection roll would cause them to be infected if they didn't have an infection resistance attribute
~ fixed issues with wearable protection file not being read correctly
~ fixed incorrect text being added to the log file
~ slightly optimised certain parts of logic
~ fixed zombie players not spawning
~ fixed capability data not being saved
~ fixed crash when entities died while infected
\+ if enabled in the config the protection sound now plays if the random infection roll would cause them to be infected if they didn't have an infection resistance attribute
~ fixed issues with the zombie players config showing up in the wrong category
~ fixed wolf armour incorrectly being in the default datapack
~ fixed issues with wearable protection file not being read correctly
~ fixed issues with armour infection protection attributes not being removed if armour was unequipped
~ fixed reward commands not being saved to horde world data
~ fixed incorrect text being added to the log file
~fixed issues with min and max spawn counts in tables not being handled correctly
~ fix datapack errors
~ fix infected effect not working properly
\~ fix bug stopping horde mobs pathfinding properly and freezing when too far away from the player
~ fix issues with zombie piglins beig aggressive
~ prevent zombie players despawning in peacefull unless turned on in the config
~ zombie players now drop their inventory when despawning
~ prevented the infection overlay from rendering at level 0
~ tweaked infection visuals to be slightly less intrusive
~ fix issues with zombie piglins beig aggressive
~ prevent zombie players despawning in peacefull unless turned on in the config
~ zombie players now drop their inventory when despawning
~ prevented the infection overlay from rendering at level 0
~ tweaked infection visuals to be slightly less intrusive
~ changed how horde day fixing works to prevent recurring hordes
~ fix issues with zombie piglins beig aggressive
~ prevent zombie players despawning in peacefull unless turned on in the config
~ zombie players now drop their inventory when despawning
~ prevented the infection overlay from rendering at level 0
~ tweaked infection visuals to be slightly less intrusive
~ changed how horde day fixing works to prevent recurring hordes
~ fix issues with zombie piglins beig aggressive
~ prevent zombie players despawning in peacefull unless turned on in the config
~ zombie players now drop their inventory when despawning
~ prevented the infection overlay from rendering at level 0
~ tweaked infection visuals to be slightly less intrusive
+ rework of infection system
+ rework of config and datapack structure
+ changed default settings
+ add hordes:spawn_table String value
+ add hordes:day int value
~ rework hordes:day condition to now detect from the horde day instead of world day
- remove hordes:player_day condition as hordes:day is now read from the horde event rather than the world
~updated to hordes data version 7, your configs and datapacks may not be compatible with this version from 1.5.3
\+ Added infection armour protection, wearing armour reduces the chance of being infected, these chances stack exponentially, by default it only works for vanilla armour, but thsi can be configured via datapack
\+ Added tooltips to show the player whether items can cure infection, give immunity, or reduce infection chance when worn, these can be turned off in the client config
\+ Vindicators, Pillagers, Witches, Ravagers, Evokers and Vexes will now fight back and/or flee undead mobs if enabled in the config
\+ Added config option to enable or disable zoglins attacking non-undead monsters
\+ Spawn tables now have min and max spawn properties, where an entity will be spawned per wave greater than it's min spawns value and less than or equal to it's max spawns regardless of weight
\+ Added SpawnEvent functions as shown below, they are not compatible with other functions know as Spawndata functions, they fire when an entity spawns as opposed to when an event starts
\+ added hordes:set_entity_type SpawnEvent function
\+ added hordes:set_entity_nbt SpawnEvent function
\+ added hordes:set_entity_x SpawnEvent function
\+ added hordes:set_entity_y SpawnEvent function
\+ added hordes:set_entity_z SpawnEvent function
\+ added hordes:set_entity_loot_table SpawnEvent function
\+ Added hordes:game_difficulty condition
\+ Added hordes:entity_type condition for use with SpawnEvent functions
\+ Added hordes:weighted_random value getter
\+ Added hordes:entity_nbt value getter for use with
SpawnEvent functions
\+ Added hordes:entity_pos value getter for use with SpawnEvent functions
\+ Added hordes:abs value getter
\+ Added hordes:log value getter
\+ Added hordes:sin value getter
\+ Added hordes:cos value getter
\+ Added hordes:tan value getter
\+ Added hordes:arcsin value getter
\+ Added hordes:arccos value getter
\+ Added hordes:arctan value getter
\+ Added hordes:sinh value getter
\+ Added hordes:cosh value getter
\+ Added hordes:tanh value getter
\+ Added hordes:round value getter
\+ Added hordes:floor value getter
\+ Added hordes:ceiling value getter
\+ Added hordes:truncate value getter
\+ Added hordes:random value getter
\+ Added hordes:bitwise_not value getter
\+ Added hordes:add value getter
\+ Added hordes:minus value getter
\+ Added hordes:divide value getter
\+ Added hordes:multiply value getter
\+ Added hordes:mod value getter
\+ Added hordes:power value getter
\+ Added hordes:bitwise_and value getter
\+ Added hordes:bitwise_or value getter
\+ Added hordes:bitwise_xor value getter
\+ Added hordes:left_shift value getter
\+ Added hordes:right_shift value getter
\+ Added hordes:unsigned_right_shift value getter
\+ Added russian translations provided by mpustovoi
\~ NBT value getters now use nbt predicates instead, allowing you to use all nbt values form the /data command instead of just saved data
\~ fix null pointer crash when horde mobs convert
\~ fixed issue that caused dimensions other than the overworld to act like lazy chunks if there were no players in the overworld
\~ fix issue that prevented the config option spawnFirstDay to not be respected
Updated to horde data version 4, your previous configs will be backed up if you forget to change your version
\+ added hordes:local_difficulty condition
\+ added hordes:advancement condition
\+ added gamestages:gamstage condition
\+ added hordes:multiple function
\+ added hordes:set_spawn_type function
\+ added hordes:set_spawn_sound function
\+ added hordes:set_start_message function
\+ added hordes:set_end_message function
\+ added hordes:set_spawn_duration function
\+ added hordes:set_spawn_interval function
\+ added hordes:set_spawn_amount function
\+ added hordes:set_entity_speed function
\+ added spawn_types which determine how horde mobs are spawned, and which blocks they can spawn on top of
\+ horde scripts can now be an array of script objects instead of a single object
\+ hordes:biome now supports biome tags and lists of biomes/tags
\+ hordes now spawn based on a seperate random source so the world's random function isn't used which may cause random spawning/worldgen issues. as well as better seeding horde spawn
~ fixed bug that caused cures to be able to cure other players without consuming the item
~ fixed bug that caused crashes when an entity was given the infected effect client side