-- Remote Viewer local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local CoreGui = game:GetService("CoreGui") local function getParent() local s, e = pcall(function() return gethui() end) if s then return gethui() end return CoreGui end -- GUI local ScreenGui = Instance.new("ScreenGui", getParent()) ScreenGui.Name = "RemoteViewer" local Frame = Instance.new("Frame", ScreenGui) Frame.Size = UDim2.new(0, 300, 0, 420) Frame.Position = UDim2.new(0.3, 0, 0.3, 0) Frame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) Frame.Active = true Frame.Draggable = true local UICorner = Instance.new("UICorner", Frame) UICorner.CornerRadius = UDim.new(0, 12) -- Title local Title = Instance.new("TextLabel", Frame) Title.Size = UDim2.new(1, -70, 0, 30) Title.Position = UDim2.new(0, 5, 0, 5) Title.BackgroundTransparency = 1 Title.Text = "Remote Viewer" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.TextXAlignment = Enum.TextXAlignment.Left Title.Font = Enum.Font.GothamBold Title.TextSize = 16 -- Minimize local MinBtn = Instance.new("TextButton", Frame) MinBtn.Size = UDim2.new(0, 30, 0, 30) MinBtn.Position = UDim2.new(1, -35, 0, 5) MinBtn.Text = "-" MinBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60) MinBtn.TextColor3 = Color3.fromRGB(255, 255, 255) -- Args Mode toggle local ArgsBtn = Instance.new("TextButton", Frame) ArgsBtn.Size = UDim2.new(0, 60, 0, 25) ArgsBtn.Position = UDim2.new(0, 5, 0, 40) ArgsBtn.Text = "ARGS: OFF" ArgsBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60) ArgsBtn.TextColor3 = Color3.fromRGB(255, 255, 255) -- Args Input local ArgsBox = Instance.new("TextBox", Frame) ArgsBox.Size = UDim2.new(1, -75, 0, 25) ArgsBox.Position = UDim2.new(0, 70, 0, 40) ArgsBox.BackgroundColor3 = Color3.fromRGB(25, 25, 25) ArgsBox.Text = "arg1; arg2; plr" ArgsBox.TextColor3 = Color3.fromRGB(255, 255, 255) ArgsBox.ClearTextOnFocus = false ArgsBox.Visible = false -- Scroll local Scroll = Instance.new("ScrollingFrame", Frame) Scroll.Size = UDim2.new(1, -10, 1, -110) Scroll.Position = UDim2.new(0, 5, 0, 70) Scroll.BackgroundColor3 = Color3.fromRGB(25, 25, 25) Scroll.BorderSizePixel = 0 Scroll.CanvasSize = UDim2.new(0, 0, 0, 0) Scroll.ScrollBarThickness = 6 local UIList = Instance.new("UIListLayout", Scroll) UIList.Padding = UDim.new(0, 3) UIList.SortOrder = Enum.SortOrder.LayoutOrder -- Load more button local LoadMore = Instance.new("TextButton", Frame) LoadMore.Size = UDim2.new(1, -10, 0, 30) LoadMore.Position = UDim2.new(0, 5, 1, -35) LoadMore.BackgroundColor3 = Color3.fromRGB(60, 60, 60) LoadMore.Text = "+ Load More" LoadMore.TextColor3 = Color3.fromRGB(255, 255, 255) -- Logic local allRemotes, shown, step = {}, 0, 20 local argsMode = false local collapsed = false local prevSize = Frame.Size for _, obj in ipairs(game:GetDescendants()) do if obj:IsA("RemoteEvent") or obj:IsA("RemoteFunction") then table.insert(allRemotes, obj) end end -- Parse arguments local function parseArgs(str) local args = {} for _, v in ipairs(string.split(str, ";")) do v = v:match("^%s*(.-)%s*$") if v == "plr" then table.insert(args, LocalPlayer) elseif tonumber(v) then table.insert(args, tonumber(v)) elseif v == "true" then table.insert(args, true) elseif v == "false" then table.insert(args, false) elseif v ~= "" then table.insert(args, v) end end return args end -- Show remotes local function showMore() for i = shown + 1, math.min(shown + step, #allRemotes) do local btn = Instance.new("TextButton", Scroll) btn.Size = UDim2.new(1, -5, 0, 25) btn.BackgroundColor3 = Color3.fromRGB(50, 50, 50) btn.Text = allRemotes[i].Name btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.MouseButton1Click:Connect(function() local r = allRemotes[i] local args = {} if argsMode then args = parseArgs(ArgsBox.Text) end if r:IsA("RemoteEvent") then r:FireServer(unpack(args)) elseif r:IsA("RemoteFunction") then pcall(function() r:InvokeServer(unpack(args)) end) end end) end shown = math.min(shown + step, #allRemotes) Scroll.CanvasSize = UDim2.new(0,0,0,UIList.AbsoluteContentSize.Y) end -- Toggle minimizer MinBtn.MouseButton1Click:Connect(function() collapsed = not collapsed if collapsed then prevSize = Frame.Size Frame.Size = UDim2.new(0, 300, 0, 36) Scroll.Visible = false LoadMore.Visible = false ArgsBtn.Visible = false ArgsBox.Visible = false MinBtn.Text = "+" else Frame.Size = prevSize Scroll.Visible = true LoadMore.Visible = true ArgsBtn.Visible = true if argsMode then ArgsBox.Visible = true end MinBtn.Text = "-" end end) -- Toggle args mode ArgsBtn.MouseButton1Click:Connect(function() argsMode = not argsMode ArgsBtn.Text = argsMode and "ARGS: ON" or "ARGS: OFF" ArgsBox.Visible = argsMode end) LoadMore.MouseButton1Click:Connect(showMore) showMore()