local Players = game:GetService("Players") local player = Players.LocalPlayer -- Crear GUI local gui = Instance.new("ScreenGui") gui.Name = "TeleportGUI" gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") -- Botón TP local tpButton = Instance.new("TextButton") tpButton.Size = UDim2.new(0, 100, 0, 40) tpButton.Position = UDim2.new(0, 20, 0.5, 0) tpButton.BackgroundColor3 = Color3.fromRGB(35, 35, 35) tpButton.TextColor3 = Color3.new(1, 1, 1) tpButton.Text = "TP" tpButton.TextSize = 20 tpButton.Parent = gui -- Lista de jugadores local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 200, 0, 250) frame.Position = UDim2.new(0, 130, 0.5, -125) frame.BackgroundColor3 = Color3.fromRGB(45, 45, 45) frame.Visible = false frame.Parent = gui -- Scroll local scroll = Instance.new("ScrollingFrame") scroll.Size = UDim2.new(1, 0, 1, 0) scroll.CanvasSize = UDim2.new(0, 0, 0, 0) scroll.ScrollBarThickness = 6 scroll.Parent = frame local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0, 5) layout.Parent = scroll -- Actualizar lista local function updatePlayers() for _, child in pairs(scroll:GetChildren()) do if child:IsA("TextButton") then child:Destroy() end end for _, target in pairs(Players:GetPlayers()) do if target ~= player then local button = Instance.new("TextButton") button.Size = UDim2.new(1, -10, 0, 35) button.BackgroundColor3 = Color3.fromRGB(65, 65, 65) button.TextColor3 = Color3.new(1, 1, 1) button.TextSize = 16 button.Text = target.Name button.Parent = scroll button.MouseButton1Click:Connect(function() local character = target.Character local myCharacter = player.Character if character and myCharacter then local targetRoot = character:FindFirstChild("HumanoidRootPart") local myRoot = myCharacter:FindFirstChild("HumanoidRootPart") if targetRoot and myRoot then myRoot.CFrame = targetRoot.CFrame * CFrame.new(0, 0, 3) end end end) end end scroll.CanvasSize = UDim2.new(0, 0, 0, layout.AbsoluteContentSize.Y + 10) end -- Mostrar / ocultar lista tpButton.MouseButton1Click:Connect(function() frame.Visible = not frame.Visible if frame.Visible then updatePlayers() end end) -- Actualizar cuando entran o salen jugadores Players.PlayerAdded:Connect(updatePlayers) Players.PlayerRemoving:Connect(updatePlayers)