Zombie siege: Difference between revisions
BDJP007301 (talk | contribs) m (Revert edits by 107.179.233.77 (talk) unnecessary information) Tag: Rollback |
(This appears to have been wrong since somewhere between 1.14 and 1.14.4; not sure if "bell == village center" was correct at some point then changed, or if that was never correct. Anyway, update based on code analysis of 1.19.2 (plus a little of 1.14.4, which is the earliest version for which obfuscation maps are available).) |
||
Line 10: | Line 10: | ||
=== Siege start checks === |
=== Siege start checks === |
||
Each village has a center, a claimed [[bell]] placed in the village's boundary.{{note|Before 1.14, this was the geometric center of all the village's doors.}} For each [[player]], the village with the center nearest to that player is a candidate for a siege when the player is less than the village's size + 1 blocks away from the center (by euclidean distance). |
|||
A player is a candidate for a siege if they are in a [[village]]{{note|name=within-village|"In a village" is defined as being in a subchunk that contains a claimed [[bed]], [[bell]], or [[job site]], or in any of the 26 subchunks in a 3×3×3 cube around such a subchunk.}} and that player is not in [[spectator mode]] or in a biome with the <code>without_zombie_sieges</code> [[tag]]. |
|||
In other words, the player must essentially be within the village for a siege to be considered. |
|||
⚫ | Ten attempts are made to choose a random siege starting point: first, a point 32 blocks away from the player in a random horizontal direction is chosen, and then a location is chosen (as described below) as if to spawn one zombie. If that succeeds in finding a valid zombie spawning point, the siege is started at the chosen starting point. If all ten attempts fail, the entire siege attempt fails, but another siege may be attempted on the next game tick. |
||
If the candidate village has fewer than 10 [[beds]], fewer than 20 [[villagers]], or the village has not been "stable" (no beds added or removed) for at least 20 ticks (1 second), the next player's village is considered. |
|||
Players are always checked in order, so as long as one player remains a valid candidate later players will not be checked. |
|||
Ten attempts are made to choose a random siege starting point on a circle with a radius 0.9 times that of the village's size centered upon a village that is not within the bounds of any other village. The [[Altitude|Y value]] of the chosen point is that of the center of the village. If all ten attempts fail, the entire siege attempt fails, but another siege may be attempted on the next game tick. |
|||
⚫ | |||
=== Zombie spawning === |
=== Zombie spawning === |
||
⚫ | During a siege, 20 attempts are made to spawn a zombie over the course of 3 seconds. For each zombie, 10 attempts are made to randomly choose a valid spawning point on the surface (i.e. on the highest block in any column) within a 16×16 horizontal distance around the chosen point. If a valid spawn point is found, a zombie is spawned. |
||
[[File:SiegeZombiesInRoof Release1.8.png|thumb|350px|Siege zombies spawned inside a roof made of stairs and surviving in sunlight.]] |
|||
⚫ | |||
Zombies spawned within a siege ignore player proximity and the presence of other mobs. Only the minimal spawning conditions are checked: |
Zombies spawned within a siege ignore player proximity and the presence of other mobs. Only the minimal spawning conditions are checked: |
||
* Light level must be appropriate for hostile mob spawning. |
|||
* The spawning block must be [[Opacity|transparent]] and non-[[fluid]]. |
|||
* The block |
* The surface block must not prevent spawning. |
||
⚫ | |||
** This includes upside down [[stairs]] and [[slabs]]. |
|||
* The block directly below it must not be [[bedrock]]. |
|||
* The block directly above it must be transparent as well. |
|||
⚫ | |||
Note in particular that siege zombies can spawn ''inside'' transparent blocks such as slabs that normally prevent mob spawning. |
|||
[[Zombie villagers]], [[husk]]s and [[drowned]] are never spawned as part of a siege, but all other variations (e.g. baby, jockey, and equipment) are determined as for normal random spawns. |
[[Zombie villagers]], [[husk]]s and [[drowned]] are never spawned as part of a siege, but all other variations (e.g. baby, jockey, and equipment) are determined as for normal random spawns. |
||
The zombies that spawn as part of a siege behave in the same manner as normally-spawned zombies; they attack all villagers within sight, and villagers and [[iron golems]] react accordingly. The zombies despawn as usual if the player is far enough away. |
|||
== Defense tactics == |
== Defense tactics == |
||
Line 44: | Line 35: | ||
== Recovery == |
== Recovery == |
||
If at least two villagers survive the siege, the villagers can [[Villager#Breeding and population|breed]] and repopulate the village |
If at least two villagers survive the siege, the villagers can [[Villager#Breeding and population|breed]] and repopulate the village. Without player intervention, however, it is likely for villages to be wiped out by sieges and randomly-spawned zombies, and all the villagers would be either dead or zombified. |
||
Even if no villagers survive, a village may be repopulated by curing zombie villagers, or by luring in villagers from another village. |
Even if no villagers survive, a village may be repopulated by curing zombie villagers, or by luring in villagers from another village. |
||
Line 60: | Line 51: | ||
{{History|||snap=12w08a|Added [[iron golem]]s, which protect villagers against attacks such as zombie sieges.}} |
{{History|||snap=12w08a|Added [[iron golem]]s, which protect villagers against attacks such as zombie sieges.}} |
||
{{History||1.4.7|Zombie sieges no longer occur due to a bug.<ref>{{bug|7432}}</ref>}} |
{{History||1.4.7|Zombie sieges no longer occur due to a bug.<ref>{{bug|7432}}</ref>}} |
||
{{History||1.8|snap=14w25a|Zombie sieges may again occur. |
{{History||1.8|snap=14w25a|Zombie sieges may again occur. |
||
⚫ | |||
|The start positioning of zombie sieges has been fixed: sieges now start near the [[village]] perimeter rather than anywhere within the village.}} |
|The start positioning of zombie sieges has been fixed: sieges now start near the [[village]] perimeter rather than anywhere within the village.}} |
||
{{History||1.14|snap=unknown|Siege mechanics significantly changed due to changes in [[village]] determination: sieges can now start anywhere in a village, the starting point is always 32 blocks from the triggering player, minimum village population limit removed, zombies now always spawn on the surface, and spawns consider light levels.{{verify|Some or all of these changes may have happened as late as 1.14.4.}}}} |
|||
⚫ | |||
{{History||1.19|snap=22w11a|<code>without_zombie_sieges</code> tag created to replace the hard-coded check for [[mushroom fields]] biome.}} |
|||
{{History|pocket alpha}} |
{{History|pocket alpha}} |
||
Line 78: | Line 71: | ||
== Trivia == |
== Trivia == |
||
* Sieges |
* Sieges can occur on [[mushroom fields]] if the triggering player is in an adjacent biome.<ref>{{bug|158473|resolution=WAI}}</ref> |
||
== Gallery == |
== Gallery == |
Revision as of 21:18, 11 August 2022

Zombie sieges are in-game events where many zombies spawn in and attack a village, regardless of how well lit or walled off a village is.
Mechanics
At midnight each night (tick 18000 in Minecraft time), there is a 10% chance for the game to attempt a zombie siege that night. If a siege is to occur, attempts are made each tick to start the siege until either a siege is successfully started or the sun rises. Specifically, the siege attempt is abandoned when the sky light level reaches 12. However, inclement weather can allow siege start attempts to continue well past dawn since it reduces the sky light level.
Siege start checks
A player is a candidate for a siege if they are in a village[note 1] and that player is not in spectator mode or in a biome with the without_zombie_sieges
tag.
Ten attempts are made to choose a random siege starting point: first, a point 32 blocks away from the player in a random horizontal direction is chosen, and then a location is chosen (as described below) as if to spawn one zombie. If that succeeds in finding a valid zombie spawning point, the siege is started at the chosen starting point. If all ten attempts fail, the entire siege attempt fails, but another siege may be attempted on the next game tick.
Players are always checked in order, so as long as one player remains a valid candidate later players will not be checked.
Zombie spawning
During a siege, 20 attempts are made to spawn a zombie over the course of 3 seconds. For each zombie, 10 attempts are made to randomly choose a valid spawning point on the surface (i.e. on the highest block in any column) within a 16×16 horizontal distance around the chosen point. If a valid spawn point is found, a zombie is spawned.
Zombies spawned within a siege ignore player proximity and the presence of other mobs. Only the minimal spawning conditions are checked:
- Light level must be appropriate for hostile mob spawning.
- The surface block must not prevent spawning.
- The block must be within a village.[note 1]
Zombie villagers, husks and drowned are never spawned as part of a siege, but all other variations (e.g. baby, jockey, and equipment) are determined as for normal random spawns.
The zombies that spawn as part of a siege behave in the same manner as normally-spawned zombies; they attack all villagers within sight, and villagers and iron golems react accordingly. The zombies despawn as usual if the player is far enough away.
Defense tactics
Recovery
If at least two villagers survive the siege, the villagers can breed and repopulate the village. Without player intervention, however, it is likely for villages to be wiped out by sieges and randomly-spawned zombies, and all the villagers would be either dead or zombified.
Even if no villagers survive, a village may be repopulated by curing zombie villagers, or by luring in villagers from another village.
Video
History
[hide]Java Edition Classic | |||||||
---|---|---|---|---|---|---|---|
June 10, 2009 | Notch promised to have an expansion pack adding zombie sieges, but never made it.
{"type": "java Classic", "version": "June 10, 2009", "exp": "", "snap": "", "content": "(link to Notch article, displayed as Notch) promised to have an expansion pack adding zombie sieges, but never made it."} | ||||||
[hide]Java Edition | |||||||
1.2.1 | Zombie sieges added by Jon Kågström.
{"type": "java", "version": "1.2.1", "exp": "", "snap": "", "content": "Zombie sieges added by (link to Jon Kågström article, displayed as Jon Kågström)."} | ||||||
Villagers repopulate villages based on how many houses are available.
{"type": "java", "version": "1.2.1", "exp": "", "snap": "", "content": "(link to Villager article, displayed as Villagers) repopulate (link to village article, displayed as villages) based on how many houses are available."} | |||||||
Lua error in Module:Version_link at line 117: attempt to concatenate local 'text' (a nil value). | Added iron golems, which protect villagers against attacks such as zombie sieges.
{"type": "java", "version": "", "exp": "", "snap": "", "content": "Added (link to iron golem article, displayed as iron golems), which protect villagers against attacks such as zombie sieges."} | ||||||
1.4.7 | Zombie sieges no longer occur due to a bug.[1]
{"type": "java", "version": "1.4.7", "exp": "", "snap": "", "content": "Zombie sieges no longer occur due to a bug."} | ||||||
1.8 | Zombie sieges may again occur.
{"type": "java", "version": "1.8", "exp": "", "snap": "", "content": "Zombie sieges may again occur."} | ||||||
The start positioning of zombie sieges has been fixed: sieges now start near the village perimeter rather than anywhere within the village.
{"type": "java", "version": "1.8", "exp": "", "snap": "", "content": "The start positioning of zombie sieges has been fixed: sieges now start near the (link to village article, displayed as village) perimeter rather than anywhere within the village."} | |||||||
1.14 | Siege mechanics significantly changed due to changes in village determination: sieges can now start anywhere in a village, the starting point is always 32 blocks from the triggering player, minimum village population limit removed, zombies now always spawn on the surface, and spawns consider light levels.[verify]
{"type": "java", "version": "1.14", "exp": "", "snap": "", "content": "Siege mechanics significantly changed due to changes in (link to village article, displayed as village) determination: sieges can now start anywhere in a village, the starting point is always 32 blocks from the triggering player, minimum village population limit removed, zombies now always spawn on the surface, and spawns consider light levels.<sup class=\"noprint nowrap Inline-Template \" title=\"\">[<i>[https://minecraft.wiki/w/Talk:Zombie_siege <span title=\"Some or all of these changes may have happened as late as 1.14.4. \" style=\"border-bottom: 1px dotted\">verify</span>]</i>]</sup>(link to Category:Verify article, displayed as Category:Verify)"} | ||||||
1.14.3 | The bug that caused zombie sieges to never occur has been fixed.[2]
{"type": "java", "version": "1.14.3", "exp": "", "snap": "", "content": "The bug that caused zombie sieges to never occur has been fixed."} | ||||||
1.19 | without_zombie_sieges tag created to replace the hard-coded check for mushroom fields biome.
{"type": "java", "version": "1.19", "exp": "", "snap": "", "content": "<code>without_zombie_sieges</code> tag created to replace the hard-coded check for (link to mushroom fields article, displayed as mushroom fields) biome."} | ||||||
[hide]Pocket Edition Alpha | |||||||
v0.9.0 | Added zombie sieges.
{"type": "pocket Alpha", "version": "v0.9.0", "exp": "", "snap": "", "content": "Added zombie sieges."} | ||||||
[hide]Bedrock Edition | |||||||
1.11.0 | Zombie sieges have been removed, due to a bug.[verify]
{"type": "bedrock", "version": "1.11.0", "exp": "", "snap": "", "content": "Zombie sieges have been removed, due to a bug.<sup class=\"noprint nowrap Inline-Template \" title=\"\">[<i>[https://minecraft.wiki/w/Talk:Zombie_siege <span title=\"Is this version number correct? \" style=\"border-bottom: 1px dotted\">verify</span>]</i>]</sup>(link to Category:Verify article, displayed as Category:Verify)"} | ||||||
[hide]Legacy Console Edition | |||||||
Xbox 360 | Xbox One | PS3 | PS4 | PS Vita | Wii U | Switch | |
TU12 | CU1 | Added zombie sieges.
{"type": "console", "xbox": "TU12", "xbone": "CU1", "ps3": "", "ps4": "", "psvita": "", "wiiu": "", "switch": "", "content": "Added zombie sieges."} |
Issues
Issues relating to "Siege" are maintained on the bug tracker. Issues should be reported and viewed there.
Java Edition
- MC-113979 – Zombies of village siege spawn more likely in negative direction
- MC-155713 – Zombie siege in new village with one villager
Bedrock Edition
- No open issues found.
Trivia
- Sieges can occur on mushroom fields if the triggering player is in an adjacent biome.[3]
Gallery
-
A group of zombies, two of which are villagers, breaking down a wooden door.
-
An iron golem killing a zombie during a siege, preventing the zombie from breaking down the door.
-
A siege ending because of the zombies burning in the daylight.
-
A siege in a desert (where it never rains) during rain in another biome. One zombie burns in sunlight while two others are protected by their helmets.
-
A zombie attacking a villager while the other one is trying to run.
-
3 villagers taking cover in a large house during a zombie siege.
See also
Notes
- ↑ Jump up to: a b "In a village" is defined as being in a subchunk that contains a claimed bed, bell, or job site, or in any of the 26 subchunks in a 3×3×3 cube around such a subchunk.
References
[hide] | |
---|---|
General mechanics | |
Survival |
|
Combat | |
Environment | |
Movement | |
User interface | |
Visuals | |
Outdated | ![]() |