ModsJava
SRVCron (1.8-1.21.11) [Scheduler | Events | Jobs | Conditions | Spigot/Bungee]
Continuation of the well-known Cron plugin - MC-Cron.
All credits goes to the original author - TheTadeSK.
SRV-Cron is a all-in-one minecraft server scheduler that has many features to schedule jobs for certain times or in-game events. All credits goes to the original author - TheTadeSK.
It is a continuation of a well-known Cron plugin - MC-Cron with a lot of additional and expanded features that original MC-Cron plugin does not provide, such as PlaceholderAPI support, sending commands as players, variable actions and condition checking.
_________________________________________________
# FEATURES
These are some of the features that this plugin provides.
• Customizable jobs;
• Various command execution;
• Execute commands by every online player;
• Send title messages to every online player;
• Play sounds to every online player;
• Filter command action receivers by a condition or permission;
• Event jobs & commands;
• Start-up commands;
• Delayed command execution (/timer);
• BungeeCord support;
• PlaceholderAPI support;
AVAILABLE EVENTS
(Use these values in configuration)
- join-event
- quit-event
- weather-change-event
- world-load-event
- player-bed-enter-event
- player-change-world-event
- player-gamemode-change-event
- player-kick-event
- chat-event
- command-event
- item-pickup-event
- player-advancement-done-event
BUILT-IN PLACEHOLDERS
- {player_name} - for events that relate to a player.
- {world_name} - for events that relate to a world.
.. and bunch more event-specific placeholders, read more at:
https://github.com/M0diis/SRV-Cron/wiki/Configuration#events
You can use both placeholders if event relates to both player and a world (ex. player-change-world-event)
BungeeCord has only two events available, join & quit.
_________________________________________________
# COMMANDS & PERMISIONS
RUN COMMAND AFTER SPECIFIED SECONDS
Command: /timer <seconds> <command>
Permission: srvcron.command.timer
RELOAD CONFIGURATION & JOBS
Command: /srvcron reload
Permission: srvcron.command.reload
RUN CRON OR EVENT JOB MANUALLY
Command: /srvcron run <job-name> or /srvcron run event <event-name>
Permission: srvcron.command.run
SUSPEND JOB EXECUTION
Command: /srvcron suspend <job-name>
Permission: srvcron.command.suspend
RESUME JOB EXECUTION
Command: /srvcron resume <job-name>
Permission: srvcron.command.resume
JOB INFORMATION
Command: /srvcron jobinfo <job-name>
Permission: srvcron.command.jobinfo
JOB & EVENT LIST
Command: /srvcron list [events]
Permission: srvcron.command.list
_________________________________________________
# CONFIGURATION
Configuration is pretty simple and easy to understand.
For more detailed explanation, visit Github wiki page:
Configuration · M0diis/SRV-Cron Wiki
DEFAULT CONFIGURATION
Code (YAML):
# Available command actions:
# [MESSAGE] or [TEXT] -> this will send a direct message to the player.
# [PLAYER] -> a command will be sent by the player.
# [CONSOLE] or none -> a command will be sent by the console.
# [TITLE] -> will show a title to a player. A more detailed usage below.
# [SOUND] -> this will play a sound to the player.
# [LOG <logname>] -> this will log a message to a log file.
# [LOG] -> this will send a log message to the console.
# ---
#- <ALL>[PLAYER] will be executed by every online player EXCEPT the player who dispatched the event.
#- <ALL>[CONSOLE] will be executed by console for every online player. Placeholders will apply to the player.
#- will be executed once via the server console.
# ---
# "<ALL+>" in Event-Job will be executed by every online player INCLUDING the player who dispatched the event.
# Use {placeholder} to apply a placeholder to the player who dispatched the event.
# ---
# Detailed explanation:
# This will play a sound to the player.
# The first argument is the sound, the second is the volume and the third is the pitch.
# You can find a list of sounds here: https://www.digminecraft.com/lists/sound_list_pc.php
# - '[SOUND] ENTITY.PLAYER.LEVELUP, 1.0, 1.0'
# This will show a title to the player.
# The first argument is the title, the second is the subtitle.
# The last three are: fade-in, stay and fade-out times.
# - '[TITLE] This is a title, This is a subtitle, 20, 60, 20'
# Alternatively you can use opt out the subtitle or the times, or just the subtitle.
# - '[TITLE] This is a title'
# - '[TITLE] This is a title, 20, 60, 20'
# ---
# You can also filter out the players using placeholders.
# - '[PLAYER (%vault_eco_balance% > 1000)] This will only be executed by the player if he has more than 1000 balance.'
# Same applies to all the other actions, title, message, sound, etc., ex:
# '[TITLE (%vault_eco_balance% > 1000)] You have more than 1000 balance!'
# This will send a title to all the players that have more than 1000 balance.
# ---
# Available operators:
# - X less than Y: <
# - X is greater than Y: >
# - X less or equal to Y: <=
# - X is greater or equal to Y: >=
# - X is equals to Y: ==
# - X is not equals to Y: !=
# ---
# This works best for placeholders that return numeric values.
# Operators might work for values that return yes or true, ex.:
# - '[PLAYER (%player_is_op%)] shout Yay, I'm an OP when this job was executed.'
# ---
# You can also check if player has a permission, ex.:
# - '[PLAYER (PERMISSION:some.permission)] shout You have the permission!'
jobs:
save:
time : every 1 hour
commands :
- say Saving world!
- save- all
- say Save Complete!
restart:
time : every 1 day of week at 6:00
commands :
- say Server restart in 10 seconds!
- timer 10 stop
tps:
time : every 30 minutes
commands :
- tps
# If you do not want to use any event jobs, use:
# event-jobs: { }
event-jobs:
join-event:
welcome:
time : 1
commands :
- tell {player_name } Hello!
- <ALL> [CHAT ] Hello {player_name }!
quit-event:
bye:
time : 5
commands :
- say {player_name } left the game few seconds ago.
player-gamemode-change-event:
whisper:
time : 0
commands :
- "<ALL> [TEXT (PERM:staff.notify.gamemode)] Player {player_name} changed his gamemode from {from_gamemode} to {to_gamemode}"
startup:
commands :
- say Server was started!
- timer 60 say Server is online for 1 minute!
- save- all
- ' [LOG <server_startup.log> ] Server has been started.'
schedule :
# Controls numeric weekdays in expressions like: every day of week in 1,5 at 12:00
# Supported: monday-first (default, ISO), sunday-first (legacy), iso, legacy
weekday-numbering : monday-first
debug : false
silent-start : false
notify-update : true
log-to-file : true
locale : 'en'
Code (Text):
# named weekdays
time: every wednesday at 00:00
time: every monday,friday at 18:30
# list/range support
time: every day of week in 1,3,5 at 12:00
time: every day of week in 2..6 at 07:45
time: every day of month in 1..5 at 09:00
# plain intervals
time: every 30 seconds
time: every 5 minutes
time: every 1 hour
time: every 2 days
# multiple times per day
time: every day at 08:00,12:00,18:00
# time windows
time: every 15 minutes from 09:00 to 17:00
time: every 20 minutes from 23:00 to 03:00
# nth / last weekday in month
time: every 2nd monday of month at 10:00
time: every last friday of month at 22:00
# relative calendar keywords
time: every weekday at 09:00
time: every weekend at 11:00
time: every month on last-day at 23:55
# month-name schedules
time: every january,march day 1 at 08:00
# start/end constraints
time: every 1 hour between 2026-06-01 and 2026-09-01
# per-job timezone and jitter
# options order is: ... [between ...] [jitter ...] [timezone ...]
time: every day at 09:00 timezone Europe/Berlin
time: every 5 minutes jitter 30s
time: every 10 minutes jitter 2m timezone Europe/Berlin
# one-shot execution
time: at 2026-06-10 14:30
# classic cron expression (opt-in)
time: cron: 0 0 * * 3
time: cron: */15 9-17 * * mon-fri
Notes:
- Cron format is "minute hour day-of-month month day-of-week".
- Cron supports "*", lists (,), ranges (-), and steps (/) in each field.
- Cron month/day-of-week names are supported (e.g. "jan", "mon-fri").
- Day-of-week DSL numbers stay compatible with existing configs (1=Sunday ... 7=Saturday).
- Legacy expressions are still accepted for backward compatibility:
- "every 4 day of week at 00:00" (or without "at", defaults to "00:00")
- "every 1 day of month at 09:00" (or without "at", defaults to "00:00")
_________________________________________________
# API
For more detailed explanation, visit Github wiki page:
API · M0diis/SRV-Cron Wiki (github.com)
There are currently 3 events that are fired upon certain actions.
• CronJobDispatchEvent
• CronJobDispatchEvent
• StartupCommandDispatchEvent
You can also interact with the API.
_________________________________________________
MY OTHER PLUGINS
• CoreCord - CoreProtect integration for Discord.
• ExtraEnchants - Simple additional enchantments for your server.
• AntiAnvilRename - Prevent players from renaming certain items using anvils.
• SimpleBombs - Customizable bombs for prison and other servers.
• VenturaCalendar - In-game calendar with customizable events and much more.
• OnlinePlayersGUI - Online players in a GUI. Filter by conditions, placeholders.
Resources from M0dii - all plugins.
_________________________________________________
Please leave a positive review if the plugin works as intended, if you have an issue contact me on discord provided or open an issue on github.
If you're feeling generous and enjoy my plugins - you can support my work here:
- PayPal: https://www.paypal.com/paypalme/ModestasKazlauskas
- Ko-fi: https://ko-fi.com/m0dii
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.8, 1.9, 1.10
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
SRVCron (1.8-1.21.11) [Scheduler | Events | Jobs | Conditions | Spigot/Bungee] is a free Minecraft Java mod. Compatible with Minecraft 1.8, 1.9, 1.10, 1.11 and newer. Downloaded 2,190 times (via Spigot). Download it and open it directly in the game.