remotespy roblox --[[ SimpleSpy v0.8 SOURCE Credits: Not By Me You can make script FE with it ]] ---- GENERATED BY GUI to LUA ---- local Players = game:GetService("Players") local CoreGui = game:GetService("CoreGui") remotespy roblox How to get it for free? remotespy roblox local ScreenGui = Instance.new("ScreenGui") local main = Instance.new("Frame") local topbar = Instance.new("Frame") local minimize = Instance.new("TextButton") local titleLabel = Instance.new("TextLabel") local remotes = Instance.new("ScrollingFrame") local UIListLayout = Instance.new("UIListLayout") local eTemplate = Instance.new("TextButton") local icon = Instance.new("ImageLabel") local name = Instance.new("TextLabel") remotespy roblox How to use it? remotespy roblox local fTemplate = Instance.new("TextButton") local icon_2 = Instance.new("ImageLabel") local name_2 = Instance.new("TextLabel") local properties = Instance.new("Frame") local codeframe = Instance.new("ScrollingFrame") codebox = Instance.new("TextBox") local propertyframe = Instance.new("ScrollingFrame") local UIListLayout_2 = Instance.new("UIListLayout") local property = Instance.new("Frame") local name_3 = Instance.new("TextLabel") remotespy roblox PasteShr remotespy roblox local property_2 = Instance.new("TextButton") local methodToggle = Instance.new("TextButton") --Properties: ScreenGui.ResetOnSpawn = false ScreenGui.DisplayOrder = 999999999 ScreenGui.Parent = Players.LocalPlayer:WaitForChild("PlayerGui") ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling remotespy roblox How to get it for free? remotespy roblox main.Name = "main" main.Parent = ScreenGui main.BackgroundColor3 = Color3.new(0.219608, 0.219608, 0.219608) main.BorderSizePixel = 0 main.Position = UDim2.new(0, 100, 0, 100) main.Size = UDim2.new(0.5, 0, 0.5, 0) topbar.Name = "topbar" topbar.Parent = main topbar.BorderSizePixel = 0 remotespy roblox PasteShr remotespy roblox topbar.BackgroundColor3 = Color3.new(0.121569, 0.121569, 0.121569) topbar.Size = UDim2.new(1, 0, 0, 18) minimize.Name = "minimize" minimize.Parent = topbar minimize.BackgroundColor3 = Color3.new(0, 0.105882, 0.792157) minimize.BorderSizePixel = 0 minimize.Position = UDim2.new(0, 0, 0, 0) minimize.Size = UDim2.new(0, 18, 0, 18) minimize.Font = Enum.Font.SourceSans remotespy roblox How to dowload it? remotespy roblox minimize.Text = "" minimize.TextColor3 = Color3.new(0, 0, 0) minimize.TextSize = 14 titleLabel.Parent = topbar titleLabel.BackgroundColor3 = Color3.new(1, 1, 1) titleLabel.BackgroundTransparency = 1 titleLabel.BorderSizePixel = 0 titleLabel.Position = UDim2.new(0.25, 0, 0, 0) titleLabel.Size = UDim2.new(0.5, 0, 1, 0) remotespy roblox How to use it? remotespy roblox titleLabel.Font = Enum.Font.SourceSansBold titleLabel.Text = "SimpleSpy v0.8 | exxtremewa#9394" titleLabel.TextColor3 = Color3.new(0.905882, 0.905882, 0.905882) titleLabel.TextSize = 14 remotes.Name = "remotes" remotes.Parent = main remotes.BackgroundColor3 = Color3.new(1, 1, 1) remotes.BackgroundTransparency = 1 remotes.BorderSizePixel = 0 remotespy roblox How to get it for free? remotespy roblox remotes.Position = UDim2.new(0, 0, 0, 18) remotes.Size = UDim2.new(0.5, 0, 1, -18) remotes.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png" remotes.ScrollBarThickness = 10 remotes.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png" UIListLayout.Parent = remotes UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder eTemplate.Name = "eTemplate" remotespy roblox How to get it for free? remotespy roblox eTemplate.Text = "" eTemplate.Parent = remotes eTemplate.BackgroundColor3 = Color3.new(0.219608, 0.219608, 0.219608) eTemplate.BorderColor3 = Color3.new(0.8, 0.8, 0.8) eTemplate.BorderSizePixel = 1 eTemplate.Size = UDim2.new(1, -10, 0, 20) eTemplate.BorderMode = Enum.BorderMode.Inset icon.Name = "icon" icon.Parent = eTemplate remotespy roblox How to dowload it? remotespy roblox icon.BackgroundColor3 = Color3.new(1, 1, 1) icon.BackgroundTransparency = 1 icon.BorderSizePixel = 0 icon.Size = UDim2.new(0, 18, 0, 18) icon.Position = UDim2.new(0, 2, 0, 2) icon.Image = "http://www.roblox.com/asset/?id=4640035463" icon.ScaleType = Enum.ScaleType.Fit name.Name = "name" name.Parent = eTemplate remotespy roblox PasteShr remotespy roblox name.BackgroundColor3 = Color3.new(1, 1, 1) name.BackgroundTransparency = 1 name.Position = UDim2.new(0, 25, 0, 0) name.Size = UDim2.new(1, -25, 1, 0) name.Font = Enum.Font.SourceSansBold name.Text = "RemoteEventName" name.TextColor3 = Color3.new(0.976471, 0.921569, 0.121569) name.TextSize = 14 name.TextXAlignment = Enum.TextXAlignment.Left remotespy roblox How to dowload it? remotespy roblox fTemplate.Name = "fTemplate" fTemplate.Text = "" fTemplate.Parent = remotes fTemplate.BackgroundColor3 = Color3.new(0.219608, 0.219608, 0.219608) fTemplate.BorderColor3 = Color3.new(0.8, 0.8, 0.8) fTemplate.BorderSizePixel = 1 fTemplate.Size = UDim2.new(1, -10, 0, 20) fTemplate.BorderMode = Enum.BorderMode.Inset icon_2.Name = "icon" remotespy roblox How to get it for free? remotespy roblox icon_2.Parent = fTemplate icon_2.BackgroundColor3 = Color3.new(1, 1, 1) icon_2.BackgroundTransparency = 1 icon_2.BorderSizePixel = 0 icon_2.Size = UDim2.new(0, 18, 0, 18) icon_2.Position = UDim2.new(0, 2, 0, 2) icon_2.Image = "http://www.roblox.com/asset/?id=4640035282" icon_2.ScaleType = Enum.ScaleType.Fit name_2.Name = "name" remotespy roblox How to get it? remotespy roblox name_2.Parent = fTemplate name_2.BackgroundColor3 = Color3.new(1, 1, 1) name_2.BackgroundTransparency = 1 name_2.Position = UDim2.new(0, 25, 0, 0) name_2.Size = UDim2.new(1, -25, 1, 0) name_2.Font = Enum.Font.SourceSansBold name_2.Text = "RemoteFunctionName" name_2.TextColor3 = Color3.new(0.666667, 0.12549, 1) name_2.TextSize = 14 name_2.TextXAlignment = Enum.TextXAlignment.Left remotespy roblox How to get it? remotespy roblox properties.Name = "properties" properties.Parent = main properties.BackgroundColor3 = Color3.new(1, 1, 1) properties.BackgroundTransparency = 1 properties.Position = UDim2.new(0.5, 0, 0, 18) properties.Size = UDim2.new(0.5, 0, 1, -18) codeframe.Name = "codeframe" codeframe.Parent = properties remotespy roblox PasteShr remotespy roblox codeframe.BackgroundColor3 = Color3.new(1, 1, 1) codeframe.BackgroundTransparency = 1 codeframe.Size = UDim2.new(1, 0, 0.5, 0) codeframe.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png" codeframe.ScrollBarThickness = 10 codeframe.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png" codebox.Name = "codebox" codebox.Parent = codeframe codebox.BackgroundColor3 = Color3.new(0.0784314, 0.0784314, 0.0784314) remotespy roblox How to get it for free? remotespy roblox codebox.BorderSizePixel = 0 codebox.Selectable = true codebox.Size = UDim2.new(1, -10, 1, 0) codebox.Font = Enum.Font.SourceSansSemibold codebox.Text = "{\\n [1] = true\\n}" codebox.TextColor3 = Color3.new(0.827451, 0.827451, 0.827451) codebox.TextSize = 14 codebox.TextXAlignment = Enum.TextXAlignment.Left codebox.TextYAlignment = Enum.TextYAlignment.Top codebox.ClearTextOnFocus = false remotespy roblox How to use it? remotespy roblox propertyframe.Name = "propertyframe" propertyframe.Parent = properties propertyframe.BackgroundColor3 = Color3.new(0.141176, 0.141176, 0.141176) propertyframe.BorderSizePixel = 0 propertyframe.Position = UDim2.new(0, 0, 0.5, 0) propertyframe.Size = UDim2.new(1, 0, 0.5, 0) propertyframe.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png" propertyframe.ScrollBarThickness = 10 propertyframe.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png" remotespy roblox PasteShr remotespy roblox UIListLayout_2.Parent = propertyframe UIListLayout_2.SortOrder = Enum.SortOrder.LayoutOrder property.Name = "property" property.Parent = propertyframe property.BackgroundColor3 = Color3.new(0.164706, 0.164706, 0.164706) property.BorderColor3 = Color3.new(0.415686, 0.415686, 0.415686) property.BorderSizePixel = 0 property.Size = UDim2.new(1, -10, 0, 15) remotespy roblox How to get it? remotespy roblox name_3.Name = "name" name_3.Parent = property name_3.BackgroundColor3 = Color3.new(0.164706, 0.164706, 0.164706) name_3.BorderColor3 = Color3.new(0.478431, 0.478431, 0.478431) name_3.Size = UDim2.new(0.400000006, 0, 1, 0) name_3.Font = Enum.Font.SourceSans name_3.Text = "Name" name_3.TextColor3 = Color3.new(0.909804, 0.909804, 0.909804) name_3.TextSize = 14 remotespy roblox How to get it? remotespy roblox name_3.TextXAlignment = Enum.TextXAlignment.Left property_2.Name = "property" property_2.Parent = property property_2.BackgroundColor3 = Color3.new(0.0941177, 0.0941177, 0.0941177) property_2.BorderColor3 = Color3.new(0.478431, 0.478431, 0.478431) property_2.Position = UDim2.new(0.300000012, 0, 0, 0) property_2.Size = UDim2.new(0.699999988, 0, 1, 0) property_2.Font = Enum.Font.SourceSans property_2.Text = "Function" remotespy roblox PasteShr remotespy roblox property_2.TextColor3 = Color3.new(0.909804, 0.909804, 0.909804) property_2.TextSize = 14 property_2.TextXAlignment = Enum.TextXAlignment.Left methodToggle.Name = "MethodToggle" methodToggle.Parent = topbar methodToggle.BackgroundColor3 = Color3.new(0.7450980392156863, 0.7450980392156863, 0.7450980392156863) methodToggle.BorderSizePixel = 0 methodToggle.Position = UDim2.new(1, -80, 0, 0) methodToggle.Size = UDim2.new(0, 80, 1, 0) remotespy roblox How to get it for free? remotespy roblox methodToggle.TextScaled = true methodToggle.Font = Enum.Font.SourceSans ------------------------------------------------------------------------------- -- init local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local ContentProvider = game:GetService("ContentProvider") remotespy roblox How to get it? remotespy roblox --- UDim2 size of `main` while minimized local minSize = UDim2.new(0, 100, 0, 15) --- UDim2 size of `main` while expanded local mainSize = main.Size local selectedColor = Color3.new(0.321569, 0.333333, 1) local deselectedColor = Color3.new(0.8, 0.8, 0.8) --- So things are descending local layoutOrderNum = 999999999 --- Whether or not the gui is closed (defaults to false) closed = false remotespy roblox How to get it for free? remotespy roblox --- The event logs to be read from logs = {} --- The event currently selected.Log (defaults to nil) selected = nil --- The blacklist (can be a string name or the Remote Instance) blacklist = {} --- The block list (can be a string name or the Remote Instance) blocklist = {} --- Whether or not to add getNil function local getNil = false remotespy roblox How to dowload it? remotespy roblox --- Array of remotes (and original functions) connected to local connectedRemotes = {} --- True = hookfunction, false = namecall local toggle = false local gm = getrawmetatable(game) local original = gm.__namecall setreadonly(gm, false) --- This event is the main handler for remotes local remoteHandlerEvent = Instance.new("BindableEvent") remotespy roblox How to dowload it? remotespy roblox -- functions --- Toggles the remote spy method (when button clicked) function onToggleButtonClick() if toggle then methodToggle.Text = "Disabled" else methodToggle.Text = "Enabled" end toggleSpyMethod() remotespy roblox How to get it? remotespy roblox end --- Drags gui (so long as mouse is held down) function onBarInput(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then local lastPos = UserInputService:GetMouseLocation() RunService:BindToRenderStep( "drag", 1, function() remotespy roblox How to dowload it? remotespy roblox local newPos = UserInputService:GetMouseLocation() if newPos ~= lastPos then main.Position = UDim2.new( 0, main.Position.X.Offset + (newPos - lastPos).X, 0, main.Position.Y.Offset + (newPos - lastPos).Y ) lastPos = newPos remotespy roblox How to get it? remotespy roblox end end ) topbar.InputEnded:Connect( function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then RunService:UnbindFromRenderStep("drag") end end ) remotespy roblox How to use it? remotespy roblox end end --- Expands and minimizes the gui (closed is the toggle boolean) function toggleMinimize() if not closed then closed = not closed remotes.Visible = false properties.Visible = false titleLabel.Visible = false remotespy roblox How to dowload it? remotespy roblox methodToggle.Visible = false TweenService:Create(main, TweenInfo.new(0.5), {Size = minSize}):Play() else closed = not closed TweenService:Create(main, TweenInfo.new(0.5), {Size = mainSize}):Play() wait(0.5) methodToggle.Visible = true remotes.Visible = true properties.Visible = true titleLabel.Visible = true remotespy roblox How to get it for free? remotespy roblox end end --- Checks if the given Remote is blacklisted; returns true if blacklisted, false if not function blacklisted(remote) if #blacklist > 0 then for _, v in pairs(blacklist) do if type(v) == "string" and v == remote.Name then return true elseif typeof(v) == "Instance" and v == remote then remotespy roblox PasteShr remotespy roblox return true end end end return false end --- Checks if the given Remote is blocked; returns true if blacklisted, false if not function blocked(remote) if #blocklist > 0 then remotespy roblox PasteShr remotespy roblox for _, v in pairs(blocklist) do if type(v) == "string" and v == remote.Name then return true elseif typeof(v) == "Instance" and v == remote then return true end end end return false end remotespy roblox How to get it? remotespy roblox --- Runs on MouseButton1Click of an event frame function eventSelect(frame) if --[[input.UserInputType == Enum.UserInputType.MouseButton1 and]] (not selected or selected.Log ~= frame) then if selected then TweenService:Create(selected.Log, TweenInfo.new(0.5), {BorderColor3 = deselectedColor, BorderSizePixel = 1}):Play( ) selected = nil end remotespy roblox How to get it for free? remotespy roblox for _, v in pairs(logs) do if frame == v.Log then selected = v end end if selected then TweenService:Create(selected.Log, TweenInfo.new(0.5), {BorderColor3 = selectedColor, BorderSizePixel = 2}):Play( ) codebox.Text = selected.GenScript remotespy roblox PasteShr remotespy roblox end end end --- Creates new function button (below codebox) function newButton(name, defaultName, onClick) local button = property:Clone() button.name.Text = name button.property.Text = defaultName button.property.MouseButton1Click:Connect( remotespy roblox How to use it? remotespy roblox function(...) if selected then onClick(button.property, ...) end end ) button.Parent = propertyframe end --- Adds new RemoteEvent to logs remotespy roblox How to use it? remotespy roblox function newEvent(name, gen_script, remote, source_script, blocked, upvalues, constants, num) local remoteFrame = eTemplate:Clone() remoteFrame.name.Text = name local id = Instance.new("IntValue") id.Name = "ID" id.Value = #logs + 1 id.Parent = remoteFrame logs[#logs + 1] = { Name = name, GenScript = gen_script, remotespy roblox How to get it? remotespy roblox Source = source_script, Remote = remote, Log = remoteFrame, Upvalues = upvalues, Constants = constants, Blocked = blocked, FunNum = num } if blocked then logs[#logs].GenScript = "-- THIS REMOTE WAS PREVENTED FROM FIRING THE SERVER BY SIMPLESPY\n\n" .. logs[#logs].GenScript remotespy roblox How to get it? remotespy roblox end remoteFrame.MouseButton1Click:Connect( function(...) eventSelect(remoteFrame, ...) end ) if layoutOrderNum < 1 then layoutOrderNum = 999999999 end remoteFrame.LayoutOrder = layoutOrderNum remotespy roblox How to get it for free? remotespy roblox layoutOrderNum = layoutOrderNum - 1 remoteFrame.Parent = remotes end --- Adds new RemoteFunction to logs function newFunction(name, gen_script, remote, source_script, blocked, upvalues, constants, num) local remoteFrame = fTemplate:Clone() remoteFrame.name.Text = name local id = Instance.new("IntValue") id.Name = "ID" remotespy roblox How to get it for free? remotespy roblox id.Value = #logs + 1 id.Parent = remoteFrame logs[#logs + 1] = { Name = name, GenScript = gen_script, Source = source_script, Remote = remote, Log = remoteFrame, Upvalues = upvalues, Constants = constants, remotespy roblox How to dowload it? remotespy roblox Blocked = blocked, FunNum = num } if blocked then logs[#logs].GenScript = "-- THIS REMOTE WAS PREVENTED FROM FIRING THE SERVER BY SIMPLESPY\n\n" .. logs[#logs].GenScript end remoteFrame.MouseButton1Click:Connect( function(...) eventSelect(remoteFrame, ...) end remotespy roblox How to get it for free? remotespy roblox ) if layoutOrderNum < 1 then layoutOrderNum = 999999999 end remoteFrame.LayoutOrder = layoutOrderNum layoutOrderNum = layoutOrderNum - 1 remoteFrame.Parent = remotes end --- Generates a script from the provided arguments (first has to be remote path) remotespy roblox How to dowload it? remotespy roblox function genScript(remote, ...) local gen = "" local args = {...} if #args > 0 then if not pcall( function() gen = gen .. "local args = " .. tableToString(args) .. "\n\n" end ) remotespy roblox How to dowload it? remotespy roblox then gen = gen .. "-- TableToString failure! Reverting to legacy functionality (results may vary)\nlocal args = {" if not pcall( function() for i, v in pairs(args) do if type(i) ~= "Instance" and type(i) ~= "userdata" then gen = gen .. "\n [" .. tostring(i) .. "] = " elseif type(i) == "string" then remotespy roblox PasteShr remotespy roblox gen = gen .. '\n ["' .. tostring(i) .. '"] = ' elseif type(i) == "userdata" and typeof(i) ~= "Instance" then gen = gen .. "\n [" .. typeof(i) .. ".new(" .. tostring(i) .. ")] = " elseif type(i) == "userdata" then gen = gen .. "\n [game." .. i:GetFullName() .. ")] = " end if type(v) ~= "Instance" and type(v) ~= "userdata" then gen = gen .. tostring(v) elseif type(v) == "string" then gen = gen .. '"' .. tostring(v) .. '"' remotespy roblox How to get it? remotespy roblox elseif type(v) == "userdata" and typeof(v) ~= "Instance" then gen = gen .. typeof(v) .. ".new(" .. tostring(v) .. ")" elseif type(v) == "userdata" then gen = gen .. "game." .. v:GetFullName() end end gen = gen .. "\n}\n\n" end ) then remotespy roblox PasteShr remotespy roblox gen = gen .. "}\n-- Legacy tableToString failure! Unable to decompile." end end if remote:IsA("RemoteEvent") then gen = gen .. typeToString(remote) .. ":FireServer(unpack(args))" elseif remote:IsA("RemoteFunction") then gen = gen .. typeToString(remote) .. ":InvokeServer(unpack(args))" end else if remote:IsA("RemoteEvent") then remotespy roblox How to use it? remotespy roblox gen = gen .. typeToString(remote) .. ":FireServer()" elseif remote:IsA("RemoteFunction") then gen = gen .. typeToString(remote) .. ":InvokeServer()" end end if getNil then gen = "function getNil(name,class) for _,v in pairs(getnilinstances())do if v.ClassName==class and v.Name==name then return v;end end end\n\n" .. gen getNil = false remotespy roblox PasteShr remotespy roblox end gen = "-- Script generated by SimpleSpy - credits to exxtremewa#9394\n-- This generator is IN DEVELOPMENT, not compatible with all types/classes yet\n\n" .. gen return gen end --- Generates spaces based on the provided level function space(level) local out = "" remotespy roblox How to get it for free? remotespy roblox for i = 1, level do out = out .. " " end return out end --- Adds \'s to the text as a replacement to whitespace chars and other things function getSpecials(s, nested) if not nested then s = s:gsub("\\", "\\\\") remotespy roblox How to get it? remotespy roblox end if s:match("\n") then local pos, pos2 = s:find("\n") s = s:sub(0, pos - 1) .. "\\n" .. s:sub(pos2 + 1, s:len()) return getSpecials(s, true) elseif s:match("\t") then local pos, pos2 = s:find("\t") s = s:sub(0, pos - 1) .. "\\t" .. s:sub(pos2 + 1, s:len()) return getSpecials(s, true) elseif s:match("\t") then remotespy roblox How to use it? remotespy roblox local pos, pos2 = s:find("\t") s = s:sub(0, pos - 1) .. "\\t" .. s:sub(pos2 + 1, s:len()) return getSpecials(s, true) elseif s:match("\"") and (s:sub(s:find("\"") - 1, s:find("\"") - 1) ~= "\\") then local pos, pos2 = s:find("\"") s = s:sub(0, pos - 1) .. "\\\"" .. s:sub(pos2 + 1, s:len()) return getSpecials(s, true) elseif s:match("'") and (s:sub(s:find("'") - 1, s:find("'") - 1) ~= "\\") then local pos, pos2 = s:find("'") s = s:sub(0, pos - 1) .. "\\'" .. s:sub(pos2 + 1, s:len()) remotespy roblox How to dowload it? remotespy roblox return getSpecials(s, true) else return s end end --- Converts a var to a string (including userdata) function typeToString(var, level) if not level then level = 4 remotespy roblox How to get it for free? remotespy roblox end local out = "" if type(var) ~= "userdata" and type(var) ~= "table" and type(var) ~= "string" then -- Number, booleans out = out .. tostring(var) elseif type(var) == "string" then -- Strings out = out .. '"' .. getSpecials(var) .. '"' elseif type(var) == "table" then -- Tables remotespy roblox How to use it? remotespy roblox out = out .. tableToString(var, level) elseif typeof(var) == "TweenInfo" then -- TweenInfo out = out .. "TweenInfo.new(" .. tostring(var.Time) .. ", Enum.EasingStyle." .. tostring(var.EasingStyle) .. ", Enum.EasingDirection." .. remotespy roblox How to use it? remotespy roblox tostring(var.EasingDirection) .. ", " .. tostring(var.RepeatCount) .. ", " .. tostring(var.Reverses) .. ", " .. tostring(var.DelayTime) .. ")" elseif typeof(var) == "Ray" then -- Ray out = out .. "Ray.new(Vector3.new(" .. tostring(var.Origin) .. "), Vector3.new(" .. tostring(var.Direction) .. "))" elseif typeof(var) == "NumberSequence" then remotespy roblox PasteShr remotespy roblox -- NumberSequence out = out .. "NumberSequence.new(" for i, v in pairs(var.KeyPoints) do out = out .. tostring(v) if i < #var.Keypoints then out = out .. ", " end end out = out .. ")" elseif typeof(var) == "DockWidgetPluginGuiInfo" then remotespy roblox How to get it? remotespy roblox -- DockWidgetPluginGuiInfo out = out .. "DockWidgetPluginGuiInfo.new(Enum.InitialDockState" .. tostring(var) .. ")" elseif typeof(var) == "ColorSequence" then -- ColorSequence out = out .. "ColorSequence.new(" for i, v in pairs(var.KeyPoints) do out = out .. "Color3.new(" .. tostring(v) .. ")" if i < #var.Keypoints then out = out .. ", " end remotespy roblox How to get it? remotespy roblox end out = out .. ")" elseif typeof(var) == "BrickColor" then -- BrickColor out = out .. "BrickColor.new(" .. tostring(var.Number) .. ")" elseif typeof(var) == "NumberRange" then -- NumberRange out = out .. "NumberRange.new(" .. tostring(var.Min) .. ", " .. tostring(var.Max) .. ")" elseif typeof(var) == "Region3" then -- Region3 remotespy roblox How to get it for free? remotespy roblox local center = var.CFrame.Position local size = var.CFrame.Size local vector1 = center - size / 2 local vector2 = center + size / 2 out = out .. "Region3.new(Vector3.new(" .. tostring(vector1) .. "), Vector3.new(" .. tostring(vector2) .. ")" elseif type(var) == "userdata" and typeof(var) ~= "Instance" then -- Default userdata (no instances) local dataName = typeof(var) local args = tostring(var) for i = 1, args:len() do remotespy roblox How to get it for free? remotespy roblox if args:sub(i, i) == "}" or args:sub(i, i) == "{" then if i > 1 and i < args:len() then args = args:sub(1, i - 1) .. " " .. args:sub(i + 1, args:len()) elseif i == 1 then args = " " .. args:sub(i + 1, args:len()) elseif i == args:len() then args = args:sub(1, i - 1) .. " " end end end remotespy roblox How to get it for free? remotespy roblox out = out .. dataName .. ".new(" .. args .. ")" elseif type(var) == "userdata" and typeof(var) == "Instance" then -- Instances local parent = var if parent == nil then out = "nil" elseif parent ~= game then while true do if parent and parent.Parent == game then if game:GetService(parent.ClassName) then remotespy roblox How to use it? remotespy roblox if parent.ClassName == "Workspace" then out = "workspace" .. out else out = 'game:GetService("' .. parent.ClassName .. '")' .. out end break else out = 'game["' .. getSpecials(parent.Name) .. '"]' break end remotespy roblox How to get it for free? remotespy roblox elseif parent.Parent == nil then getNil = true out = 'getNil("' .. getSpecials(parent.Name) .. '", "' .. parent.ClassName .. '")' break else if parent.Name:match("%a+") ~= parent.Name then out = '["' .. getSpecials(parent.Name) .. '"]' .. out else out = "." .. parent.Name .. out end remotespy roblox How to dowload it? remotespy roblox end parent = parent.Parent end else out = "game" end -- legacy method -- out = out .. "game." .. var:GetFullName() .. "," end return out remotespy roblox How to dowload it? remotespy roblox end --- Converts a table to a string (includes nested tables) function tableToString(t, level) if type(level) ~= "number" then level = 4 else level = level + 4 end local out = "" remotespy roblox PasteShr remotespy roblox for i, v in pairs(t) do out = out .. "\n" .. space(level) .. "[" .. typeToString(i, level) .. "] = " .. typeToString(v, level) .. "," end out = "{" .. out .. "\n" .. space(level - 4) .. "}" return out end --- Toggles on and off the Hookfunction remote spy method (DISABLED- will not run) function toggleHook() if toggle then remotespy roblox How to dowload it? remotespy roblox -- local function connect(remote) -- spawn( -- function() -- if remote:IsA("RemoteEvent") then -- local old -- old = -- hookfunction( -- remote.FireServer, -- function(...) -- newEvent(remote.Name, genScript(remote, ...), remote, rawget(getfenv(2), "script")) remotespy roblox How to dowload it? remotespy roblox -- return old(...) -- end -- ) -- table.insert(connectedRemotes, {remote, old}) -- elseif remote:IsA("RemoteFunction") then -- local old -- old = -- hookfunction( -- remote.InvokeServer, -- function(...) remotespy roblox PasteShr remotespy roblox -- newEvent(remote.Name, genScript(remote, ...), remote, rawget(getfenv(2), "script")) -- return old(...) -- end -- ) -- table.insert(connectedRemotes, {remote, old}) -- end -- end -- ) -- end -- game.ChildAdded:Connect( remotespy roblox How to get it? remotespy roblox -- function(c) -- pcall( -- function() -- if c:IsA("RemoteEvent") and c:IsA("RemoteFunction") then -- connect(c) -- end -- end -- ) -- end -- ) remotespy roblox How to get it? remotespy roblox -- spawn( -- function() -- for _, v in pairs(game:GetDescendants()) do -- if toggle then -- pcall( -- function() -- if v:IsA("RemoteEvent") or v:IsA("RemoteFunction") then -- connect(v) -- end -- end remotespy roblox How to dowload it? remotespy roblox -- ) -- wait() -- end -- end -- end -- ) else -- for _, v in pairs(connectedRemotes) do -- if v[1] and v[2] then -- if v[1]:IsA("RemoteEvent") then remotespy roblox How to get it? remotespy roblox -- hookfunction(v[1].FireServer, v[2]) -- elseif v[1]:IsA("RemoteFunction") then -- hookfunction(v[1].InvokeServer, v[2]) -- end -- end -- end -- connectedRemotes = {} end end remotespy roblox How to use it? remotespy roblox --- Toggles on and off the namecall remote spy method function toggleNamecall() if not toggle then gm.__namecall = function(...) local args = {...} local remote = args[1] local methodName = getnamecallmethod() if methodName == "FireServer" and not blacklisted(remote) then table.remove(args, 1) local script = rawget(getfenv(2), "script") remotespy roblox PasteShr remotespy roblox local func = debug.getinfo(2).func spawn( function() local funNum for i, v in pairs(getgc()) do if v == func then funNum = i break end end remotespy roblox PasteShr remotespy roblox remoteHandlerEvent:Fire("RemoteEvent", remote.Name, genScript(remote, unpack(args)), remote, script, blocked(remote), tableToString(debug.getupvalues(func)), tableToString(debug.getconstants(func)), funNum) end ) elseif methodName == "InvokeServer" and not blacklisted(remote) then table.remove(args, 1) local script = rawget(getfenv(2), "script") local func = debug.getinfo(2).func spawn( function() local funNum remotespy roblox How to get it for free? remotespy roblox for i, v in pairs(getgc()) do if v == func then funNum = i break end end remoteHandlerEvent:Fire("RemoteFunction", remote.Name, genScript(remote, unpack(args)), remote, script, blocked(remote), tableToString(debug.getupvalues(func)), tableToString(debug.getconstants(func)), funNum) end ) end remotespy roblox PasteShr remotespy roblox if (methodName == "InvokeServer" or methodName == "FireServer") and blocked(remote) then return nil else return original(...) end end else gm.__namecall = original end end remotespy roblox How to use it? remotespy roblox --- Toggles between the two remotespy methods (hookfunction currently = disabled) function toggleSpyMethod() toggleHook() toggleNamecall() toggle = not toggle end --- Handles the button creation things... Connected to `remoteHandlerEvent` function bindableHandler(type, ...) remotespy roblox PasteShr remotespy roblox if type == "RemoteEvent" then newEvent(...) elseif type == "RemoteFunction" then newFunction(...) end end -- main if not _G.SimpleSpyExecuted then ContentProvider:PreloadAsync({icon, icon_2}) remotespy roblox How to use it? remotespy roblox property.Parent = nil fTemplate.Parent = nil eTemplate.Parent = nil codebox.Text = "" topbar.InputBegan:Connect(onBarInput) minimize.MouseButton1Click:Connect(toggleMinimize) methodToggle.MouseButton1Click:Connect(onToggleButtonClick) remoteHandlerEvent.Event:Connect(bindableHandler) onToggleButtonClick() _G.SimpleSpyExecuted = true remotespy roblox How to get it for free? remotespy roblox else ScreenGui:Destroy() collectgarbage() end ----- ADD ONS ----- (easily add or remove additonal functionality to the RemoteSpy!) --[[ Some helpful things: - add your function in here, and create buttons for them through the 'newButton' function - the first argument provided is the TextButton the player clicks to run the function remotespy roblox How to dowload it? remotespy roblox - generated scripts are generated when the namecall is initially fired and saved in remoteFrame objects - blacklisted remotes will be ignored directly in namecall (less lag) - the properties of a 'remoteFrame' object: { Name: (string) The name of the Remote GenScript: (string) The generated script that appears in the codebox (generated when namecall fired) Source: (Instance (LocalScript)) The script that fired/invoked the remote Remote: (Instance (RemoteEvent) | Instance (RemoteFunction)) The remote that was fired/invoked Log: (Instance (TextButton)) The button being used for the remote (same as 'selected.Log') } remotespy roblox How to get it? remotespy roblox - globals list: (contact @exxtremewa#9394 for more information or if you have suggestions for more to be added) - closed: (boolean) whether or not the GUI is currently minimized - logs: (table[remoteFrame]) full of remoteFrame objects (properties listed above) - selected: (remoteFrame) the currently selected remoteFrame (properties listed above) - blacklist: (string[] | Instance[] (RemoteEvent) | Instance[] (RemoteFunction)) an array of blacklisted names and remotes - codebox: (Instance (TextBox)) the textbox that holds all the code- cleared often ]] -- Copies the contents of the codebox newButton( "Copy Code", remotespy roblox How to use it? remotespy roblox "Click to copy code", function(button) local orText = "Click to copy code" syn.write_clipboard(codebox.Text) button.Text = "Copied successfully!" wait(2) button.Text = orText end ) remotespy roblox How to use it? remotespy roblox --- Copies the source script (that fired the remote) newButton( "Copy Remote", "Click to copy the path of the remote", function(button) local orText = "Click to copy the path of the remote" syn.write_clipboard(typeToString(selected.Remote)) button.Text = "Copied!" wait(3) button.Text = orText remotespy roblox How to get it for free? remotespy roblox end ) --- Copies the source script (that fired the remote) newButton( "Copy Source", "Click to copy the path of the source script", function(button) local orText = "Click to copy the path of the source script" syn.write_clipboard(typeToString(selected.Source)) remotespy roblox How to get it for free? remotespy roblox button.Text = "Copied!" wait(3) button.Text = orText end ) --- Puts the upvalues from the remote into the console for your viewing pleasure... (also puts function #) newButton( "Get Upvalues", "Click to get the upvalues from the source", remotespy roblox How to get it? remotespy roblox function(button) local orText = "Click to get upvalues from the source script" codebox.Text = "-- Serialized with SimpleSpy's TableToString! (credits to @exxtremewa#9394)\n-- (getgc) Function #" .. tostring(selected.FunNum) .. "\n\n" .. selected.Upvalues button.Text = "Put in Code Box!" wait(3) button.Text = orText end ) --- Puts the constants from the remote into the console for your viewing pleasure... (also puts function #) remotespy roblox How to use it? remotespy roblox newButton( "Get Constants", "Click to get the constants from the source", function(button) local orText = "Click to get constants from the source script" codebox.Text = "-- Serialized with SimpleSpy's TableToString! (credits to @exxtremewa#9394)\n-- (getgc) Function #" .. tostring(selected.FunNum) .. "\n\n" .. selected.Constants button.Text = "Put in Code Box!" wait(3) button.Text = orText end remotespy roblox How to get it? remotespy roblox ) --- Decompiles the script that fired the remote and puts it in the code box newButton( "Decompile Source", "Click to decompile the source script", function(button) local orText = "Click to decompile the source script" codebox.Text = "-- Decompiled code from:\n-- " .. typeToString(selected.Source) .. "\n\n" .. decompile(selected.Source) button.Text = "Decompiled!" remotespy roblox How to get it? remotespy roblox wait(3) button.Text = orText end ) -- Executes the contents of the codebox through loadstring newButton( "Run Code", "Click to execute code", function(button) remotespy roblox PasteShr remotespy roblox local orText = "Click to execute code" button.Text = "Executing..." local execute = { pcall( function() return loadstring(codebox.Text)() end ) } if execute[1] then remotespy roblox How to dowload it? remotespy roblox button.Text = "Executed successfully!" else warn(execute[2], execute[3]) button.Text = "Execution error!" end wait(3) button.Text = orText end ) remotespy roblox How to use it? remotespy roblox --- Clears the Remote logs newButton( "Clear Logs", "Click to clear logs", function(button) local orText = "Click to clear logs" button.Text = "Clearing..." logs = {} for _, v in pairs(remotes:GetChildren()) do if not v:IsA("UIListLayout") then remotespy roblox How to dowload it? remotespy roblox v:Destroy() end end codebox.Text = "" selected = nil button.Text = "Logs cleared!" wait(3) button.Text = orText end ) remotespy roblox How to get it? remotespy roblox --- Excludes the selected.Log Remote from the RemoteSpy newButton( "Exclude (single)", "Click to exclude this Remote", function(button) local orText = "Click to exclude this Remote" table.insert(blacklist, #blacklist + 1, selected.Remote) button.Text = "Excluded!" wait(3) remotespy roblox PasteShr remotespy roblox button.Text = orText end ) --- Excludes all Remotes that share the same name as the selected.Log remote from the RemoteSpy newButton( "Exclude (by name)", "Click to exclude all remotes with this name", function(button) local orText = "Click to exclude all remotes with this name" remotespy roblox How to dowload it? remotespy roblox table.insert(blacklist, #blacklist + 1, selected.Name) button.Text = "Excluded!" wait(3) button.Text = orText end ) --- clears blacklist newButton( "Clear Blacklist", remotespy roblox How to use it? remotespy roblox "Click to clear the blacklist", function(button) local orText = "Click to clear the blacklist" blacklist = {} button.Text = "Blacklist cleared!" wait(3) button.Text = orText end ) remotespy roblox How to get it? remotespy roblox --- Prevents the selected.Log Remote from firing the server (still logged) newButton( "Block (single)", "Click to stop this remote from firing", function(button) local orText = "Click to stop this remote from firing" table.insert(blocklist, #blocklist + 1, selected.Remote) button.Text = "Excluded!" wait(3) button.Text = orText remotespy roblox PasteShr remotespy roblox end ) --- Prevents all remotes from firing that share the same name as the selected.Log remote from the RemoteSpy (still logged) newButton( "Block (by name)", "Click to stop remotes with this name from firing", function(button) local orText = "Click to stop remotes with this name from firing" table.insert(blocklist, #blocklist + 1, selected.Name) remotespy roblox How to get it for free? remotespy roblox button.Text = "Excluded!" wait(3) button.Text = orText end ) --- clears blacklist newButton( "Clear Blocklist", "Click to stop blocking remotes", remotespy roblox How to use it? remotespy roblox function(button) local orText = "Click to stop blocking remotes" blocklist = {} button.Text = "Blocklist cleared!" wait(3) button.Text = orText end ) remotespy roblox