
Key Required VerifiedUniversal

-- woah
local G2L = {};
_G.Code = ""
-- StarterGui.SolSpy
G2L["1"] = Instance.new("ScreenGui", game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui"));
G2L["1"]["Name"] = [[SolSpy]];
G2L["1"]["ResetOnSpawn"] = false
G2L["1"]["ZIndexBehavior"] = Enum.ZIndexBehavior.Sibling;
-- StarterGui.SolSpy.Frame
G2L["2"] = Instance.new("Frame", G2L["1"]);
G2L["2"]["BorderSizePixel"] = 0;
G2L["2"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["2"]["Size"] = UDim2.new(0, 425, 0, 253);
G2L["2"]["Position"] = UDim2.new(0.02067, 0, 0.17804, 0);
G2L["2"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
-- StarterGui.SolSpy.Frame.TopBar
G2L["3"] = Instance.new("Frame", G2L["2"]);
G2L["3"]["BorderSizePixel"] = 0;
G2L["3"]["BackgroundColor3"] = Color3.fromRGB(38, 36, 39);
G2L["3"]["Size"] = UDim2.new(0, 425, 0, 18);
G2L["3"]["Position"] = UDim2.new(0, 0, -0.00378, 0);
G2L["3"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["3"]["Name"] = [[TopBar]];
-- StarterGui.SolSpy.Frame.TopBar.Name
G2L["4"] = Instance.new("TextLabel", G2L["3"]);
G2L["4"]["BorderSizePixel"] = 0;
G2L["4"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["4"]["TextSize"] = 14;
G2L["4"]["FontFace"] = Font.new([[rbxasset://fonts/families/Arial.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["4"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
G2L["4"]["BackgroundTransparency"] = 1;
G2L["4"]["Size"] = UDim2.new(0, 58, 0, 14);
G2L["4"]["BorderColor3"] = Color3.fromRGB(255, 255, 255);
G2L["4"]["Text"] = [[SolSpy]];
G2L["4"]["Name"] = [[Name]];
G2L["4"]["Position"] = UDim2.new(0, 0, 0, 0);
-- StarterGui.SolSpy.Frame.TopBar.X
G2L["5"] = Instance.new("TextButton", G2L["3"]);
G2L["5"]["BorderSizePixel"] = 0;
G2L["5"]["TextStrokeColor3"] = Color3.fromRGB(255, 255, 255);
G2L["5"]["TextSize"] = 21;
G2L["5"]["TextColor3"] = Color3.fromRGB(205, 205, 205);
G2L["5"]["BackgroundColor3"] = Color3.fromRGB(38, 36, 39);
G2L["5"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["5"]["RichText"] = true;
G2L["5"]["Size"] = UDim2.new(0, 24, 0, 18);
G2L["5"]["Name"] = [[X]];
G2L["5"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["5"]["Text"] = [[X]];
G2L["5"]["Position"] = UDim2.new(0.94353, 0, 0, 0);
-- StarterGui.SolSpy.Frame.Buttons
G2L["6"] = Instance.new("Frame", G2L["2"]);
G2L["6"]["BorderSizePixel"] = 0;
G2L["6"]["BackgroundColor3"] = Color3.fromRGB(75, 75, 75);
G2L["6"]["Size"] = UDim2.new(0, 273, 0, 106);
G2L["6"]["Position"] = UDim2.new(0.35765, 0, 0.58103, 0);
G2L["6"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["6"]["Name"] = [[Buttons]];
-- StarterGui.SolSpy.Frame.Buttons.CopyR
G2L["7"] = Instance.new("TextButton", G2L["6"]);
G2L["7"]["TextSize"] = 14;
G2L["7"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
G2L["7"]["BackgroundColor3"] = Color3.fromRGB(27, 27, 29);
G2L["7"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["7"]["Size"] = UDim2.new(0, 93, 0, 17);
G2L["7"]["Name"] = [[CopyR]];
G2L["7"]["BorderColor3"] = Color3.fromRGB(139, 139, 139);
G2L["7"]["Text"] = [[Copy Remote]];
G2L["7"]["Position"] = UDim2.new(0.32967, 0, 0.08491, 0);
-- StarterGui.SolSpy.Frame.Buttons.CopyR.Border
G2L["8"] = Instance.new("TextLabel", G2L["7"]);
G2L["8"]["BorderSizePixel"] = 0;
G2L["8"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["8"]["TextSize"] = 14;
G2L["8"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["8"]["TextColor3"] = Color3.fromRGB(0, 0, 0);
G2L["8"]["Size"] = UDim2.new(0, 8, 0, 17);
G2L["8"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["8"]["Text"] = [[]];
G2L["8"]["Name"] = [[Border]];
-- StarterGui.SolSpy.Frame.Buttons.CopyC
G2L["9"] = Instance.new("TextButton", G2L["6"]);
G2L["9"]["TextSize"] = 14;
G2L["9"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
G2L["9"]["BackgroundColor3"] = Color3.fromRGB(27, 27, 29);
G2L["9"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["9"]["Size"] = UDim2.new(0, 83, 0, 17);
G2L["9"]["Name"] = [[CopyC]];
G2L["9"]["BorderColor3"] = Color3.fromRGB(139, 139, 139);
G2L["9"]["Text"] = [[Copy Code]];
G2L["9"]["Position"] = UDim2.new(0, 0, 0.08491, 0);
G2L["9"].MouseButton1Click:Connect(function()
if setclipboard then
setclipboard(_G.Code)
else
print("Your executer doesn't support clipboard")
end
end)
-- StarterGui.SolSpy.Frame.Buttons.CopyC.Border
G2L["a"] = Instance.new("TextLabel", G2L["9"]);
G2L["a"]["BorderSizePixel"] = 0;
G2L["a"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["a"]["TextSize"] = 14;
G2L["a"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["a"]["TextColor3"] = Color3.fromRGB(0, 0, 0);
G2L["a"]["Size"] = UDim2.new(0, 8, 0, 17);
G2L["a"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["a"]["Text"] = [[]];
G2L["a"]["Name"] = [[Border]];
-- StarterGui.SolSpy.Frame.Buttons.Run
G2L["b"] = Instance.new("TextButton", G2L["6"]);
G2L["b"]["TextSize"] = 14;
G2L["b"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
G2L["b"]["BackgroundColor3"] = Color3.fromRGB(27, 27, 29);
G2L["b"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["b"]["Size"] = UDim2.new(0, 81, 0, 17);
G2L["b"]["Name"] = [[Run]];
G2L["b"]["BorderColor3"] = Color3.fromRGB(139, 139, 139);
G2L["b"]["Text"] = [[Run Code]];
G2L["b"]["Position"] = UDim2.new(0.7033, 0, 0.08491, 0);
-- StarterGui.SolSpy.Frame.Buttons.Run.Border
G2L["c"] = Instance.new("TextLabel", G2L["b"]);
G2L["c"]["BorderSizePixel"] = 0;
G2L["c"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["c"]["TextSize"] = 14;
G2L["c"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["c"]["TextColor3"] = Color3.fromRGB(0, 0, 0);
G2L["c"]["Size"] = UDim2.new(0, 8, 0, 17);
G2L["c"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["c"]["Text"] = [[]];
G2L["c"]["Name"] = [[Border]];
G2L["d2"] = Instance.new("TextButton", G2L["6"]);
G2L["d2"]["TextSize"] = 14;
G2L["d2"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
G2L["d2"]["BackgroundColor3"] = Color3.fromRGB(27, 27, 29);
G2L["d2"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["d2"]["Size"] = UDim2.new(0, 83, 0, 17);
G2L["d2"]["Name"] = [[Clear]];
G2L["d2"]["BorderColor3"] = Color3.fromRGB(139, 139, 139);
G2L["d2"]["Text"] = [[Clear Output]];
G2L["d2"]["Position"] = UDim2.new(0, 0, 0.33962, 0);
G2L["e2"] = Instance.new("TextLabel", G2L["d2"]);
G2L["e2"]["BorderSizePixel"] = 0;
G2L["e2"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["e2"]["TextSize"] = 14;
G2L["e2"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["e2"]["TextColor3"] = Color3.fromRGB(0, 0, 0);
G2L["e2"]["Size"] = UDim2.new(0, 8, 0, 17);
G2L["e2"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["e2"]["Text"] = [[]];
G2L["e2"]["Name"] = [[Border]];
-- StarterGui.SolSpy.Frame.Remotes
G2L["d"] = Instance.new("ScrollingFrame", G2L["2"]);
G2L["d"]["Active"] = true;
G2L["d"]["BorderSizePixel"] = 0;
G2L["d"]["CanvasSize"] = UDim2.new(9999, 9999, 9999, 9999);
G2L["d"]["BackgroundColor3"] = Color3.fromRGB(54, 54, 56);
G2L["d"]["Name"] = [[Remotes]];
G2L["d"]["ScrollBarImageTransparency"] = 1;
G2L["d"]["Size"] = UDim2.new(0, 152, 0, 236);
G2L["d"]["ScrollBarImageColor3"] = Color3.fromRGB(0, 0, 0);
G2L["d"]["Position"] = UDim2.new(0, 0, 0.06719, 0);
G2L["d"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["d"]["ScrollBarThickness"] = 0;
G2L["d"]["LayoutOrder"] = 1;
-- StarterGui.SolSpy.Frame.Remotes.RemoteExample
G2L["e"] = Instance.new("TextButton", G2L["d"]);
G2L["e"]["BorderSizePixel"] = 3;
G2L["e"]["TextSize"] = 14;
G2L["e"]["TextColor3"] = Color3.fromRGB(255, 255, 255);
G2L["e"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255);
G2L["e"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.SemiBold, Enum.FontStyle.Normal);
G2L["e"]["Size"] = UDim2.new(0, 152, 0, 22);
G2L["e"]["BackgroundTransparency"] = 0.8;
G2L["e"]["Name"] = [[RemoteExample]];
G2L["e"]["BorderColor3"] = Color3.fromRGB(93, 96, 102);
G2L["e"]["Text"] = [[RemoteName]];
-- StarterGui.SolSpy.Frame.Remotes.RemoteExample.border
G2L["f"] = Instance.new("TextLabel", G2L["e"]);
G2L["f"]["BorderSizePixel"] = 0;
G2L["f"]["BackgroundColor3"] = Color3.fromRGB(253, 242, 81);
G2L["f"]["TextSize"] = 14;
G2L["f"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["f"]["TextColor3"] = Color3.fromRGB(0, 0, 0);
G2L["f"]["Size"] = UDim2.new(0, 10, 0, 22);
G2L["f"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["f"]["Text"] = [[]];
G2L["f"]["Name"] = [[border]];
-- StarterGui.SolSpy.Frame.Remotes.UIListLayout
G2L["10"] = Instance.new("UIListLayout", G2L["d"]);
G2L["10"]["Padding"] = UDim.new(0, 7);
G2L["10"]["SortOrder"] = Enum.SortOrder.LayoutOrder;
-- StarterGui.SolSpy.Frame.CodeSample
G2L["11"] = Instance.new("TextBox", G2L["2"]);
G2L["11"]["CursorPosition"] = -1;
G2L["11"]["Interactable"] = false;
G2L["11"]["TextColor3"] = Color3.fromRGB(0, 0, 0);
G2L["11"]["BorderSizePixel"] = 0;
G2L["11"]["TextXAlignment"] = Enum.TextXAlignment.Left;
G2L["11"]["TextWrapped"] = true;
G2L["11"]["TextSize"] = 15;
G2L["11"]["Name"] = [[CodeSample]];
G2L["11"]["TextYAlignment"] = Enum.TextYAlignment.Top;
G2L["11"]["BackgroundColor3"] = Color3.fromRGB(42, 45, 54);
G2L["11"]["FontFace"] = Font.new([[rbxasset://fonts/families/Balthazar.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal);
G2L["11"]["MultiLine"] = true;
G2L["11"]["ClearTextOnFocus"] = false;
G2L["11"]["Size"] = UDim2.new(0, 272, 0, 130);
G2L["11"]["Position"] = UDim2.new(0.35784, 0, 0.06719, 0);
G2L["11"]["BorderColor3"] = Color3.fromRGB(0, 0, 0);
G2L["11"]["Text"] = [[]];
-- StarterGui.SolSpy.Frame.Drag
G2L["12"] = Instance.new("LocalScript", G2L["2"]);
G2L["12"]["Name"] = [[Drag]];
-- StarterGui.SolSpy.Frame.Main
G2L["13"] = Instance.new("LocalScript", G2L["2"]);
G2L["13"]["Name"] = [[Main]];
-- StarterGui.SolSpy.Frame.Drag
local function C_12()
local script = G2L["12"];
local frame = script.Parent
local UserInputService = game:GetService("UserInputService")
local dragging
local dragInput
local dragStart
local startPos
local function update(input)
local delta = input.Position - dragStart
frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
frame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
frame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
end;
task.spawn(C_12);
-- StarterGui.SolSpy.Frame.Main
local function C_13()
local script = G2L["13"];
local TweenService = game:GetService("TweenService")
local MainFrame = script.Parent
local TopBar = MainFrame.TopBar
local function Close()
MainFrame.Parent:Destroy()
end
local function SetupButtons()
TopBar.X.MouseEnter:Connect(function()
TweenService:Create(TopBar.X, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(170, 0, 0)}):Play()
end)
TopBar.X.MouseLeave:Connect(function()
TweenService:Create(TopBar.X, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(37, 35, 38)}):Play()
end)
TopBar.X.MouseButton1Click:Connect(function()
Close()
end)
MainFrame.Buttons.Clear.MouseButton1Click:Connect(function()
for _,v in pairs(MainFrame.Remotes:GetChildren()) do
if v:IsA("TextButton") then
v:Destroy()
end
end
end)
end
local function Init()
-- Close Function
SetupButtons()
end
Init()
end;
task.spawn(C_13);
local function getPathToInstance(instance)
local path = {}
local current = instance
while current and current ~= game do
local name = current.Name
if name:sub(1, 4) == "Game" then
name = "game" .. name:sub(5)
end
table.insert(path, 1, name)
current = current.Parent
end
return table.concat(path, ".")
end
local function formatValue(value)
if typeof(value) == "string" then
return string.format("%q", value)
elseif typeof(value) == "number" then
return tostring(value)
elseif typeof(value) == "boolean" then
return value and "true" or "false"
elseif typeof(value) == "Instance" then
return getPathToInstance(value)
else
return string.format("%q", tostring(value))
end
end
local function Format(args)
local formattedArgs = {}
for i, arg in ipairs(args) do
formattedArgs[i] = string.format("[%d] = %s", i, formatValue(arg))
end
return formattedArgs
end
local function handleRemote(remote)
local path = {}
local current = remote
while current and current.Parent ~= game do
local name = current.Name
if name:sub(1, 4) == "Game" then
name = "game" .. name:sub(5)
end
table.insert(path, 1, name)
current = current.Parent
end
local fullPath = table.concat(path, ".")
if remote:IsA("RemoteEvent") then
remote.OnClientEvent:Connect(function(...)
local args = {...}
local argsFormatted = Format(args)
local argsString = table.concat(argsFormatted, ",\n ")
G2L["yu"] = G2L["e"]:Clone()
G2L["yu"]["Name"] = remote.Name
G2L["yu"]["Text"] = remote.Name
G2L["yu"]["Parent"] = G2L["d"]
G2L["yu"].MouseButton1Click:Connect(function()
_G.Code = string.format("local args = {\n %s\n}\n%s:FireServer(unpack(args))", argsString, fullPath)
G2L["11"]["Text"] = _G.Code
end)
end)
elseif remote:IsA("RemoteFunction") then
remote.OnClientInvoke = function(...)
local args = {...}
local argsFormatted = Format(args)
local argsString = table.concat(argsFormatted, ",\n ")
G2L["yu2"] = G2L["e"]:Clone()
G2L["yu2"]["Name"] = remote.Name
G2L["yu2"]["Text"] = remote.Name
G2L["yu2"]["Parent"] = G2L["d"]
G2L["yu2"].MouseButton1Click:Connect(function()
_G.Code = string.format("local args = {\n %s\n}\n%s:InvokeServer(unpack(args))", argsString, fullPath)
end)
return ...
end
end
end
local function wrapRemotes(folder)
for _, obj in ipairs(folder:GetDescendants()) do
if obj:IsA("RemoteEvent") or obj:IsA("RemoteFunction") then
handleRemote(obj)
end
end
folder.DescendantAdded:Connect(function(descendant)
if descendant:IsA("RemoteEvent") or descendant:IsA("RemoteFunction") then
handleRemote(descendant)
end
end)
end
local folders = {
game.ReplicatedStorage,
game.StarterGui,
game.StarterPack,
game.StarterPlayer
}
for _, folder in ipairs(folders) do
wrapRemotes(folder)
folder.DescendantAdded:Connect(function(descendant)
if descendant:IsA("RemoteEvent") or descendant:IsA("RemoteFunction") then
handleRemote(descendant)
end
end)
end
return G2L["1"], require;



Its kinda bunz
what is this for because it sounds insanely good.
@RGL_real it reads the servers remotes basically it shows u what remotes players are firing so u can see actions info and signals they trigger kinda like watching the server talk in real time
but its just pc version