Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-59440

Siege zombies spawn inside some blocks

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Resolution: Awaiting Response
    • Affects Version/s: Minecraft 14w26c, Minecraft 14w30c, Minecraft 14w33c, Minecraft 14w34b, Minecraft 1.8-pre1, Minecraft 1.8-pre2, Minecraft 1.8-pre3, Minecraft 1.8, Minecraft 1.8.1-pre2, Minecraft 1.8.1, Minecraft 1.8.2-pre1, Minecraft 1.8.2-pre3, Minecraft 1.8.3, Minecraft 15w32b, Minecraft 1.10.2, Minecraft 1.11.2, Minecraft 17w06a, Minecraft 1.12.1, Minecraft 1.12.2
    • Fix Version/s: None
    • Confirmation Status:
      Confirmed
    • Category:
      Mob spawning

      Description

      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.

      1. Create a Superflat world with the following preset
        3;minecraft:stone,minecraft:stone_slab,minecraft:web;1;village
        
      2. 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.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                anomie x Anomie X
              • Votes:
                23 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  CHK: