Scheduling
Recurring events by time of day, weekday or interval, with player counts and gates.
Each event carries its own list of schedules, edited from the schedule screens in /captureadmin.
The timetable itself is ExyliaLib's schedule module: the same editor, the
same fields and the same rules as every other Exylia plugin that starts things on a clock.
What a schedule holds
| Field | Meaning |
|---|---|
name | A label for the entry. Blank shows the times instead. |
enabled | Whether it may fire at all. On by default. |
days | Weekday names, or * for every day. An empty list also means every day. |
times | The HH:mm clock times it fires at, as a list. A single time is still read. |
every | Repeat this often instead of at fixed times, such as 2h or 90m. |
from / to | The window a repeat runs inside, as HH:mm. |
min-players | Players who must be online for it to fire. 0 by default. |
max-players | The most players that may be online for it to fire. 0 is no limit. |
condition | An Exylia comparison that must hold, such as %server_tps% >= 18. |
cooldown | The shortest gap between two fires of this entry. |
requires | Named gates, listed below. |
An event can have as many schedules as you want: three times on weekdays and one on Saturday is two
entries, one holding three times and one holding one. A repeat is anchored to its window's opening, not to when the server
started: every two hours from 10:00 fires at 10:00, 12:00 and 14:00 whatever time it restarted.
How firing works
When an entry is due, every gate is checked and the start is skipped — not retried later — when any fails:
- That event is already running. This is always checked, whatever
requiressays. - Fewer than
min-playersor more thanmax-playersare online. - The
conditiondoes not hold, or thecooldownhas not passed. - A gate in
requiresdoes not pass.
A fire more than two minutes late, after a frozen server, is skipped too. Skips are written to the console debug log rather than being silent.
The gates this plugin offers
| Gate | Passes when |
|---|---|
event-inactive | The event this entry starts is not running. |
nothing-running | No capture event at all is running on the server. |
nothing-running is what configuration alone cannot say: "start this one, but not while any other
event is on". A gate name the plugin does not offer never passes, so a typo stops the entry from firing
rather than being ignored.
Timezone
Every schedule is read against one clock:
scheduler:
timezone: ""Empty — the default — uses ExyliaLib's own timezone setting, which is where a network sets it once
for every plugin. Otherwise it takes a zone id such as America/New_York or Europe/Madrid, and
overrides that for this plugin only.
A value that is not a real IANA zone id — an abbreviation like CET, or a typo — is logged as an error
on load, and ExyliaLib's timezone is used instead. Check the console after changing it.
Time until the next one
The time until an event's next fire across all its entries is what feeds:
%exyliacapture_<id>_time_until_start%for one event.%exyliacapture_next_event_time_until_start%for the soonest event on the whole server.- The
SCHEDULEDstate a hologram shows when an event is not running but has an upcoming schedule.
An event with no schedules reports nothing rather than zero, which is how a hologram tells "not running, but coming" apart from "not running at all".
Starting by hand
A schedule is not required. /captureadmin start <id> starts an event immediately, and it obeys the
same rule about not starting one that is already running.
Something missing on this page? Tell us on Discord