99.99% chance that nobody will find a way to bypass my client sided anti cheat but I will be amused by the many people who try.
Good luck everyone!
99.99% chance that nobody will find a way to bypass my client sided anti cheat but I will be amused by the many people who try.
Good luck everyone!
Eh… Do you mind sending Obfuscated Version Code so i can just try it without risk of banning
An ethical exploiter bypassed it privately. I’m working with them to improve it and continuously make it better but yeah just for the record guys do not solely rely on a crash function to stop exploiters this is how they can bypass it without even having the function name
for _, func in ipairs(getgc()) do
if type(func) == "function" and islclosure(func) then
local info = getinfo(func)
-- Check if the source contains "AC"
if string.find(info.source, "AC") then
-- Hook the function without checking the name, just disable its behavior
hookfunction(func, function() end)
end
end
end
Decompiled version of this ‘anticheat’
decompiler broke a bit so it wasnt able to get everything
local script = getNil("AntiCheat", "LocalScript")
-- Decompiler will be improved VERY SOON!
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/brNTY8nX8t)
-- Decompiled on 2025-06-30 21:03:14
-- Luau version 6, Types version 3
-- Time taken: 0.003983 seconds
getfenv().script.Destroy(script)
getfenv().script = nil
local var1_upvw = true
local ReplicatedStorage_upvr = game:GetService("ReplicatedStorage")
local RunService_upvr = game:GetService("RunService")
local LocalPlayer = game:GetService("Players").LocalPlayer
local var5_upvr
if not var5_upvr then
var5_upvr = LocalPlayer.CharacterAdded:Wait()
end
local Humanoid_upvr = var5_upvr:FindFirstChild("Humanoid")
local AntiCheat_upvr = ReplicatedStorage_upvr:FindFirstChild("AntiCheat")
local randint_upvw = math.random(42, 420000)
local var9_upvw = randint_upvw + 2 + 2 + 2 + 2
local var10_upvw = true
if var5_upvr and Humanoid_upvr then
Humanoid_upvr:GetPropertyChangedSignal("WalkSpeed"):Connect(function() -- Line 57
--[[ Upvalues[4]:
[1]: var9_upvw (read and write)
[2]: var10_upvw (read and write)
[3]: var5_upvr (readonly)
[4]: Humanoid_upvr (readonly)
]]
var9_upvw += 1
var10_upvw = true
if var5_upvr and Humanoid_upvr then
Humanoid_upvr.WalkSpeed = 16
end
end)
end
if var5_upvr and Humanoid_upvr then
Humanoid_upvr:GetPropertyChangedSignal("JumpPower"):Connect(function() -- Line 75
--[[ Upvalues[4]:
[1]: var9_upvw (read and write)
[2]: var10_upvw (read and write)
[3]: var5_upvr (readonly)
[4]: Humanoid_upvr (readonly)
]]
var9_upvw += 1
var10_upvw = true
if var5_upvr and Humanoid_upvr then
Humanoid_upvr.JumpPower = 50
end
end)
end
if var5_upvr and Humanoid_upvr then
Humanoid_upvr:GetPropertyChangedSignal("JumpHeight"):Connect(function() -- Line 93
--[[ Upvalues[4]:
[1]: var9_upvw (read and write)
[2]: var10_upvw (read and write)
[3]: var5_upvr (readonly)
[4]: Humanoid_upvr (readonly)
]]
var9_upvw += 1
var10_upvw = true
if var5_upvr and Humanoid_upvr then
Humanoid_upvr.JumpHeight = 7.2
end
end)
end
workspace:GetPropertyChangedSignal("Gravity"):Connect(function() -- Line 109
--[[ Upvalues[2]:
[1]: var9_upvw (read and write)
[2]: var10_upvw (read and write)
]]
var9_upvw += 1
var10_upvw = true
workspace.Gravity = 196
end)
if var5_upvr and Humanoid_upvr then
Humanoid_upvr.WalkSpeed = 17
Humanoid_upvr.JumpPower = 51
Humanoid_upvr.JumpHeight = 9
end
workspace.Gravity = 200
if AntiCheat_upvr then
local var21_upvw = false
local var22_upvw
local any_Connect_result1_upvw = RunService_upvr.RenderStepped:Connect(function(arg1) -- Line 119
--[[ Upvalues[3]:
[1]: var5_upvr (readonly)
[2]: Humanoid_upvr (readonly)
[3]: var10_upvw (read and write)
]]
task.wait(arg1)
if var5_upvr and Humanoid_upvr then
Humanoid_upvr:GetPropertyChangedSignal("WalkSpeed"):Connect(function() -- Line 125
--[[ Upvalues[3]:
[1]: var10_upvw (copied, read and write)
[2]: var5_upvr (copied, readonly)
[3]: Humanoid_upvr (copied, readonly)
]]
var10_upvw = true
if var5_upvr and Humanoid_upvr then
Humanoid_upvr.WalkSpeed = 16
end
end)
end
if var5_upvr and Humanoid_upvr then
Humanoid_upvr:GetPropertyChangedSignal("JumpPower"):Connect(function() -- Line 141
--[[ Upvalues[3]:
[1]: var10_upvw (copied, read and write)
[2]: var5_upvr (copied, readonly)
[3]: Humanoid_upvr (copied, readonly)
]]
var10_upvw = true
if var5_upvr and Humanoid_upvr then
Humanoid_upvr.JumpPower = 50
end
end)
end
if var5_upvr and Humanoid_upvr then
Humanoid_upvr:GetPropertyChangedSignal("JumpHeight"):Connect(function() -- Line 157
--[[ Upvalues[3]:
[1]: var10_upvw (copied, read and write)
[2]: var5_upvr (copied, readonly)
[3]: Humanoid_upvr (copied, readonly)
]]
var10_upvw = true
if var5_upvr and Humanoid_upvr then
Humanoid_upvr.JumpHeight = 7.2
end
end)
end
workspace:GetPropertyChangedSignal("Gravity"):Connect(function() -- Line 171
--[[ Upvalues[1]:
[1]: var10_upvw (copied, read and write)
]]
var10_upvw = true
workspace.Gravity = 196
end)
end)
var22_upvw = AntiCheat_upvr.OnClientEvent:Connect(function(arg1) -- Line 195
--[[ Upvalues[10]:
[1]: var9_upvw (read and write)
[2]: randint_upvw (read and write)
[3]: var21_upvw (read and write)
[4]: var5_upvr (readonly)
[5]: var10_upvw (read and write)
[6]: Humanoid_upvr (readonly)
[7]: var1_upvw (read and write)
[8]: AntiCheat_upvr (readonly)
[9]: var22_upvw (read and write)
[10]: any_Connect_result1_upvw (read and write)
]]
-- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
-- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [5] 5. Error Block 2 start (CF ANALYSIS FAILED)
var21_upvw = true
-- KONSTANTERROR: [5] 5. Error Block 2 end (CF ANALYSIS FAILED)
-- KONSTANTERROR: [7] 7. Error Block 3 start (CF ANALYSIS FAILED)
-- KONSTANTERROR: [7] 7. Error Block 3 end (CF ANALYSIS FAILED)
end)
end
task.delay(6, function() -- Line 323
--[[ Upvalues[4]:
[1]: var1_upvw (read and write)
[2]: RunService_upvr (readonly)
[3]: AntiCheat_upvr (readonly)
[4]: ReplicatedStorage_upvr (readonly)
]]
if var1_upvw then
while true do
RunService_upvr.RenderStepped:Wait()
AntiCheat_upvr.Parent = ReplicatedStorage_upvr
AntiCheat_upvr:FireServer((function() -- Line 325, Named "WrongValue"
return 42
end)())
end
end
end)
Great job! You were able to use a decompiler script to decompile my anti cheat. I appreciate valid feedback and it is always helpful. Thank you for taking the time to decompile it ![]()
your very welcome, anything to help the roblox community remain respectful and productive.
Anyone can purchase my anti cheat now if you would like. I have made it available as a plugin