Countdown Types
EzCountdown supports four primary countdown modes. Each section below explains when to use a mode, the exact YAML keys the plugin reads, an example you can paste into countdowns.yml, and short troubleshooting notes.
Important keys used by the plugin
type- one ofFIXED_DATE,DURATION,MANUAL,RECURRING(case-insensitive).display.types- list of enabled displays (e.g.ACTION_BAR,BOSS_BAR).display.bossbar.color/display.bossbar.style- optional per-countdown boss bar appearance keys. If present,display.bossbar.colormust be aBarColorname (e.g.BLUE,RED) anddisplay.bossbar.stylemust be aBarStylename (e.g.SOLID,SEGMENTED_10). On reload the plugin will log a warning and fall back to defaults (BLUE/SOLID) for unknown values.messages.*,commands.end,zone- per-countdown messages, end commands, and timezone.
Fixed Date
Use this when you have a specific calendar date/time to count down to.
- YAML keys:
type: FIXED_DATEandtarget: "YYYY-MM-DD HH:mm"(resolved using the countdown’szone). - Example
countdowns:
new_year:
type: FIXED_DATE
target: "2026-01-01 00:00"
running: true
- Notes
- Ensure
targetis in the future for the configuredzoneor the countdown will be created stopped.
- Ensure
Duration
Use this when you want a countdown that runs for a fixed length of time (e.g., maintenance windows).
- YAML keys:
type: DURATIONandduration: "1h30m". The duration parser acceptss,m,h,dtokens and combinations like1d4h30m. - Example (24 hours)
countdowns:
maintenance:
type: DURATION
duration: "1d" # can also be written as "86400s"
running: true
- Notes
- If
running: truethe plugin will compute atargetat creation (now + duration) and start immediately.
- If
Manual
Same format as DURATION but does not auto-start - useful when you want to prepare a timer and start it later.
- YAML keys:
type: MANUALandduration: "30m". - Control: use
/countdown start <name>and/countdown stop <name>to operate the timer. - Example
countdowns:
manual_event:
type: MANUAL
duration: "30m"
running: false
Recurring (yearly)
Recurring countdowns are currently yearly: they repeat each year on the configured month/day/time.
- YAML keys:
type: RECURRING,recurring.month(1–12),recurring.day(1–31),recurring.time(HH:mm). - Example (New Year’s Eve yearly)
countdowns:
festival:
type: RECURRING
recurring.month: 12
recurring.day: 31
recurring.time: "23:59"
running: true
- Notes
RECURRINGcomputes the next occurrence and, when it completes, advances the next target by one year.- If you need weekly or monthly recurrence, use a
DURATIONwith7dand anendcommand to restart it, or run an external scheduler.
Clock-aligned recurring schedules
EzCountdown now supports clock-aligned recurring schedules which fire on natural clock boundaries (for example: every 2 hours at 00:00, 02:00, 04:00…). These are useful for announcements that must occur on the wall-clock rather than relative to server uptime.
- New YAML keys (per-countdown):
align_to_clock- boolean, enable clock-aligned scheduling whentrue(defaultfalse).align_interval- duration string like2h,1d,30mdescribing the alignment interval.timezone- IANA timezone used to compute aligned boundaries (falls back to plugin default zone if omitted).missed_run_policy- how to handle missed occurrences while the server was down. Values:SKIP(default),RUN_SINGLE,RUN_ALL.
When align_to_clock: true and align_interval is set, the plugin computes the next occurrence relative to the start of the day in the configured timezone and snaps to the next multiple of the interval. DST transitions are handled using java.time so daily and hourly alignments follow local time semantics.
Example: announce every two hours on the UTC clock
countdowns:
regular_announce:
type: RECURRING
align_to_clock: true
align_interval: "2h"
timezone: "UTC"
running: true
Auto restart and start-on-end
Add these optional keys to have a countdown automatically restart when it ends or to start another countdown when this one finishes.
- YAML keys:
auto_restart- boolean, whentruethe countdown will be restarted after it ends (defaultfalse).start_countdown- string, the key of another countdown to start when this countdown ends (optional).restart_delay_seconds- integer seconds to wait before performing the restart/start action (default0).
- Semantics:
- If
auto_restart: truethe manager will restart the same countdown when it ends. Ifauto_restartis omitted it defaults tofalse. - If
auto_restart: falseandstart_countdownis set, the configured countdown will be started when this countdown ends. restart_delay_secondslets you delay the restart/start by the given number of seconds.
- If
- Example
countdowns:
example_event:
type: DURATION
duration: "1d"
auto_restart: true
restart_delay_seconds: 10
other_countdown:
type: DURATION
duration: "2h"
Tips & common workflows
- To implement weekly repetition, create a
DURATIONcountdown of7dand add anendcommand that restarts it (seecommands.end), or use external tooling to trigger/countdown startweekly. - Use
zone: "Europe/Amsterdam"(or any IANA zone) to control how fixed and recurring times are resolved.
Troubleshooting
- If a
FIXED_DATEcountdown is stopped on startup, verify thetargetis in the future for the configuredzone. - If
RECURRINGappears to wait a year, that is expected: the plugin treats recurring as annual.