Why can't Widget of client call RPC of server?

That’s not entirely true. Take for example a listen-server player, he has his widgets on the server.

The thing is that actors that are not replicated can’t fire RPCs. UUserWidgets are UObjects and not AActors, and they are not even replicated. For UObjects to replicate and be able to fire RPCs extra steps must be taken.

Anyways, back to the example above, to be able to fire server/client RPCs you must do that in client-owned actors, which are typically PlayerController/PlayerState and Pawn in case it’s possessed/owned by a PlayerController.

2 Likes