--[[ Checkpoint Teleport GUI Credits: veemix373 --]] local Players = game:GetService("Players") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local UIS = game:GetService("UserInputService") -- GUI local gui = Instance.new("ScreenGui") gui.Name = "CheckpointTPGui" gui.ResetOnSpawn = false gui.Parent = playerGui local frame = Instance.new("Frame") frame.Size = UDim2.fromScale(0.18, 0.22) frame.Position = UDim2.fromScale(0.41, 0.41) frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) frame.BorderSizePixel = 0 frame.Active = true frame.Parent = gui -- Title (draggable) local title = Instance.new("TextLabel") title.Size = UDim2.fromScale(1, 0.2) title.Position = UDim2.fromScale(0, 0) title.BackgroundTransparency = 1 title.Text = "Checkpoint TP" title.TextColor3 = Color3.new(1,1,1) title.TextScaled = true title.Font = Enum.Font.Cartoon title.Parent = frame -- Drag support only on the title local dragging, dragStart, startPos title.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = frame.Position end end) title.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UIS.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then 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 end) -- Stage label local stageLabel = Instance.new("TextLabel") stageLabel.Size = UDim2.fromScale(1, 0.15) stageLabel.Position = UDim2.fromScale(0, 0.2) stageLabel.BackgroundTransparency = 1 stageLabel.Text = "Stage: 0" stageLabel.TextColor3 = Color3.new(1,1,1) stageLabel.TextScaled = true stageLabel.Font = Enum.Font.Cartoon stageLabel.Parent = frame -- Slider background local sliderBg = Instance.new("Frame") sliderBg.Size = UDim2.fromScale(0.8, 0.1) sliderBg.Position = UDim2.fromScale(0.1, 0.37) sliderBg.BackgroundColor3 = Color3.fromRGB(80, 80, 80) sliderBg.Parent = frame local sliderHandle = Instance.new("Frame") sliderHandle.Size = UDim2.fromScale(0.03, 1) sliderHandle.Position = UDim2.fromScale(0, 0) sliderHandle.BackgroundColor3 = Color3.fromRGB(60, 120, 255) sliderHandle.Parent = sliderBg local draggingSlider = false local selectedStage = 0 local maxStage = 192 sliderHandle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then draggingSlider = true end end) sliderHandle.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then draggingSlider = false end end) sliderBg.InputChanged:Connect(function(input) if draggingSlider and input.UserInputType == Enum.UserInputType.MouseMovement then local localX = math.clamp(input.Position.X - sliderBg.AbsolutePosition.X, 0, sliderBg.AbsoluteSize.X) local scale = localX / sliderBg.AbsoluteSize.X sliderHandle.Position = UDim2.new(scale,0,0,0) selectedStage = math.floor(scale * maxStage) stageLabel.Text = "Stage: "..selectedStage end end) -- Start button local startButton = Instance.new("TextButton") startButton.Size = UDim2.fromScale(0.8, 0.15) startButton.Position = UDim2.fromScale(0.1, 0.5) startButton.BackgroundColor3 = Color3.fromRGB(60, 120, 255) startButton.TextColor3 = Color3.new(1,1,1) startButton.TextScaled = true startButton.Font = Enum.Font.Cartoon startButton.Text = "START" startButton.Parent = frame -- Status display local status = Instance.new("TextLabel") status.Size = UDim2.fromScale(1,0.15) status.Position = UDim2.fromScale(0,0.68) status.BackgroundTransparency = 1 status.Text = "" status.TextColor3 = Color3.new(1,1,1) status.TextScaled = true status.Font = Enum.Font.Cartoon status.Parent = frame -- Teleport logic local function runTeleport() local folder = workspace:WaitForChild("aos"):WaitForChild("checkpoints") local character = player.Character or player.CharacterAdded:Wait() local hrp = character:WaitForChild("HumanoidRootPart") startButton.Text = "RUNNING..." status.Text = "Teleporting..." local index = 0 while index <= selectedStage do local checkpoint = folder:FindFirstChild(tostring(index)) if checkpoint and checkpoint:IsA("BasePart") then hrp.CFrame = checkpoint.CFrame + Vector3.new(0,3,0) index = index + 1 task.wait(0.25) else task.wait(0.2) end end gui:Destroy() end startButton.MouseButton1Click:Connect(runTeleport)