I’ve encountered an issue with a reference chain that is causing the editor to assert when exiting a PIE session. The reference chain is a little unusual, so I’m not quite sure what I need to be doing or manually handling in order to avoid this from being the case. The reference chain looks like this:
Critical Error PlayerState /Game/LukePH/Dialogue/UEDPIE_0_DialogueTestMap3.DialogueTestMap3:PersistentLevel.PlayerState_1 Object from PIE level still referenced. Shortest path from root: PlayerState /Game/LukePH/Dialogue/UEDPIE_0_DialogueTestMap3.DialogueTestMap3:PersistentLevel.PlayerState_1 [target] DarkGame_Dialogue2_C /Game/LukePH/Dialogue/UEDPIE_0_DialogueTestMap3.DialogueTestMap3:PersistentLevel.DarkGame_Dialogue2_C_0 (ArrayProperty /Script/Engine.GameMode:InactivePlayerArray) Guard_Directed_C /Game/LukePH/Dialogue/UEDPIE_0_DialogueTestMap3.DialogueTestMap3:PersistentLevel.Guard_Directed_C_1 (ObjectProperty /Game/PrototypeContent/LukePH/Dialogue/Version3/Guard_Directed.Guard_Directed_C:CallFunc_GetGameMode_ReturnValue) CinematicShot_CloseUp_C /Game/PrototypeContent/LukePH/Dialogue/Version3/CinematicShot_CloseUp.Default__CinematicShot_CloseUp_C (ObjectProperty /Script/Dark.DarkCinematicShot:Speaker) Blueprint /Game/PrototypeContent/LukePH/Dialogue/Version3/CinematicShot_CloseUp.CinematicShot_CloseUp (standalone) (ClassProperty /Script/Engine.BlueprintCore:GeneratedClass)
CinematicShot_CloseUp is a blueprint or an Object derived class called DarkCinematicShot. Speaker is a UPROPERTY of a pointer to a Character derived class instance and Guard_Directed is the instance in question.
Part of the issue seems to be concerned with the return of the Get Game Mode node used in a blueprint implementable event inside the character blueprint, which has me somewhat mystified.