local toggleKey = Enum.KeyCode.F2 local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local localPlayer = Players.LocalPlayer local playerGui = localPlayer:WaitForChild("PlayerGui") local screenGui = Instance.new("ScreenGui") screenGui.Name = "WiraProUI" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 260, 0, 340) mainFrame.Position = UDim2.new(0.5, -130, 0.35, -170) mainFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40) mainFrame.Active = true mainFrame.Draggable = true mainFrame.Visible = true mainFrame.Parent = screenGui local titleBar = Instance.new("Frame") titleBar.Name = "TitleBar" titleBar.Size = UDim2.new(1, 0, 0, 36) titleBar.Position = UDim2.new(0, 0, 0, 0) titleBar.BackgroundColor3 = Color3.fromRGB(30, 30, 30) titleBar.Parent = mainFrame local titleLabel = Instance.new("TextLabel") titleLabel.Name = "TitleLabel" titleLabel.Size = UDim2.new(1, -70, 1, 0) titleLabel.Position = UDim2.new(0, 10, 0, 0) titleLabel.BackgroundTransparency = 1 titleLabel.Text = "WiraPro v.0.1" titleLabel.Font = Enum.Font.GothamBold titleLabel.TextSize = 16 titleLabel.TextColor3 = Color3.fromRGB(255,255,255) titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.Parent = titleBar local closeBtn = Instance.new("TextButton") closeBtn.Name = "CloseBtn" closeBtn.Size = UDim2.new(0, 32, 0, 24) closeBtn.Position = UDim2.new(1, -40, 0.5, -12) closeBtn.BackgroundColor3 = Color3.fromRGB(180, 60, 60) closeBtn.Text = "X" closeBtn.Font = Enum.Font.SourceSansBold closeBtn.TextSize = 18 closeBtn.TextColor3 = Color3.fromRGB(255,255,255) closeBtn.Parent = titleBar local openBtn = Instance.new("TextButton") openBtn.Name = "OpenBtn" openBtn.Size = UDim2.new(0, 100, 0, 30) openBtn.Position = UDim2.new(0.02, 0, 0.02, 0) openBtn.BackgroundColor3 = Color3.fromRGB(45,45,45) openBtn.Text = "WiraPro" openBtn.Font = Enum.Font.GothamSemibold openBtn.TextSize = 14 openBtn.TextColor3 = Color3.fromRGB(255,255,255) openBtn.Visible = false openBtn.Parent = screenGui openBtn.Active = true openBtn.Draggable = true local scrollFrame = Instance.new("ScrollingFrame") scrollFrame.Name = "ScrollFrame" scrollFrame.Size = UDim2.new(1, 0, 1, -36) scrollFrame.Position = UDim2.new(0, 0, 0, 36) scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0) scrollFrame.BackgroundColor3 = Color3.fromRGB(45,45,45) scrollFrame.BorderSizePixel = 0 scrollFrame.ScrollBarThickness = 6 scrollFrame.Parent = mainFrame local function createPlayerButton(playerName) local btn = Instance.new("TextButton") btn.Name = playerName btn.Size = UDim2.new(1, -10, 0, 30) btn.BackgroundColor3 = Color3.fromRGB(60,60,60) btn.TextColor3 = Color3.new(1,1,1) btn.Text = playerName btn.Font = Enum.Font.GothamSemibold btn.TextSize = 14 return btn end local function teleportToPlayer(targetPlayer) if not targetPlayer or not targetPlayer.Character or not localPlayer.Character then return end local targetRoot = targetPlayer.Character:FindFirstChild("HumanoidRootPart") local myRoot = localPlayer.Character:FindFirstChild("HumanoidRootPart") if targetRoot and myRoot then myRoot.CFrame = targetRoot.CFrame + Vector3.new(0,2,0) end end local function refreshList() for _, child in ipairs(scrollFrame:GetChildren()) do if child:IsA("TextButton") then child:Destroy() end end local yPos = 5 for _, p in ipairs(Players:GetPlayers()) do if p ~= localPlayer then local btn = createPlayerButton(p.Name) btn.Position = UDim2.new(0, 5, 0, yPos) btn.Parent = scrollFrame yPos = yPos + 35 btn.MouseButton1Click:Connect(function() teleportToPlayer(p) end) end end scrollFrame.CanvasSize = UDim2.new(0, 0, 0, yPos) end refreshList() Players.PlayerAdded:Connect(refreshList) Players.PlayerRemoving:Connect(refreshList) closeBtn.MouseButton1Click:Connect(function() mainFrame.Visible = false openBtn.Visible = true end) openBtn.MouseButton1Click:Connect(function() mainFrame.Visible = true openBtn.Visible = false end) UIS.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == toggleKey then local newVis = not mainFrame.Visible mainFrame.Visible = newVis openBtn.Visible = not newVis end end) -- Sync visibility if script sets mainFrame initially openBtn.Visible = not mainFrame.Visible