From 0e9abcd3058a8e77926fcb7d7e4e949ba9be9f8a Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Fri, 24 Jul 2026 06:28:38 -0300 Subject: [PATCH] fix(Core/Spells): don't resolve spellmod owner for casters no longer on a map (#26780) --- src/server/game/Spells/Spell.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 9847c0bf5..a328e3244 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -695,7 +695,9 @@ Spell::Spell(Unit* caster, SpellInfo const* info, TriggerCastFlags triggerFlags, Spell::~Spell() { - if (Player* modOwner = m_caster ? m_caster->GetSpellModOwner() : nullptr) + // FindMap() check: pending spell events are destroyed after the caster has left the map, + // where resolving a unit-summoned caster's owner through ObjectAccessor would assert + if (Player* modOwner = (m_caster && m_caster->FindMap()) ? m_caster->GetSpellModOwner() : nullptr) if (modOwner->m_spellModTakingSpell == this) modOwner->SetSpellModTakingSpell(this, false);