Skip to main content

Installation

Get MineMail running on your server in a few minutes.

Requirements​

RequirementDetail
Server softwarePaper (Spigot is not supported: MineMail uses Paper's dialog, Adventure, and display-entity APIs)
MinecraftPaper 26.2, build 124 or newer
API version26.2
Built againstio.papermc.paper:paper-api:26.2.build.124-stable
Java25
Soft dependencyVault plus an economy plugin, needed for economy costs, currency attachments, and paid extra slots
Soft dependencyFloodgate, needed to show Bedrock players native forms

MineMail runs without Vault. If economy.enabled is true but Vault or an economy plugin is missing, MineMail logs an error at startup and treats every cost as free. Currency attachments are hidden and paid extra slots can't be bought.

Holograms are built in (Paper text display entities), so no hologram plugin is needed.

Bedrock players on a proxy network

MineMail looks for Floodgate on the Paper server it runs on. If Geyser and Floodgate are on your Velocity or BungeeCord proxy, also install Floodgate on every backend running MineMail, as Floodgate's proxy setup describes (send-floodgate-data: true on the proxy, and the same key.pem on each backend). With Floodgate only on the proxy, Bedrock players get the Java dialogs instead of forms.


Install Steps​

  1. Download the latest MineMail-<version>.jar from the releases page, or build it from source (below). Each release also carries a .jar.sha256 checksum.
  2. (Optional) Install Vault and an economy plugin, and Floodgate if Bedrock players join through Geyser.
  3. Place the jar in your server's plugins/ directory.
  4. Restart the server. MineMail generates its data folder and default files on first run.
  5. (Optional) Edit plugins/MineMail/config.yml to taste.
  6. Run /minemail reload to apply most changes. A few settings need a restart; see Configuration.

Once the server has run for a while, the folder looks like this:

plugins/
└── MineMail/
├── config.yml
├── messages.yml
├── mailboxes.yml
├── mail.yml
├── groups.yml
├── players.yml
└── logs/
└── transactions-YYYY-MM.jsonl

config.yml and messages.yml are created on first start. The four data files are written together on the first save (a player joining or the server stopping is enough) and on every save after, even while empty. logs/ appears with the first logged transaction, and exports/ the first time an admin runs /minemail export. See Admin & Maintenance for what each file holds.


Quick Start​

For most servers the defaults are sensible. A typical first pass:

  1. Open plugins/MineMail/config.yml.
  2. Decide how many mailboxes a player may own with mailbox.max-per-player, and how much mail each can hold with mail.max-per-mailbox. Both default to -1 (unlimited). They're the fallback for players without a minemail.limit.mailboxes.<n> or minemail.limit.capacity.<n> rank node; see Permissions.
  3. Decide whether creating a mailbox or sending mail should cost money with economy.mailbox-creation-cost / economy.mail-send-cost (both 0.0 by default, meaning free). Requires Vault and an economy plugin.
  4. Decide whether holograms and ambient particles should show above mailboxes with mailbox.hologram.enabled / mailbox.particles.enabled (both true by default).
  5. Decide whether old mail should be returned to its sender with mail.expiration.enabled (default false).
  6. Run /minemail reload to apply the changes.

Test it: place a barrel, run /minemail create "Test Box", left-click the barrel with a stick within 60 seconds, then right-click it to open your new mailbox.


Building from Source​

MineMail is a Maven project. You need JDK 25 and Maven 3.6 or newer.

SettingValue
Group IDdev.anchorlight.minemail
Artifact IDMineMail
Main classdev.anchorlight.minemail.MineMail
Java release25
Paper API26.2.build.124-stable

Build the jar:

mvn clean package

This runs the unit tests and produces target/MineMail-<version>.jar (shaded, with BoostedYAML and the parts of StoneLib it uses relocated inside it) and a CycloneDX target/bom.json. Drop the jar into your server's plugins/ directory.