Task Scheduler

The scheduler runs commands on a game server on a schedule: a nightly restart, regular updates, stopping for maintenance.

Tasks are tied to a specific game server and live on the Task Scheduler tab of its page.

Creating a Task

Open the game server page → the Task Scheduler tab → New Task.

Field Description
Name Optional, up to 128 characters. Helps tell tasks apart in the list
Command What to do: start, stop, restart, update, or reinstall
Date When to run the task for the first time
Timezone The zone the schedule is interpreted in. UTC by default
Repeat Once, forever, or a set number of times
Repeat period The interval between runs. At least 10 minutes

The available commands are the same as the server control buttons: start, stop, restart, update, reinstall.

Timezone

If no zone is set, the schedule is computed in UTC. Specify the zone if the task must fire at a particular local time — otherwise, after a daylight saving change the task will drift relative to the expected hour.

Advanced Settings

The Advanced block defines behavior in two abnormal situations.

Overlap Behavior

What to do when it is time for a new run but the previous one is still executing.

Value Behavior
Skip the new run Skip the tick. The default
Add to queue Run right after the current run finishes

Skipping suits tasks that do not have to run every time — regular updates, for example. The queue makes sense when every run matters.

Missed Run Behavior

What to do with runs that fell within a period when the daemon was unavailable.

Value Behavior
Skip missed runs Discard everything that was missed. The default
Run once Merge all missed slots into a single run

The second option protects against an avalanche: if the daemon was down for a day and the task runs hourly, after the connection is restored it will run once, not twenty-four times.

Enabling and Disabling

A task has an Active toggle. A disabled task stays in the list with the Paused status and does not run. This beats deleting when the task is only needed inactive temporarily.

Execution History

The Execution History button shows what has been happening with the task.

Status Meaning
running Running right now
success Completed successfully
failed Ended with an error; the reason is in the error message
canceled Canceled
skipped Skipped by the overlap or missed-run policy
timed_out The execution time limit was exceeded

For each run, the start and end time, duration, exit code, error message, and command output are stored.

Via the API, the history is available with:

GET /api/servers/{server}/tasks/{id}/executions

Daemon Tasks

The scheduler creates daemon tasks — the same ones shown in the GDaemon Tasks list. Manually triggered actions run there too: starting the server with a button, installation, updates.

The list is available to administrators only, and there is no separate sidebar item for it. Open AdministrationDedicated servers and click GDaemon Tasks, or open a node’s card and click GDaemon Tasks in its details window — the list then opens filtered to that node (?node=<id> in the URL).

The list can be filtered by task type, status, game server, and dedicated server. Each filter accepts several values; the Clear button resets them all.

Task type Meaning
gsstart Start game server
gsstop Stop game server
gsrest Restart game server
gsupd Update game server
gsinst Install game server
gsdel Delete game server
gsmove Move game server
cmdexec Execute command

Task statuses: waiting, working, error, success, canceled.

A stuck or unneeded task can be canceled while it is in the waiting status: open it and click Cancel — the button is shown only for a waiting task. Via the API:

POST /api/gdaemon_tasks/{id}/cancel

A task in any other status cannot be canceled; the request returns 422.

Cancellation helps when a task is stuck waiting — for example, because the daemon was unavailable when it was created. The panel itself periodically marks stuck tasks: the check interval and the threshold are set with the TASK_REAPER_INTERVAL and TASK_REAPER_STALE_THRESHOLD variables, see the config.env Reference.

Permissions

Working with the scheduler requires the game-server-tasks permission on the server, see Users, Roles, and Permissions.

Plugin Tasks

Plugins can register their own periodic tasks — they are not related to game servers and do not appear in this section. Their limits are set with the PLUGINS_SCHEDULER_* variables, see the config.env Reference. The former PLUGIN_SCHEDULER_* names still work but log a deprecation warning.