So all of my player data is in a C++ class that I exposed to blueprint. I used get nodes to grab the value of the stats my UI displays, set nodes to assign those values to a variable in blueprint, then used a binding to ensure that whenever that variable changes, the UI updates in turn:
Values set in main HUD blueprint:
Function run by the property binding hooking the value to the health bar slider’s fill percent:
The problem with this setup is that as the player’s data changes in the C++ class, the binding fails to update its value on the HUD, as that binding is pointed at a blueprint variable. I don’t want to constantly re-acquire that value in the blueprint’s event tick, as that would be ludicrously inefficient, is there any way I can give blueprint a pointer to the data, and trust UMG to update itself when the value in that address changes?