Set Actor Location on client / replication

I was running into a similar issue, even using a run-on-server RPC function. The problem in my case turned out to be the “net load on client” flag under replication on the actor itself; it should be OFF.

I think what’s going on here is net load on client basically tells connecting clients to load all objects in the level during client connection from the client’s hard drive; I think it does this to save bandwidth by not having to send all the information about the level. So if your actor is already in the level (which mine was) and you are trying to move it after the fact during level or game mode BeginPlay or similar, you want the client to get information about the actor directly from the server when loading the map, instead of loading the initial start locations from the map it already has (which is normally safe for objects that won’t need to move, hence the default to “net load on client” being sane)

I also checked “replicate movement” but i’m not sure if that was necessary. If your actor exists in the level itself at load, I think this should fix your issue.