Installation
Get MineMail running on your server in a few minutes.
Requirements
| Requirement | Detail |
|---|---|
| Server software | Paper (Spigot is not supported: MineMail uses Paper's dialog, Adventure, and display-entity APIs) |
| Minecraft | Paper 26.2, build 124 or newer |
| API version | 26.2 |
| Built against | io.papermc.paper:paper-api:26.2.build.124-stable |
| Java | 25 |
| Soft dependency | Vault plus an economy plugin, needed for economy costs, currency attachments, and paid extra slots |
| Soft dependency | Floodgate, 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.
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
- Download the latest
MineMail-<version>.jarfrom the releases page, or build it from source (below). Each release also carries a.jar.sha256checksum. - (Optional) Install Vault and an economy plugin, and Floodgate if Bedrock players join through Geyser.
- Place the jar in your server's
plugins/directory. - Restart the server. MineMail generates its data folder and default files on first run.
- (Optional) Edit
plugins/MineMail/config.ymlto taste. - Run
/minemail reloadto 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:
- Open
plugins/MineMail/config.yml. - Decide how many mailboxes a player may own with
mailbox.max-per-player, and how much mail each can hold withmail.max-per-mailbox. Both default to-1(unlimited). They're the fallback for players without aminemail.limit.mailboxes.<n>orminemail.limit.capacity.<n>rank node; see Permissions. - Decide whether creating a mailbox or sending mail should cost money with
economy.mailbox-creation-cost/economy.mail-send-cost(both0.0by default, meaning free). Requires Vault and an economy plugin. - Decide whether holograms and ambient particles should show above mailboxes with
mailbox.hologram.enabled/mailbox.particles.enabled(bothtrueby default). - Decide whether old mail should be returned to its sender with
mail.expiration.enabled(defaultfalse). - Run
/minemail reloadto 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.
| Setting | Value |
|---|---|
| Group ID | dev.anchorlight.minemail |
| Artifact ID | MineMail |
| Main class | dev.anchorlight.minemail.MineMail |
| Java release | 25 |
| Paper API | 26.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.