The bug
Siege zombies will spawn on the dirt/stone block underneath farmland blocks, slabs, and other non-opaque blocks. If there are two layers of non-opaque blocks, they can even spawn completely buried and unable to escape.
Note this is not the same issue as MC-57831, where mobs from spawners will spawn inside fully-opaque blocks.
How to reproduce
Village sieges only happen
when the moon is at the zenith
when a player (not being a spectator) is nearby
when no second village is close
when the village has at least 10 doors
when the village has at least 20 villagers
with a chance of 1 / 10
Because a siege only happens with a chance of 1 / 10 it is easier to cause one by having a clock (for example repeater) setting the time to day, waiting a short moment (for example one redstone tick), setting the time to 18000 and then waiting a little bit longer.
Create a Superflat world with the following preset
3;minecraft:stone,minecraft:stone_slab,minecraft:web;1;village
Get to a nearby village, for example by using
/locate Village
, and wait for the zombies to spawn
Code analysis
Based on 1.11.2 decompiled using MCP 9.35 rc1
Village sieges only require the method net.minecraft.world.WorldEntitySpawner.canCreatureTypeSpawnAtLocation(SpawnPlacementType, World, BlockPos)
to return true
. This means zombies can spawn
in not-normal cube blocks
even if there are already entities at that position
right next to a player
right next to light sources
Note: This method should probably not be used anymore because it always checks for two blocks even if the mob is smaller.
Linked issues
is duplicated by 7
Comments 20
Occurs in 14w33c as well. Half-slabbed the entire 128 block radius, got siege zombies spawning inside of them.
Is this still an issue in 14w33c or newer?