Hello, I’m using remote events to communicate between client and server, and for some reason when i set the client’s CFrame it also occurs for the server too, despite none of my server scripts changing position or CFrame. All the server script does is change the character’s appearance. I’d be thankful if somebody could tell me why exactly this is occuring.
NetworkOwnership is used to determine which parts and their physics the client (your computer) should render and handle, and which parts and their physics the server (Roblox) should handle. All of the parts around the player are set to their NetworkOwnership by default, however you can manually change this. Anything far away from a player is set to the server.
It is inefficient for the server to handle all physics. A physics part network owner is either nil (server has network ownership) it a player instance (that player can control the physics of that part). This is why speed and teleport exploits work, the server has no real control over a character as the client can override any changes.
This is because the movement of unanchored parts (which includes the limbs, accessories, tools of the player’s character model) replicates to the server even if performed from the client-side through a local script.