[BluePrints] From where should one access the GameInstance for Client and Server properly?

I am developing a fully blueprint network game.
I would like to read/write to the GameInstance object on the server’s at times, and on the clients’ at others. So, I am using OnClientRPC Events from PlayerState objects to be insure the clients’ GameInstance is the one being retrieved. When I try to write back to the PlayerState I use OnServerRPC. But, it is not updating properly, other clients can’t see the updated PlayerState data.

It is getting rather confusing to be honest. So, I would like to simply ask, from which object should I do RPC calls to properly access Server and Client GameInstances.


Thank you

RunOnServer events can be done on any Actor the Client owns like the PlayerController or Pawn/Character or something owned by them.

You can’t do RunOnServer on GameMode because it only exist on the Server.

You can’t do RunOnServer on GameState and PlayerState since the client doesn’t own them.

You can’t do RunOnServer on GameInstance because it isn’t Replicated.

Thank you for the answer. But, I’m afraid it doesn’t answer the original question. How and from where do I run RCPs to reach GameInstances of clients’ individually and server’s?

Do it on the PlayerController or Pawn/Character. I am not sure what you refer to with OnClientRPC etc. but if you are able to make the RunOnServer events you should be able to do what you want.