--[[ WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk! ]] local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Workspace = game:GetService("Workspace") local Lighting = game:GetService("Lighting") local StarterPack = game:GetService("StarterPack") local StarterPlayer = game:GetService("StarterPlayer") local StarterGui = game:GetService("StarterGui") local UserInputService = game:GetService("UserInputService") local HttpService = game:GetService("HttpService") local player = Players.LocalPlayer -- Remote scanning variables local scanning = false local foundRemotes = {} local workingRemotes = {} local testedRemotes = {} -- Create GUI local screenGui = Instance.new("ScreenGui") screenGui.Name = "RemoteSelector" screenGui.ResetOnSpawn = false -- This line keeps the GUI when you respawn -- Make sure PlayerGui exists if not player:FindFirstChild("PlayerGui") then player:WaitForChild("PlayerGui") end screenGui.Parent = player.PlayerGui local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 600, 0, 700) mainFrame.Position = UDim2.new(0.5, -300, 0.5, -350) mainFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40) mainFrame.BorderSizePixel = 0 mainFrame.Parent = screenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 8) UICorner.Parent = mainFrame -- Title bar for dragging local titleBar = Instance.new("Frame") titleBar.Size = UDim2.new(1, 0, 0, 30) titleBar.Position = UDim2.new(0, 0, 0, 0) titleBar.BackgroundColor3 = Color3.fromRGB(30, 30, 30) titleBar.BorderSizePixel = 0 titleBar.Parent = mainFrame local titleBarCorner = Instance.new("UICorner") titleBarCorner.CornerRadius = UDim.new(0, 8) titleBarCorner.Parent = titleBar local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 1, 0) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundTransparency = 1 title.TextColor3 = Color3.fromRGB(255, 255, 255) title.Text = "Remote Selector (Drag Me)" title.Font = Enum.Font.GothamBold title.TextSize = 14 title.Parent = titleBar local closeButton = Instance.new("TextButton") closeButton.Size = UDim2.new(0, 25, 0, 25) closeButton.Position = UDim2.new(1, -30, 0, 2) closeButton.BackgroundColor3 = Color3.fromRGB(255, 60, 60) closeButton.TextColor3 = Color3.fromRGB(255, 255, 255) closeButton.Text = "X" closeButton.Font = Enum.Font.GothamBold closeButton.TextSize = 12 closeButton.Parent = titleBar local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0, 4) closeCorner.Parent = closeButton -- Content frame local contentFrame = Instance.new("Frame") contentFrame.Size = UDim2.new(1, -20, 1, -40) contentFrame.Position = UDim2.new(0, 10, 0, 35) contentFrame.BackgroundTransparency = 1 contentFrame.Parent = mainFrame -- Control buttons local scanButton = Instance.new("TextButton") scanButton.Size = UDim2.new(0.48, 0, 0, 40) scanButton.Position = UDim2.new(0, 0, 0, 0) scanButton.BackgroundColor3 = Color3.fromRGB(76, 175, 80) scanButton.TextColor3 = Color3.fromRGB(255, 255, 255) scanButton.Text = "Scan for Remotes" scanButton.Font = Enum.Font.Gotham scanButton.TextSize = 12 scanButton.Parent = contentFrame local UICorner2 = Instance.new("UICorner") UICorner2.CornerRadius = UDim.new(0, 6) UICorner2.Parent = scanButton local testButton = Instance.new("TextButton") testButton.Size = UDim2.new(0.48, 0, 0, 40) testButton.Position = UDim2.new(0.52, 0, 0, 0) testButton.BackgroundColor3 = Color3.fromRGB(33, 150, 243) testButton.TextColor3 = Color3.fromRGB(255, 255, 255) testButton.Text = "Test All Remotes" testButton.Font = Enum.Font.Gotham testButton.TextSize = 12 testButton.Parent = contentFrame local UICorner3 = Instance.new("UICorner") UICorner3.CornerRadius = UDim.new(0, 6) UICorner3.Parent = testButton local generateButton = Instance.new("TextButton") generateButton.Size = UDim2.new(1, 0, 0, 40) generateButton.Position = UDim2.new(0, 0, 0, 50) generateButton.BackgroundColor3 = Color3.fromRGB(156, 39, 176) generateButton.TextColor3 = Color3.fromRGB(255, 255, 255) generateButton.Text = "Generate Executor Script" generateButton.Font = Enum.Font.Gotham generateButton.TextSize = 12 generateButton.Parent = contentFrame local UICorner4 = Instance.new("UICorner") UICorner4.CornerRadius = UDim.new(0, 6) UICorner4.Parent = generateButton -- Status labels local statusLabel = Instance.new("TextLabel") statusLabel.Size = UDim2.new(1, 0, 0, 30) statusLabel.Position = UDim2.new(0, 0, 0, 100) statusLabel.BackgroundTransparency = 1 statusLabel.TextColor3 = Color3.fromRGB(255, 255, 255) statusLabel.Text = "Ready to scan for remotes" statusLabel.Font = Enum.Font.Gotham statusLabel.TextSize = 12 statusLabel.Parent = contentFrame local statsLabel = Instance.new("TextLabel") statsLabel.Size = UDim2.new(1, 0, 0, 20) statsLabel.Position = UDim2.new(0, 0, 0, 130) statsLabel.BackgroundTransparency = 1 statsLabel.TextColor3 = Color3.fromRGB(200, 200, 200) statsLabel.Text = "Found: 0 | Working: 0 | Tested: 0" statsLabel.Font = Enum.Font.Gotham statsLabel.TextSize = 11 statsLabel.Parent = contentFrame -- Remote list local remoteListLabel = Instance.new("TextLabel") remoteListLabel.Size = UDim2.new(1, 0, 0, 20) remoteListLabel.Position = UDim2.new(0, 0, 0, 155) remoteListLabel.BackgroundTransparency = 1 remoteListLabel.TextColor3 = Color3.fromRGB(255, 255, 255) remoteListLabel.Text = "Discovered Remotes:" remoteListLabel.Font = Enum.Font.GothamBold remoteListLabel.TextSize = 12 remoteListLabel.Parent = contentFrame local remoteListFrame = Instance.new("ScrollingFrame") remoteListFrame.Size = UDim2.new(1, 0, 0, 200) remoteListFrame.Position = UDim2.new(0, 0, 0, 180) remoteListFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) remoteListFrame.BorderSizePixel = 0 remoteListFrame.ScrollBarThickness = 8 remoteListFrame.CanvasSize = UDim2.new(0, 0, 0, 0) remoteListFrame.Parent = contentFrame local listCorner = Instance.new("UICorner") listCorner.CornerRadius = UDim.new(0, 6) listCorner.Parent = remoteListFrame local UIListLayout = Instance.new("UIListLayout") UIListLayout.Padding = UDim.new(0, 2) UIListLayout.Parent = remoteListFrame -- Working remotes list local workingLabel = Instance.new("TextLabel") workingLabel.Size = UDim2.new(1, 0, 0, 20) workingLabel.Position = UDim2.new(0, 0, 0, 390) workingLabel.BackgroundTransparency = 1 workingLabel.TextColor3 = Color3.fromRGB(255, 255, 255) workingLabel.Text = "Working Remotes:" workingLabel.Font = Enum.Font.GothamBold workingLabel.TextSize = 12 workingLabel.Parent = contentFrame local workingListFrame = Instance.new("ScrollingFrame") workingListFrame.Size = UDim2.new(1, 0, 0, 150) workingListFrame.Position = UDim2.new(0, 0, 0, 415) workingListFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) workingListFrame.BorderSizePixel = 0 workingListFrame.ScrollBarThickness = 8 workingListFrame.CanvasSize = UDim2.new(0, 0, 0, 0) workingListFrame.Parent = contentFrame local workingCorner = Instance.new("UICorner") workingCorner.CornerRadius = UDim.new(0, 6) workingCorner.Parent = workingListFrame local workingUIListLayout = Instance.new("UIListLayout") workingUIListLayout.Padding = UDim.new(0, 2) workingUIListLayout.Parent = workingListFrame -- Script output local outputLabel = Instance.new("TextLabel") outputLabel.Size = UDim2.new(1, 0, 0, 20) outputLabel.Position = UDim2.new(0, 0, 0, 575) outputLabel.BackgroundTransparency = 1 outputLabel.TextColor3 = Color3.fromRGB(255, 255, 255) outputLabel.Text = "Generated Executor Script:" outputLabel.Font = Enum.Font.GothamBold outputLabel.TextSize = 12 outputLabel.Parent = contentFrame local scriptTextBox = Instance.new("TextBox") scriptTextBox.Size = UDim2.new(1, 0, 0, 80) scriptTextBox.Position = UDim2.new(0, 0, 0, 600) scriptTextBox.BackgroundColor3 = Color3.fromRGB(25, 25, 25) scriptTextBox.TextColor3 = Color3.fromRGB(255, 255, 255) scriptTextBox.Text = "-- Generated executor script will appear here" scriptTextBox.Font = Enum.Font.Code scriptTextBox.TextSize = 10 scriptTextBox.TextXAlignment = Enum.TextXAlignment.Left scriptTextBox.TextYAlignment = Enum.TextYAlignment.Top scriptTextBox.TextWrapped = true scriptTextBox.ClearTextOnFocus = false scriptTextBox.MultiLine = true scriptTextBox.Parent = contentFrame local textBoxCorner = Instance.new("UICorner") textBoxCorner.CornerRadius = UDim.new(0, 6) textBoxCorner.Parent = scriptTextBox -- Dragging functionality local dragging = false local dragStartPos, frameStartPos local function updateDrag(input) if not dragging then return end local delta = input.Position - dragStartPos mainFrame.Position = UDim2.new( frameStartPos.X.Scale, frameStartPos.X.Offset + delta.X, frameStartPos.Y.Scale, frameStartPos.Y.Offset + delta.Y ) end titleBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStartPos = input.Position frameStartPos = mainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) titleBar.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then updateDrag(input) end end) UserInputService.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then updateDrag(input) end end) -- Function to recursively find all remotes local function findRemotes(parent, path) local remotes = {} for _, child in ipairs(parent:GetChildren()) do local newPath = path .. "." .. child.Name if child:IsA("RemoteEvent") or child:IsA("RemoteFunction") then table.insert(remotes, { Object = child, Path = newPath, Type = child.ClassName }) end -- Recursively search children (with depth limit for safety) if #child:GetChildren() > 0 and #newPath:split(".") < 10 then local childRemotes = findRemotes(child, newPath) for _, remote in ipairs(childRemotes) do table.insert(remotes, remote) end end end return remotes end -- Function to scan for all remotes local function scanForRemotes() if scanning then return end scanning = true foundRemotes = {} workingRemotes = {} testedRemotes = {} -- Clear lists for _, child in ipairs(remoteListFrame:GetChildren()) do if child:IsA("Frame") then child:Destroy() end end for _, child in ipairs(workingListFrame:GetChildren()) do if child:IsA("Frame") then child:Destroy() end end statusLabel.Text = "Scanning for remotes..." -- Search in common locations local locations = { ReplicatedStorage, Workspace, Lighting, StarterPack, StarterPlayer, StarterGui, game:GetService("ServerScriptService"), game:GetService("ServerStorage"), game:GetService("ReplicatedFirst") } -- Add player's backpack and player scripts if player.Character then table.insert(locations, player.Character) end if player:FindFirstChild("Backpack") then table.insert(locations, player.Backpack) end if player:FindFirstChild("PlayerScripts") then table.insert(locations, player.PlayerScripts) end if player:FindFirstChild("PlayerGui") then table.insert(locations, player.PlayerGui) end -- Scan all locations for _, location in ipairs(locations) do local locationRemotes = findRemotes(location, location:GetFullName()) for _, remote in ipairs(locationRemotes) do table.insert(foundRemotes, remote) end end -- Update UI with found remotes remoteListFrame.CanvasSize = UDim2.new(0, 0, 0, #foundRemotes * 30) for i, remote in ipairs(foundRemotes) do local remoteFrame = Instance.new("Frame") remoteFrame.Size = UDim2.new(1, -10, 0, 25) remoteFrame.Position = UDim2.new(0, 5, 0, (i-1)*30) remoteFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50) remoteFrame.Parent = remoteListFrame local remoteCorner = Instance.new("UICorner") remoteCorner.CornerRadius = UDim.new(0, 4) remoteCorner.Parent = remoteFrame local remoteName = Instance.new("TextLabel") remoteName.Size = UDim2.new(0.7, 0, 1, 0) remoteName.Position = UDim2.new(0, 5, 0, 0) remoteName.BackgroundTransparency = 1 remoteName.TextColor3 = Color3.fromRGB(255, 255, 255) remoteName.Text = remote.Path remoteName.Font = Enum.Font.Gotham remoteName.TextSize = 10 remoteName.TextXAlignment = Enum.TextXAlignment.Left remoteName.Parent = remoteFrame local remoteType = Instance.new("TextLabel") remoteType.Size = UDim2.new(0.2, 0, 1, 0) remoteType.Position = UDim2.new(0.7, 0, 0, 0) remoteType.BackgroundTransparency = 1 remoteType.TextColor3 = Color3.fromRGB(200, 200, 200) remoteType.Text = remote.Type remoteType.Font = Enum.Font.Gotham remoteType.TextSize = 10 remoteType.Parent = remoteFrame local testButton = Instance.new("TextButton") testButton.Size = UDim2.new(0.1, 0, 0.7, 0) testButton.Position = UDim2.new(0.9, 0, 0.15, 0) testButton.BackgroundColor3 = Color3.fromRGB(33, 150, 243) testButton.TextColor3 = Color3.fromRGB(255, 255, 255) testButton.Text = "Test" testButton.Font = Enum.Font.Gotham testButton.TextSize = 9 testButton.Parent = remoteFrame local buttonCorner = Instance.new("UICorner") buttonCorner.CornerRadius = UDim.new(0, 4) buttonCorner.Parent = testButton testButton.MouseButton1Click:Connect(function() testSingleRemote(remote) end) end statusLabel.Text = "Scan complete! Found " .. #foundRemotes .. " remotes" statsLabel.Text = "Found: " .. #foundRemotes .. " | Working: " .. #workingRemotes .. " | Tested: " .. #testedRemotes scanning = false end -- Function to test a single remote local function testSingleRemote(remote) if testedRemotes[remote.Path] then return end statusLabel.Text = "Testing remote: " .. remote.Path local success, result = pcall(function() if remote.Type == "RemoteEvent" then -- Test RemoteEvent remote.Object:FireServer("test", 123, true, "remote_selector_test") elseif remote.Type == "RemoteFunction" then -- Test RemoteFunction return remote.Object:InvokeServer("test", 123, true, "remote_selector_test") end end) testedRemotes[remote.Path] = true if success then table.insert(workingRemotes, remote) statusLabel.Text = "✓ Remote works: " .. remote.Path -- Add to working list local workingFrame = Instance.new("Frame") workingFrame.Size = UDim2.new(1, -10, 0, 25) workingFrame.Position = UDim2.new(0, 5, 0, #workingRemotes * 30) workingFrame.BackgroundColor3 = Color3.fromRGB(50, 80, 50) workingFrame.Parent = workingListFrame local workingCorner = Instance.new("UICorner") workingCorner.CornerRadius = UDim.new(0, 4) workingCorner.Parent = workingFrame local remoteName = Instance.new("TextLabel") remoteName.Size = UDim2.new(0.8, 0, 1, 0) remoteName.Position = UDim2.new(0, 5, 0, 0) remoteName.BackgroundTransparency = 1 remoteName.TextColor3 = Color3.fromRGB(255, 255, 255) remoteName.Text = remote.Path remoteName.Font = Enum.Font.Gotham remoteName.TextSize = 10 remoteName.TextXAlignment = Enum.TextXAlignment.Left remoteName.Parent = workingFrame local remoteType = Instance.new("TextLabel") remoteType.Size = UDim2.new(0.2, 0, 1, 0) remoteType.Position = UDim2.new(0.8, 0, 0, 0) remoteType.BackgroundTransparency = 1 remoteType.TextColor3 = Color3.fromRGB(200, 200, 200) remoteType.Text = remote.Type remoteType.Font = Enum.Font.Gotham remoteType.TextSize = 10 remoteType.Parent = workingFrame workingListFrame.CanvasSize = UDim2.new(0, 0, 0, #workingRemotes * 30) else statusLabel.Text = "✗ Remote failed: " .. remote.Path end statsLabel.Text = "Found: " .. #foundRemotes .. " | Working: " .. #workingRemotes .. " | Tested: " .. #testedRemotes end -- Function to test all remotes local function testAllRemotes() if scanning then return end statusLabel.Text = "Testing all remotes..." for i, remote in ipairs(foundRemotes) do if not testedRemotes[remote.Path] then testSingleRemote(remote) wait(0.1) -- Small delay to avoid flooding end end statusLabel.Text = "Testing complete! " .. #workingRemotes .. " working remotes found" end -- Function to generate executor script local function generateExecutorScript() if #workingRemotes == 0 then scriptTextBox.Text = "-- No working remotes found!\n-- Scan and test remotes first." return end local scriptString = [[-- Auto-generated Remote Executor Script -- Generated with Remote Selector -- Number of working remotes: ]] .. #workingRemotes .. [[ local function executeRemotes() print("Executing ]] .. #workingRemotes .. [[ working remotes...") ]] -- Add remote execution code for i, remote in ipairs(workingRemotes) do local safePath = remote.Path:gsub("%.", "_") if remote.Type == "RemoteEvent" then scriptString = scriptString .. string.format([[ -- RemoteEvent %d: %s pcall(function() local remote = %s if remote and remote:IsA("RemoteEvent") then remote:FireServer("executed_by_remote_selector", %d, math.random(1000)) print("✓ Fired RemoteEvent: %s") end end) ]], i, remote.Path, remote.Path, i, remote.Path) elseif remote.Type == "RemoteFunction" then scriptString = scriptString .. string.format([[ -- RemoteFunction %d: %s pcall(function() local remote = %s if remote and remote:IsA("RemoteFunction") then local result = remote:InvokeServer("executed_by_remote_selector", %d, math.random(1000)) print("✓ Invoked RemoteFunction: %s - Result: " .. tostring(result)) end end) ]], i, remote.Path, remote.Path, i, remote.Path) end if i < #workingRemotes then scriptString = scriptString .. "\n" end end scriptString = scriptString .. [[ print("Remote execution completed!") end -- Auto-execute executeRemotes() -- Return the function for manual execution return executeRemotes ]] scriptTextBox.Text = scriptString statusLabel.Text = "Executor script generated with " .. #workingRemotes .. " remotes" end -- Connect buttons scanButton.MouseButton1Click:Connect(scanForRemotes) testButton.MouseButton1Click:Connect(testAllRemotes) generateButton.MouseButton1Click:Connect(generateExecutorScript) -- Close button closeButton.MouseButton1Click:Connect(function() screenGui:Destroy() end) -- Initial instructions scriptTextBox.Text = [[-- Remote Selector Instructions -- 1. Click 'Scan for Remotes' to find all RemoteEvents and RemoteFunctions 2. Click 'Test All Remotes' to test which ones work 3. Test individual remotes by clicking their 'Test' button 4. Click 'Generate Executor Script' to create an execution script 5. Copy the script and run it in your executor Note: Some remotes might require specific arguments to work properly.]] statusLabel.Text = "Ready to scan for remotes"