Is NetworkOwnership already handled by Roblox to prevent exploiters? Is there anything I need to script into my tools to prevent exploiters from abusing it?
If you have network ownership, you have total control of how that part will react in respect to physics. If you want to prevent the player from doing something they shouldn’t with a part they own, use server sided scripts to detect said things and counter them.
You don’t even need hacks to try this. Go into studio and start a test session with one client and the server. Open them both by putting them side to side if you have one monitor. Try screwing with the part (cframe, bodymovers, etc) and see what it looks like on the server
If a part is created by the server, does the server automatically control ownership?
What if it’s unanchored?
Yes. Anchored parts cannot have network ownership (the server controls them, though) since they are not physically simulated.
This might sound dumb, but can a player control another players unanchored descendants?
Like Player A exploits to control Player B’s unanchored tool?
By default, all parts’ network ownership is set to server. Realistically speaking, unless you were to deliberately give Player B network ownership over one of the parts that Player A controls, then there is no way that Player B could control Player A’s parts’ physics.
I do not recall off the top of my head if setting network ownership of a parent part also changes it for it’s children, so you may need to recursively use :GetAllChildren()
while changing network ownership of a model.