print("[ironclad] loader started") if getgenv().ScriptRunning then print("[ironclad] stopped: script already executed") return end if _G.Loader_LOADED then warn("[ironclad] stopped: loader is already running") return end _G.Loader_LOADED = true print("[ironclad] initialization passed") local Players = game:GetService("Players") local HttpService = game:GetService("HttpService") local LocalPlayer = Players.LocalPlayer local function kick(reason) repeat task.wait() LocalPlayer = Players.LocalPlayer until LocalPlayer LocalPlayer:Kick("\nironclad error\n\n" .. reason) return coroutine.yield() end local identifyexecutor = identifyexecutor or getexecutorname local executorname = identifyexecutor and identifyexecutor() or "Unknown" local executorlow = executorname:lower() print("[ironclad] executor detected: " .. executorname) if executorlow:find("solara") or executorlow:find("xeno") then warn("[ironclad] blocked executor") return kick("use normal exec\nweao.xyz") end local hookfunction = hookfunction if not (identifyexecutor and hookfunction) then warn("[ironclad] required executor functions are missing") return kick("executor unsupported.\nneeds: identifyexecutor + hookfunction\nyours: " .. tostring(identifyexecutor) .. " | hf: " .. tostring(hookfunction)) end print("[ironclad] executor requirements passed") local key_path = "ironcladkey.txt" local key = script_key if not key or key == "" then if isfile and isfile(key_path) then key = readfile(key_path) or "" print("[ironclad] key loaded from file") end else print("[ironclad] key provided by executor") end if not key or key == "" then warn("[ironclad] stopped: no key found") return kick("no key found.\nset script_key = \"yourkey\" before executing.") end print("[ironclad] key check passed") if writefile and (not isfile or not isfile(key_path)) then writefile(key_path, key) end local ok, json = pcall(function() print("[ironclad] requesting script data") return game:HttpGet("https://wironclad.cyou/script/data.json") end) if not (ok and json) then warn("[ironclad] script data request failed: " .. tostring(json)) return kick("unable to load script data.\n" .. tostring(json)) end print("[ironclad] script data received (" .. #json .. " bytes)") local ok2, data = pcall(function() return HttpService:JSONDecode(json) end) if not (ok2 and data) then warn("[ironclad] script data JSON decoding failed: " .. tostring(data)) return kick("unable to deserialize script data.\n" .. tostring(data)) end print("[ironclad] script data decoded") local gameId = tostring(game.GameId) print("[ironclad] looking up game id: " .. gameId) local entry = data[gameId] if not entry then warn("[ironclad] no script configured for this game id") return kick("this game is not supported.") end if entry.working == false then warn("[ironclad] script is disabled for this game") return kick("this script is currently disabled.") end local script_url = entry.script print("[ironclad] requesting game script") local ok3, source = pcall(function() return game:HttpGet(script_url) end) if not (ok3 and source) then warn("[ironclad] game script request failed: " .. tostring(source)) return kick("unable to load script source.\n" .. tostring(source)) end print("[ironclad] game script received (" .. #source .. " bytes)") local key_prefix = 'script_key = "' .. key .. '"\n' print("[ironclad] compiling game script") local ok4, func, err = pcall(loadstring, key_prefix .. source) if ok4 and type(func) == "function" then print("[ironclad] compilation passed; executing game script") func() else warn("[ironclad] compilation failed: " .. tostring(err or func)) return kick("unable to loadstring script.\n" .. tostring(err or func)) end