mojira.dev
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.

Linked issues

MC-16736 Mobs don't pick up items Resolved MC-73084 When mobGriefing is off, you can't feed villagers to increase willingness to breed Resolved MC-150647 Villagers don't pick up bread/food if mobgriefing is set to false Resolved MC-151069 Villager dont bread Resolved MC-153408 Villagers cant breed with mobGriefing turned off Resolved

Attachments

Comments 3

Cannot reproduce as per screenshots. Zombies picked up the swords given to them and remained after flying to altitude 250 while the others despawned as expected.

On further analysis (including trying again in a new world), I figured out that the mobGriefing gamerule was causing all of these issues. If set to false, mobs cannot steal items, and mobs created by spawner always have CanPickUpLoot set to 0 (which is rather redundant in my opinion, but that's just me).

I'll update the issue; seeing as this is not documented anywhere it may still be a bug (considering mobs which steal items are now guaranteed to not despawn, it doesn't exactly qualify as 'griefing' on the same level that explosions do).

Confirmed, but not sure if intended since picking up stuff is kind of "griefing".

WolfieMario

(Unassigned)

Confirmed

drop, item, loot, mob, pick, spawner

Minecraft 1.4.4, Minecraft 1.4.6, Minecraft 1.4.7, Snapshot 13w01a, Snapshot 13w01b, ..., Minecraft 1.7.4, Minecraft 14w04b, Minecraft 1.7.5, Minecraft 14w11b, Minecraft 1.7.6-pre2

Retrieved