Replicated mining variable updates but UMG TextBlock never shows value (UE5 multiplayer)

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?

A bit hard to say without seeing your actual code.
But based on what you described, I would assume the widget instance that does update is one that got created server side for an autonomous proxy.

Since you’re creating your widget inside the player controller on begin play, it will create 2 widget instances for both client and server.
Make sure to add an “Is Local Controller” check to fix that.

In case you don’t see the the log message anymore, that would mean the clients never updated in the first place.