Minecraft – Will mobs fight each other

minecraft-java-edition

Is it possible to pit mobs against each other? I was hoping to create a boxing ring-like area where I could spawn mobs to fight each other.

Edit: Can I get two zombies to fight each other?

Edit2: Can Ghasts fight each other because they use range?

Best Answer

Yes, but in vanilla Minecraft one of them must be a skeleton. (Or perhaps a ghast or blaze; though I've never personally seen them aggro another mob, I don't think the code specifically prevents it.) You have to get the other mob between the skeleton and something that will aggro the skeleton (such as yourself, or a snow golem) so that when it tries to shoot it hits the other mob instead. This will aggro the other mob, and then they'll fight.

It's fairly limited, but it is possible.

(Note that if a creeper is killed by a skeleton it will drop a music disc instead of gunpowder. These pit fights are fun and profitable!)

No, you can't make two zombies fight. Because of the way melee damage is coded, melee attacks can never cause "friendly fire": melee monsters acquire their target first, then deal direct damage to that target and only that target when they're in melee range. They don't attack like the player, where they swing and then damage is applied to whatever entity they connect with. Consequently, a zombie will never accidentally hit and damage another zombie. And since being damaged by another monster is the only way for a monster to aggro against another monster, zombies (and melee monsters in general) will never target each other.

No, ghasts won't fight each other. They appear to be programmed to ignore each other. I tested this by creating an arena with one "caged" ghast and one floating freely, switching to survival mode, and getting the caged one to shoot at me. Unlike skeletons, which will turn on each other when they suffer friendly fire, the ghast happily ignored the fireballs to its back and kept attacking me.