local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local hrp = character:WaitForChild("HumanoidRootPart") local folder = workspace:WaitForChild("Checkpoints") -- Collect all numbered parts local checkpoints = {} for _, obj in ipairs(folder:GetChildren()) do if obj:IsA("BasePart") then local num = tonumber(obj.Name) if num then table.insert(checkpoints, obj) end end end -- Sort them by number (0 → 38) table.sort(checkpoints, function(a, b) return tonumber(a.Name) < tonumber(b.Name) end) -- Teleport in order for _, part in ipairs(checkpoints) do hrp.CFrame = part.CFrame + Vector3.new(0, 3, 0) task.wait(0.25) -- change speed here end