TimerCommand icon

TimerCommand -----

spigot, paper, scheduler, task-runner, time-based-commands, automation, placeholderapi, gui-menu, mu



DOCUMENTATION

Basic Commands
Code (Text):

/timercommand help              # Show help (4 pages)
/timercommand list              # List all scheduled commands
/timercommand menu              # Open GUI menu
/timercommand status            # Show plugin status
/timercommand reload            # Reload configuration
 

Execute commands at a specific time every day.

Basic Syntax
Code (Text):

/timercommand add TIME <name> <HH:MM:ss> <command>
 
Examples
Code (Text):

/timercommand add TIME daily_broadcast 14:30 say Daily broadcast!
/timercommand add TIME morning_msg 08:00:00 say Good morning everyone!
/timercommand add TIME backup 03:00 say Backup started!
 
Time Format Support
  • HH:mm – e.g., 14:30 (seconds default to 00)
  • HH:mm:ss – e.g., 14:30:45 (with seconds)
  • With or without quotes: both 14:30 and "14:30" work

Practical Examples
Code (Text):

# Daily server broadcast
/timercommand add TIME noon 12:00 say It's noon! Time for a break?

# Daily maintenance announcement
/timercommand add TIME maintenance 02:00 say Server will restart in 1 hour

# Daily backup with timestamp
/timercommand add TIME backup 03:00 say Backup_%year%_%month%_%day% started & execute as @a run save-all
 

Execute commands repeatedly at fixed intervals (measured in ticks).

Basic Syntax
Code (Text):

/timercommand add INTERVAL <name> <ticks> <command>
 
Tick Reference
Ticks Duration
20 1 second
600 30 seconds
1200 1 minute
6000 5 minutes
36000 30 minutes
72000 1 hour


Examples
Code (Text):

/timercommand add INTERVAL hourly 72000 say Hourly announcement!
/timercommand add INTERVAL performance 1200 execute as @a[scores={ping=10000..}] run say Lag detected!
/timercommand add INTERVAL save 36000 execute as @a run save-all
 
Practical Examples
Code (Text):

# Every 5 minutes
/timercommand add INTERVAL alert 6000 say Message every 5 minutes

# Every 30 minutes
/timercommand add INTERVAL frequent 36000 say Check-in message

# Every hour
/timercommand add INTERVAL hourly 72000 say Hourly broadcast
 

Execute commands on specific days of the month at a specific time.

Basic Syntax
Code (Text):

/timercommand add MONTHLY_DAY <name> <day> <HH:MM:ss> <command>
 
Parameters
  • day – 1-31 (which day of the month)
  • HH:MM:ss – Time of execution (same format as TIME commands)

Examples
Code (Text):

/timercommand add MONTHLY_DAY monthly_reset 1 00:00 say Monthly reset!
/timercommand add MONTHLY_DAY payday 15 18:00 say Payday today!
/timercommand add MONTHLY_DAY cleanup 28 23:00 execute as @a run function utils:monthly_cleanup
 
Practical Examples
Code (Text):

# First day of month at midnight
/timercommand add MONTHLY_DAY reset 1 00:00 say New month, new beginning!

# 15th of month at noon
/timercommand add MONTHLY_DAY midmonth 15 12:00 say Half month milestone!

# Last check of month
/timercommand add MONTHLY_DAY endcheck 28 23:00 say Month ending soon, clean up!
 

Execute commands on specific days of the week at a specific time.

Basic Syntax
Code (Text):

/timercommand add WEEKLY <name> <day_1-7> <HH:MM:ss> <command>
 
Day Numbers
  • 1 = Monday
  • 2 = Tuesday
  • 3 = Wednesday
  • 4 = Thursday
  • 5 = Friday
  • 6 = Saturday
  • 7 = Sunday

Examples
Code (Text):

/timercommand add WEEKLY friday_event 5 22:59 say Friday night event!
/timercommand add WEEKLY weekday_meeting 1 10:00 say Monday morning meeting!
/timercommand add WEEKLY weekend 6 12:00 say Saturday announcement!
 
Configuration in commands.yml
Code (Text):

weekly-example:
  enabled: true
  type: "WEEKLY"
  time: "10:00"
  command: "say Weekly announcement!"
  days:
    - "monday"
    - "wednesday"
    - "friday"
 
Practical Examples
Code (Text):

# Every Monday at 9 AM
/timercommand add WEEKLY monday_start 1 09:00 say Welcome to the week!

# Every Friday at 5 PM
/timercommand add WEEKLY friday_party 5 17:00 broadcast Friday Party Time!

# Multiple days (set in commands.yml)
# Executes on Monday, Wednesday, Friday
 

Execute commands at specific in-game time (measured in ticks) in specific worlds.

Basic Syntax
Code (Text):

/timercommand add GAME_TIME <name> <world_name> <tick_0-24000> <command>
 
In-Game Time Reference
In-game time is measured in ticks (0-24000 per day):
Ticks Time Description
0 Sunrise Start of day
6000 Noon Sun at highest point
12000 Sunset Afternoon/Evening
18000 Midnight Darkest, start of night


Examples
Code (Text):

/timercommand add GAME_TIME noon world 6000 say The sun is at its peak!
/timercommand add GAME_TIME midnight world 18000 say It's midnight in-game!
/timercommand add GAME_TIME nether_sunset world_nether 12000 say Sunset in Nether!
 
Configuration in commands.yml
Code (Text):

game-time-noon:
  enabled: true
  type: "GAME_TIME"
  command: "say It's noon!"
  world: "world"
  tick: 6000

game-time-midnight:
  enabled: true
  type: "GAME_TIME"
  commands:
    - "say It's midnight!"
    - "effect give @a darkness 300"
  world: "world"
  tick: 18000
 
Practical Examples
Code (Text):

# Daily noon announcement
/timercommand add GAME_TIME noon world 6000 say It's noon, time for lunch!

# Midnight effects
/timercommand add GAME_TIME midnight world 18000 effect give @a night_vision 300

# Multiple world events
/timercommand add GAME_TIME sunrise world 0 say Welcome to a new day!
/timercommand add GAME_TIME sunset world 12000 say The sun is setting!

# Important: doDaylightCycle must be enabled for this to work!
 
Important Information
  • Command executes only once per day at specified tick
  • Command executes only in specified world
  • Requires doDaylightCycle gamerule enabled
  • Specify exact world name (e.g., "world", "world_nether", "custom_world")

Execute multiple commands in sequence for a single scheduler instead of just one command!

Configuration in commands.yml
Instead of using command (single), use commands (list):

Code (Text):

multi-command-example:
  enabled: true
  type: "TIME"
  time: "10:00"
  commands:
    - "say First command!"
    - "say Second command!"
    - "say Third command!"
  description: "Multiple commands at once"
 
Works with ALL Types
  • ✅ TIME – Daily execution with multiple commands
  • ✅ INTERVAL – Repeated execution with multiple commands
  • ✅ MONTHLY_DAY – Monthly execution with multiple commands
  • ✅ WEEKLY – Weekly execution with multiple commands
  • ✅ GAME_TIME – In-game time execution with multiple commands

Practical Examples
Code (Text):

# Daily setup with multiple tasks
daily-startup:
  enabled: true
  type: "TIME"
  time: "06:00"
  commands:
    - "say Server is starting up!"
    - "function startup:initialize"
    - "broadcast Welcome to our server!"
    - "give @a minecraft:golden_apple 1"

# Friday celebration
friday-party:
  enabled: true
  type: "WEEKLY"
  time: "17:00"
  days:
    - "friday"
  commands:
    - "broadcast  FRIDAY PARTY TIME! "
    - "effect give @a speed 3600 2"
    - "execute as @a run playsound block.note_block.pling master @s"

# Monthly maintenance
monthly-cleanup:
  enabled: true
  type: "MONTHLY_DAY"
  day: 1
  time: "02:00"
  commands:
    - "say Monthly cleanup starting..."
    - "function cleanup:clear_items"
    - "function cleanup:reset_stats"
    - "save-all"
 
Important Notes
  • Commands execute in the order they are listed
  • If both command and commands are present, commands takes priority
  • Each command is executed independently by the console
  • Backward compatible – old single command format still works

Opening the Menu
Code (Text):

/timercommand menu
 
Controls
  • Left Click – Toggle command enabled/disabled
  • Right Click – Delete command
  • Green Block = Command is enabled
  • Red Block = Command is disabled
  • Info Button – Shows statistics
  • Navigation Buttons – Previous/Next pages

Management Commands
Code (Text):

/timercommand toggle <name>     # Enable/disable command
/timercommand run <name>        # Execute command immediately
/timercommand info <name>       # Show detailed info
/timercommand delete <name>     # Delete command
 
Editing Commands
Code (Text):

/timercommand edit <name> command <new_command>
/timercommand edit <name> time <HH:MM:SS>
/timercommand edit <name> interval <ticks>
/timercommand edit <name> day <1-31>
/timercommand edit <name> enabled <true/false>
 

Global Timezone Configuration
Edit config.yml:
Code (Text):

timezone: "server"  # or any IANA timezone
 
Timezone Examples
Code (Text):

timezone: "server"              # Server's system timezone
timezone: "UTC"                 # Coordinated Universal Time
timezone: "Europe/Prague"       # Europe/Prague timezone
timezone: "America/New_York"    # Eastern Time
timezone: "Asia/Tokyo"          # Japan Standard Time
timezone: "Australia/Sydney"    # Australian Eastern Time
 
How It Works
  • All TIME and MONTHLY_DAY commands use the global timezone
  • The timezone is checked at server startup
  • Changes to timezone require server restart
  • INTERVAL commands are not affected by timezone

Full IANA Timezone List

Use dynamic placeholders in your commands – they are replaced at execution time.

Available Placeholders
Placeholder Value Example
%day% Current day (1-31) 15
%month% Current month (1-12) 12
%year% Current year 2025
%hour% Current hour (0-23) 14
%minute% Current minute (0-59) 30


Math Operations
Code (Text):

%day+1%     # Tomorrow's day
%day-1%     # Yesterday's day
%month+1%   # Next month
%month-1%   # Last month
%year+1%    # Next year
%year-1%    # Last year
%hour+2%    # Hour + 2
 
Formatting Options
Edit config.yml:
Code (Text):

day_format: "padded"      # 01, 02, 03 (or "simple" for 1, 2, 3)
month_format: "padded"    # 01, 02, 03 (or "simple" for 1, 2, 3)
year_format: "simple"     # 2025
hour_format: "padded"     # 09, 10, 23 (or "simple" for 9, 10, 23)
minute_format: "padded"   # 05, 30, 59 (or "simple" for 5, 30, 59)
 
Practical Examples
Code (Text):

# Daily backup with timestamp in filename
/timercommand add TIME backup 03:00 execute as @a run function backup:%day%_%month%_%year%

# Monthly reset with date
/timercommand add TIME monthly 01 00:00 say Monthly reset! Current year: %year%

# Periodic status check with time
/timercommand add INTERVAL check 1200 say Current time: %hour%:%minute%

# Rotating backups by day
/timercommand add TIME backup 02:00 execute as @a run function daily_backup:%day%
 

All command actions are automatically logged to plugins/TimerCommand/log.log.

What Gets Logged
  • ✅ Command execution (automatic scheduling)
  • ✅ Command creation via /timercommand add
  • ✅ Command deletion (console and GUI)
  • ✅ Command toggled enabled/disabled
  • ✅ Errors during execution
  • ✅ Configuration reloads
  • ✅ Plugin startup/shutdown

Log Format
Code (Text):

[2025-01-15 10:30:45] INFO: Command 'daily_broadcast' executed
[2025-01-15 10:35:22] INFO: Command 'test_cmd' enabled via GUI menu by player Admin123
[2025-01-15 10:36:01] INFO: Command 'old_cmd' deleted via GUI menu by player Admin123
[2025-01-15 10:40:15] ERROR: Failed to execute command 'broken_cmd': Unknown function
 
Viewing Logs
  • Navigate to plugins/TimerCommand/log.log
  • View with any text editor
  • Clear old logs periodically to save space

config.yml
Global plugin configuration:
Code (Text):

# Language setting (cs, en, de, ru, ja, es)
language: "en"

# Global timezone for all commands
timezone: "server"

# Enable/disable the plugin globally
# When true:  Scheduler runs, commands execute
# When false: NO commands will execute
enabled: true

# Placeholder formatting options
day_format: "padded"
month_format: "padded"
hour_format: "padded"
minute_format: "padded"

block-commands:
  - "op"
  - "stop"
 
commands.yml
Define your scheduled commands here:
Code (Text):

daily-announce:
  enabled: true
  type: "TIME"
  time: "10:30"
  command: "say Good morning!"
  description: "Daily announcement"

hourly-check:
  enabled: true
  type: "INTERVAL"
  interval: 72000
  command: "say Hourly check!"
  description: "Hourly health check"

monthly-reset:
  enabled: true
  type: "MONTHLY_DAY"
  day: 1
  time: "00:00"
  command: "say Monthly reset!"
  description: "Reset on 1st of month"

weekly-example:
  enabled: true
  type: "WEEKLY"
  time: "10:00"
  command: "say Weekly announcement!"
  days:
    - "monday"
    - "wednesday"
    - "friday"

game-time-noon:
  enabled: true
  type: "GAME_TIME"
  command: "say It's noon!"
  world: "world"
  tick: 6000

game-time-midnight:
  enabled: true
  type: "GAME_TIME"
  commands:
    - "say It's midnight!"
    - "effect give @a darkness 300"
  world: "world"
  tick: 18000
 
Language Files
Customize all plugin messages by editing:
  • lang_cs.yml – Čeština (Czech)
  • lang_en.yml – English
  • lang_de.yml – Deutsch (German)
  • lang_es.yml – Español (Spanish)
  • lang_ru.yml – Русский (Russian)
  • lang_ja.yml – 日本語 (Japanese)

Permissions
  • timercommand.admin – Full access to all commands (default: OP)
  • timercommand.use – Use basic commands (default: OP)

Requirements
  • Minecraft Server: 1.21.4+
  • Server Software: Spigot, Paper, or compatible fork
  • Java: Java 17 or higher
  • PlaceholderAPI (optional) – For PlaceholderAPI placeholders

Command not executing?
  1. Check if command is enabled: /timercommand list
  2. Verify time/timezone: /timercommand status
  3. Check command syntax: /timercommand info <name>
  4. View logs: plugins/TimerCommand/log.log
  5. Verify enabled: true in config.yml

Wrong time?
  1. Check server timezone: /timercommand status
  2. Verify system time is correct
  3. Check log.log for execution times
  4. Restart server if timezone was changed

PlaceholderAPI not working?
  1. Ensure PlaceholderAPI is installed: /plugins
  2. Reload configuration: /timercommand reload
  3. Check log.log for errors
  4. Verify PlaceholderAPI version compatibility

Commands not in GUI?
  1. Check commands.yml syntax
  2. Reload with: /timercommand reload
  3. Check console for parsing errors
  4. Verify YAML indentation

Commands with Spaces
Code (Text):

/timercommand add TIME announce 12:00 say This is a message with spaces!
 
Using with Functions
Code (Text):

/timercommand add TIME daily 00:00 function my_namespace:daily_tasks
 
Complex Command Examples
Code (Text):

# Daily broadcast with time
/timercommand add TIME status 12:00 say Server status check at %hour%:%minute%!

# Weekly-style check (multiple commands)
/timercommand add TIME monday 08:00 say Enjoy your Monday, everyone!

# Backup with dynamic filename
/timercommand add TIME backup 03:00 say Starting backup_%year%_%month%_%day% && execute as @a run save-all

# Performance monitoring
/timercommand add INTERVAL monitor 6000 execute as @a[scores={ping=10000..}] run say Lag detected!

# Rotating daily tasks
/timercommand add TIME cleanup 02:00 function cleanup:day_%day%
 
Best Practices
  • Use meaningful names for commands (e.g., daily_broadcast not cmd1)
  • Test commands with /timercommand run <name> before scheduling
  • Use timezone: "server" for most cases
  • Keep log.log for debugging issues
  • Use the GUI menu for quick management
  • Document your commands in the description field
Resource Information
Author:
----------
Total Downloads: 19
First Release: Dec 5, 2025
Last Update: Dec 12, 2025
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings