local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer -- Clean up any pre-existing UI instance local oldGui = player:WaitForChild("PlayerGui"):FindFirstChild("RemoteLaSper_Console") if oldGui then oldGui:Destroy() end -- ScreenGui Container local screenGui = Instance.new("ScreenGui") screenGui.Name = "RemoteLaSper_Console" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") -- Main Frame local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 720, 0, 440) mainFrame.Position = UDim2.new(0.5, -360, 0.5, -220) mainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 18) mainFrame.BorderSizePixel = 0 mainFrame.ClipsDescendants = true mainFrame.Parent = screenGui local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 10) mainCorner.Parent = mainFrame -- Title Bar local titleBar = Instance.new("Frame") titleBar.Name = "TitleBar" titleBar.Size = UDim2.new(1, 0, 0, 35) titleBar.BackgroundColor3 = Color3.fromRGB(22, 22, 26) titleBar.BorderSizePixel = 0 titleBar.Parent = mainFrame local titleLabel = Instance.new("TextLabel") titleLabel.Name = "Title" titleLabel.Size = UDim2.new(1, -120, 1, 0) titleLabel.Position = UDim2.new(0, 12, 0, 0) titleLabel.BackgroundTransparency = 1 titleLabel.Text = "RemoteLaSper | Remote Scanner" titleLabel.TextColor3 = Color3.fromRGB(235, 235, 240) titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.Font = Enum.Font.GothamBold titleLabel.TextSize = 14 titleLabel.Parent = titleBar -- Control Window Buttons (X, [], -) local function createTopButton(name, text, posOffset, color) local btn = Instance.new("TextButton") btn.Name = name btn.Size = UDim2.new(0, 35, 1, 0) btn.Position = UDim2.new(1, posOffset, 0, 0) btn.BackgroundTransparency = 1 btn.Text = text btn.TextColor3 = color btn.Font = Enum.Font.GothamBold btn.TextSize = 14 btn.Parent = titleBar return btn end local closeBtn = createTopButton("Close", "✕", -35, Color3.fromRGB(255, 90, 90)) local minimizeBtn = createTopButton("Minimize", "▢", -70, Color3.fromRGB(180, 180, 190)) local refreshBtn = createTopButton("Refresh", "—", -105, Color3.fromRGB(180, 180, 190)) -- Left Panel (Editor & Controls) local leftPanel = Instance.new("Frame") leftPanel.Size = UDim2.new(0, 360, 1, -45) leftPanel.Position = UDim2.new(0, 10, 0, 40) leftPanel.BackgroundTransparency = 1 leftPanel.Parent = mainFrame -- Code / Script Viewing Box local codeBox = Instance.new("TextBox") codeBox.Name = "CodeInput" codeBox.Size = UDim2.new(1, 0, 0, 260) codeBox.Position = UDim2.new(0, 0, 0, 0) codeBox.BackgroundColor3 = Color3.fromRGB(25, 25, 30) codeBox.Text = "-- Click 'Scan Remotes' to find all events.\n-- Select an event to generate its firing code." codeBox.TextColor3 = Color3.fromRGB(200, 200, 210) codeBox.TextXAlignment = Enum.TextXAlignment.Left codeBox.TextYAlignment = Enum.TextYAlignment.Top codeBox.ClearTextOnFocus = false codeBox.MultiLine = true codeBox.Font = Enum.Font.Code codeBox.TextSize = 12 codeBox.Parent = leftPanel Instance.new("UICorner", codeBox).CornerRadius = UDim.new(0, 6) -- Run Code Button local runBtn = Instance.new("TextButton") runBtn.Name = "RunCodeBtn" runBtn.Size = UDim2.new(0.48, 0, 0, 35) runBtn.Position = UDim2.new(0, 0, 0, 270) runBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 52) runBtn.Text = "Run Code" runBtn.TextColor3 = Color3.fromRGB(255, 255, 255) runBtn.Font = Enum.Font.GothamSemibold runBtn.TextSize = 13 runBtn.Parent = leftPanel Instance.new("UICorner", runBtn).CornerRadius = UDim.new(0, 6) -- Scan Remotes Button local scanRemotesBtn = Instance.new("TextButton") scanRemotesBtn.Name = "ScanRemotesBtn" scanRemotesBtn.Size = UDim2.new(0.48, 0, 0, 35) scanRemotesBtn.Position = UDim2.new(0.52, 0, 0, 270) scanRemotesBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 52) scanRemotesBtn.Text = "Scan Remotes" scanRemotesBtn.TextColor3 = Color3.fromRGB(255, 255, 255) scanRemotesBtn.Font = Enum.Font.GothamSemibold scanRemotesBtn.TextSize = 13 scanRemotesBtn.Parent = leftPanel Instance.new("UICorner", scanRemotesBtn).CornerRadius = UDim.new(0, 6) -- Big COPY Button local copyBtn = Instance.new("TextButton") copyBtn.Name = "CopyBtn" copyBtn.Size = UDim2.new(1, 0, 0, 35) copyBtn.Position = UDim2.new(0, 0, 0, 312) copyBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 22) copyBtn.Text = "COPY" copyBtn.TextColor3 = Color3.fromRGB(255, 255, 255) copyBtn.Font = Enum.Font.GothamBold copyBtn.TextSize = 13 copyBtn.Parent = leftPanel Instance.new("UICorner", copyBtn).CornerRadius = UDim.new(0, 6) -- Right Panel (Studio Game Explorer) local rightPanel = Instance.new("Frame") rightPanel.Size = UDim2.new(0, 330, 1, -45) rightPanel.Position = UDim2.new(0, 380, 0, 40) rightPanel.BackgroundColor3 = Color3.fromRGB(22, 22, 26) rightPanel.Parent = mainFrame Instance.new("UICorner", rightPanel).CornerRadius = UDim.new(0, 8) local explorerHeader = Instance.new("TextLabel") explorerHeader.Size = UDim2.new(1, -10, 0, 25) explorerHeader.Position = UDim2.new(0, 10, 0, 2) explorerHeader.BackgroundTransparency = 1 explorerHeader.Text = "EXPLORER / REMOTES" explorerHeader.TextColor3 = Color3.fromRGB(140, 140, 150) explorerHeader.TextXAlignment = Enum.TextXAlignment.Left explorerHeader.Font = Enum.Font.GothamBold explorerHeader.TextSize = 11 explorerHeader.Parent = rightPanel local scrollFrame = Instance.new("ScrollingFrame") scrollFrame.Name = "ExplorerList" scrollFrame.Size = UDim2.new(1, -10, 1, -35) scrollFrame.Position = UDim2.new(0, 5, 0, 28) scrollFrame.BackgroundTransparency = 1 scrollFrame.ScrollBarThickness = 4 scrollFrame.ScrollBarImageColor3 = Color3.fromRGB(80, 80, 90) scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0) scrollFrame.Parent = rightPanel local listLayout = Instance.new("UIListLayout") listLayout.Padding = UDim.new(0, 3) listLayout.SortOrder = Enum.SortOrder.LayoutOrder listLayout.Parent = scrollFrame -- Animated Dragging Mechanics local dragging, dragStart, startPos titleBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = mainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart mainFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) -- Code Generator Function local function generateCodeForRemote(instance) local path = instance:GetFullName() local code = "-- RemoteLaSper Script Generator\n" code = code .. "local target = " .. path .. "\n\n" code = code .. "local args = {\n" code = code .. " [1] = \"Put your arguments here!\",\n" code = code .. " [2] = 12345\n" code = code .. "}\n\n" if instance:IsA("RemoteEvent") then code = code .. "-- Fire the event to the server\n" code = code .. "target:FireServer(unpack(args))" elseif instance:IsA("RemoteFunction") then code = code .. "-- Invoke the server and wait for return\n" code = code .. "local result = target:InvokeServer(unpack(args))\n" code = code .. "print(result)" end return code end -- Safely Scan For Remotes local function scanForRemotes() for _, child in ipairs(scrollFrame:GetChildren()) do if child:IsA("Frame") then child:Destroy() end end local yCount = 0 -- Using pcall prevents the script from crashing if it hits restricted CoreGui services local allDescendants = {} pcall(function() allDescendants = game:GetDescendants() end) for _, instance in ipairs(allDescendants) do if instance:IsA("RemoteEvent") or instance:IsA("RemoteFunction") then yCount = yCount + 1 local itemContainer = Instance.new("Frame") itemContainer.Size = UDim2.new(1, 0, 0, 24) itemContainer.BackgroundTransparency = 1 itemContainer.Parent = scrollFrame local expandBtn = Instance.new("TextButton") expandBtn.Size = UDim2.new(0, 18, 0, 18) expandBtn.Position = UDim2.new(0, 5, 0, 3) expandBtn.BackgroundColor3 = instance:IsA("RemoteEvent") and Color3.fromRGB(200, 150, 0) or Color3.fromRGB(150, 0, 200) expandBtn.Text = "+" expandBtn.TextColor3 = Color3.fromRGB(255, 255, 255) expandBtn.Font = Enum.Font.GothamBold expandBtn.TextSize = 11 expandBtn.Parent = itemContainer Instance.new("UICorner", expandBtn).CornerRadius = UDim.new(0, 4) local itemBtn = Instance.new("TextButton") itemBtn.Size = UDim2.new(1, -30, 1, 0) itemBtn.Position = UDim2.new(0, 28, 0, 0) itemBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 42) itemBtn.Text = " " .. instance.Name .. " (" .. instance.ClassName .. ")" itemBtn.TextColor3 = Color3.fromRGB(220, 220, 225) itemBtn.TextXAlignment = Enum.TextXAlignment.Left itemBtn.Font = Enum.Font.Gotham itemBtn.TextSize = 11 itemBtn.Parent = itemContainer Instance.new("UICorner", itemBtn).CornerRadius = UDim.new(0, 4) -- Generate Code on click itemBtn.MouseButton1Click:Connect(function() codeBox.Text = generateCodeForRemote(instance) end) end end if yCount == 0 then codeBox.Text = "-- No RemoteEvents or RemoteFunctions found in this game." else codeBox.Text = "-- Found " .. yCount .. " Remotes.\n-- Select one from the list to view its code." end scrollFrame.CanvasSize = UDim2.new(0, 0, 0, yCount * 27) end -- Button Connections scanRemotesBtn.MouseButton1Click:Connect(function() scanForRemotes() end) refreshBtn.MouseButton1Click:Connect(function() codeBox.Text = "-- Refreshed!" scanForRemotes() end) -- Window Animations local minimized = false local storedPosition = mainFrame.Position minimizeBtn.MouseButton1Click:Connect(function() minimized = not minimized local tweenInfo = TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.InOut) if minimized then storedPosition = mainFrame.Position local targetPos = UDim2.new(storedPosition.X.Scale, storedPosition.X.Offset, 1, 100) TweenService:Create(mainFrame, tweenInfo, {Position = targetPos}):Play() else TweenService:Create(mainFrame, tweenInfo, {Position = storedPosition}):Play() end end) closeBtn.MouseButton1Click:Connect(function() local closeTween = TweenService:Create(mainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.In), { Size = UDim2.new(0, 720, 0, 0), BackgroundTransparency = 1 }) closeTween:Play() closeTween.Completed:Connect(function() screenGui:Destroy() end) end) -- Copy Button Logic copyBtn.MouseButton1Click:Connect(function() if setclipboard then setclipboard(codeBox.Text) copyBtn.Text = "Copied to Clipboard!" else copyBtn.Text = "Highlight text to copy (No setclipboard)" end copyBtn.BackgroundColor3 = Color3.fromRGB(35, 120, 60) task.wait(1.2) copyBtn.Text = "COPY" copyBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 22) end) -- Run Code runBtn.MouseButton1Click:Connect(function() print("Code in box:") print(codeBox.Text) print("NOTE: To execute raw strings on the client, use an external compiler or print to console.") end) -- Start with a blank list until scan is clicked codeBox.Text = "-- RemoteLaSper Ready.\n-- Click 'Scan Remotes' to fetch events."