RPC RunOnServer calling from Client, not working

If you have a Host and 1 connected Client then that Client has 1 instance of a PlayerController (its own only) and the Host has 2 instances of a PlayerController namely its own and Client 1.

What it looks like you are trying to do is use the reference to a widget created on the server and sending it to the client using an RPC. This won’t work since widgets are not replicated. Widgets gets created locally so the instance created on the server is meaningless to the instance created on the client.

When a replicated Actor is spawned by the server then the client is instructed to spawn the Actor and the reference is synchronized.

When a Widget or non-replicated Actor is spawned either by the Server or Client then the reference is not synchronized.

Avoid sending widget references through RPC’s and instead send the variables only and update the local widget using those variables.