Three major new features have been added to the TimerCommand plugin:
Allows you to run a command on specific days of the week at a determined time (e.g., every Friday at 22:59).
weekly-example:
enabled: true
type: "WEEKLY"
command: "say This command runs every Monday, Wednesday and Friday at 12:00!"
time: "12:00" # Format: HH:mm or HH:mm:ss
days:
- "monday"
- "wednesday"
- "friday"
/tc add WEEKLY <command_name> <day_1-7> <HH:MM:SS> <command>
Day Numbers:
1 = Monday2 = Tuesday3 = Wednesday4 = Thursday5 = Friday6 = Saturday7 = Sundaymonday (MON)tuesday (TUE)wednesday (WED)thursday (THU)friday (FRI)saturday (SAT)sunday (SUN)Days are case-insensitive - all of these work:
"monday", "MONDAY", "Monday""mon", "MON", "Mon"Example 1: Command every Tuesday at 15:30
tuesday-event:
enabled: true
type: "WEEKLY"
command: "say Tuesday event!"
time: "15:30"
days:
- "tuesday"
Command line: /tc add WEEKLY tuesday_event 2 15:30 say Tuesday event!
Example 2: Commands on weekdays at 09:00
weekday-morning:
enabled: true
type: "WEEKLY"
commands:
- "say Good morning!"
- "broadcast Server is ready"
time: "09:00"
days:
- "monday"
- "tuesday"
- "wednesday"
- "thursday"
- "friday"
Command line: /tc add WEEKLY weekday_morning 1 09:00 say Good morning!
Then manually add days to config.yml.
Instead of running a single command, you can now specify a list of commands that will be executed in sequence.
Old way (still works):
single-command:
enabled: true
type: "TIME"
command: "say Single command"
time: "12:00"
New way (list):
multiple-commands:
enabled: true
type: "TIME"
commands:
- "say First command"
- "give @a diamond 1"
- "broadcast Server announcement"
time: "12:00"
commands array, the command field is ignoredExample 1: Daily cleanup with multiple commands
daily-cleanup:
enabled: true
type: "TIME"
commands:
- "say Starting server cleanup!"
- "save-all"
- "broadcast Server will restart in 10 seconds"
time: "06:00"
Example 2: Weekly bonus on Friday with multiple commands
weekly-bonus:
enabled: true
type: "WEEKLY"
commands:
- "broadcast Friday bonus!"
- "give @a gold_ingot 10"
- "effect give @a speed 3600 1"
time: "19:00"
days:
- "friday"
Allows you to run a command at a specific in-game time (measured in ticks) in a specific world (e.g., when the sun reaches noon).
In-game time is measured in ticks (0-24000 per day):
game-time-example:
enabled: true
type: "GAME_TIME"
command: "say It's noon in-game!"
world: "world" # World name
tick: 6000 # In-game tick (0-24000)
/tc add GAME_TIME <command_name> <world_name> <tick_0-24000> <command>
doDaylightCycle gamerule - if it's off, the command may not triggerExample 1: Noon announcement
noon-event:
enabled: true
type: "GAME_TIME"
command: "say The sun has reached its peak!"
world: "world"
tick: 6000
Command line: /tc add GAME_TIME noon_event world 6000 say The sun has reached its peak!
Example 2: Midnight effect with multiple commands
midnight-event:
enabled: true
type: "GAME_TIME"
commands:
- "say Midnight in-game!"
- "effect give @a blindness 10"
- "broadcast The night is darkest!"
world: "world"
tick: 18000
Command line: /tc add GAME_TIME midnight_event world 18000 say Midnight in-game!
Example 3: Multiple world events during the day
sunrise:
enabled: true
type: "GAME_TIME"
command: "effect give @a speed 300 1"
world: "world"
tick: 0
sunset:
enabled: true
type: "GAME_TIME"
commands:
- "say The sun is setting"
- "effect give @a slowness 300 1"
world: "world"
tick: 12000
weekly-with-multiple:
enabled: true
type: "WEEKLY"
commands:
- "say Friday is here!"
- "give @a diamond 5"
- "effect give @a haste 1800 2"
- "broadcast Weekend event starts!"
time: "19:00"
days:
- "friday"
Command line: /tc add WEEKLY friday_event 5 19:00 say Friday is here!
world-noon:
enabled: true
type: "GAME_TIME"
commands:
- "execute in world run effect give @a speed 600 1"
- "broadcast It's noon in the main world!"
world: "world"
tick: 6000
nether-midnight:
enabled: true
type: "GAME_TIME"
command: "say It's midnight in the Nether"
world: "world_nether"
tick: 18000
command and new commands list cannot be used together in one schedulercommands if both are presentScheduledCommand.java
commands field (list instead of single command)daysOfWeek field for WEEKLY typegameTimeWorld and gameTimeTarget fields for GAME_TIME typecheckWeeklyExecution(), checkGameTimeExecution()execute() now supports multiple commandsCommandScheduler.java
loadCommands() method to support:
commands arraydays array for WEEKLY typeworld and tick for GAME_TIME typejava.time.DayOfWeekaddCommand() method to save WEEKLY and GAME_TIME parameterscommands.yml
Possible causes:
doDaylightCycle gamerule is disabledSolutions:
/say %server_world_name%/gamerule doDaylightCycle true/timePossible causes:
config.yml is incorrectSolutions:
config.yml and set the correct timezoneFor more information, see the commands.yml file documentation or README.md

A comprehensive command scheduler for Spigot/Paper servers