In the document illustration that shows “run on owning client”, I found that I could make it work even if I change it to"not replicated" or “run on server”. So what’s the point of “run on owninng client”? Under what circumstance do we need it?
So first we can see that Run on owning client pretty much only matters when you call it inside the server, because if you call it from a client it only affects himself which isn’t different from any regular function.
Now, when you call it from the server, Run on owning client behavior depends on wether you are calling it for a Client-owned actor or a server-owned actor. The only client-owned actors are usually players controllers and their pawns. In this case you are executing the Add item inside (I’m assuming) the trigger box blueprint, which is a server-owned actor that is why you don’t see a difference.
You would use run on owning client, for example to tell the client version of a player to set some variable that isn’t replicated by default, like walking speed. Or maybe you would use it to execute a certain effect or sound that you want to happen only in one client.
Edit: I hope my answer helps! Tell me if you have any more questions!!