diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index c783d9a69..c5983f092 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -2192,7 +2192,7 @@ namespace Game.Entities PhasingHandler.SetAlwaysVisible(this, HasAuraType(AuraType.PhaseAlwaysVisible), false); m_ExtraFlags &= ~PlayerExtraFlags.GMOn; - SetFactionForRace(GetRace()); + RestoreFaction(); RemovePlayerFlag(PlayerFlags.GM); RemoveUnitFlag2(UnitFlags2.AllowCheatSpells); diff --git a/Source/Game/Entities/Unit/Unit.cs b/Source/Game/Entities/Unit/Unit.cs index a12b820ee..5006f8b8a 100644 --- a/Source/Game/Entities/Unit/Unit.cs +++ b/Source/Game/Entities/Unit/Unit.cs @@ -2107,6 +2107,12 @@ namespace Game.Entities public void RestoreFaction() { + if (HasAuraType(AuraType.ModFaction)) + { + SetFaction((uint)GetAuraEffectsByType(AuraType.ModFaction).LastOrDefault().GetMiscValue()); + return; + } + if (IsTypeId(TypeId.Player)) ToPlayer().SetFactionForRace(GetRace()); else