-- Tool-Selector Loop Kill Script with Play/Stop Master Button -- Compatible with universal mobile and PC executors local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local backpack = player:WaitForChild("Backpack") -- Create GUI Panel local screenGui = Instance.new("ScreenGui") screenGui.Name = "ToolLoopKillGui" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 220, 0, 360) mainFrame.Position = UDim2.new(0, 50, 0, 150) mainFrame.BackgroundColor3 = Color3.fromRGB(20, 15, 30) mainFrame.BorderColor3 = Color3.fromRGB(255, 100, 0) mainFrame.BorderSizePixel = 2 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui local titleLabel = Instance.new("TextLabel") titleLabel.Size = UDim2.new(1, 0, 0, 35) titleLabel.BackgroundColor3 = Color3.fromRGB(35, 25, 50) titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.TextSize = 12 titleLabel.Font = Enum.Font.SourceSansBold titleLabel.Text = "TOOL LOOP KILL PANEL" titleLabel.Parent = mainFrame local statusLabel = Instance.new("TextLabel") statusLabel.Size = UDim2.new(1, -10, 0, 25) statusLabel.Position = UDim2.new(0, 5, 0, 40) statusLabel.BackgroundTransparency = 1 statusLabel.TextColor3 = Color3.fromRGB(0, 255, 150) statusLabel.TextSize = 11 statusLabel.Font = Enum.Font.SourceSansItalic statusLabel.Text = "Select a tool, then click PLAY:" statusLabel.Parent = mainFrame -- Master Play / Stop Button local playStopBtn = Instance.new("TextButton") playStopBtn.Size = UDim2.new(1, -10, 0, 35) playStopBtn.Position = UDim2.new(0, 5, 0, 70) playStopBtn.BackgroundColor3 = Color3.fromRGB(180, 20, 20) playStopBtn.TextColor3 = Color3.fromRGB(255, 255, 255) playStopBtn.TextSize = 13 playStopBtn.Font = Enum.Font.SourceSansBold playStopBtn.Text = "STATUS: STOPPED (PLAY)" playStopBtn.Parent = mainFrame -- Scrolling List for Tools local scrollFrame = Instance.new("ScrollingFrame") scrollFrame.Size = UDim2.new(1, -10, 1, -125) scrollFrame.Position = UDim2.new(0, 5, 0, 115) scrollFrame.BackgroundColor3 = Color3.fromRGB(12, 10, 18) scrollFrame.BorderSizePixel = 1 scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0) scrollFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y scrollFrame.Parent = mainFrame local uiList = Instance.new("UIListLayout") uiList.Padding = UDim.new(0, 5) uiList.Parent = scrollFrame local activeToolName = nil local loopKillActive = false -- Function to scan inventory and populate buttons local function updateToolList() for _, child in ipairs(scrollFrame:GetChildren()) do if child:IsA("TextButton") then child:Destroy() end end local foundTools = {} for _, item in ipairs(backpack:GetChildren()) do if item:IsA("Tool") then table.insert(foundTools, item) end end local char = player.Character if char then for _, item in ipairs(char:GetChildren()) do if item:IsA("Tool") then table.insert(foundTools, item) end end end if #foundTools == 0 then statusLabel.Text = "No tools found in inventory!" return end for _, tool in ipairs(foundTools) do local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -10, 0, 32) btn.BackgroundColor3 = Color3.fromRGB(45, 35, 65) btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.TextSize = 11 btn.Font = Enum.Font.SourceSansBold btn.Text = "⚔️ " .. tool.Name btn.Parent = scrollFrame btn.MouseButton1Click:Connect(function() activeToolName = tool.Name statusLabel.Text = "Selected: " .. tool.Name btn.BackgroundColor3 = Color3.fromRGB(0, 150, 100) -- Reset other buttons color for _, other in ipairs(scrollFrame:GetChildren()) do if other:IsA("TextButton") and other ~= btn then other.BackgroundColor3 = Color3.fromRGB(45, 35, 65) end end end) end end -- Refresh inventory automatically backpack.ChildAdded:Connect(updateToolList) backpack.ChildRemoved:Connect(updateToolList) player.CharacterAdded:Connect(function(newChar) character = newChar task.wait(1) updateToolList() end) updateToolList() -- Master Play/Stop Button Event playStopBtn.MouseButton1Click:Connect(function() if not activeToolName then statusLabel.Text = "Error: Please click a tool first!" return end loopKillActive = not loopKillActive if loopKillActive then playStopBtn.Text = "STATUS: PLAYING (STOP)" playStopBtn.BackgroundColor3 = Color3.fromRGB(20, 180, 40) else playStopBtn.Text = "STATUS: STOPPED (PLAY)" playStopBtn.BackgroundColor3 = Color3.fromRGB(180, 20, 20) end end) -- Main Loop: Teleport through all players using the selected tool when playing task.spawn(function() while true do if loopKillActive and activeToolName then local currentRoot = player.Character and player.Character:FindFirstChild("HumanoidRootPart") local tool = backpack:FindFirstChild(activeToolName) or (player.Character and player.Character:FindFirstChild(activeToolName)) if currentRoot and tool then -- Equip tool if it's in backpack if tool.Parent == backpack and player.Character:FindFirstChildOfClass("Humanoid") then player.Character.Humanoid:EquipTool(tool) end for _, p in ipairs(game.Players:GetPlayers()) do if not loopKillActive then break end if p ~= player and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then local enemyRoot = p.Character.HumanoidRootPart local enemyHumanoid = p.Character:FindFirstChildOfClass("Humanoid") if enemyHumanoid and enemyHumanoid.Health > 0 then pcall(function() -- Teleport directly onto the player currentRoot.CFrame = enemyRoot.CFrame * CFrame.new(0, 0, 1) -- Activate tool if possible if tool:FindFirstChild("Activate") then tool:Activate() end end) task.wait(0.15) end end end end end task.wait(0.2) end end)