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”.
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.
I’ve removed the tag from your title–that’s what the “optional tags” section is for.
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.
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.
So if I use this script to ban exploiters, would there be false bans for players that did nothing?
I have to inform you that this patch has recently been rendered useless, as exploiters have found a way around the detection, somehow.
It seems that exploits now have a bypass for this method; using this will only affect their outdated scripts.
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.
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
This won’t help. I’m pretty sure exploiters already found method how to bypass it.
They have, but the people who make the scripts haven’t. The real exploit creators have their own functions to set the simulation radius; also, Roblox made SimulationRadius a hidden property it seems. But theres also a sethiddenproperty function so not very effective, not that I think it was meant to stop SimulationRadius exploitation.
Wrong method, easily bypassable, and yet you cannot read changes from a localscript.
What? Can you elaborate?
This method isn’t bypassable - it will not stop, however, people who exploit stuff they already have network ownership of
It is bypassable; see above replies and not just mine.
I don’t know what he’s talking about though. SimulationRadius is meant to replicate. It’s part of physics.
As long as Roblox doesn’t allow us reading out SimulationRadius from players (which isn’t going to happen since they just marked it as hidden), you shouldn’t use automatic part ownership system. Use SetNetworkOwner
instead. When I find the motivation I would make a replacement for the automatic system in the future which isn’t exploitable.
Values aren’t replicated in any way, exploits have a trick behind their sleeve to set the value and yet there are better ways to fix it.