NetworkOwnership Exploit Patch (Outdated)

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 :slight_smile:

67 Likes

Wouldn’t this affect all players, legit or not?

SimulationRadius is constantly changing for all players in a game.

5 Likes

I’ve put this in my game and all the script kiddies using SimulationRadius are gone

4 Likes

Changed doesn’t fire unless the client manually changes the property

4 Likes

Did not know that, that’s very neat.

I’ll have to check this out.

Cheers

The real SimulationRadius is an internal change, therefore it doesn’t call .Changed and exploiters cannot fire it (at least for now, who knows)

4 Likes

I can vouch for this! I’ve been using it and working with the original poster for a while now.

The Changed event did use to fire for every client if an exploiter manually changed their simradius, not sure what happened but it doesn’t anymore so this is a certainly a good thing.

On another note I’m not sure if Roblox will approve of this since this property has LocalUserSecurity and we are indirectly accessing it through a “loophole”.

1 Like

It’s fine. The only reason it’s LocalUserSecurity is because it’s meant to be modifiable by the client only.

This is a useful tool to prevent exploiters from doing weird things in your game. Roblox aren’t going to fault you for that.

1 Like

I’ve removed the tag from your title–that’s what the “optional tags” section is for. :slight_smile:

2 Likes

Would this actually fully patch every kind of NetworkOwnership exploit? It’s hard to think Roblox wouldn’t find a way that like you did to fix exploits like this.

MaxSimRadius does not replicate to the server and is not needed to make the exploit work so it’s wasted effort.

1 Like

Yes, I just checked this, you’re right actually - my apologies there. If anything then, the above is a method to perhaps bypass the check then.

1 Like

So if I use this script to ban exploiters, would there be false bans for players that did nothing?

1 Like

I have to inform you that this patch has recently been rendered useless, as exploiters have found a way around the detection, somehow.

2 Likes

It seems that exploits now have a bypass for this method; using this will only affect their outdated scripts.

1 Like

Thank you for releasing this patch, this is a wonderful method to get rid of all the annoying exploiters.

Nowadays, exploits like Synapse offer custom functions such as SetSimRadius which doesn’t send a Changed packet but this is still a wonderful patch.

1 Like

This was released on v3rmillion as well.

I can confirm this patch is real and does actually work for those outdated scripts but I’m pretty sure there’s a new workaround.

I’ve seen the new workaround, in a nutshell they fire a event called SimulationRadiusChanged, which doesn’t get triggered by the server so I’ll be looking for an alternative way, and if I cant then there will have to be a dedicated script to check the controlled parts

1 Like

This won’t help. I’m pretty sure exploiters already found method how to bypass it.