Clients overriding NetworkOwnership set by server

I was working on a mechanic for my game that allows players to drag objects around. Basically, I have unanchored parts that only one player should ever have network ownership of so they can manipulate the position of the part without lag. I have a server-side script that sets the network ownership of the part to the player who owns it. If the client-side script of another player tries to change the position of the part, Roblox changes the network ownership of the part automatically even though I set it manually in the server script.

Why does this happen? Is it a bug?

I have tried it on Roblox studio test servers. Is this an issue with Roblox studio only?

It seems like this would make it very easy for cheaters to move any unanchored parts by simply changing their position in a client-side script. Please, let me know if I am missing something.

2 Likes

Clients automatically take network ownership of parts near them to make interaction smoother even if you don’t expect that to happen, there’s no way around it currently
Consider using CFrames to move parts, since anchored parts force network ownership to server OR change the parts ownership to the player on heartbeat (not sure how well that would work but it should)

1 Like