Commands
The primary command is /monthlycrates. It also has the aliases /mcrate and /mcrates.
| Command | Permission | Description |
|---|---|---|
/monthlycrates |
monthlycrates.command.list |
Shows the available crate IDs and the give-command syntax. |
/monthlycrates list |
monthlycrates.command.list |
Lists the crate IDs loaded from the crate directory. |
/monthlycrates give <player> <crate> [amount] |
monthlycrates.command.give |
Gives a player an authentic MonthlyCrates key. amount defaults to 1 and must be from 1 to 2304. |
/monthlycrates reload |
monthlycrates.command.reload |
Re-reads every crate YAML file and reports the result. |
Examples
/monthlycrates list
/monthlycrates give MrAsf example-lotus 1
/mcrate give MrAsf april 12
/mcrates reload
<crate> is the loaded crate ID, not necessarily its visible display name. In the bundled configuration, the crate file is example-lotus.yml, so the ID is example-lotus.
Configurable command messages
All command output is generated from plugins/MonthlyCrates/messages.yml. The file is backed by MessagesConfig and every key uses lower snake_case.
| Path | Type | Placeholders |
|---|---|---|
command_help |
List | None |
command_list_empty |
String | None |
command_list_entry |
String | {crate} |
command_list_separator |
String | None |
command_list_loaded |
String | {crates} |
command_give_amount_invalid |
String | {max_amount} |
command_give_unknown_crate |
String | {crate} |
command_give_success |
String | {amount}, {crate}, {player} |
command_reload_success |
String | {amount} |
Messages support & color codes. /monthlycrates reload refreshes messages.yml before it reports the reloaded crate count.
Console use
The give and reload commands can be used from the server console. The player target in give must be online, because the crate is immediately placed in that player's inventory or dropped at their location if necessary.
What reload changes
Reload first refreshes messages.yml, clears the in-memory crate registry, refreshes each still-present crate configuration with loadAllFields(), then rescans every YAML file from disk. Added, changed, deleted, and renamed crate files are reflected immediately. Existing keys retain their embedded monthly-crate-id value and will use the newly loaded definition for that ID. If that ID no longer exists after reload, those old keys cannot be opened until a crate with the same ID is restored.
Reload does not replace a full restart after a JAR update.