Mojira Archive
MC-3370

Mobs cannot pick up items if mobGriefing is false, and custom spawners can't force them to

What I expected to happen was
Mobs with CanPickUpLoot=1 would pick up dropped items.
Mob spawners with CanPickUpLoot=1 in the SpawnData would be able to spawn mobs with CanPickUpLoot=1.

What actually happened was
No mob could pick up items, regardless of the state of CanPickUpLoot.
Custom spawners could not even spawn mobs with CanPickUpLoot=1.

Steps to reproduce, without external editors:
1. Make sure you are in Hard mode and Creative mode, with the gamerule mobGriefing set to false.
2. Make a small pit, and spawn a massive number of zombies, skeletons, and/or pigmen in it.
3. Drop some items, weapons, and/or armor into the pit
4. Chances are you can't tell if anything's been picked up... Fly or teleport yourself about 200 blocks above the pit.
5. Fall back down to the pit.
6. Observe that all mobs have despawned, and all items remain where you dropped them.

Had any mob picked up an item, it would not have despawned, and the item would not remain on the ground.

Steps to reproduce, the faster and less ambiguous way:
1. Spawn a zombie, pigman, or skeleton.
2. Save and quit your world.
3. Open the world in MCedit.
4. Find the mob, select the area it is in, and export to a schematic.
5. With NBTedit, set its CanPickUpLoot to 1.
6. Import the schematic back with MCedit.
7. Save the world, and return to the world in Minecraft.
8. Observe that the mob does not pick up any items you throw at it.

I've attached a schematic of a CanPickUpLoot=1 zombie and a spawner which is meant to spawn such mobs (but for some reason, they still spawn with CanPickUpLoot=0, which is rather redundant considering CanPickUpLoot=1 doesn't make a difference). Make sure you have mobGriefing set to false before trying this.