Skip to main content

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

KeyDefaultDescription
storage.typeYAMLThe only functional value. MySQL and SQLite are planned but not implemented - setting anything other than YAML has no effect.
storage.auto-save-interval5Minutes between automatic async saves of all mailbox and mail data. A synchronous save also runs on plugin disable.

Mailbox

KeyDefaultDescription
mailbox.max-per-player5Maximum mailboxes a single player may own.
mailbox.max-name-length32Maximum character length for a mailbox name.
mailbox.max-description-length128Maximum 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.enabledtrueShows a floating name tag above each mailbox barrel. Requires DecentHolograms to be installed; if it's missing, holograms are silently disabled.
mailbox.hologram.y-offset1.5Vertical offset (in blocks) of the hologram above the barrel.
mailbox.particles.enabledtrueTurns on the ambient particle loop above every mailbox.
mailbox.particles.typeVILLAGER_HAPPYThe 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.count3Particles spawned per interval.
mailbox.particles.interval60Ticks between particle spawns (20 ticks = 1 second, so 60 = every 3 seconds).

Mail

KeyDefaultDescription
mail.max-per-mailbox50Hard cap on stored mail per mailbox. Sending mail beyond this fails with a "mailbox full" message.
mail.max-subject-length50Maximum subject length.
mail.max-message-length500Maximum message body length.
mail.max-attachments27Configured 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-enabledtrueShows the Currency button in the compose GUI. Also requires economy.enabled and Vault to be present.
mail.expiration.enabledfalseNot enforced. The toggle exists in config, but no code currently deletes or hides expired mail.
mail.expiration.days30Days until mail would expire, once expiration is implemented. Currently has no effect.

Directory

KeyDefaultDescription
directory.items-per-page45How 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.

KeyDefaultDescription
economy.enabledtrueMaster toggle for Vault economy integration.
economy.mailbox-creation-cost0.0Amount charged when confirming a new mailbox (left-clicking the barrel with a stick).
economy.mail-send-cost0.0Amount charged (in addition to any attached currency) when sending mail.

Sounds

KeyDefaultDescription
sounds.mailbox-createdBLOCK_ANVIL_USEPlayed when a mailbox is successfully created.
sounds.mail-receivedENTITY_EXPERIENCE_ORB_PICKUPPlayed to the recipient when mail arrives (and on login, if there's unread mail).
sounds.mail-sentENTITY_PLAYER_LEVELUPPlayed to the sender when mail is sent successfully.
sounds.gui-clickUI_BUTTON_CLICKDeclared but not currently played anywhere - a reserved key with no effect yet.

All values are Bukkit Sound enum names.

GUI

KeyDefaultDescription
gui.default-mailbox-iconBARRELThe 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. :::

KeyDefaultDescription
groups.enabledtrueNo effect - group messaging is not connected to any command.
groups.max-per-player10No effect.
groups.max-name-length32No effect.
groups.max-members50No 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.