-- CHECKPOINT TELEPORT UI AVANÇADA -- Models: workspace.Checkpoints (1 até 70) -- Toggle visual + input de início -- Arrastável | Centralizado | Reset correto if not game:IsLoaded() then game.Loaded:Wait() end -- SERVICES local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local Player = Players.LocalPlayer -- CHARACTER local function getHRP() local char = Player.Character or Player.CharacterAdded:Wait() return char:WaitForChild("HumanoidRootPart") end local HRP = getHRP() Player.CharacterAdded:Connect(function() HRP = getHRP() end) -- CHECKPOINTS local Checkpoints = workspace:WaitForChild("Checkpoints") -- STATE local ATIVO = false local TEMPO = 1.5 local START_INDEX = 1 local MAX = 70 -- ================= TELEPORT ================= local function TeleportLoop(startIndex) for i = startIndex, MAX do if not ATIVO then return end local model = Checkpoints:FindFirstChild(tostring(i)) if model and model:IsA("Model") then local part = model:FindFirstChildWhichIsA("BasePart") if part then HRP.CFrame = part.CFrame + Vector3.new(0, 3, 0) end end task.wait(TEMPO) end -- Chegou no 70 → para tudo ATIVO = false end -- ================= UI ================= local gui = Instance.new("ScreenGui") gui.Name = "CheckpointTeleportUI" gui.ResetOnSpawn = false gui.Parent = Player:WaitForChild("PlayerGui") local frame = Instance.new("Frame", gui) frame.Size = UDim2.new(0, 260, 0, 160) frame.Position = UDim2.new(0.5, -130, 0.5, -80) frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) frame.BorderSizePixel = 0 frame.Active = true local corner = Instance.new("UICorner", frame) corner.CornerRadius = UDim.new(0, 14) -- TITLE (DRAG AREA) local title = Instance.new("TextLabel", frame) title.Size = UDim2.new(1, 0, 0, 35) title.BackgroundColor3 = Color3.fromRGB(30, 30, 30) title.Text = "Checkpoint Teleport" title.TextColor3 = Color3.new(1,1,1) title.TextScaled = true title.BorderSizePixel = 0 local titleCorner = Instance.new("UICorner", title) titleCorner.CornerRadius = UDim.new(0, 14) -- TOGGLE local toggleBtn = Instance.new("TextButton", frame) toggleBtn.Size = UDim2.new(1, -30, 0, 40) toggleBtn.Position = UDim2.new(0, 15, 0, 50) toggleBtn.BackgroundColor3 = Color3.fromRGB(120, 0, 0) toggleBtn.Text = "DESLIGADO" toggleBtn.TextColor3 = Color3.new(1,1,1) toggleBtn.TextScaled = true toggleBtn.BorderSizePixel = 0 local btnCorner = Instance.new("UICorner", toggleBtn) btnCorner.CornerRadius = UDim.new(0, 12) -- INPUT local input = Instance.new("TextBox", frame) input.Size = UDim2.new(1, -30, 0, 35) input.Position = UDim2.new(0, 15, 0, 100) input.BackgroundColor3 = Color3.fromRGB(35, 35, 35) input.PlaceholderText = "Checkpoint inicial (1 - 70)" input.Text = "" input.TextColor3 = Color3.new(1,1,1) input.TextScaled = true input.BorderSizePixel = 0 input.ClearTextOnFocus = false local inputCorner = Instance.new("UICorner", input) inputCorner.CornerRadius = UDim.new(0, 10) -- ================= DRAG ================= local dragging, dragStart, startPos title.InputBegan:Connect(function(inputObj) if inputObj.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = inputObj.Position startPos = frame.Position end end) title.InputEnded:Connect(function(inputObj) if inputObj.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UIS.InputChanged:Connect(function(inputObj) if dragging and inputObj.UserInputType == Enum.UserInputType.MouseMovement then local delta = inputObj.Position - dragStart frame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) -- ================= TOGGLE LOGIC ================= toggleBtn.MouseButton1Click:Connect(function() if ATIVO then -- DESLIGAR ATIVO = false toggleBtn.Text = "DESLIGADO" toggleBtn.BackgroundColor3 = Color3.fromRGB(120, 0, 0) else -- LIGAR local num = tonumber(input.Text) if num and num >= 1 and num <= MAX then START_INDEX = math.floor(num) else START_INDEX = 1 end ATIVO = true toggleBtn.Text = "LIGADO" toggleBtn.BackgroundColor3 = Color3.fromRGB(0, 140, 0) task.spawn(function() TeleportLoop(START_INDEX) -- Reset visual após terminar no 70 toggleBtn.Text = "DESLIGADO" toggleBtn.BackgroundColor3 = Color3.fromRGB(120, 0, 0) end) end end)