Skip to main content

Configuration

MineMail is configured through plugins/MineMail/config.yml. After editing, apply most changes with /minemail reload; see Reloading for the exceptions.

The file updates itself: when MineMail loads or reloads it, any missing keys are added back with their defaults, and new settings from plugin updates are merged in. Don't change config-version.

Merging never changes a value that's already in your file. A server upgraded from 1.0.0 keeps the old defaults (mailbox.max-per-player: 5, mail.max-per-mailbox: 50, mailbox.max-description-length: 128) until you change them; new installs get the defaults below.

Default config.yml​

# MineMail Configuration v1.2.0

# Do not touch - used to auto-merge new settings on updates
config-version: 2

storage:
type: YAML
auto-save-interval: 5
save-debounce-millis: 1500

mailbox:
max-per-player: -1
max-name-length: 32
max-description-length: 512
creation-timeout-seconds: 60
hologram:
enabled: true
y-offset: 1.5
particles:
enabled: true
type: HAPPY_VILLAGER
count: 3
interval: 60
selectable:
HAPPY_VILLAGER: minemail.particle.default
END_ROD: edeneffects.mailbox.endrod
CHERRY_LEAVES: edeneffects.mailbox.cherry
HEART: edeneffects.mailbox.heart
SOUL_FIRE_FLAME: edeneffects.mailbox.soulfire
ENCHANT: edeneffects.mailbox.enchant
TOTEM_OF_UNDYING: edeneffects.mailbox.totem
extra-slots:
enabled: false
price: 5000.0
price-multiplier: 1.5
max-purchasable: 5

mail:
max-per-mailbox: -1
max-subject-length: 50
max-message-length: 500
max-attachments: 9
currency-enabled: true
max-currency: 1000000.0
compose-timeout-seconds: 300
expiration:
enabled: false
days: 30
check-interval-minutes: 30
read-receipts:
enabled: true

directory:
items-per-page: 28

economy:
enabled: true
mailbox-creation-cost: 0.0
mail-send-cost: 0.0

logging:
transactions:
enabled: true
page-size: 10

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

The shipped file includes a comment on every key; they're left out above for brevity.


Storage​

KeyDefaultDescription
storage.typeYAMLNot read. YAML is the only storage; MySQL and SQLite are planned.
storage.auto-save-interval5Minutes between safety-net full saves (minimum 1). Every change is already saved on its own, so this only catches anything missed. Needs a restart.
storage.save-debounce-millis1500How long to gather a burst of changes into one disk write (250 to 30000 ms). This is the most a crash can lose.

Mailbox​

KeyDefaultDescription
mailbox.max-per-player-1Mailboxes a player may own, when they have no minemail.limit.mailboxes.<n> node. -1 (or any negative number) means unlimited. Purchased extra slots are added on top of a limit.
mailbox.max-name-length32Maximum mailbox name length, for creating and renaming.
mailbox.max-description-length512Maximum description length. Descriptions are set from Manage Mailbox, can span several lines, and are shown in the directory and at the top of the mailbox.
mailbox.creation-timeout-seconds60How long a player has to left-click a barrel after /minemail create (minimum 5).
mailbox.hologram.enabledtrueShows a floating name tag, with a new-mail count, above each mailbox. Built in; no hologram plugin needed. Owners can also turn it off per mailbox.
mailbox.hologram.y-offset1.5Height of the hologram above the barrel, in blocks.
mailbox.particles.enabledtrueTurns the ambient particle loop above every mailbox on or off.
mailbox.particles.typeHAPPY_VILLAGERDefault particle, used when an owner hasn't picked one. Older names such as VILLAGER_HAPPY are still accepted. Particles that need extra data (such as DUST) aren't supported and fall back to HAPPY_VILLAGER.
mailbox.particles.count3Particles spawned each time (minimum 1).
mailbox.particles.interval60Ticks between spawns (20 ticks = 1 second, so 60 = every 3 seconds).
mailbox.particles.selectable7 entriesThe particles owners can choose in the picker, each mapped to the permission that unlocks it. Invalid entries are skipped with a warning. See Permissions.

Extra slots​

KeyDefaultDescription
mailbox.extra-slots.enabledfalseLets players buy extra mailbox slots with /minemail buyslot, on top of their rank limit. Needs a working economy unless the price is 0.
mailbox.extra-slots.price5000.0Price of the first slot.
mailbox.extra-slots.price-multiplier1.5Each further slot costs price × multiplier ^ slots already bought.
mailbox.extra-slots.max-purchasable5Most slots one player can buy.

Mail​

KeyDefaultDescription
mail.max-per-mailbox-1Mail a mailbox can hold, when its owner has no minemail.limit.capacity.<n> node or is offline. -1 (or any negative number) means unlimited. Sending to a full mailbox is refused before anything is taken.
mail.max-subject-length50Maximum subject length.
mail.max-message-length500Maximum message length.
mail.max-attachments9Item stacks per mail. The compose menu has 9 slots, so values above 9 are lowered to 9 with a warning. Lower values disable the extra slots.
mail.currency-enabledtrueShows the Currency button in the compose menu. Also needs economy.enabled, Vault, and an economy plugin.
mail.max-currency1000000.0Most currency one mail can carry.
mail.compose-timeout-seconds300How long an untouched compose menu is kept before its items are returned (minimum 30).
mail.expiration.enabledfalseReturns old mail to its sender. The items and currency arrive in the sender's mailbox as Returned: <subject>, or are held until they next join if they have no mailbox or it's full. Returned mail never expires again.
mail.expiration.days30Age, since it was sent, at which mail is returned.
mail.expiration.check-interval-minutes30How often to check for expired mail.
mail.read-receipts.enabledtrueTells senders when their mail is first read. Players can opt out with /minemail receipts.

Directory​

KeyDefaultDescription
directory.items-per-page28Mailboxes per page in /minemail directory (1 to 28).

Economy​

Needs Vault and an economy plugin. If either is missing while economy.enabled is true, MineMail logs an error at startup and treats every cost as free.

KeyDefaultDescription
economy.enabledtrueMaster switch for Vault. Needs a restart.
economy.mailbox-creation-cost0.0Charged when a mailbox is created. The balance is checked at /minemail create and charged once the barrel is confirmed.
economy.mail-send-cost0.0Charged when mail is sent, together with any attached currency. Refunded if delivery fails.

Logging​

KeyDefaultDescription
logging.transactions.enabledtrueWrites the transaction log to plugins/MineMail/logs/. /minemail log and /minemail recover depend on it.
logging.transactions.page-size10Entries per page in /minemail log.

Sounds​

KeyDefaultDescription
sounds.mailbox-createdBLOCK_ANVIL_USEPlayed when a mailbox is created.
sounds.mail-receivedENTITY_EXPERIENCE_ORB_PICKUPPlayed when mail arrives, and on login if there's new mail.
sounds.mail-sentENTITY_PLAYER_LEVELUPPlayed to the sender when mail is sent.
sounds.gui-clickUI_BUTTON_CLICKPlayed on menu clicks.

Sounds can be written as constant names (BLOCK_ANVIL_USE) or sound keys (block.anvil.use or minecraft:block.anvil.use). An unknown sound logs a warning and uses the default.

GUI​

KeyDefaultDescription
gui.default-mailbox-iconBARRELItem shown for mailboxes in the directory. There's no in-game way to set a per-mailbox icon yet. An invalid material falls back to BARREL with a warning.

Groups​

KeyDefaultDescription
groups.enabledtrueEnables /minemail group.
groups.max-per-player10Groups one player can own.
groups.max-name-length32Maximum group name length.
groups.max-members50Members per group, including the owner.

Reloading​

/minemail reload re-reads config.yml and messages.yml and restarts the particle and expiration tasks. Most settings apply straight away. The exceptions:

SettingTo apply it
economy.enabledRestart the server.
storage.auto-save-intervalRestart the server.
mailbox.hologram.enabled, mailbox.hologram.y-offsetRun /minemail cleanupholograms to rebuild existing holograms.

Messages​

Player-facing text lives in plugins/MineMail/messages.yml, in MiniMessage format with named placeholders such as <mailbox>. It reloads with /minemail reload.


Example Configurations​

Charge for mailboxes and mail​

economy:
enabled: true
mailbox-creation-cost: 500.0
mail-send-cost: 10.0

Sell extra mailbox slots​

mailbox:
extra-slots:
enabled: true
price: 2500.0
price-multiplier: 2.0
max-purchasable: 3

Return mail after two weeks​

mail:
expiration:
enabled: true
days: 14

Disable holograms and particles​

mailbox:
hologram:
enabled: false
particles:
enabled: false

Run /minemail cleanupholograms afterwards to remove existing holograms.