HUD widget reference wont set on client

Im making a grid-based inventory system and when an item is picked up i want to update the image thumbnail inside the inventory. To edit the image im setting the hud widget to a variable when its created so i can edit it directly when an item is picked up. It works fine for the server but the problem is that the variable never gets set on the client and is always none so i cant access any of the variables within the hud widget.

The image below shows where the widget is created (if it helps i recreated the multiplayer shootout demo to use as a starting point) and what it looks like when the server and the client both pick up an item

Its definitely a problem with the widget reference and updating the image because the item is getting placed in the inventory array for both the server and the client

86508-781232426b39f7f98355c4e173fce090.png

if anyone could help me fix this or find a workaround it would be much appreciated

Only thing i can think of is replication of HUD varable, UI should only exist in client and not replicated and HUD it self should visualize game state seen in client memoery at most get info call from replicated function calls in other classes to inform client HUD to do something

Also PlayerController exists only in server and in client which PlayerController belongs to (if i’m not mistaken) maybe there problem in this. GameMode exists only on server if you do stuff to HUD from there

Ive tried replicating the variable and not replicating it. Ive also tried creating the widgets in event beginplay to bypass everything in the game mode, which didnt work. I created a new project and tried the same setup (using event beginplay and leaving gamemode default so everything is done inside the player controller) to see if that helped but still got the same results, not sure where to go from here.