UPDATE 2:
As of around 2/28/2021, ROBLOX took action to add a hard cap to SimulationRadius, meaning the max is around 1000. This makes parts more fragile in their ownership state and will likely kill those scripts slowly.
UPDATE:
ROBLOX has updated to remove property changing to SimulationRadius, which means the provided script is broken. There are no better fixes to this bug at the moment.
For anyone interested in the thread, I will keep it archived below
This has been a semi-private method, but has recently come to be more popularized so why not help the community and stop exploiters.
Explanation
To explain what NetworkOwnership is, NetworkOwnership is used when you want a player to control the physics of a part that’s unanchored, which can be useful in games like Natural Disaster Survival where tons of parts are falling, and can help speed up the server by balancing the load while making user experiences smoother.
However, this has been abused by exploiters dropping hats and making fling scripts, inappropriate in-game actions and making the game unplayable to others (For example, join Fencing by Stickmasterluke), but these scripts can be fixed thanks to ROBLOX’s .Changed implementation
Simply put this script in a server script inside ServerScriptService and let it work its magic!
Script
game:GetService("Players").PlayerAdded:Connect(function(p)
p.Changed:Connect(function(prop)
if prop == "SimulationRadius" then
p:Kick()
end
end)
end)
To explain the script, Exploiters abuse the “SimulationRadius” property which increases the range and likelihood of controlling the parts around them, by setting it to math.huge
they can control every unanchored part in the game. No script will ever trigger this as 90% of scripters never use it, and by having this on the server, no exploiter can easily bypass it.
Enjoy