Quick answer: Unreal Blueprint Cast to PlayerPawn returning null after respawn? The PlayerController's Pawn reference is updated next tick - poll OnPossess or use Get Player Pawn (delayed).
Respawn fires; HUD tries to cast PlayerController.Pawn to BP_Player. Returns null for one frame, then works.
Bind to OnPossess
PlayerController exposes OnPossess(APawn*). Bind once at startup; receives the new pawn ref reliably on every possession.
Use UnPossessedPawn check
If the cast is null, the controller might still hold the unpossessed pawn. Check GetPawn() vs the dispatcher event.
Avoid casting in Tick
Polling-style casts are wasteful and fragile. Event-driven (OnPossess) is the correct architecture.
“Possession is an event. Don't cast; subscribe.”
For HUDs, drive the pawn reference from the controller via a dispatcher. Race conditions on respawn become impossible.