Hi, only the owning client can call RunOnServer events, if any other client tries to do so nothing will happen. And there can only be one owner at a time and the owner needs to be set from the server. So if you would need several clients to be able to call RunOnServer events on an actor, then that’s not possible and you will need to do it differently.
I think I am having trouble understanding ownership then.
The logic in the two pictures above is in the Player Character which is used by the Listen Server and by the Clients alike.
Wouldn’t that make the Client an owner of the reference to the grid as well? And even if not, wouldn’t the Client be able to communicate with the server with a Run on Server event?
I pressed M on the Client.
So the event chain made it to the server and the server did change the variable. But the Rep Notify did not change the grid visibility.
When I cast to Grid_Blueprint, the cast fails.
Just replicated. But honestly I think I shouldn’t even need to do that. If the decal sends his reference at begin play, then each client should have their own reference right?
The only things I should be replicating is the Grid Visibility boolean and the decal actor itself.
(The decal component replicates as well for good measure.)
In this case I run Queue Grid on server because, since the decal itself replicates, all I need to do is change its visibility on the server.
Sorry I am having trouble wrapping my head around these concepts still…
Tested: Yep the same logic still works if I run it from the server even if queue grid and world grid are not replicated. The reference is still only created on the server and not on the client. Which is fine. Now how do I get the server to show the decal?