Study
Luau

Task Library (task.wait, task.spawn)

Penjelasan

Task library (`task.wait`, `task.spawn`, `task.delay`, `task.cancel`) adalah penerus resmi fungsi global lama seperti `wait()` dan `spawn()`, dengan presisi timing lebih baik dan overhead lebih rendah karena diimplementasikan lebih dekat ke scheduler internal Roblox. Fungsi lama masih berjalan untuk kompatibilitas, tapi Roblox merekomendasikan task library untuk kode baru. `task.spawn` menjalankan fungsi segera secara paralel (mirip coroutine) tanpa menunggu, `task.delay` menjadwalkan eksekusi setelah durasi tertentu, dan keduanya mengembalikan thread yang bisa dibatalkan dengan `task.cancel()` — kemampuan yang tidak dimiliki `spawn()`/`delay()` versi lama.

Contoh Konsep

-- task.wait untuk jeda
print("Mulai")
task.wait(2)
print("2 detik kemudian")

-- task.spawn untuk jalankan paralel tanpa memblokir
task.spawn(function()
    task.wait(1)
    print("Berjalan paralel setelah 1 detik")
end)
print("Kode ini tetap lanjut tanpa menunggu")

-- task.delay yang bisa dibatalkan
local thread = task.delay(5, function()
    print("Ini tidak akan tercetak kalau dibatalkan")
end)
task.cancel(thread)

Praktikum

Buat sebuah task.spawn yang mencetak "Regenerasi HP" setiap 3 detik menggunakan loop tak hingga dengan task.wait di dalamnya.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Simpan thread hasil `task.spawn`/`task.delay` kalau ada kemungkinan perlu dibatalkan dengan `task.cancel` nanti, karena tanpa referensi tersebut thread tidak bisa dihentikan dari luar.