From e54952ca7bebb81a3c8e53cb2f442457363a6928 Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Thu, 2 Apr 2026 03:03:07 -0500 Subject: [PATCH] fix(Core/Spells): Resolve pet to owner in EffectSummonType default path (#25322) Co-authored-by: blinkysc --- src/server/game/Spells/SpellEffects.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 40edc0576..46e674736 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2471,6 +2471,11 @@ void Spell::EffectSummonType(SpellEffIndex effIndex) TempSummonType summonType = (duration <= 0) ? TEMPSUMMON_DEAD_DESPAWN : TEMPSUMMON_TIMED_DESPAWN; + Unit* summoner = m_originalCaster; + if (summoner->IsPet()) + if (Unit* owner = summoner->GetOwner()) + summoner = owner; + for (uint32 count = 0; count < numSummons; ++count) { Position pos; @@ -2480,7 +2485,7 @@ void Spell::EffectSummonType(SpellEffIndex effIndex) // randomize position for multiple summons pos = m_caster->GetRandomPoint(*destTarget, radius); - summon = m_originalCaster->SummonCreature(entry, pos, summonType, duration, 0, nullptr, personalSpawn); + summon = summoner->SummonCreature(entry, pos, summonType, duration, 0, nullptr, personalSpawn); if (!summon) continue;