I don’t have many knowledge of hackers/exploiters
But from what i know they can hold script before execution and edit/disable it,
So what i tested is i added a simple if player walk speed is greater than 16 make there humanoid 0
In a local script, and added a clone of this simple anti exploit script in server storage,
Then i added a server script and basically with the server script i delete the anti exploit script and replace it with a new one(cloned one form server storage) and this happens every 0.07 seconds.
So even if they try to edit the anti exploit script it will be a deleted one there editing and there will already be a new one same goes for disabling it,
Is there something else i didn’t know and they can still bypass this to walk faster?
That won’t work because the client can’t see serverstorage and therefore cannot create clones in it. Just keep track of each player’s speeds from the server
Local scripts can always be bypassed, I’m pretty sure this could be bypassed by using metatables, and setting walkspeed always to below 16, meanwhile the character runs way faster.
Not necessarily. An exploiter could change their walkspeed and use metatables to return walkspeed value of 16, and the server would still read the property as 16, but because the client owns physics ownership of their character, they would still be speedy. This is why anti exploits use magnitude checks.
Also, I don’t think it’s a good idea to rely on an exploiter not being able to delete local scripts fast enough because they can do anything with their client. “My machine, my rules.”
I’m not entirely sure what you mean by rewriting the code, but assume an exploiter can just use Synapse to execute anything a localscript can plus more.
If you really want to know how an exploiter can make their walkspeed look like it’s 16 without being detected, check out this tutorial post on metatables. I believe it explains how exploiters can use debug.getmetatable().
This should be fine in development discussion because we’re talking about if this system would be reliable or not, and if it’s effective or not. Scripting support is meant for getting help on code you wrote, but he didn’t write any code here. Code Review is for improving upon already working code.
There’s no need to spoof the property with metatables in the first place because WalkSpeed doesn’t replicate and likewise the server would ignore the change because updating the metatable is only applicable client-side.
Why not just check on the server side for speed exploits?
game.Players.PlayerAdded:Connect(function(player)
while wait() do
if player.Character.Humanoid.WalkSpeed ~= 16 then -- making sure it stays normal speed of 16
player:kick()
else
--do nothing
end
end
end)