Configuration
MineMail is configured through plugins/MineMail/config.yml. After editing, apply changes with /minemail reload - no restart required.
Default config.yml
# MineMail Configuration v0.0.1
storage:
type: YAML
auto-save-interval: 5
mailbox:
max-per-player: 5
max-name-length: 32
max-description-length: 128
hologram:
enabled: true
y-offset: 1.5
particles:
enabled: true
type: VILLAGER_HAPPY
count: 3
interval: 60
mail:
max-per-mailbox: 50
max-subject-length: 50
max-message-length: 500
max-attachments: 27
currency-enabled: true
expiration:
enabled: false
days: 30
directory:
items-per-page: 45
economy:
enabled: true
mailbox-creation-cost: 0.0
mail-send-cost: 0.0
sounds:
mailbox-created: BLOCK_ANVIL_USE
mail-received: ENTITY_EXPERIENCE_ORB_PICKUP
mail-sent: ENTITY_PLAYER_LEVELUP
gui-click: UI_BUTTON_CLICK
gui:
default-mailbox-icon: BARREL
groups:
enabled: true
max-per-player: 10
max-name-length: 32
max-members: 50
Missing keys fall back to these same defaults, so it's safe to trim the file down to only the values you want to change.
Storage
| Key | Default | Description |
|---|---|---|
storage.type | YAML | The only functional value. MySQL and SQLite are planned but not implemented - setting anything other than YAML has no effect. |
storage.auto-save-interval | 5 | Minutes between automatic async saves of all mailbox and mail data. A synchronous save also runs on plugin disable. |
Mailbox
| Key | Default | Description |
|---|---|---|
mailbox.max-per-player | 5 | Maximum mailboxes a single player may own. |
mailbox.max-name-length | 32 | Maximum character length for a mailbox name. |
mailbox.max-description-length | 128 | Maximum character length for a mailbox description. Currently unused - mailboxes have no way to set a description in-game, so this limit never applies in practice. |
mailbox.hologram.enabled | true | Shows a floating name tag above each mailbox barrel. Requires DecentHolograms to be installed; if it's missing, holograms are silently disabled. |
mailbox.hologram.y-offset | 1.5 | Vertical offset (in blocks) of the hologram above the barrel. |
mailbox.particles.enabled | true | Turns on the ambient particle loop above every mailbox. |
mailbox.particles.type | VILLAGER_HAPPY | The Bukkit Particle enum name used. This is a global default - there's no way to set a different particle per mailbox yet, despite minemail.mailbox.particles existing as a permission. |
mailbox.particles.count | 3 | Particles spawned per interval. |
mailbox.particles.interval | 60 | Ticks between particle spawns (20 ticks = 1 second, so 60 = every 3 seconds). |
Mail
| Key | Default | Description |
|---|---|---|
mail.max-per-mailbox | 50 | Hard cap on stored mail per mailbox. Sending mail beyond this fails with a "mailbox full" message. |
mail.max-subject-length | 50 | Maximum subject length. |
mail.max-message-length | 500 | Maximum message body length. |
mail.max-attachments | 27 | Configured max attachment count, but the compose GUI only exposes 9 physical attachment slots regardless of this value - treat the practical limit as 9. |
mail.currency-enabled | true | Shows the Currency button in the compose GUI. Also requires economy.enabled and Vault to be present. |
mail.expiration.enabled | false | Not enforced. The toggle exists in config, but no code currently deletes or hides expired mail. |
mail.expiration.days | 30 | Days until mail would expire, once expiration is implemented. Currently has no effect. |
Directory
| Key | Default | Description |
|---|---|---|
directory.items-per-page | 45 | How many mailboxes are shown per page in the server-wide /minemail directory GUI. |
Economy
Requires Vault and a registered economy plugin. If Vault is missing, or economy.enabled is false, all balance checks and costs are treated as free/unlimited.
| Key | Default | Description |
|---|---|---|
economy.enabled | true | Master toggle for Vault economy integration. |
economy.mailbox-creation-cost | 0.0 | Amount charged when confirming a new mailbox (left-clicking the barrel with a stick). |
economy.mail-send-cost | 0.0 | Amount charged (in addition to any attached currency) when sending mail. |
Sounds
| Key | Default | Description |
|---|---|---|
sounds.mailbox-created | BLOCK_ANVIL_USE | Played when a mailbox is successfully created. |
sounds.mail-received | ENTITY_EXPERIENCE_ORB_PICKUP | Played to the recipient when mail arrives (and on login, if there's unread mail). |
sounds.mail-sent | ENTITY_PLAYER_LEVELUP | Played to the sender when mail is sent successfully. |
sounds.gui-click | UI_BUTTON_CLICK | Declared but not currently played anywhere - a reserved key with no effect yet. |
All values are Bukkit Sound enum names.
GUI
| Key | Default | Description |
|---|---|---|
gui.default-mailbox-icon | BARREL | The icon shown for mailboxes in the directory GUI. Since there's no per-mailbox icon setter yet, every mailbox effectively uses this icon. |
Groups
:::caution Not functional
Everything under groups is reserved for a planned "mail groups" feature. The manager class exists in code, but it's never wired into any command or listener - changing these values has no effect today.
:::
| Key | Default | Description |
|---|---|---|
groups.enabled | true | No effect - group messaging is not connected to any command. |
groups.max-per-player | 10 | No effect. |
groups.max-name-length | 32 | No effect. |
groups.max-members | 50 | No effect. |
Example Configurations
Free-to-use, no economy costs (default)
economy:
enabled: true
mailbox-creation-cost: 0.0
mail-send-cost: 0.0
Charge for mailboxes and mail
economy:
enabled: true
mailbox-creation-cost: 500.0
mail-send-cost: 10.0
Disable holograms and particles (e.g. for performance, or without DecentHolograms installed)
mailbox:
hologram:
enabled: false
particles:
enabled: false
Allow more mailboxes per player
mailbox:
max-per-player: 15
See messages.yml (in the same plugins/MineMail/ folder) to customize player-facing text - MineMail loads it alongside config.yml and reloads both on /minemail reload.