Hello!
Sorry if this in the wrong category.
I made a script that if you speed hack, jump and Health You will be get kicked
But there is scripts that cant get the kick and start exploiting the game.
Any ideas?
Thank you.
Hello!
Sorry if this in the wrong category.
I made a script that if you speed hack, jump and Health You will be get kicked
But there is scripts that cant get the kick and start exploiting the game.
Any ideas?
Thank you.
What do exploiters do in your game, still speed jump and health?
If you mean you need to have a LocalScript invisible physically to exploiters, then do something like this
-- local script in game.ReplicatedFirst
script:Destroy() -- destroy the script
coroutine.wrap(function()
wait(2) -- after 2 seconds...
print("running code") -- print
end)()
-- it can be achieved with a while loop as well, with no coroutines
Edit: code loaded into the client will stay in memory, thanks Autterfly
They can bypass the speed hack, health and jump.
Could you show us your current antiexploit script?
This doesn’t make your scripts invisible nor any harder to find if it’s local. The problem OP has is most likely to do with a bad authoritative client model.
Since exploiters can change only client stuff. You can just check when the speed/jump/health changes then change it back/kick them. And make sure you don’t have any remotes that are easy to use to change server stuff.
The jump power script:
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
repeat wait() until LocalPlayer.Character
while true do
wait()
if LocalPlayer.Character.Humanoid.JumpPower ~= 50 then
LocalPlayer:Kick("Exploiting")
wait(10)
end
end
Instead of looping, you can use GetPropertyChangedSignal. And things like that should work. Looping should work, it’s just more efficient and accurate to use functions here in my opinion
Yes it is local script. I will try your method
I don’t think you can kick form local scripts though. You can try to use remote events to fire the server to kick the player.
Players can access local scripts, which is why they are not very effective at stopping exploiters. Anti-exploits should always be inside of a server script.
Just a question, exploiters can change only local scripts and client things, so how can the server check without remote events/functions?
The server can use a for loop through all the player’s characters, and when a value has been changed in the humanoid of the looped player, the player gets kicked/punished.
The simple answer is you can’t.
However, you can check a few things on the server-side, such as their travelling speed.
Just take things such as lag into account when doing checks like that.
Never trust the client.
The client can also view your localscript’s bytecode (and modules required by one), then decompile it and perhaps make a bypass for themselves, or they can just remove it completely.
A script can run in nil, yes, but that won’t prevent anything, nor help if a exploiter wants to have fun.
They can see that kind of stuff by doing a simple loop:
for _,v in ipairs(getnilinstances()) do
print(v.Name .. ' | ' .. v.ClassName)
end
If the loop is in a local script, exploiters could simply delete or alter it. If it is in a server script, it wouldn’t do much, as the script won’t be able to detect the local changes that the exploiter has made.
It can’t, which is why some exploits are hard to stop.
But when i try it on the server script the script wont run.
If the loop is in a local script, exploiters could simply delete or alter it.
This can be easily protected by using a ChildRemoved event, if the doesn’t find the anti cheat, the client will be kicked/punished.
If an exploiter locally changes their WalkSpeed, the server will not be able to detect it with this script.