-- HUB COMPLETO (LocalScript dentro del Frame)
local player = game.Players.LocalPlayer
local userInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local frame = script.Parent
local guardarBtn = frame:WaitForChild("BtnGuardar")
local tpBtn = frame:WaitForChild("BtnTP")
-- =========================
-- 1) HUB MÓVIL
-- =========================
local dragging, dragInput, dragStart, startPos
local function update(input)
local delta = input.Position - dragStart
frame.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
frame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or
input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
frame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or
input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
userInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
-- =========================
-- 2) GUARDAR Y TELEPORTAR POSICIÓN
-- =========================
local savedPos = nil
guardarBtn.MouseButton1Click:Connect(function()
if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
savedPos = player.Character.HumanoidRootPart.CFrame
warn("Posición guardada: " .. tostring(savedPos))
end
end)
tpBtn.MouseButton1Click:Connect(function()
if savedPos and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
player.Character.HumanoidRootPart.CFrame = savedPos
end
end)
-- =========================
-- 3) ESP DE JUGADORES (VER NOMBRES)
-- =========================
local function createESP(character)
if character:FindFirstChild("Head") and not character.Head:FindFirstChild("ESPBillboard") then
local billboard = Instance.new("BillboardGui")
billboard.Name = "ESPBillboard"
billboard.Adornee = character.Head
billboard.Size = UDim2.new(0, 200, 0, 50)
billboard.StudsOffset = Vector3.new(0, 2, 0)
billboard.AlwaysOnTop = true
local nameLabel = Instance.new("TextLabel", billboard)
nameLabel.Size = UDim2.new(1, 0, 1, 0)
nameLabel.BackgroundTransparency = 1
nameLabel.Text = character.Name
nameLabel.TextColor3 = Color3.fromRGB(255, 0, 0) -- rojo
nameLabel.TextStrokeTransparency = 0.5
nameLabel.Font = Enum.Font.SourceSansBold
nameLabel.TextScaled = true
billboard.Parent = character.Head
end
end
local function onPlayerAdded(p)
p.CharacterAdded:Connect(function(char)
task.wait(1) -- esperar a que cargue
createESP(char)
end)
end
for _, p in pairs(Players:GetPlayers()) do
if p ~= player then
onPlayerAdded(p)
if p.Character then
createESP(p.Character)
end
end
end
Players.PlayerAdded:Connect(onPlayerAdded)