-- 🌑 xToster PRO - Con ESP Automático y Textos Mejorados -- ⚙️ Servicios local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local UIS = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") -- Variables local savedCFrame local noclipEnabled = false local noclipConnection local espEnabled = true local espConnections = {} -- =================== 🧩 GUI PRINCIPAL =================== local gui = Instance.new("ScreenGui") gui.Name = "xToster Pro" gui.ResetOnSpawn = false gui.Parent = PlayerGui -- =================== ✨ MENSAJES INICIALES =================== local function showNotice(msg,color) local notice = Instance.new("TextLabel") notice.Size = UDim2.new(0,300,0,35) notice.Position = UDim2.new(0.5,-150,0.1,0) notice.BackgroundColor3 = Color3.fromRGB(0,0,0) notice.TextColor3 = color notice.Text = msg notice.Font = Enum.Font.GothamBold notice.TextSize = 16 notice.BackgroundTransparency = 0.1 Instance.new("UICorner", notice).CornerRadius = UDim.new(0,10) notice.Parent = gui TweenService:Create(notice,TweenInfo.new(0.4),{BackgroundTransparency=0.2}):Play() task.wait(1.5) TweenService:Create(notice,TweenInfo.new(0.4),{TextTransparency=1,BackgroundTransparency=1}):Play() task.wait(0.5) notice:Destroy() end showNotice("Bienvenido 🔥", Color3.fromRGB(0,255,0)) task.wait(1.2) showNotice("⚡ ECHO POR xToster H4CK ⚡", Color3.fromRGB(200,200,255)) -- =================== 🔳 BOTÓN FLOTANTE PRINCIPAL =================== local icon = Instance.new("TextButton") icon.Size = UDim2.new(0,66,0,66) icon.Position = UDim2.new(0,15,0.5,-25) icon.BackgroundColor3 = Color3.fromRGB(15,15,15) icon.Text = "T" icon.TextColor3 = Color3.fromRGB(200,200,200) -- Texto menos brillante icon.Font = Enum.Font.GothamBlack icon.TextSize = 30 icon.Draggable = true icon.Active = true icon.AutoButtonColor = false Instance.new("UICorner", icon).CornerRadius = UDim.new(0,6) icon.Parent = gui -- =================== 🎯 BOTÓN DE TELEPORT MÓVIL =================== local teleportBtn = Instance.new("TextButton") teleportBtn.Name = "MobileTeleportBtn" teleportBtn.Size = UDim2.new(0,70,0,70) teleportBtn.Position = UDim2.new(0,100,0.7,0) teleportBtn.BackgroundColor3 = Color3.fromRGB(255, 100, 0) teleportBtn.Text = "🎯\nTELEPORT" teleportBtn.TextColor3 = Color3.fromRGB(220,220,220) -- Texto menos brillante teleportBtn.Font = Enum.Font.GothamBold teleportBtn.TextSize = 14 teleportBtn.TextWrapped = true teleportBtn.Draggable = true teleportBtn.Active = true teleportBtn.AutoButtonColor = false teleportBtn.ZIndex = 5 -- Hacerlo completamente redondo local teleportCorner = Instance.new("UICorner") teleportCorner.CornerRadius = UDim.new(1,0) teleportCorner.Parent = teleportBtn -- Agregar borde local teleportStroke = Instance.new("UIStroke") teleportStroke.Color = Color3.fromRGB(255,255,255) teleportStroke.Thickness = 3 teleportStroke.Parent = teleportBtn teleportBtn.Parent = gui -- =================== 🧠 FRAME PRINCIPAL =================== local frameMain = Instance.new("Frame") frameMain.Size = UDim2.new(0,350,0,400) frameMain.Position = UDim2.new(0.5,-175,0.5,-200) frameMain.BackgroundColor3 = Color3.fromRGB(20,20,25) frameMain.Visible = false Instance.new("UICorner", frameMain).CornerRadius = UDim.new(0,12) frameMain.Parent = gui -- Título local title = Instance.new("TextLabel") title.Size = UDim2.new(1,0,0,50) title.Position = UDim2.new(0,0,0,0) title.BackgroundColor3 = Color3.fromRGB(30,30,40) title.Text = "xToster PRO" title.TextColor3 = Color3.fromRGB(220,220,220) -- Texto menos brillante title.Font = Enum.Font.GothamBold title.TextSize = 18 Instance.new("UICorner", title).CornerRadius = UDim.new(0,12) title.Parent = frameMain -- Botón cerrar local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0,30,0,30) closeBtn.Position = UDim2.new(1,-35,0,10) closeBtn.BackgroundColor3 = Color3.fromRGB(255,50,50) closeBtn.Text = "X" closeBtn.TextColor3 = Color3.fromRGB(220,220,220) -- Texto menos brillante closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 16 Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(1,0) closeBtn.Parent = frameMain -- =================== 🔴 SISTEMA ESP AUTOMÁTICO =================== -- Función para crear ESP de un jugador local function createESP(player) if player == LocalPlayer then return end local character = player.Character if not character then return end local highlight = Instance.new("Highlight") highlight.Name = "xTosterESP" highlight.FillColor = Color3.fromRGB(255, 0, 0) highlight.FillTransparency = 0.8 highlight.OutlineColor = Color3.fromRGB(255, 50, 50) highlight.OutlineTransparency = 0 highlight.Parent = character -- Etiqueta con nombre y distancia local billboard = Instance.new("BillboardGui") billboard.Name = "xTosterESPLabel" billboard.Size = UDim2.new(0, 200, 0, 50) billboard.StudsOffset = Vector3.new(0, 3, 0) billboard.AlwaysOnTop = true billboard.Parent = character local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 1 label.Text = player.Name label.TextColor3 = Color3.fromRGB(255, 200, 200) -- Texto rojo claro label.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) label.TextStrokeTransparency = 0 label.TextSize = 14 label.Font = Enum.Font.GothamBold label.Parent = billboard -- Actualizar distancia en tiempo real local function updateDistance() if not character or not character.Parent then return end local localChar = LocalPlayer.Character if not localChar or not localChar:FindFirstChild("HumanoidRootPart") then return end local distance = (localChar.HumanoidRootPart.Position - character:WaitForChild("HumanoidRootPart").Position).Magnitude label.Text = player.Name .. "\n[" .. math.floor(distance) .. "m]" end -- Conexión para actualizar distancia local distanceConnection = RunService.Heartbeat:Connect(updateDistance) espConnections[player] = distanceConnection end -- Función para remover ESP de un jugador local function removeESP(player) if espConnections[player] then espConnections[player]:Disconnect() espConnections[player] = nil end if player.Character then local highlight = player.Character:FindFirstChild("xTosterESP") if highlight then highlight:Destroy() end local billboard = player.Character:FindFirstChild("xTosterESPLabel") if billboard then billboard:Destroy() end end end -- Función para activar/desactivar ESP local function toggleESP() espEnabled = not espEnabled if espEnabled then -- Activar ESP para todos los jugadores for _, player in pairs(Players:GetPlayers()) do if player.Character then createESP(player) end end showNotice("ESP ACTIVADO 🔴", Color3.fromRGB(255, 100, 100)) else -- Desactivar ESP para todos los jugadores for _, player in pairs(Players:GetPlayers()) do removeESP(player) end showNotice("ESP DESACTIVADO ⚫", Color3.fromRGB(100, 100, 100)) end end -- Inicializar ESP automáticamente task.wait(1) for _, player in pairs(Players:GetPlayers()) do if player.Character then createESP(player) end end -- Conectar eventos para nuevos jugadores Players.PlayerAdded:Connect(function(player) player.CharacterAdded:Connect(function(character) if espEnabled then createESP(player) end end) end) -- Conectar eventos para jugadores que salen Players.PlayerRemoving:Connect(function(player) removeESP(player) end) -- =================== 🎯 FUNCIONES PRINCIPALES =================== -- Función Noclip local function toggleNoclip() local character = LocalPlayer.Character if not character then return end noclipEnabled = not noclipEnabled if noclipEnabled then -- Activar noclip noclipConnection = RunService.Stepped:Connect(function() if not noclipEnabled or not character then noclipConnection:Disconnect() return end for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end) showNotice("NOCLIP ACTIVADO 🚀", Color3.fromRGB(100,255,100)) else -- Desactivar noclip if noclipConnection then noclipConnection:Disconnect() end for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end showNotice("NOCLIP DESACTIVADO 🛑", Color3.fromRGB(255,100,100)) end end -- Función Guardar Posición local function savePosition() local character = LocalPlayer.Character if character and character:FindFirstChild("HumanoidRootPart") then savedCFrame = character.HumanoidRootPart.CFrame showNotice("POSICIÓN GUARDADA 💾", Color3.fromRGB(100,200,255)) -- Cambiar color del botón de teleport para indicar que hay posición guardada TweenService:Create(teleportBtn, TweenInfo.new(0.3), {BackgroundColor3 = Color3.fromRGB(0, 180, 0)}):Play() task.wait(1) TweenService:Create(teleportBtn, TweenInfo.new(0.3), {BackgroundColor3 = Color3.fromRGB(255, 100, 0)}):Play() end end -- Función Teleport (usada por el botón móvil) local function teleportToPosition() local character = LocalPlayer.Character if character and character:FindFirstChild("HumanoidRootPart") and savedCFrame then -- Efecto visual en el botón TweenService:Create(teleportBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(255, 200, 0)}):Play() character.HumanoidRootPart.CFrame = savedCFrame showNotice("TELEPORT REALIZADO 🎯", Color3.fromRGB(255,180,100)) task.wait(0.5) TweenService:Create(teleportBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(255, 100, 0)}):Play() else -- Efecto de error TweenService:Create(teleportBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(255, 80, 80)}):Play() showNotice("NO HAY POSICIÓN GUARDADA ❌", Color3.fromRGB(255,100,100)) task.wait(0.5) TweenService:Create(teleportBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(255, 100, 0)}):Play() end end -- =================== 🎮 BOTONES DE LA INTERFAZ =================== -- Lista de botones con textos menos brillantes local buttons = { {"💾 GUARDAR POSICIÓN", UDim2.new(0.05,0,0,60), savePosition, Color3.fromRGB(0,80,160)}, {"🚀 NOCLIP ON/OFF", UDim2.new(0.05,0,0,110), toggleNoclip, Color3.fromRGB(0,120,0)}, {"🔴 ESP ON/OFF", UDim2.new(0.05,0,0,160), toggleESP, Color3.fromRGB(160,0,0)}, {"⚡ VELOCIDAD x2", UDim2.new(0.05,0,0,210), function() local character = LocalPlayer.Character if character and character:FindFirstChild("Humanoid") then character.Humanoid.WalkSpeed = 32 showNotice("VELOCIDAD x2 ACTIVADA ⚡", Color3.fromRGB(200,200,100)) end end, Color3.fromRGB(180,150,0)}, {"🚀 VELOCIDAD x5", UDim2.new(0.05,0,0,260), function() local character = LocalPlayer.Character if character and character:FindFirstChild("Humanoid") then character.Humanoid.WalkSpeed = 80 showNotice("VELOCIDAD x5 ACTIVADA 🚀", Color3.fromRGB(200,120,0)) end end, Color3.fromRGB(180,80,0)}, {"🐢 VELOCIDAD NORMAL", UDim2.new(0.05,0,0,310), function() local character = LocalPlayer.Character if character and character:FindFirstChild("Humanoid") then character.Humanoid.WalkSpeed = 16 showNotice("VELOCIDAD NORMAL 🐢", Color3.fromRGB(180,180,180)) end end, Color3.fromRGB(80,80,80)} } -- Crear botones con textos menos brillantes for i, buttonData in ipairs(buttons) do local text, position, callback, color = buttonData[1], buttonData[2], buttonData[3], buttonData[4] local button = Instance.new("TextButton") button.Size = UDim2.new(0.9,0,0,40) button.Position = position button.BackgroundColor3 = color button.Text = text button.TextColor3 = Color3.fromRGB(220,220,220) -- Texto menos brillante button.Font = Enum.Font.Gotham button.TextSize = 14 button.AutoButtonColor = false Instance.new("UICorner", button).CornerRadius = UDim.new(0,8) -- Efecto hover más suave button.MouseEnter:Connect(function() TweenService:Create(button, TweenInfo.new(0.2), {BackgroundTransparency = 0.1}):Play() end) button.MouseLeave:Connect(function() TweenService:Create(button, TweenInfo.new(0.2), {BackgroundTransparency = 0}):Play() end) button.MouseButton1Click:Connect(callback) button.Parent = frameMain end -- =================== 🔄 EVENTOS =================== -- Toggle menú con botón T icon.MouseButton1Click:Connect(function() frameMain.Visible = not frameMain.Visible end) -- Botón de teleport móvil teleportBtn.MouseButton1Click:Connect(teleportToPosition) -- Cerrar menú closeBtn.MouseButton1Click:Connect(function() frameMain.Visible = false end) -- Atajos de teclado UIS.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.F then savePosition() elseif input.KeyCode == Enum.KeyCode.H then toggleNoclip() elseif input.KeyCode == Enum.KeyCode.X then frameMain.Visible = not frameMain.Visible end end) -- Manejar respawn LocalPlayer.CharacterAdded:Connect(function(character) task.wait(1) if noclipEnabled then toggleNoclip() -- Reactivar noclip end end) -- =================== 🎉 MENSAJE FINAL =================== task.wait(2) showNotice("BOTÓN TELEPORT MÓVIL ACTIVO 🎯", Color3.fromRGB(200,200,100)) print("🎮 xToster PRO - CARGADO EXITOSAMENTE") print("🎯 Botón Teleport móvil activo - Arrástralo donde quieras!") print("🔴 ESP automático activado - Verás a todos los jugadores") print("📋 CONTROLES: F=Guardar, H=Noclip, X=Menú")