local Players = game:GetService("Players") local HttpService = game:GetService("HttpService") local LocalPlayer = Players.LocalPlayer local function kick(reason) LocalPlayer:Kick(reason or "Unauthorized tool detected.") while true do end end -- Check if HttpService methods are hooked local function isHooked(func, name) local success, result = pcall(function() return debug.getinfo(func) end) if success and result then if result.source and result.source:lower():find("httpspy") then return true end if result.name and result.name:lower():find("spy") then return true end end return false end local function detectHooks() local hooked = false local httpMethods = { HttpService.RequestAsync, HttpService.GetAsync, HttpService.PostAsync, } for _, method in ipairs(httpMethods) do if isHooked(method) then hooked = true end end -- Check if HttpService has been replaced if not rawget(getrawmetatable(HttpService), "__index") then hooked = true end -- Check if hookfunction is overridden if hookfunction and not islclosure(hookfunction) then hooked = true end -- Check for global HttpSpy variable if getgenv and type(getgenv().HttpSpy) == "table" then hooked = true end return hooked end -- Scan getgc for suspicious functions local function detectGCSpy() for _, func in pairs(getgc(true)) do if typeof(func) == "function" and islclosure(func) then local info = debug.getinfo(func) if info.name and info.name:lower():find("spy") then return true end if info.source and info.source:lower():find("httpspy") then return true end end end return false end -- Combine all detections local function detectHttpSpy() return detectGCSpy() or detectHooks() end -- Run check task.delay(3, function() if detectHttpSpy() then kick("Unauthorized HTTP logging tool detected. Connection terminated.") end end)