If you are calling a server RPC on the door actor that’s where it is getting dropped.
Routing it through an actor you own means basically making an RPC on the character called like UpdateDoorRotation that takes the door reference and the rotation value. Then on the server side you can set that value on the door since it will then be on the authority side. The function is basically a middle man just to get to the server with an actor you own.
Once you do that you will want to communicate the door rotation to be replicated back down to clients, not a multicast RPC. Couple reasons for this
- the door rotation is state. And state should always use replicated variables. If a client joins your game late, they will get accurate values for your door rotations if they are replicated. The doors will all be wrong if you used RPC because that client wasn’t there to get the RPCs.
- RPC needlessly (in this case) circumvents the functionality of replication. If I manipulate a door on the other side of the map, it could be out of network relevancy range and not need to update clients not close enough to see it, until they move closer. An RPC, especially a multicast RPC is something to be avoided most of the time.
RPC should be used for one off events that can happen, but if they’re to result in anything with any degree of persistence, that part needs to be a replicated variable from server to client.
Hope that helps.