In the Run On Owning Client tutorial the RPC never executes on the client because the Custom Event is sent from the Level Blueprint. As you can read here, you can only send “Run on server” and “Run on owning client” events from the following actors, or from a component of one of the actors:
- The client’s PlayerController itself,
- A Pawn that the client’s PlayerController possesses, or
- The client’s PlayerState.
Actually, in that tutorial, the Inventory variable is being passed to the client only because it is set as replicated. If you want to make the RPC work, just send the event from one of the actors above, for example the ThirdPersonCharacter Blueprint, otherwise the server won’t know which client to send the event to, and it will only run on the server.