Hello, I currently have a script that I’m using to rotate the local player’s head and body based on their camera, however, it’s only client-sided. I was wondering if anyone knew of a good, not resource expensive way of replicating that rotation across to other clients.
Assuming you are using C0: How to make Motor6D.C0 replicate on all clients? - #3 by Rare_tendo
Replicating anything local to other client(s) requires some sort of a unison connection between the Server, hence why Remotes are tremendously useful. Local Sided Head rotation does indeed help prevent universal lag but unfortunately does not deliver the realism aspect.
Implementation of Server Side Head [Camera] rotation:
LocalScript => StarterCharacterScripts to declare, parse, and broadcast various Client actions. [i.e head rotation]
ServerScript => ServerScriptService
RemoteEvent => Replicated Storage [Source/Fix]
Inside of the ServerScript which shall act as your handler, you could establish a OnServerEvent which triggers a function that updates the Head position/Rotation [CFrame assuming that you are using C0, which you should be], or uses ‘FireClient’ as a way to handle everything for LocalPlayer instead of doing so via the server whereas it would broadcast/replicate to each client, anyhow still does the same thing in retrospect.
Inside of the LocalScript you can run a loop that constantly fires the C0 value of the LocalPlayer to the server, or use RunService in order to smooth things out.
I hope that this helped you, there are various tutorials/methods out there which you can emulate but I strongly believe that this is the best and fitting to your satisfaction.