Because it’s impossible, the moment you share something with the client no matter how hard you try to encrypt or hide it, it’ll be abusable.
Yes! Thats the main problem there.
Acutally; I have a way to make localscripts not readable by exploiters although they can still delete, disable, etc but they cannot decompile it.
They don’t need to decompile it, they could just edit memory addresses and values and change your script’s behavior without ever touching or looking at it. Also, nothing is un-decompilable, if your computer can read and execute it then so can anyone who has access to it.
Still, but my method doesn’t let exploiters read the code. [not even synapse decompilers]
I really doubt that’s even possible, exploiters can read LocalScripts that run on their machine from basically anywhere (even if they’re parented to nil, I think synapse has a function to get instances from nil)
The source of a script can’t show up from the client.
That’s why I said exploiters can. Normal clients probably can’t, but exploiters have decompiling tools.
No they can’t since exploiters are same with the client.
Yes but I have a way to crash the decompiler while attempting to decompile [wont crash the client but wont let the decompiler show its contents]
if you think you have a good anticheat you’ve been fooled,
all it takes is a simple few lines of code and it is completely invalidated
local __namecall
__namecall = hookmetamethod(game, "__namecall", function(self, ...)
if getnamecallmethod() == "Kick" then
return task.wait(10e9)
end
return __namecall(self, ...)
end)
ooo the simple client sided anti kick; this is why you should never use client sided anti exploits.
also this code isn’t correct; and wont work.
I’m sorry? Exploiters always have (and probably always will) be able to use decompiling tools to look at LocalScripts. Things like variable names may be lost, but they can still pretty much always reconstruct it.
it actually will work with an exploit, on roblox, it will not work
No, it wont even work on an exploit; its incorrect.
tell me how it is incorrect? it seems perfectly fine to me
This is the correct one:
local old = mt.__namecall
local protect = newcclosure or protect_function
setreadonly(mt, false)
mt.__namecall = protect(function(self, ...)
local method = getnamecallmethod()
if method == "Kick" then
wait(9e9)
return
end
return old(self, ...)
end)
hookfunction(game:GetService("Players").LocalPlayer.Kick,protect(function() wait(9e9) end))
that’s old, this is with the new hookmetamethod api
The one I sent up top Is from a yt video i found here is from a roblox exploit source code
local mt = getrawmetatable(game)
local old = mt.__namecall
local protect = newcclosure or protect_function
if not protect then
notify("Incompatible Exploit Warning", "Your exploit does not support protection against stack trace errors, resulting to fallback function")
protect = function(f) return f end
end
setreadonly(mt, false)
mt.__namecall = protect(function(self, ...)
local method = getnamecallmethod()
if method == "Kick" then
wait(9e9)
return
end
return old(self, ...)
end)
hookfunction(Players.LocalPlayer.Kick,protect(function() wait(9e9) end))
from the popular exploit “Infinite Yield”