if not game: IsLoaded() then game.Loaded:Wait() end local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer UIS = game:GetService("UserInputService") RunService = game:GetService("RunService") Stats = game:GetService("Stats") TweenService = game:GetService("TweenService") HttpService = game:GetService("HttpService") ReplicatedStorage = game:GetService("ReplicatedStorage") Workspace = game:GetService("Workspace") Lighting = game:GetService("Lighting") TeleportService = game:GetService("TeleportService") CoreGui = game:GetService("CoreGui") VirtualInputManager = game:GetService("VirtualInputManager") -- Unlimited FPS: remove Roblox's default 240 FPS cap. 0 = uncapped on most executors. pcall(function() if setfpscap then setfpscap(0) end end) -- Insta-reset state captured by the FireServer hook below. -- GUID is the first arg of the balloon payload. Defaults to a randomly-generated -- UUID so the payload is at least syntactically valid (an empty string was -- silently rejected by the server -- that's why the reset wasn't firing). If you -- have a known-good GUID, set `_G.EK_RESET_GUID` before the script runs. local function _newGUID() local hex = "0123456789abcdef" local t = {} for i = 1, 32 do t[#t+1] = hex:sub(math.random(1,16), math.random(1,16)) end return table.concat(t, "", 1, 8) .. "-" .. table.concat(t, "", 9, 12) .. "-" .. table.concat(t, "", 13, 16) .. "-" .. table.concat(t, "", 17, 20) .. "-" .. table.concat(t, "", 21, 32) end local function makeOneWay(plat) if not plat then return end local rsConn local lastY = nil rsConn = game:GetService("RunService").Stepped:Connect(function() if not plat or not plat.Parent then if rsConn then rsConn:Disconnect() end return end local char = game.Players.LocalPlayer.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if hrp then local currentY = hrp.Position.Y if not lastY then lastY = currentY end local deltaY = currentY - lastY local isMovingUp = (hrp.AssemblyLinearVelocity.Y > 1) or (deltaY > 0.01 and deltaY < 5) if isMovingUp then plat.CanCollide = false else if currentY > plat.Position.Y + 0.1 then plat.CanCollide = true else plat.CanCollide = false end end lastY = currentY end end) end GUID = GUID or _G.EK_RESET_GUID or _newGUID() resetRemote = nil instaResetCooldown = false local old; old = hookfunction(Instance.new("RemoteEvent").FireServer, function(self, ...) local args = {...} local arg1 = args[1] -- Capture the first RE/* remote the game itself fires -- that's the reset -- target for instareset() below. if not resetRemote and self.Name:sub(1, 3) == "RE/" then resetRemote = self end if #self.Name == 67 and arg1 and typeof(arg1) == "string" then if string.find(arg1, "StopTrying") then print("ez bypass") return end end return old(self, ...) end) -- LPH_NO_VIRTUALIZE: real preprocessor directive under Luraph; harmless passthrough -- everywhere else. Declared once globally so every heavy hot-path body can wrap -- itself without each call site re-shimming. if not LPH_NO_VIRTUALIZE then LPH_NO_VIRTUALIZE = function(fn) return fn end end -- ===================================================================== -- LAZY-LOAD QUEUE -- ===================================================================== _G.__EKLazyQ = _G.__EKLazyQ or {} local function LazyInit(name, fn) table.insert(_G.__EKLazyQ, { name = name, fn = LPH_NO_VIRTUALIZE(fn) }) end task.defer(LPH_NO_VIRTUALIZE(function() while true do if #_G.__EKLazyQ > 0 then local item = table.remove(_G.__EKLazyQ, 1) local ok, err = pcall(item.fn) if not ok then warn("[EK Lazy]", item.name, err) end task.wait(0.08) else task.wait(0.5) end end end)) -- Persistent panel visibility store that survives script re-executes within the same Roblox session _G._EKPanelVis = _G._EKPanelVis or {} _G.lazyUIs = {} _G.addLazyUI = function(element, targetVis, isScreenGui, panelName) if element then if isScreenGui then element.Enabled = false else element.Visible = false end table.insert(_G.lazyUIs, {element = element, targetVis = targetVis, isScreenGui = isScreenGui, cancelled = false, panelName = panelName}) end end _G.cancelLazyUI = function(element) for _, item in ipairs(_G.lazyUIs) do if item.element == element then item.cancelled = true break end end end task.delay(4.0, function() for _, item in ipairs(_G.lazyUIs) do if item.element and not item.cancelled then local vis if item.panelName then -- Priority: _G store (survives re-exec) > Config.Visibilities > default true local fromG = _G._EKPanelVis[item.panelName] if fromG ~= nil then vis = fromG elseif Config and Config.Visibilities then local saved = Config.Visibilities[item.panelName] if saved ~= nil then vis = saved else vis = true end else vis = item.targetVis end else vis = item.targetVis end if item.isScreenGui then pcall(function() item.element.Enabled = vis end) elseif item.element.Parent then pcall(function() item.element.Visible = vis end) end end end if _G.initRemoteSellLazy then pcall(_G.initRemoteSellLazy) end end) local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") pcall(function() Players.RespawnTime = 0 end) -- GLOBAL SCALE SYSTEM (Mobile Friendly Auto-Scaling) local GlobalUIScaleVal = 1 local scaledGuis = {} local function getGlobalScale() return GlobalUIScaleVal end local function updateAllGuisScale(newScale) GlobalUIScaleVal = newScale for sg, master in pairs(scaledGuis) do pcall(function() if sg and sg.Parent and master and master.Parent then local scaleObj = master:FindFirstChild("EK_GlobalScale") if scaleObj then scaleObj.Scale = newScale end master.Size = UDim2.new(1 / newScale, 0, 1 / newScale, 0) end end) end end local function registerScreenGui(sg) local master = sg:FindFirstChild("EK_MasterFrame") if not master then master = Instance.new("Frame") master.Name = "EK_MasterFrame" master.BackgroundTransparency = 1 master.BorderSizePixel = 0 master.Parent = sg local scaleObj = Instance.new("UIScale") scaleObj.Name = "EK_GlobalScale" scaleObj.Parent = master end scaledGuis[sg] = master pcall(function() local scaleObj = master:FindFirstChild("EK_GlobalScale") if scaleObj then scaleObj.Scale = GlobalUIScaleVal end master.Size = UDim2.new(1 / GlobalUIScaleVal, 0, 1 / GlobalUIScaleVal, 0) end) return master end local function recalculateScale() local cam = Workspace.CurrentCamera if not cam then return end local size = cam.ViewportSize local h = size.Y local isMobile = UIS.TouchEnabled local newScale = 1 if isMobile then -- Mobile/Tablet scaling: aggressive down-scale to perfectly fit small landscape screens newScale = math.clamp(h / 1000, 0.40, 0.58) else -- PC/Console scaling: standard comfortable scaling newScale = math.clamp(h / 800, 0.65, 1.0) end updateAllGuisScale(newScale) end local cameraConn local function setupCameraListener() if cameraConn then pcall(function() cameraConn:Disconnect() end) end local cam = Workspace.CurrentCamera if cam then cameraConn = cam:GetPropertyChangedSignal("ViewportSize"):Connect(recalculateScale) recalculateScale() end end Workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(setupCameraListener) task.spawn(setupCameraListener) local old = playerGui:FindFirstChild("EKHub_V3"); if old then old:Destroy() end local gui_sg = Instance.new("ScreenGui"); gui_sg.Name = "EKHub_V3"; gui_sg.ResetOnSpawn = false; gui_sg.IgnoreGuiInset = true; gui_sg.DisplayOrder = 9999999; gui_sg.Parent = playerGui local gui = registerScreenGui(gui_sg) -- SHARED TOGGLE STATE local ToggleState = {} local function regToggle(name, default) if not ToggleState[name] then ToggleState[name] = {value = default or false, listeners = {}} end end local function getToggle(name) return ToggleState[name] and ToggleState[name].value or false end local function setToggle(name, val, skipNotify) regToggle(name) ToggleState[name].value = val if not skipNotify then for _, fn in ipairs(ToggleState[name].listeners) do pcall(fn, val) end end end local function onToggleChanged(name, fn) regToggle(name); table.insert(ToggleState[name].listeners, fn) end -- GLOBAL CONFIG FORWARD DECLARATIONS (to avoid undefined/shadowing issues) local Config local saveConfig local loadConfig -- THEME (EK Pink) Themes = { Light = { Background=Color3.fromRGB(255,255,255), MainBackground=Color3.fromRGB(255,252,255), Panel=Color3.fromRGB(255,249,252), Row=Color3.fromRGB(252,245,249), RowHover=Color3.fromRGB(250,238,245), Accent=Color3.fromRGB(232,111,177), AccentLight=Color3.fromRGB(238,98,178), Green=Color3.fromRGB(235,117,181), Red=Color3.fromRGB(237,150,189), Red2=Color3.fromRGB(220,104,162), Text=Color3.fromRGB(236,108,174), Dim=Color3.fromRGB(205,151,180), Stroke=Color3.fromRGB(248,188,219), SoftButton=Color3.fromRGB(249,240,245), SoftButtonHover=Color3.fromRGB(246,232,240), SoftAccent=Color3.fromRGB(244,223,233), SoftAccentHover=Color3.fromRGB(241,213,228), ToggleOff=Color3.fromRGB(255,231,243), ToggleOff2=Color3.fromRGB(255,236,245), InputBg=Color3.fromRGB(255,255,255), SliderBg=Color3.fromRGB(243,204,223), BlacklistHover=Color3.fromRGB(255,220,225), BlacklistLeave=Color3.fromRGB(255,240,248), }, Dark = { Background=Color3.fromRGB(20,20,20), MainBackground=Color3.fromRGB(15,15,15), Panel=Color3.fromRGB(28,25,28), Row=Color3.fromRGB(35,30,35), RowHover=Color3.fromRGB(48,38,48), Accent=Color3.fromRGB(232,111,177), AccentLight=Color3.fromRGB(238,98,178), Green=Color3.fromRGB(235,117,181), Red=Color3.fromRGB(237,150,189), Red2=Color3.fromRGB(220,104,162), Text=Color3.fromRGB(255,255,255), Dim=Color3.fromRGB(200,200,200), Stroke=Color3.fromRGB(60,40,55), SoftButton=Color3.fromRGB(35,28,33), SoftButtonHover=Color3.fromRGB(45,35,42), SoftAccent=Color3.fromRGB(55,38,48), SoftAccentHover=Color3.fromRGB(65,45,58), ToggleOff=Color3.fromRGB(35,28,33), ToggleOff2=Color3.fromRGB(35,28,33), InputBg=Color3.fromRGB(30,25,30), SliderBg=Color3.fromRGB(55,40,50), BlacklistHover=Color3.fromRGB(80,35,45), BlacklistLeave=Color3.fromRGB(50,35,45), } } Theme = {} for k, v in pairs(Themes.Light) do Theme[k] = v end function applyTheme(themeName) local fromTheme = {} for k, v in pairs(Theme) do fromTheme[k] = v end local toTheme = Themes[themeName] or Themes.Light for k, v in pairs(toTheme) do Theme[k] = v end -- Helper 1: Explicitly style panels to avoid color collision bugs local function updatePanelTheme(f, isMain) if not f then return end f.BackgroundColor3 = isMain and toTheme.MainBackground or toTheme.Background for _, child in ipairs(f:GetChildren()) do if child:IsA("UIStroke") then child.Color = toTheme.AccentLight elseif child:IsA("Frame") then if child.Size == UDim2.new(1,-24,0,1) then child.BackgroundColor3 = toTheme.AccentLight elseif child.BackgroundTransparency == 1 and child.Size == UDim2.new(1,0,0,42) then for _, sub in ipairs(child:GetChildren()) do if sub:IsA("TextLabel") then if sub.TextSize == 16 or sub.TextSize == 12 then sub.TextColor3 = toTheme.Text elseif sub.TextSize == 10 then sub.TextColor3 = toTheme.Dim end end end end end end end -- Helper 2: Explicitly style bottom bar local function updateBottomBarTheme() if not bottomBar then return end bottomBar.BackgroundColor3 = toTheme.Background for _, child in ipairs(bottomBar:GetChildren()) do if child:IsA("UIStroke") then child.Color = toTheme.AccentLight elseif child:IsA("TextLabel") then if child.Text == "EK HUB" or child.Text == "|" or child.Text == "discord.gg/APFpbqPyTS" then child.TextColor3 = toTheme.AccentLight elseif child.Text == "By:@ReLaxedd and @Invincible" then child.TextColor3 = toTheme.Dim end elseif child:IsA("Frame") then if child.Size == UDim2.new(0,1,0,36) then child.BackgroundColor3 = toTheme.Accent end end end end -- Helper 3: Explicitly style admin panel rows local function updateAdminPanelTheme() if not apBG then return end apBG.BackgroundColor3 = toTheme.Background local idx = 0 for uid, row in pairs(apRows) do if row and row.Parent then idx = idx + 1 local isAlt = (idx % 2 == 0) local rowCol = isAlt and toTheme.Row or toTheme.Panel row.BackgroundColor3 = rowCol local plr = Players:GetPlayerByUserId(uid) local isBlacklisted = isPlayerBlacklisted and isPlayerBlacklisted(plr) for _, child in ipairs(row:GetChildren()) do if child:IsA("Frame") then if child.Size == UDim2.fromOffset(34,34) then child.BackgroundColor3 = toTheme.InputBg local stroke = child:FindFirstChildOfClass("UIStroke") if stroke then stroke.Color = toTheme.Accent end elseif child.ZIndex == 12 then for _, btn in ipairs(child:GetChildren()) do if btn:IsA("TextButton") then if btn.Name == "BlacklistBtn" then btn.BackgroundColor3 = isBlacklisted and Color3.fromRGB(255, 60, 60) or toTheme.BlacklistLeave else btn.BackgroundColor3 = toTheme.SoftButton end end end end elseif child:IsA("TextLabel") then if child.TextSize == 14 then child.TextColor3 = toTheme.Text elseif child.TextSize == 10 then child.TextColor3 = toTheme.Dim elseif child.TextSize == 11 then child.TextColor3 = toTheme.AccentLight end end end end end end -- Run explicit styling on all static panels pcall(function() updatePanelTheme(main, true) updateBottomBarTheme() updateAdminPanelTheme() for _, name in ipairs({"Invisible Steal Panel", "Admin Command Panel", "Command Cooldowns", "Actions", "Steal Panel", "Steal Target"}) do updatePanelTheme(panels[name], false) end updatePanelTheme(actionSettingsPanel, false) updatePanelTheme(tpSpeedSettingsPanel, false) end) -- Fallback/Recursive styling for other dynamic frames (excluding mainBody descendants!) local function updateInstanceColors(inst) local shouldStyle = true if inst:IsA("GuiObject") or inst:IsA("UIStroke") then -- AVOID COLOR COLLISION BUG: Skip styling anything inside the tab mainBody dynamically if mainBody and inst:IsDescendantOf(mainBody) then return end -- Avoid updating main structures explicitly styled above if inst == main or inst == bottomBar or inst == apBG then shouldStyle = false end for _, p in ipairs({"Invisible Steal Panel", "Admin Command Panel", "Command Cooldowns", "Actions", "Steal Panel", "Steal Target"}) do if inst == panels[p] then shouldStyle = false end end if inst == actionSettingsPanel or inst == tpSpeedSettingsPanel then shouldStyle = false end if shouldStyle then local bgKeys = { Background=true, MainBackground=true, Panel=true, Row=true, RowHover=true, SoftButton=true, SoftButtonHover=true, SoftAccent=true, SoftAccentHover=true, ToggleOff=true, ToggleOff2=true, InputBg=true, SliderBg=true, BlacklistHover=true, BlacklistLeave=true } local textKeys = { Text=true, Dim=true, Accent=true, AccentLight=true, Green=true, Red=true, Red2=true, Stroke=true } local properties = { BackgroundColor3 = bgKeys, TextColor3 = textKeys, PlaceholderColor3 = textKeys, Color = textKeys } for prop, allowedKeys in pairs(properties) do pcall(function() local current = inst[prop] if typeof(current) == "Color3" then -- PROTECT WHITE TEXT ON SPECIFIC BUTTONS FROM THEME CONVERSION if prop == "TextColor3" and inst.Name == "WhiteTextBtn" then return end if prop == "BackgroundColor3" and inst.Name == "WhiteSliderKnob" then return end for k, val in pairs(fromTheme) do if allowedKeys[k] then if (current.R - val.R)^2 + (current.G - val.G)^2 + (current.B - val.B)^2 < 0.0001 then inst[prop] = toTheme[k] break end end end end end) end end end for _, child in ipairs(inst:GetChildren()) do updateInstanceColors(child) end end pcall(function() local sg = playerGui:FindFirstChild("EKHub_V3") if sg then updateInstanceColors(sg) end if _G.updateLogoImage then _G.updateLogoImage(themeName == "Dark") end end) pcall(function() local ExploitGui = (gethui and gethui()) or game:GetService("CoreGui") local sg = ExploitGui:FindFirstChild("XiPriorityAlertTest") if sg then updateInstanceColors(sg) end end) for _, name in ipairs({"EK_RemoteSell", "EK_StealProgressBar", "XiAdminPanel"}) do pcall(function() local otherSg = playerGui:FindFirstChild(name) if otherSg then updateInstanceColors(otherSg) end end) end -- Force specific buttons that must always have white text to keep Color3.new(1,1,1) local function forceWhiteText(inst) if inst:IsA("TextButton") then local txt = inst.Text if txt == "ON" or txt == "OFF" or txt == "ADD" or txt == "X" or txt == "â–²" or txt == "â–¼" then inst.TextColor3 = Color3.new(1, 1, 1) elseif inst.Size == UDim2.new(0, 50, 0, 20) then -- Keybind bind button inst.TextColor3 = Color3.new(1, 1, 1) end elseif inst:IsA("Frame") and inst.Name == "WhiteSliderKnob" then inst.BackgroundColor3 = Color3.fromRGB(255, 255, 255) end for _, child in ipairs(inst:GetChildren()) do forceWhiteText(child) end end pcall(function() local sg = playerGui:FindFirstChild("EKHub_V3") if sg then forceWhiteText(sg) end end) if Config then Config.DarkMode = (themeName == "Dark") if saveConfig then saveConfig() end end pcall(function() if rebuildActions then rebuildActions() end end) pcall(function() if rebuildActionSettings then rebuildActionSettings() end end) pcall(function() if rebuildTpSpeedSettings then rebuildTpSpeedSettings() end end) pcall(function() if loadTab then loadTab(UI.CurrentTab) end end) end _G.applyTheme = applyTheme local UI = {Locked=false, OpenMenuKey=Enum.KeyCode.LeftControl, CurrentTab="Auto TP"} Keybinds = { Kick="Y",["Rejoin Job ID"]="J",Clone="F",["Manual TP"]="T",["Invisible Steal"]="U", ["Job ID"]="K",Proximity="P",["Carpet Boost"]="Q",["Open Menu"]="LeftControl", ["Ragdoll Self"]="R",["Drop Brainrot"]="G",Float="Z",Reset="X",["Auto Buy"]="K", ["Click to AP"]="NONE" } priorityList = { "Strawberry Elephant", "Meowl", "Skibidi Toilet", "Headless Horseman", "Dragon Gingerini", "Dragon Cannelloni", "Ketupat Bros", "Hydra Dragon Cannelloni", "La Supreme Combinasion", "Love Love Bear", "Ginger Gerat", "Cerberus", "Capitano Moby", "La Casa Boo", "Burguro and Fryuro", "Spooky and Pumpky", "Cooki and Milki", "Rosey and Teddy", "Popcuru and Fizzuru", "Reinito Sleighito", "Fragrama and Chocrama", "Garama and Madundung", "Ketchuru and Musturu", "La Secret Combinasion", "Tralaledon", "Tictac Sahur", "Ketupat Kepat", "Tang Tang Keletang", "Orcaledon", "La Ginger Sekolah", "Los Spaghettis", "Lavadorito Spinito", "Swaggy Bros", "La Taco Combinasion", "Los Primos", "Los Chillis", "Chillin Chili", "Tuff Toucan", "W or L", "Chipso and Queso", "Signore Carapace", "Arcadragon", "John Pork", "Elefanto Frigo", "Antonio", "Pancake and Syrup", "Griffin", "Kalika Bros", "Globa Steppa", "Fishino Clownino", "Rico Dinero", "Tirilikalika Tirilikalako", "Digi Narwhal", "Hydra Bunny", "Dug dug dug", "Bunny and Eggy", "Los Hackers", "Duggy Bros", "Guest 666", "Money Money Reindeer", "Foxini Lanternini", "Fragola La La La", "Quackini Snackini", "Los Sekolahs", "Los Tacoritas", "Los Amigos", "Fortunu and Cashuru", "Jolly Jolly Sahur", "Boppin Bunny", "Gym Bros", "Los Cupids", "Festive 67", "Celularcini Viciosini", "Cloverat Clapat", "La Food Combinasion", "Hopilikalika Hopilikalako", "Celestial Pegasus", "Sammyni Fattini", "Money Money Bros", "La Spooky Grande", "Cash or Card", "Swag Soda", "Los Planitos", "Lovin Rose", "Tacorita Bicicleta", "Los Jolly Combinasionas", "La Romantic Grande", "La Easter Grande", "Los Hotspotsitos", "Rosetti Tualetti", "Los Bros", "Gobblino Uniciclino", "Chicleteira Cupideira", "La Extinct Grande", "Las Sis", "Nacho Spyder", "Gold Gold Gold", "Los Mariachis", "Snailo Clovero", "La Jolly Grande", "Los Candies", "Churrito Bunnito", "Bananito", "Eviledon", "Los 67", "Los Sweethearts", "Noo my Heart", "La Lucky Grande", "Ventoliero Pavonero", "Baskito", "Chimnino", "Los Puggies", "Camera Ramena", "Los 25", "Spinny Hammy", "Money Money Puggy", "Cigno Fulgoro", "Los Spooky Combinasionas", "Chicleteira Noelteira", "Mariachi Corazoni", "Tacorillo Crocodillo", "Noo my Gold", "Los Mobilis", "Mieteteira Bicicleteira", "DJ Panda", "Los Combinasionas", "Nuclearo Dinossauro", "Bacuru and Egguru", "Spaghetti Tualetti", "La Grande Combinasion", "Esok Sekolah" } actionConfig = { ["Ragdoll Self (R)"]=true,["Rejoin PS"]=true,["Rejoin Job ID (J)"]=true, ["Kick (Y)"]=true,["Kick To Private"]=true,["Reset (X)"]=true, ["Anti Ragdoll"]=false,["Infinite Jump"]=false,["Float"]=false,["Carpet Speed"]=false, } -- CONFIG (merged) local CONFIG_FILE = "sxe_hub_v3_config.json" local PS_CODE_FILE = "sxe_hub_pscode.txt" PrivateServerCode = "" local function loadPSCode() pcall(function() if typeof(readfile)=="function" and typeof(isfile)=="function" and isfile(PS_CODE_FILE) then PrivateServerCode = readfile(PS_CODE_FILE) end end) end local function savePSCode() pcall(function() if typeof(writefile)=="function" then writefile(PS_CODE_FILE, PrivateServerCode or "") end end) end loadPSCode() Config = { positions={},keybinds={},actions={},locked=false, DarkMode=false, AntiRagdoll=false,InfiniteJump=false,Float=false, AutoResetBalloon=false,AutoKickOnSteal=false,KickToPrivateServer=false,CleanErrorGUIs=false, LineToBase=false,LineToBrainrot=false,InvisStealAngle=225,SinkSliderValue=7, AutoRecoverLagback=true, WalkSpeedEnabled=false, WalkSpeedValue=16, AutoTPPriority=true, AutoTPHighestGen=false, AutoTPHighestValue=false, FPSBoost=false, FPSBoostUltra=false, XRay=false, FOV=70, BrainrotESP=true, TimerESP=false, SubspaceMineESP=false, PlayerESP=true, BaseOwnerESP=false, AutoBuyEnabled=false, AutoBuyRange=17, AutoGrabSpeed=17, AutoBuyKey="K", AutoDestroyTurrets=false, AutoUnlockOnSteal=false, AutoInvisDuringSteal=false, ClickToAP=false, ClickToAPSingleCommand=false, ClickToAPRadius=8, SpamBaseOwnerCommands={balloon=true, inverse=true, jail=true, jumpscare=true, morph=true, nightvision=true, ragdoll=true, rocket=true, tiny=true}, SpamBaseOwnerOrder={"balloon", "inverse", "jail", "jumpscare", "morph", "nightvision", "ragdoll", "rocket", "tiny"}, SpamBaseOwnerSingleCommand=false, ProximityAP=false, ShowJobJoiner=true, AntiBeeDisco=false, RemoteSellEnabled=false, AdminPanelUI=true, StealHighest=true, StealPriority=false, StealNearest=false, AutoStealEnabled=true, Unwalk=false, Visibilities = { ["Invisible Steal Panel"] = true, ["Admin Command Panel"] = true, ["Command Cooldowns"] = true, ["Actions"] = true, ["Steal Panel"] = true, ["Steal Target"] = true, }, TpSettings = { Tool="Flying Carpet", TpKey="T", CloneKey="V", CarpetSpeedKey="Q", InfiniteJump=false, DelayVal=0.4, CloneDelayVal=0.1, RagdollTP=false, FPSWait=false, FlyTP=false, FlyTPSpeed=160, FlyTPCloseSpeed=75, GrabbleTP=false, GrabbleTPSpeed=230, TpOnLoad=false, MinGenForTp="", MinGenForGrab="", BrainrotCarpet=false, }, PriorityList=priorityList, RemovedFromPriority={}, } local suffixes = { k = 1e3, m = 1e6, b = 1e9, t = 1e12, q = 1e15, qi = 1e18, qd = 1e18, qn = 1e18, sx = 1e21, sp = 1e24, oc = 1e27, no = 1e30, dc = 1e33, ud = 1e36, dd = 1e39, td = 1e42, qad = 1e45, qid = 1e48, sxd = 1e51, spd = 1e54, ocd = 1e57, nod = 1e60, vg = 1e63, } local function parseMinGen(str) if not str or type(str) ~= "string" then return 0 end str = str:gsub("%s", ""):lower():gsub("/s$", "") if str == "" then return 0 end local numStr, suffix = str:match("^([%d%.]+)(%a*)$") if not numStr then return 0 end local num = tonumber(numStr) if not num or num < 0 then return 0 end if suffix ~= "" then local mult = suffixes[suffix] if mult then return num * mult end end return num end local function canUseFiles() return typeof(readfile)=="function" and typeof(writefile)=="function" and typeof(isfile)=="function" end loadConfig = function() if not canUseFiles() then return end local ok,data=pcall(function() if isfile(CONFIG_FILE) then return HttpService:JSONDecode(readfile(CONFIG_FILE)) end end) if ok and type(data)=="table" then for k,v in pairs(data) do if k == "PriorityList" or k == "RemovedFromPriority" then Config[k] = v elseif type(v) == "table" and type(Config[k]) == "table" then for subk, subv in pairs(v) do Config[k][subk] = subv end else Config[k] = v end end if type(Config.positions)~="table" then Config.positions={} end if type(Config.keybinds)~="table" then Config.keybinds={} end if type(Config.actions)~="table" then Config.actions={} end if type(Config.RemovedFromPriority)~="table" then Config.RemovedFromPriority={} end local removedSet = {} for _, rn in ipairs(Config.RemovedFromPriority) do removedSet[rn] = true end if type(Config.PriorityList)=="table" then if #Config.PriorityList == 0 then Config.PriorityList = priorityList else local present = {} for _, name in ipairs(Config.PriorityList) do present[name] = true end for _, name in ipairs(priorityList) do if not present[name] and not removedSet[name] then table.insert(Config.PriorityList, name) end end priorityList = Config.PriorityList end else Config.PriorityList = priorityList end -- Deduplicate priority list if type(Config.PriorityList) == "table" then local seen = {} local cleanList = {} for _, name in ipairs(Config.PriorityList) do if not seen[name] then seen[name] = true table.insert(cleanList, name) end end Config.PriorityList = cleanList priorityList = cleanList end end end saveConfig = function() if not canUseFiles() then return end task.spawn(function() pcall(function() writefile(CONFIG_FILE, HttpService:JSONEncode(Config)) end) end) end -- BASE64 ENCODER/DECODER FOR CONFIG SHARING (Wrapped in do-scope to save global registers) do local b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' local function base64Encode(data) local len = #data local t = {} for i = 1, len, 3 do local a = data:byte(i) local b = data:byte(i + 1) or 0 local c = data:byte(i + 2) or 0 local n = a * 65536 + b * 256 + c t[#t + 1] = b64chars:sub(math.floor(n / 262144) + 1, math.floor(n / 262144) + 1) t[#t + 1] = b64chars:sub(math.floor(n / 4096) % 64 + 1, math.floor(n / 4096) % 64 + 1) t[#t + 1] = (i + 1 <= len) and b64chars:sub(math.floor(n / 64) % 64 + 1, math.floor(n / 64) % 64 + 1) or "=" t[#t + 1] = (i + 2 <= len) and b64chars:sub(n % 64 + 1, n % 64 + 1) or "=" end return table.concat(t) end local function base64Decode(data) data = data:gsub('[^' .. b64chars .. '=]', '') local len = #data local t = {} local lookup = {} for i = 1, 64 do lookup[b64chars:sub(i, i)] = i - 1 end local i = 1 while i <= len do local c1 = lookup[data:sub(i, i)] local c2 = lookup[data:sub(i + 1, i + 1)] local s3 = data:sub(i + 2, i + 2) local s4 = data:sub(i + 3, i + 3) local c3 = lookup[s3] local c4 = lookup[s4] if not c1 or not c2 then break end local n = c1 * 262144 + c2 * 4096 + (c3 or 0) * 64 + (c4 or 0) t[#t + 1] = string.char(math.floor(n / 65536)) if s3 ~= "=" then t[#t + 1] = string.char(math.floor(n / 256) % 256) end if s4 ~= "=" then t[#t + 1] = string.char(n % 256) end i = i + 4 end return table.concat(t) end _G.importConfig = function(str) if not str or str == "" then ShowNotification("IMPORT ERROR", "Config string is empty") return false end local success, parsed = pcall(function() return HttpService:JSONDecode(str) end) if not success or type(parsed) ~= "table" then local decoded pcall(function() decoded = base64Decode(str:gsub("%s", "")) end) if decoded then success, parsed = pcall(function() return HttpService:JSONDecode(decoded) end) end end if not success or type(parsed) ~= "table" then ShowNotification("IMPORT ERROR", "Invalid config data") return false end for k, v in pairs(parsed) do Config[k] = v end if type(Config.PriorityList) == "table" then priorityList = Config.PriorityList end saveConfig() for k, v in pairs(Config.keybinds or {}) do if Keybinds[k] ~= nil and type(v) == "string" then Keybinds[k] = v if k == "Open Menu" and Enum.KeyCode[v] then UI.OpenMenuKey = Enum.KeyCode[v] end end end for k, v in pairs(Config.actions or {}) do if actionConfig[k] ~= nil then actionConfig[k] = v and true or false end end if type(Config.locked) == "boolean" then UI.Locked = Config.locked end initToggles() if setFPSBoost then pcall(setFPSBoost, Config.FPSBoost) end if setFPSBoostUltra then pcall(setFPSBoostUltra, Config.FPSBoostUltra) end if setXRay then pcall(setXRay, Config.XRay) end if setInfiniteJump then pcall(setInfiniteJump, Config.InfiniteJump) end if setFloat then pcall(setFloat, Config.Float) end if setCarpetSpeed then pcall(setCarpetSpeed, Config.CarpetSpeed or false) end -- ProximityAP always starts OFF, never loaded from config Config.ProximityAP = false if toggleAutoBuy then pcall(toggleAutoBuy, Config.AutoBuyEnabled) end if setStealMode then if Config.StealHighest then pcall(setStealMode, "Highest") elseif Config.StealPriority then pcall(setStealMode, "Priority") elseif Config.StealNearest then pcall(setStealMode, "Nearest") end end if updateMovementPanelLabels then pcall(updateMovementPanelLabels) end rebuildActions() rebuildActionSettings() loadTab(UI.CurrentTab) ShowNotification("CONFIG SYSTEM", "Config imported successfully!") return true end _G.exportConfig = function() local ok, str = pcall(function() return HttpService:JSONEncode(Config) end) if not ok or not str then ShowNotification("EXPORT ERROR", "Failed to encode config") return nil end local cbSuccess = false if typeof(setclipboard) == "function" then pcall(function() setclipboard(str); cbSuccess = true end) elseif typeof(toclipboard) == "function" then pcall(function() toclipboard(str); cbSuccess = true end) end if cbSuccess then ShowNotification("CONFIG SYSTEM", "Config copied to clipboard!") else ShowNotification("CONFIG SYSTEM", "Config generated! Copy from share box.") end return str end end local function serializePos(pos) return {xs=pos.X.Scale,xo=pos.X.Offset,ys=pos.Y.Scale,yo=pos.Y.Offset} end local function rememberPosition(name, frame) if not name or not frame then return end; Config.positions[name]=serializePos(frame.Position); saveConfig() end local function applySavedPosition(name, frame) if not name or not frame then return end; local d=Config.positions and Config.positions[name] if d then frame.Position=UDim2.new(d.xs or 0,d.xo or 0,d.ys or 0,d.yo or 0) end end local function initToggles() setToggle("Anti Ragdoll", Config.AntiRagdoll, true) setToggle("Auto Reset Balloon", Config.AutoResetBalloon, true) setToggle("Infinite Jump", Config.InfiniteJump, true) setToggle("Auto Kick", Config.AutoKickOnSteal, true) setToggle("Auto Buy", Config.AutoBuyEnabled, true) setToggle("Auto Steal", Config.AutoStealEnabled, true) setToggle("Steal Highest", Config.StealHighest, true) setToggle("Steal Priority", Config.StealPriority, true) setToggle("Steal Nearest", Config.StealNearest, true) setToggle("Click to AP", Config.ClickToAP, true) setToggle("ClickToAP", Config.ClickToAP, true) setToggle("Click AP Single Cmd", Config.ClickToAPSingleCommand, true) setToggle("ClickToAPSingle", Config.ClickToAPSingleCommand, true) setToggle("FPS Boost (normal)", Config.FPSBoost, true) setToggle("FPS Boost (normal)", Config.FPSBoost, true) setToggle("FPS Boost Ultra", Config.FPSBoostUltra, true) setToggle("FPSBoostUltra", Config.FPSBoostUltra, true) setToggle("XRay", Config.XRay, true) setToggle("X-Ray", Config.XRay, true) setToggle("Xray", Config.XRay, true) setToggle("Proximity", Config.ProximityAP, true) setToggle("Player ESP", Config.PlayerESP, true) setToggle("Brainrot ESP", Config.BrainrotESP, true) setToggle("Timer ESP", Config.TimerESP, true) setToggle("Subspace Mine ESP", Config.SubspaceMineESP, true) setToggle("Base Owner ESP", Config.BaseOwnerESP, true) setToggle("Float", Config.Float, true) setToggle("Anti-Bee & Anti-Disco", Config.AntiBeeDisco, true) setToggle("AntiBeeDisco", Config.AntiBeeDisco, true) setToggle("Admin Panel UI", Config.AdminPanelUI, true) setToggle("Auto Invis During Steal", Config.AutoInvisDuringSteal, true) setToggle("Auto TP Priority Mode", Config.AutoTPPriority, true) setToggle("Auto TP Highest Gen", Config.AutoTPHighestGen, true) setToggle("Auto TP Highest Value", Config.AutoTPHighestValue, true) setToggle("Unwalk", Config.Unwalk, true) setToggle("Stealing ESP", Config.StealingESP, true) setToggle("WalkSpeed", Config.WalkSpeedEnabled, true) setToggle("Dark Mode", Config.DarkMode, true) setToggle("DarkMode", Config.DarkMode, true) setToggle("Grabble TP", Config.TpSettings.GrabbleTP or false, true) end loadConfig() if Config.DarkMode then for k, v in pairs(Themes.Dark) do Theme[k] = v end end for k,v in pairs(Config.keybinds or {}) do if Keybinds[k]~=nil and type(v)=="string" then Keybinds[k]=v; if k=="Open Menu" and Enum.KeyCode[v] then UI.OpenMenuKey=Enum.KeyCode[v] end end end for k,v in pairs(Config.actions or {}) do if actionConfig[k]~=nil then actionConfig[k]=v and true or false end end if type(Config.locked)=="boolean" then UI.Locked=Config.locked end initToggles() -- SYNCHRONIZER DETECTION BYPASS + STEALTH CHANNEL READER pcall(function() local getupvalue = getupvalue or debug.getupvalue local function getInternalTable() local Packages = ReplicatedStorage:FindFirstChild("Packages") if not Packages then return nil end local SynMod = Packages:FindFirstChild("Synchronizer") if not SynMod then return nil end local ok, syn = pcall(require, SynMod) if not ok or not syn then return nil end local Get = syn.Get if type(Get) ~= "function" then return nil end for i = 1, 5 do local s, u = pcall(getupvalue, Get, i) if s and type(u) == "table" then if u.___private or u.___channels or u.___data then return u end for k, v in pairs(u) do if (type(k) == "string" and k:match("^Plot_")) or type(v) == "table" then return u end end end end local s, e = pcall(getfenv, Get) if s and e and e.self then return e.self end return nil end local SyncInt = {_cache = {}, _data = nil} _G.SyncInt = SyncInt task.spawn(function() for i = 1, 10 do SyncInt._data = getInternalTable() if SyncInt._data then break end task.wait(1) end end) local function myCustomGet(self, prop) if self[prop] then return self[prop] end for _, sub in ipairs({"CacheTable", "Data", "_data", "state", "values"}) do if type(self[sub]) == "table" and self[sub][prop] then return self[sub][prop] end end local alts = { Owner = {"owner", "Owner", "plotOwner", "PlotOwner"}, AnimalList = {"animalList", "AnimalList", "animals", "Animals", "pets"}, } if alts[prop] then for _, a in ipairs(alts[prop]) do if self[a] then return self[a] end for _, sub in ipairs({"CacheTable", "Data", "_data", "state", "values"}) do if type(self[sub]) == "table" and self[sub][a] then return self[sub][a] end end end end return nil end function _G.stealthGet(n) if not n or type(n) ~= "string" then return nil end if SyncInt._cache[n] == false then return nil end local res = nil if SyncInt._data then for _, k in ipairs({n, "Plot_" .. n, "Plot" .. n, n .. "_Channel", "Channel_" .. n}) do if SyncInt._data[k] then res = SyncInt._data[k] break end end if not res then for k, v in pairs(SyncInt._data) do if type(k) == "string" and (k == n or k:find(n, 1, true)) and type(v) == "table" then res = v break end end end end if res and type(res) == "table" then if type(res.Get) ~= "function" then rawset(res, "Get", myCustomGet) end SyncInt._cache[n] = res return res end SyncInt._cache[n] = false return nil end function _G.sProp(ch, p) if not ch or type(ch) ~= "table" then return nil end if ch[p] then return ch[p] end for _, sub in ipairs({"CacheTable", "Data", "_data", "state", "values"}) do if type(ch[sub]) == "table" and ch[sub][p] then return ch[sub][p] end end if type(ch.Get) == "function" and ch.Get ~= myCustomGet then local ok, r = pcall(ch.Get, ch, p) if ok then return r end end local alts = { Owner = {"owner", "Owner", "plotOwner", "PlotOwner"}, AnimalList = {"animalList", "AnimalList", "animals", "Animals", "pets"}, } if alts[p] then for _, a in ipairs(alts[p]) do if ch[a] then return ch[a] end for _, sub in ipairs({"CacheTable", "Data", "_data", "state", "values"}) do if type(ch[sub]) == "table" and ch[sub][a] then return ch[sub][a] end end end end return nil end -- Setup value modification bypass local Packages = ReplicatedStorage:FindFirstChild("Packages") local SynMod = Packages and Packages:FindFirstChild("Synchronizer") local okReq, syn = pcall(require, SynMod) if okReq and typeof(syn) == "table" then local function HasBoolUpvalue(Fn) local OkU, Ups = xpcall(debug.getupvalues, function() end, Fn) if not OkU then return false end for _, V in pairs(Ups) do if typeof(V) == "boolean" then return true end end return false end for _, Fn in pairs(syn) do if typeof(Fn) == "function" and not isexecutorclosure(Fn) then local OkU, Ups = xpcall(debug.getupvalues, function() end, Fn) if OkU then for Idx, V in pairs(Ups) do if typeof(V) == "function" and not isexecutorclosure(V) and HasBoolUpvalue(V) then pcall(debug.setupvalue, Fn, Idx, newcclosure(function() end)) end end end end end -- Hook Get method directly to route through stealthGet -- local oldGet = syn.Get -- if oldGet then -- syn.Get = function(self, plotName) -- local ch = _G.stealthGet(plotName) -- if ch then return ch end -- return oldGet(self, plotName) -- end -- end end end) -- Decrypted net local Decrypted=setmetatable({},{__index=function(S,ez) local ok,Netty=pcall(function() return ReplicatedStorage.Packages.Net end); if not ok or not Netty then return nil end if ez:sub(1,3)~="RE/" and ez:sub(1,3)~="RF/" then return nil end local Remote; for i,v in ipairs(Netty:GetChildren()) do if v.Name==ez then local children=Netty:GetChildren(); Remote=children[i+1]; break end end if Remote and not rawget(Decrypted,ez) then rawset(Decrypted,ez,Remote) end; return rawget(Decrypted,ez) end}) -- COOLDOWN TRACKER ACTION_COOLDOWNS = {ragdoll=30,jail=60,rocket=120,balloon=30,inverse=30,jumpscare=30,tiny=30,morph=30,nightvision=30} local lastActionUse = {} -- Read real timer from the game's AdminPanel UI local function _readRealAdminTimer(cmd) local realAdminGui = playerGui:FindFirstChild("AdminPanel") if not realAdminGui then return nil end local ok, contentScroll = pcall(function() return realAdminGui.AdminPanel.Content.ScrollingFrame end) if not ok or not contentScroll then return nil end local cmdBtn = contentScroll:FindFirstChild(cmd) if not cmdBtn then return nil end local timerLabel = cmdBtn:FindFirstChild("Timer") if not timerLabel or not timerLabel.Visible then return 0 end local num = tonumber(timerLabel.Text:match("%d+")) return num or 0 end local function apIsOnCooldown(cmd) local realTime = _readRealAdminTimer(cmd) if realTime ~= nil then return realTime > 0 end local l=lastActionUse[cmd]; local cd=ACTION_COOLDOWNS[cmd] or 0; return l and cd>0 and (tick()-l)