diff --git a/zone/aggro.cpp b/zone/aggro.cpp index 7d3b81554..8d091140b 100644 --- a/zone/aggro.cpp +++ b/zone/aggro.cpp @@ -436,11 +436,16 @@ bool Mob::CheckWillAggro(Mob *mob) { pet_owner->IsClient() && ( !RuleB(Aggro, AggroPlayerPets) || - pet_owner->CastToClient()->GetGM() + pet_owner->CastToClient()->GetGM() || + mob->GetSpecialAbility(IMMUNE_AGGRO) ) ) { return false; } + + if (IsNPC() && mob->IsNPC() && mob->GetSpecialAbility(IMMUNE_AGGRO_NPC)) { + return false; + } // Check If it's invisible and if we can see invis // Check if it's a client, and that the client is connected and not linkdead,