Skip to content

schedule.yml

Things on a clock: tips, daily announcements and commands, custom timers, and the key-all.

How it plays: read the guide

Every example on this page is taken from the shipped schedule.yml. Changes apply with /hcf reload. Nothing ships switched on: tips are off and every list is empty. enabled: true at the top switches the module.

Time zone

schedule.yml
# Time zone the schedule times below are read in. "system" follows the host
# clock; prefer naming one (for example "Europe/Paris") so a host move does not
# shift every announcement.
time-zone: "system"

Tips

schedule.yml
tips:
  # A line of advice every so often. Off by default: a message nobody asked for,
  # every few minutes, is something an operator has to go and turn off.
  # Players can switch tips off for themselves with /settings.
  enabled: false
  # At least 10.
  interval-seconds: 300
  # in-order, or random - which never shows the same tip twice running.
  order: in-order
  prefix: "{dark}[{warning}Tip{dark}] {muted}"
  messages:
    - "Type {secondary}/team help {muted}to see every team command."
    - "{secondary}/events {muted}lists what is running and what is coming."
    - "{secondary}/stats {muted}and {secondary}/leaderboard {muted}show how you are doing."
Key As shipped What it does
enabled false Tips at all; players can switch them off with /settings
interval-seconds 300 Time between two tips; at least 10
order in-order in-order or random (never the same twice running)
prefix &8[&eTip&8] &7 Put before each tip
messages three examples The tips

Daily schedules

Ships empty. The example is the commented one in the file:

schedule.yml
# Announcements and commands at fixed times, every day. Each entry needs at least
# one time and a broadcast or a command; commands run from the console.
#
#   schedules:
#     evening-koth:
#       times: ["18:00", "21:00"]
#       broadcast: "&6A KOTH starts in 5 minutes!"
#       commands: []
#     nightly-restart-warning:
#       times: ["03:55"]
#       broadcast: "&cThe server restarts in 5 minutes."
schedules: {}

Each entry needs times and a broadcast or commands (from the console).

Custom timers

Ships empty. The example is the commented one in the file:

schedule.yml
# Countdowns started with /timer start <name> <duration> [label]. They show on
# the scoreboard (%timer_1% to %timer_3% in ui.yml) and end with a line in chat.
# A name listed here gets its label, and can say and do something when it ends.
# Any other name works too, with the label typed in the command.
#
#   timers:
#     double-points:
#       label: "&dDouble Points"
#       end-broadcast: "&dDouble points are over."
#       end-commands:
#         - "some-command %timer%"
#
# Timers live in memory: a restart ends them.
timers: {}

A name listed here gets its label, and may say something (end-broadcast) and run end-commands (with %timer%) when it ends. Any other name works with the label typed in /timer start.

Key-all

schedule.yml
key-all:
  # /keyall runs these commands once for every player online, from the console
  # (%player% is filled in). This plugin has no crates: point them at whatever
  # your crate plugin, economy or kit provides. Empty, /keyall refuses rather
  # than announcing a key-all that gives nothing.
  #
  #   commands:
  #     - "crates key give %player% vote 1"
  commands: []
  # Said once it has run; %count% is how many players received it.
  broadcast: "{primary}&lKEY-ALL! {muted}%count% players received a key."
  # The label of the countdown /keyall <duration> starts.
  label: "{primary}Key-All"
Key As shipped What it does
commands [] Run once per online player, from the console, with %player%. Empty, /keyall refuses
broadcast a line Said once done; %count% is how many received it
label &6Key-All The countdown's label on the scoreboard

The whole shipped file

View it on GitHub.

schedule.yml
# ---------------------------------------------------------------------------
# schedule.yml - things that happen on a clock
#
# Rotating tips, announcements and commands at fixed times, countdowns staff
# start by hand, and the key-all. /hcf reload applies changes at once.
#
# NOTHING HERE SHIPS SWITCHED ON: tips are off, and every list is empty. What a
# server announces, and what its keys are, belong to it.
#
# Lines "# --8<-- [start:...]" and "# --8<-- [end:...]" mark the parts the online
# documentation quotes from this file. They are comments and change nothing.
# ---------------------------------------------------------------------------

enabled: true

# Time zone the schedule times below are read in. "system" follows the host
# clock; prefer naming one (for example "Europe/Paris") so a host move does not
# shift every announcement.
time-zone: "system"

tips:
  # A line of advice every so often. Off by default: a message nobody asked for,
  # every few minutes, is something an operator has to go and turn off.
  # Players can switch tips off for themselves with /settings.
  enabled: false
  # At least 10.
  interval-seconds: 300
  # in-order, or random - which never shows the same tip twice running.
  order: in-order
  prefix: "{dark}[{warning}Tip{dark}] {muted}"
  messages:
    - "Type {secondary}/team help {muted}to see every team command."
    - "{secondary}/events {muted}lists what is running and what is coming."
    - "{secondary}/stats {muted}and {secondary}/leaderboard {muted}show how you are doing."

# Announcements and commands at fixed times, every day. Each entry needs at least
# one time and a broadcast or a command; commands run from the console.
#
#   schedules:
#     evening-koth:
#       times: ["18:00", "21:00"]
#       broadcast: "&6A KOTH starts in 5 minutes!"
#       commands: []
#     nightly-restart-warning:
#       times: ["03:55"]
#       broadcast: "&cThe server restarts in 5 minutes."
schedules: {}

# Countdowns started with /timer start <name> <duration> [label]. They show on
# the scoreboard (%timer_1% to %timer_3% in ui.yml) and end with a line in chat.
# A name listed here gets its label, and can say and do something when it ends.
# Any other name works too, with the label typed in the command.
#
#   timers:
#     double-points:
#       label: "&dDouble Points"
#       end-broadcast: "&dDouble points are over."
#       end-commands:
#         - "some-command %timer%"
#
# Timers live in memory: a restart ends them.
timers: {}

key-all:
  # /keyall runs these commands once for every player online, from the console
  # (%player% is filled in). This plugin has no crates: point them at whatever
  # your crate plugin, economy or kit provides. Empty, /keyall refuses rather
  # than announcing a key-all that gives nothing.
  #
  #   commands:
  #     - "crates key give %player% vote 1"
  commands: []
  # Said once it has run; %count% is how many players received it.
  broadcast: "{primary}&lKEY-ALL! {muted}%count% players received a key."
  # The label of the countdown /keyall <duration> starts.
  label: "{primary}Key-All"