How to open a widget on client on interaction with an object?

So I’m trying to open a widget on interaction with an object. It needs to open only to the player who initiated the interaction.

I’m using the following algorithm (on the screenshot):

But it gives an error when interacting on the client:

  1. Only Local Player Controllers can be assigned to widgets. PlayerController_1 is not a Local Player Controller.
  2. Blueprint Runtime Error: “Accessed None trying to read property CallFunc_Create_ReturnValue”. Node: Add to Viewport Graph: EventGraph Function: Execute Ubergraph BP Control Center Blueprint: BP_ControlCenter

If I understand properly, the interaction is handled on server, and the server tries to open widget on client. Since the controller it gets is not local to the server, it cannot open the widget.

How do I open the widget on client, if the interaction logic runs on server?

You need to make the desired client (Player Controller) the owner of this blueprint (it’s an actor, right?), and call Client RPC on it, which will create the widget.

unless the interaction is done on server (which it probably should be) then you dont need ownership just a reference to the player and RunOnClientRPC