I’m on Unreal Engine 5.x running a listen-server with 2 clients in PIE.
I have a server-authoritative mining system:
-
Server runs
Server_MineTick -
It updates a replicated float/int
Rep_ResourceAmount -
Client receives it and calls
WBP_MiningHUD.SetResource(Current, Max)
Inside SetResource, I log:
Current = 5
Current = 12
Current = 47
(confirmed in Output Log)
So the HUD function is executing and values are arriving — but the UMG TextBlock and ProgressBar never update on screen (they stay blank).
I create the widget in PlayerController.BeginPlay:
CreateWidget(WBP_MiningHUD)
→ Set MiningHUD
→ AddToViewport
Then later:
MiningHUD.SetResource(Rep_ResourceAmount)
But SetText() on the TextBlock inside the widget does nothing visually, even though the function runs and prints the correct numbers.
I’ve confirmed:
-
Widget exists
-
SetResource is called
-
Values are correct
-
TextBlock has “Is Variable” enabled
-
No bindings are on the Text property
It feels like I’m writing to a dead widget reference or not the instance on screen.
Has anyone seen this in UE5 multiplayer UMG?
How do I guarantee I’m updating the live widget instance?