Skip to main content

schedule — Scheduler API

Phase: Server

Tick-based task scheduling. One server tick is 1/20 of a second (50 ms at 20 TPS).

note

All scheduled tasks are cleared automatically when /atomicoffe reload is run.


schedule.after(ticks, fn)

Runs fn once after ticks server ticks have elapsed.

-- Announce in 5 seconds (100 ticks)
schedule.after(100, function()
server.broadcast("5 seconds have passed!")
end)

schedule.every(ticks, fn)id

Runs fn every ticks server ticks, indefinitely. Returns a task ID that can be used with schedule.cancel.

-- Broadcast TPS every 10 seconds
local taskId = schedule.every(200, function()
server.broadcast("Current TPS: " .. server.getTps())
end)

schedule.cancel(id)

Stops a repeating task created by schedule.every.

local id = schedule.every(20, function()
-- runs every second
end)

-- Stop it after 10 seconds
schedule.after(200, function()
schedule.cancel(id)
end)

schedule.clear()

Cancels all pending one-shot and repeating tasks and resets the internal tick counter.

schedule.clear()

Quick Reference

MethodDescription
schedule.after(ticks, fn)Run once after N ticks
schedule.every(ticks, fn)idRun every N ticks, returns task ID
schedule.cancel(id)Cancel a repeating task by ID
schedule.clear()Cancel all tasks