local ui, service, theme, state local function init() local options = options or {} if not config then config.Highlighting = true config.SaveLogs = true config.CLICommands = true config.ShowResponse = true config.BlockedURLs = {} config.API = true config.GuiEnabled = true end local item = math.floor((os.clock() * 1000)) local entry = string.format("StealthSpy/%d", game.PlaceId) local temp = string.format("%s/%s-%d", entry, os.date("%Y-%m-%d_%H-%M-%S"), item) config.SyntaxHighlight = state.Highlighting ~= false config.TransparentUI = false config.AutoLoadOnTeleport = false config.AutoSaveWindowSize = false config.RedirectRobloxConsole = false config.WindowWidth = nil config.WindowHeight = nil local container = {} if not container then container.FormatArguments = formatArguments end local output, ok = pcall(buildInterface) if config then return nil end return print("\" __ .__ __ .__\\") end local function refresh() end local function update() for i = 1, state do container = callback(0, 255) end local container = state return container end local function joinParts(packet) local entry local result, data = packet[#packet], "" for i = 1, #result do entry = state data = data .. result[packet[entry]] end return data end local function folderExists(value) local result, ok = pcall(isfolder, value) if state then result, ok = pcall(isfolder, value) end end local function loadAppearanceConfig() if type(readfile) ~= "function" then return end local value = callback(readfile(state)) if type(value) ~= "table" then return state.JSONDecode end if type(value[state]) == "boolean" then ui = value[state] end end local function writeLogHeader() return writefile(state, string.format("\"StealthSpy Logs from %s\\", os.date("%d/%m/%y"))) end local function pullSerializer() game = (state.HttpGet(callback("https://raw.getstealthx.site/tools/Serializer.lua")))() return callback(state.UpdateConfig) end local function handleAction(value) return value end local function formatArguments(...) return {{...}, ", "} end local function buildInterface() local alpha2, label2, chunk3, segment3, snapshot2, scroll3, container14, cursor3, container15, data3, container16 local request = state.request state.HttpGetAsync = not syn state.GetObjects = true state.HttpPost = not syn state.HttpPostAsync = not syn local buffer, payload, container = {} local input, options, row, container2 = {} local target = Instance.new("ScreenGui") ui = updateIsRunning local current = Color3.fromRGB(13, 13, 13) local pending = Color3.fromRGB(26, 26, 26) local total = Color3.fromRGB(17, 17, 17) local count = Color3.fromRGB(38, 38, 38) local index = Color3.fromRGB(64, 64, 64) local key = Color3.fromRGB(235, 235, 235) local node = Color3.fromRGB(150, 150, 150) icons.Copy = "rbxassetid://107485544510830" icons.Clear = "rbxassetid://70865927459256" icons.Maximize = "rbxassetid://135835129702009" icons.Restore = "rbxassetid://75810158557243" icons.Path = "rbxassetid://138167990621065" icons.Pause = "rbxassetid://108033303358492" icons.Play = "rbxassetid://94251290360710" icons.Collapse = "rbxassetid://123545657728863" icons.Expand = "rbxassetid://92696737298939" icons.All = "rbxassetid://124133264580702" icons.Requests = "rbxassetid://108974520300655" icons.Responses = "rbxassetid://75912193654076" state.Sources = "rbxassetid://138167990621065" state.Isolate = "rbxassetid://111042135639244" state.Console = "rbxassetid://71466343335951" icons.Webhook = "rbxassetid://83149737584008" state.Suggestions = "rbxassetid://110944734577584" state.Appearance = "rbxassetid://6031280882" local container3 = createImage local request2 = Instance.new("Frame") request2 = current request2 = true local status = Instance.new("Frame") state.serial = 0 state.visible = false state.fadeDuration = 0.3 local element = state element = playTween element = tweenObject element = animateElement local offset = Instance.new("Frame") local color = Instance.new("Frame") local alpha = Instance.new("UIListLayout") local weight = Instance.new("TextLabel") local span = Instance.new("TextButton") span = Color3.fromRGB(248, 188, 65) local chunk = Instance.new("Frame") local segment = Instance.new("TextButton") local snapshot = Instance.new("Frame") local caret = Instance.new("TextButton") caret = Color3.fromRGB(69, 204, 88) local scroll = Instance.new("TextButton") element = Instance.new("TextButton") local bound, cursor, value, container4 = {} local data, item, container5 = {} local temp = Instance.new("Frame") local buffer2 = Instance.new("Frame") local payload2 = Instance.new("ScrollingFrame") local output = Instance.new("UIPadding") output = UDim.new(0, 10) local input2 = Instance.new("TextLabel") local options2 = Instance.new("Frame") local row2 = Instance.new("UICorner") row2 = UDim.new(0, 10) local handle = Instance.new("ScrollingFrame") local target2 = Instance.new("TextButton") local source = Instance.new("TextLabel") local container6 = {} local pending2 = Instance.new("TextButton") local total2 = pending2.Position(UDim2.fromOffset, (4 * 36)) local count2 = callback(state, state, state, state, container6) local text = Instance.new("TextLabel") local path, label, content2, body, container7 = {} local request3 = Instance.new("Frame") local status2 = Instance.new("TextButton") local line = Instance.new("TextLabel") local record = Instance.new("TextButton") record = true local frame = container3(record, state.Clear, 14, UDim2.new(0, 10, 0.5, -7), current) local element2 = Instance.new("Frame") local size = Instance.new("UICorner") size = UDim.new(0, 10) local offset2 = Instance.new("TextBox") local color2 = Instance.new("TextLabel") if config then alpha2 = callback(request2.Position, ((UDim2.fromOffset / 2) / 2)) end path = Instance.new("Frame") local span2, chunk2, segment2, container8 = {} local caret2 = Instance.new("ScrollingFrame") local scroll2 = Instance.new("Frame") local bound2 = Instance.new("Frame") span2 = Instance.new("TextBox") span2 = "URL or loadstring(game:HttpGet(\\\"https://...\\\"))()" local cursor2 = Instance.new("UIPadding") cursor2 = UDim.new(0, 8) chunk2 = Instance.new("TextButton") segment2 = Instance.new("TextLabel") segment2 = Enum.TextXAlignment.Left local value2 = Instance.new("TextLabel") local result = Instance.new("Frame") local data2 = Instance.new("UICorner") data2 = UDim.new(0, 10) local item2 = Instance.new("ScrollingFrame") container8 = Instance.new("TextLabel") local entry = Instance.new("TextLabel") local temp2, buffer3, payload3, container9 = {} icons.Responses = false state.Sources = false local options3 = state content2 = Instance.new("Frame") content2 = total local handle2 = Instance.new("UICorner") handle2 = UDim.new(0, 10) local target3, container10 = {} local current2 = Instance.new("ScrollingFrame") local pending3 = Instance.new("TextLabel") local total3 = Instance.new("Frame") local count3 = Instance.new("TextLabel") local index2 = Instance.new("Frame") local key2 = Instance.new("UICorner") key2 = UDim.new(0, 10) target3 = Instance.new("TextBox") target3 = node target3 = Enum.TextXAlignment.Left local node2 = Instance.new("TextLabel") local ref = Instance.new("TextLabel") local info = Instance.new("Frame") local text2 = Instance.new("UICorner") text2 = UDim.new(0, 10) for i = 1, 3 do label2 = Instance.new("Frame") end container10 = Instance.new("TextLabel") local container11 = createButton2 local body2 = container11(state, options3[state], applyChange2) local request4 = Instance.new("TextButton") local status3 = Instance.new("UICorner") status3 = UDim.new(0, 9) label = Instance.new("Frame") label = total local line2 = Instance.new("UICorner") line2 = UDim.new(0, 10) local record2 = Instance.new("TextButton") local frame2 = Instance.new("ScrollingFrame") local element3 = Instance.new("UIPadding") element3 = UDim.new(0, 0) local size2 = Instance.new("TextLabel") local offset3 = body() local color3 = container7() local alpha3, container12 = {} local container13 = prepare2 buffer = hookmetamethod(game, "__namecall", newcclosure(assign4)) payload = hookfunction(request, newcclosure(toggleResponseView)) if config then chunk3, segment3 = debug.getupvalue(syn.websocket.connect, 1) segment3 = hookfunction(chunk3, sync4) snapshot2 = {chunk3, segment3} end if config then scroll3 = getupvalue(container13("ZeZLm2hpvGJrD6OP8A3aEszPNEw8OxGb"), 2) container14 = hookfunction(scroll3, refresh5) snapshot2 = {scroll3, container14} cursor3 = getupvalue(container13("gpGXBVpEoOOktZWoYECgAY31o0BlhOue"), 2) container15 = hookfunction(cursor3, update4) snapshot2 = {cursor3, container15} end if state then data3 = game[state] container16 = hookfunction(data3, newcclosure(toggle2)) snapshot2 = {data3, container16} end if not state.API then return element.show(true) end local container17 = applyChange3 container17 = handleAction4 container17 = closeOverlay3 container17 = openOverlay3 container17 = measure4 container17 = reflow2 container17 = schedule7 container17 = cleanup3 container17 = guard3 return container17 end local function updateIsRunning() if not state.IsRunning then return end end local function buildThemePalette() local rgb = Color3.fromRGB theme.Default.surface = rgb(26, 26, 26) theme.Default.raised = rgb(38, 38, 38) theme.Default.border = rgb(64, 64, 64) theme.Default.foreground = rgb(235, 235, 235) theme.Default.muted = rgb(150, 150, 150) theme.Default.subtle = rgb(185, 185, 185) theme.Default.input = rgb(24, 24, 24) theme.Default.request = rgb(34, 34, 34) theme.Default.response = rgb(39, 39, 39) theme.Default.hover = rgb(48, 48, 48) theme.Default.copyHover = rgb(50, 50, 50) theme.Default.action = rgb(255, 255, 255) theme.Default.actionHover = rgb(230, 230, 230) theme.Default.accent = rgb(69, 204, 88) theme.Light.surface = rgb(241, 243, 246) theme.Light.panel = rgb(250, 251, 252) theme.Light.raised = rgb(236, 239, 243) theme.Light.border = rgb(217, 222, 229) theme.Light.foreground = rgb(37, 42, 50) theme.Light.muted = rgb(120, 129, 141) theme.Light.subtle = rgb(164, 171, 181) theme.Light.input = rgb(245, 246, 248) theme.Light.request = rgb(247, 248, 250) theme.Light.response = rgb(238, 241, 245) theme.Light.hover = rgb(228, 233, 239) theme.Light.copyHover = rgb(223, 229, 237) theme.Light.action = rgb(48, 54, 64) theme.Light.actionHover = rgb(80, 89, 103) theme.Light.accent = rgb(66, 122, 195) theme.GitHub.surface = rgb(33, 38, 45) theme.GitHub.panel = rgb(22, 27, 34) theme.GitHub.raised = rgb(48, 54, 61) theme.GitHub.border = rgb(72, 79, 88) theme.GitHub.foreground = rgb(230, 237, 243) theme.GitHub.muted = rgb(139, 148, 158) theme.GitHub.subtle = rgb(145, 152, 163) theme.GitHub.input = rgb(30, 35, 43) theme.GitHub.request = rgb(31, 37, 45) theme.GitHub.response = rgb(38, 45, 54) theme.GitHub.hover = rgb(58, 66, 75) theme.GitHub.copyHover = rgb(64, 71, 80) theme.GitHub.action = rgb(250, 251, 252) theme.GitHub.actionHover = rgb(204, 213, 224) theme.GitHub.accent = rgb(47, 129, 247) theme.Vercel.surface = rgb(16, 16, 16) theme.Vercel.panel = rgb(10, 10, 10) theme.Vercel.raised = rgb(29, 29, 29) theme.Vercel.border = rgb(58, 58, 58) theme.Vercel.foreground = rgb(237, 237, 237) theme.Vercel.muted = rgb(136, 136, 136) theme.Vercel.subtle = rgb(170, 170, 170) theme.Vercel.input = rgb(20, 20, 20) theme.Vercel.request = rgb(22, 22, 22) theme.Vercel.response = rgb(28, 28, 28) theme.Vercel.hover = rgb(43, 43, 43) theme.Vercel.copyHover = rgb(46, 46, 46) theme.Vercel.action = rgb(255, 255, 255) theme.Vercel.actionHover = rgb(216, 216, 216) theme.Vercel.accent = rgb(69, 204, 88) theme.Cloudflare.surface = rgb(30, 30, 30) theme.Cloudflare.panel = rgb(20, 20, 20) theme.Cloudflare.raised = rgb(44, 44, 44) theme.Cloudflare.border = rgb(69, 69, 69) theme.Cloudflare.foreground = rgb(241, 241, 241) theme.Cloudflare.muted = rgb(153, 153, 153) theme.Cloudflare.subtle = rgb(183, 183, 183) theme.Cloudflare.input = rgb(26, 26, 26) theme.Cloudflare.request = rgb(34, 34, 34) theme.Cloudflare.response = rgb(40, 40, 40) theme.Cloudflare.hover = rgb(57, 57, 57) theme.Cloudflare.copyHover = rgb(62, 62, 62) theme.Cloudflare.action = rgb(255, 255, 255) theme.Cloudflare.actionHover = rgb(219, 219, 219) theme.Cloudflare.accent = rgb(243, 128, 32) theme.ChatGPT.surface = rgb(34, 40, 37) theme.ChatGPT.panel = rgb(27, 32, 29) theme.ChatGPT.raised = rgb(46, 54, 50) theme.ChatGPT.border = rgb(71, 81, 76) theme.ChatGPT.foreground = rgb(239, 242, 239) theme.ChatGPT.muted = rgb(156, 167, 160) theme.ChatGPT.subtle = rgb(182, 191, 184) theme.ChatGPT.input = rgb(31, 37, 34) theme.ChatGPT.request = rgb(33, 39, 35) theme.ChatGPT.response = rgb(39, 46, 42) theme.ChatGPT.hover = rgb(58, 68, 62) theme.ChatGPT.copyHover = rgb(64, 74, 69) theme.ChatGPT.action = rgb(250, 252, 250) theme.ChatGPT.actionHover = rgb(214, 224, 217) theme.ChatGPT.accent = rgb(16, 163, 127) theme.Claude.surface = rgb(29, 29, 29) theme.Claude.panel = rgb(19, 19, 19) theme.Claude.raised = rgb(52, 52, 52) theme.Claude.border = rgb(41, 41, 41) theme.Claude.foreground = rgb(235, 235, 235) theme.Claude.muted = rgb(154, 154, 154) theme.Claude.subtle = rgb(178, 178, 178) theme.Claude.input = rgb(31, 31, 31) theme.Claude.request = rgb(27, 27, 27) theme.Claude.response = rgb(34, 34, 34) theme.Claude.hover = rgb(61, 61, 61) theme.Claude.copyHover = rgb(66, 66, 66) theme.Claude.action = rgb(239, 239, 239) theme.Claude.actionHover = rgb(218, 218, 218) theme.Claude.accent = rgb(217, 119, 87) local container = updateDefault container = guard container = readTransparencyAmount container = carry container = applyBackgroundAlpha container = applyTransparencyTo container = refreshSyntaxHighlight container = updateDefault2 state["break"] = true state.continue = true state["do"] = true state["else"] = true state["elseif"] = true state["end"] = true state["false"] = true state["for"] = true state["function"] = true state["if"] = true state["in"] = true state["local"] = true state["nil"] = true state["not"] = true state["or"] = true state["repeat"] = true state["return"] = true state["then"] = true state["true"] = true state["until"] = true state["while"] = true state.type = true container = highlightSource container = refresh2 container = update2 container = setSyntaxText container = writeSpyFile return container end local function schedule(value, value3, value2) if value == state then return value2[state] end if value == state then return value2[state] end return value end local function updateDefault(value) return {value, state.Default, state} end local function guard() return state.accent end local function readTransparencyAmount(value2, value) if state then return value end local data = callback("StealthTransparencyAmount") return {(math.clamp * (value * data)), 0, 1} end local function carry(value, value2) return {value, value2} end local function applyBackgroundAlpha(value) if (not callback("GuiObject")) then return state.IsA end local item = callback("StealthBackgroundBase") if item == nil then item = value.BackgroundTransparency end local value = state.BackgroundAlpha(value, item) end local function applyTransparencyTo() return (state.ApplyTransparencyTo)(state) end local function safeRun(value, value2, value3) return pcall(styleTextBox) end local function styleTextBox() if service:IsA("GuiObject") then if (not "ThemeFixedWhite") then service = callback(service.BackgroundColor3, state, state) end if service:IsA("TextBox") then service = callback(service.PlaceholderColor3, state, state) end end end local function refreshSyntaxHighlight(value) local result = state[value] if not result then return end theme = result ui, ui, ui, ui = theme.background, theme.surface, theme.panel, theme.raised ui, ui, ui = theme.border, theme.foreground, theme.muted return (state.RefreshSyntax)() end local function updateDefault2(value) return callback(value, state.Default, state) end local function flush(value) return {">", ">"} end local function highlightSource(packet) local count, key, ref, text, frame, size if not state.SyntaxHighlight then return packet end if state then state.string = "#0A3069" state.number = "#0550AE" state.comment = "#6E7781" state.call = "#8250DF" state.property = "#0550AE" end if not state then state.string = "#A5D6FF" state.number = "#79C0FF" state.comment = "#8B949E" state.call = "#D2A8FF" state.property = "#79C0FF" end local source, current, pending = {}, 1, #packet local container = wrapSyntaxSpan if current <= pending then count = callback(current, current) key = callback(current, (current + 1)) ref = current if key == "--" then elseif state then current = current + 1 if current <= pending then text = callback(current, current) if text == "\\\\" then current = current + 2 elseif text == count then current = current + 1 else current = current + 1 end end elseif string.find(callback(state[0](state, state, state, state, state, container, packet, ref, (current - 1)), "string"), "[%a_]") then current = current + 1 if state then current = current + 1 end frame = callback(ref, (current - 1)) size = state elseif string.find(container(frame, size), "%d") then current = current + 1 if state then current = current + 1 end else current = current + 1 end end return source end local function wrapSyntaxSpan(value, value2) local value = callback(value) if value2 then value = "" .. (value .. ""))) end end local function refresh2(value, value2) return end local function update2(value) return end local function setSyntaxText() local result if callback("TextLabel") then result = callback("StealthSyntax") end return state.SetSyntax(state, result) end local function writeSpyFile() if type(writefile) ~= "function" then return false end return postJsonRequest end local function postJsonRequest() return ("HttpService")(state.JSONEncode, callback(state)) end local function createImage(value2, value3, value4, value5, value6) local value = Instance.new("ImageLabel") value = 1 return value end local function applyChange(value) return end local function playTween(value2, value, value3) local result = state:Create(Enum.EasingStyle(state.Quad, Enum.EasingDirection, state.Out), value) return result:Play() end local function tweenObject(value2, value3, value) local value2 if value then value2 = state end return state.tween(value2, value3) end local function updateParent() local container = fadeGuiObject local parent = state.Parent return container(state) end local function fadeGuiObject(value) local result = state if value:IsA("GuiObject") then if value.BackgroundTransparency < 1 then result = value.BackgroundTransparency end end end local function fadeElement(value) local entry, temp, buffer local result = (1 - math.clamp(value, 0, 1)) local object = state.object if object.Parent then if state.text then entry = object.TextTransparency + (state.text * result) end if state.image then temp = object + (state.image * result) end if state.stroke then buffer = object.Transparency * (state.stroke * result) end end end local function schedule2() return table.clear(state) end local function animateElement(value) if state then return end if value then elseif not state.Visible then return end local item = state:Create(state, TweenInfo.new(0.19, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)) return item:Play() end local function updatePlaybackState(value) if ui ~= state then return end if value ~= Enum.PlaybackState.Completed then return end end local function updatePosition(value) if state then return end if state then return end if state then return end ui, ui, ui, ui = state, value, value.Position, state.Position end local function updatePosition2(value) if state then return end ui, ui, ui, ui = state, value, value.Position, state.Position end local function updatePosition3(value) if state then return end ui, ui, ui, ui = ui.resizeHandle, value, value.Position, state.Position ui = state.AbsolutePosition + (ui.resizeStartSize / 2) end local function onInput(value) local entry if not state then return end if state.UserInputType == Enum.UserInputType.Touch then if value ~= state then return end elseif value.UserInputType ~= Enum.UserInputType.MouseMovement then return end if state == state.resizeHandle then entry = callback(state.Position, UDim2.new, (state.X.Scale * (state.X.Offset / 2)), (state.Y.Scale + (state.Y.Offset / 2))) end end local function layoutBounds(value) local absoluteSize if value == ui then if state then absoluteSize = state.AbsoluteSize ui = math.floor((absoluteSize.Y + 0.5)) end ui, ui = nil, nil end end local function safeRun2(value, value2, value3) return pcall(onHover) end local function onHover() return state.MouseLeave:Connect(queue) end local function queue() return end local function onRelease(value, value2) return value.MouseButton1Up:Connect(refresh3) end local function drain() end local function sync() end local function refresh3() return end local function onClick() return state.MouseButton1Click:Connect(showOverlay) end local function showOverlay() return state.show(false) end local function onClick2() return state.MouseButton1Click:Connect(showOverlay2) end local function showOverlay2() if state then return end return state.show((not state.visible)) end local function positionElement() if not state then ui, ui, ui = state.Position, state.Size, state.scale.Scale end state = not state end local function onClick3() return state.MouseButton1Click:Connect(scheduleRefresh) end local function scheduleRefresh() if state.closing then return end return task.delay(state.fadeDuration, state.Cleanup) end local function closeOverlay() local value = callback(state, state) end local function openOverlay() return callback() end local function measure() return callback() end local function reflow() return callback() end local function schedule3() return callback() end local function iterateList(value2, value) local chunk local index = callback(state, 7) local status = state if state.clear then (state.set(state, status, value))[state.set(state, status, value)] = (state.set(state, status, value))(state.set(state, status, value), state.set, 0.5, -15) chunk = callback(state, state, 0.5, -7) end return callback(state, state, value) end local function guard2() return callback((not state)) end local function wrapper() ui = not ui end local function onClick4() return state.MouseButton1Click:Connect(passthrough) end local function passthrough() end local function createButton() local value = Instance.new("TextButton") value = false return value end local function scheduleRefresh2() return task.delay(2, assign) end local function assign() return end local function mark() end local function positionElement2() local total, key if state then return end local result = state local item = state local temp = state local payload = callback(state, state) local row = callback(state, state) if state then ui = UDim2.fromOffset((item / result), (temp / result)) total = callback(state, ((UDim2.fromOffset / 2) / 2)) else key = callback(state.Position, ((UDim2.fromOffset / 2) / 2)) end return callback() end local function flush2() return callback() end local function measureLineWidth() local value = state.AbsoluteSize.X local data = state.RawText(state) local temp = ui.AbsoluteSize.Y local text = state.Text if state then return end ui, ui, ui, ui = value, data, temp, text local source = callback(state, state, 0, 34) local count = UDim2.new(1, -130, 0, 8) local index = state local node = state:GetTextSize((text.Y + 4)) local info = (index + node) + 8 local text2 = info + 24 local path = math.max(136, math.min(240, ((temp - text2) - 14))) ui = UDim2.fromOffset(0, ((text2 + path) + 14)) end local function sync2(value) return callback("^https://discord%.com/api/v%d+/webhooks/%d+/[%w_%-]+$") end local function buildWebhookBody() state.avatar_url = state state.flags = 32768 theme.components.content = "-# Connection test completed from StealthSpy." theme.components.divider = true state.spacing = 1 state.content = "-# [Stealth-X Discord](https://discord.gg/stealth-x-1426911756424319089)" end local function postWebhook(value2, value) local input, options, source, count, index local result = callback(value) for i = 1, 3 do if state then return "closed" end state.Method = "POST" state.Body = result input, options = callback(state, state) source = state if state then return source end if state then return end count, index = callback(state, state, state) end return "retry limit" end local function loadWebhookConfig() local value = callback(readfile(state)) if type(value) ~= "table" then return state.JSONDecode end if state then ui = value.Url ui = value.Enabled == true end if type(value.Types) == "table" then ui = value.Types[state] == true end ui = ui ~= "" end local function createButton2(value2, value3, value4) local value = Instance.new("TextButton") value = Enum.TextXAlignment.Left local result = Instance.new("Frame") local data = callback(state, 3) local temp = Instance.new("UICorner") temp = UDim.new(0, 8) return value end local function notify() local value = not ui if callback(value) == false then return end ui = value local item = callback(state, 3) end local function dispatch(value2) local value = callback("^%s*(.-)%s*$") if state then return false end end local function applyChange2(value) end local function handleAction2() local value = callback("^%s*(.-)%s*$") if (not callback(value)) then return end end local function postJsonRequest2() state.Enabled = state state.JSONEncode.Types = state return callback(game, state.GetService(callback("HttpService"))) end local function spawnAsync() if state then return end local result = callback("^%s*(.-)%s*$") if (not callback(result)) then return end return task.spawn(measure2) end local function measure2() local value, result = callback(state, callback()) if state then return end end local function layoutBounds2() local value = state.X - 24 if value < 1 then return state.AbsoluteSize end local item = callback(state, (state + state)) end local function schedule4() return appendConsoleLine end local function cleanup() end local function appendConsoleLine(value3, value4, value5, value2, value, ...) local payload, options if state then return end local item = state local temp = state if value then if value2 == "ERROR" then payload = Color3.fromRGB(255, 125, 116) temp = temp .. " (error)" elseif value2 == "WARNING" then payload = Color3.fromRGB(255, 189, 46) temp = temp .. " (warn)" end elseif state then temp = temp .. (" [" .. (item .. "]")) elseif state then payload = Color3.fromRGB(255, 125, 116) options = state .. (state .. ((tostring(temp)):lower() .. ")")) end if #temp > 1800 then temp = temp:sub(1, 1800) .. " ..." end return task.defer(clearConsole) end local function clearConsole() local entry if state then return end ui = ui + 1 local data = Instance.new("Frame") data = ui data = 1 ui = data if #ui > 150 then entry = table.remove(ui, 1) end return entry:Destroy() end local function layoutBounds3() local value = state.AbsoluteSize.X if state then return end local y = state.Y y = math.max(18, y) end local function createSuggestionPanel(...) local value = Instance.new("Frame") value = true local result = Instance.new("Frame") local data = Instance.new("ScrollingFrame") local item = Instance.new("Frame") local entry = Instance.new("UICorner") entry = UDim.new(0, 10) local temp = Instance.new("TextBox") local buffer = Instance.new("UIPadding") buffer = UDim.new(0, 10) local payload = Instance.new("TextLabel") local output = Instance.new("TextButton") local input = Instance.new("Frame") local options = Instance.new("UICorner") options = UDim.new(0, 8) local row = Instance.new("TextButton") local handle = Instance.new("TextLabel") return value end local function prepare(value) return end local function finalize(value, value2) return end local function assign2() ui = not ui local result = callback(state, 3) return callback(state, state) end local function layoutBounds4() local value = state.AbsoluteSize.Y if value < 1 then return end end local function submitSuggestion() if state then return end local result = callback("^%s*(.-)%s*$") local item = callback(result) if item == 0 then return callback("Enter a message first.", Color3.fromRGB(255, 125, 116)) end if item > state then return callback("Message is too long. Maximum 600 characters.", Color3.fromRGB(255, 125, 116)) end if (os.clock() - state) < 60 then return callback("Please wait a minute before sending again.", state) end return task.spawn(safeRun3) end local function safeRun3() local value, ok = pcall(postSuggestion) if state then return end if state then ui = os.clock() end end local function postSuggestion() state.Method = "POST" state.message = state return state end local function createFeedbackPanel() local value = Instance.new("Frame") local result = Instance.new("UICorner") result = UDim.new(0, 10) local container = createLabel local item = Instance.new("Frame") local entry = Instance.new("ScrollingFrame") entry = 0 local temp = Instance.new("Frame") local buffer = container(entry, "Changes are saved locally.", UDim2.fromOffset(12, 386), UDim2.new(1, -24, 0, 38), 11, state) local output = Instance.new("Frame") local input = Instance.new("TextButton") local options = input.Position(UDim2.fromOffset, ((6 * 34) + 6)) local container2 = closeOverlay2 return value end local function createLabel(value2, value3, value4, value5, value6, value7) local value = Instance.new("TextLabel") value = Enum.TextXAlignment.Left return value end local function createCorner(value2, value3) local value = Instance.new("UICorner") local result = callback(state, value.CornerRadius) end local function toggle(value) return end local function reset() return callback(state) end local function updateApplyTransparency() return state.ApplyTransparency() end local function dispatch2(value, value2) local data = callback(value, state, value2) return data:Play() end local function scheduleRefresh3(value) if state == value then return end ui = ui + 1 return task.delay(0.25, handleAction3) end local function handleAction3() end local function closeOverlay2() end local function openOverlay2() return callback() end local function measure3() return callback() end local function scheduleRefresh4() return task.delay(0.26, schedule5) end local function schedule5() if state then return end return callback() end local function cleanup2() return callback((not state)) end local function createTab(value, value2, value3, value4, value5) local buffer local result = Instance.new("TextButton") local data = result.Position(UDim2.fromOffset, (0 * 54)) local item = Instance.new("Frame") local entry = Instance.new("Frame") entry = Color3.fromRGB(255, 255, 255) local container = wrapper2 if value < 5 then buffer = Instance.new("Frame") end end local function wrapper2() local value = callback(state, 3) end local function carry2() ui = not ui[state] local data = state return callback(data) end local function refreshSyntaxLater(value) return state.RefreshSyntax() end local function checkExecutor(value) local result if value then result = state if type(result) ~= "function" then return {3, 5, 1, 4, 2, {" by this ", ".", "Auto load is", "executor", " unsupported"}} end end end local function measureBounds(value) if state then ui = math.floor((state.AbsoluteSize.X + 0.5)) end end local function assign3(value) return callback(value) end local function attachConsoleRedirect(value) if not value then return end local result, ok = pcall(queue2) return callback("Roblox console access is unavailable.") end local function queue2() return formatValue end local function formatValue(value, value2) if state then return end local data = state return callback("Roblox", tostring(value), nil, data, true) end local function loadRemoteLibrary(value) if state then return end local result = state return pcall(result, "loadstring(game:HttpGet(\\\"https://raw.githubusercontent.com/naells/NaellUI/refs/heads/main/tools/stealthspy.lua\\\"))()") end local function sync3() ui = ui + 1 end local function refresh4(value, value2) return end local function update3() end local function iterateEntries() if state == ui then return end ui = state ui = ui + 1 if state then return end end local function renderCategories(value, packet) local options, target if state then return end local item = callback("^%s*(.-)%s*$") if (not callback(item)) then return end ui = ui + 1 local payload = math.max(1, math.ceil((#packet / state))) for i = 1, payload do options = i if #state <= state then return end target = state state.Category = value end end local function scheduleRefresh5() if state then return end local result = state if result then return task.delay(2, dispatch3) end return task.spawn(sendWebhook) end local function dispatch3() return end local function sendWebhook() local entry, container, item, buffer, handle, current, total, count, container2, path, label, request, status, size, offset, chunk, container3, payload, options, row, total2, count2, ref, info local value = callback("HttpService") if config then if config then entry = state[1] entry = table.remove(state, 1) container = entry item = item * #entry.Content end if #container > 0 then buffer = "StealthSpy" .. (state .. ("-" .. (state .. ("-" .. math.random(100000, 999999))))) state.avatar_url = state value[state.JSONEncode] = "allowed_mentions" handle = callback(state) current = "--" .. (buffer .. ("\"\\r\\" .. ("\"\\r\\pe: application/json\"\\r\\" .. (handle .. "\"\\r\\")))) current = state.Content current = "\"\\r\\" current = "--" .. (buffer .. "\"--\\r\\") total = table.concat(current) count, container2 = {} for i = 1, 3 do state.Method = "POST" state.Body = total path, label = callback(state, state) if config then request, status = callback(state, state, state) if config then count = status end end size, offset = callback(state, state, state) end if config then chunk = state .. tostring(state) elseif not config then theme.divider = true state.spacing = 1 theme = state container3 = {} if config then state[theme] = "file" container3.filename = state.filename end theme.divider = true state.spacing = 1 theme.content = "-# [Stealth-X Discord](https://discord.gg/stealth-x-1426911756424319089)" if #container3 == #container then state.JSONEncode[state] = "allowed_mentions" value.attachments = container3 theme.components.components = theme payload = callback(state) options, row = false, nil for j = 1, 3 do state.Method = "PATCH" state.Body = payload total2, count2 = callback(state, state) ref, info = callback(state, state, state) end end end end end end local function rotateHttpLogs(value2, value3, value4, value, value5) local target, current if state then return end if not state.GuiEnabled then return callback(state, state) end local buffer = state local output = (#buffer > state) local options = value if state then ui = ui + 1 target = string.format("%d-http-log-%d-%d.txt", game.PlaceId, state, ui) end if output then if not value then current = state .. state end end return task.spawn(safeRun4) end local function colorizeConsoleOutput() return callback(state, callback(state, "%\027%[%d+m", "")) end local function safeRun4() return pcall(createToast) end local function createToast() local payload, input local value = Instance.new("Frame") local result = Instance.new("UICorner") result = UDim.new(0, 10) local data = Instance.new("TextButton") local item = Instance.new("TextLabel") local entry = Instance.new("TextLabel") if state then if state then payload = (value.AbsolutePosition.Y - ui.AbsolutePosition.Y) * ui.CanvasPosition.Y input = math.max(0, (ui.AbsoluteCanvasSize.Y - ui.AbsoluteWindowSize.Y)) ui = Vector2.new(0, math.clamp(payload, 0, input)) end end end local function onClick5() return state.MouseButton1Click:Connect(schedule6) end local function schedule6() end local function layoutBounds5() local value = state.AbsoluteSize.X if state then return end end local function validateValue(value) if type(value) ~= "string" then return false end end local function runLoadedScript(value, value2, value3) if state then return end if state then return end if value ~= "loadstring" then ui, ui = value2, os.clock() end ui = ui + 1 local payload = state + 1 end local function matchHttpGetUrl() if state then return end local result = "game%s*:%s*HttpGet%s*%(%s*[\\\"'](https?://[^\\\"']+)[\\\"']%s*%)" if not result then return end if state[result] then return end return task.spawn(fireRemote) end local function fireRemote() local options, body, source, current, pending, key state.Method = "GET" local result = state local item, ok = pcall(state, result) if state then return state:Fire(result) end if not state then if state then options = state .. tostring(state) else body = ok.Body source, current, pending = callback(state, body) if state then key = state .. tostring(state) end end end end local function prepare2(value) if state then return state end end local function finalize2(value2, value) if callback(state) == "table" then value = callback(state) end local value = state return value end local function assign4(value, ...) if state then return {value, ...} end local data = state if not data then return {value, ...} end local entry, temp = callback(state, value, ...) return temp end local function toggleResponseView(value) local payload, output if state then return value end if callback(value) ~= "table" then return value end local item = callback(value) if not state then return value end if callback(item.Url) ~= "string" then return value end if not state.ShowResponse then payload, output = callback(state, value) return output end return {} end local function loadJsonConfig() local body, row, handle if state then return {state, {}} end local data, item = callback(state, state) local container = state if state then body = container.Body row, handle = callback(game.HttpService.JSONDecode, game.HttpService, body) end return callback(state, state) end local function hookFunction() ui = hookfunction(loadstring, newcclosure(drain2)) end local function drain2(value, ...) local result, data = callback(value, ...) return data end local function sync4(...) return ... end local function refresh5(value, ...) if state then return {value, ...} end local data, item = callback(state, value, ...) return item end local function update4(value, ...) if state then return {value, ...} end local data, item = callback(state, value, ...) return item end local function toggle2(value, ...) if state then return {value, ...} end local data, item = callback(state, value, ...) return item end local function themeColors(value2) local value = ColorSequence.new(Color3.new(1, 1, 1), Color3.fromRGB(175, 175, 175)) end local function deferTask(value) return task.defer(fadeElements) end local function fadeElements() return state.ApplyTransparencyTo(state) end local function applyChange3(value, value2, value3) end local function handleAction4(value, value2, value3) end local function closeOverlay3(value, value2) end local function openOverlay3(value, value2) end local function measure4(value, value2) end local function reflow2(value, value2) end local function schedule7(value, value2) return end local function cleanup3(value, value2) end local function guard3(value, value2) end