-
Notifications
You must be signed in to change notification settings - Fork 7
multiworld migration essentials
If your server was previously using Essentials Economy, you can transfer all balances to Vault with a single operation. EssentialsImportService reads the Essentials/userdata/<uuid>.yml files directly.
import:
essentials:
enabled: false # Set true to run at startup
replace: false # true = overwrites existing balances; false = only creates missing ones
# target: file # Optional: "file" forces saving to balances.yml even if MySQL is activeWith enabled: true, the import fires in the plugin's onEnable(). You can also launch it afterward with /vault import essentials if Essentials exists in the plugins folder.
Internally mode 0 = merge / mode 1 = replace:
| Mode | Balance already exists in Vault? | Action |
|---|---|---|
| merge=0 | Yes, but it's 0 |
canBackfillEmpty: yes overwrites (if essentials has value ≠ 0) |
| merge=0 | Yes, and it's > 0 | Does not touch → stats.skipped++ |
| merge=0 | No | Creates balance with Essentials value |
| replace=1 | Yes/No | Always overwrites with Essentials value |
Essentials balance resolution (parseMoney):
- If
moneyis aNumber→.doubleValue()directly - If it is text → strips spaces and commas and
Double.parseDouble - Not finite → null and
stats.failedincrements
resolvePlayer() tries, in order, for each file Name.yml:
- File name as UUID (
UUID.fromString(fileBase)) - YAML field
uuid - Field
last-account-uuid(old formats) - Fallback by name:
last-account-name→player-name→name→ file name - If everything fails →
PlayerResolver.resolveByNameWithOfflineFallbackgenerates offline-mode UUID
On completion it writes a line to the log:
[Vault] Essentials import finished.
Scanned: 1205, imported: 903, skipped: 200,
duplicates: 50, errors: 52 (hidden internal marker)
So it doesn't repeat on every restart, upon finishing with failed == 0 it writes:
-
.internal/essentials_import.done(hidden.internal/folder withdos:hiddenon Windows) - Visible fallback: legacy
essentials_import.done
If failed > 0 it is not marked, so the next startup retries the failed ones.
-
target: fileor MySQL inactive →economy.saveToFile()(balances.yml) -
target: auto(default) and MySQL active →economy.save()via HikariCP
Vault Economy v2.1.0 · Compatible with Spigot 1.8.8 – 1.21.x
📦 Modrinth ·
💬 Discord ·
Java 17 (legacy) · Java 21 (modern)
Documentation generated on 2026-09-03 · Vault Project Team
- 🏠 Home
- 🚀 First Install
- 🧑🏫 Getting Started
- ❓ Basic FAQ
- 📋 Complete Command List
- 🛡️ Complete Permission List
- ⚙️ config.yml Reference
- 🌐 Supported Languages
- 🆕 Modrinth Updates
- 💰 Player-to-Player Payments
- 🏦 Bank System
- 💵 Physical Notes
- 💸 Loans
- 📜 Transaction History
- 📊 Top Players
- ⏸️ Offline Payments
- 💳 Charges / Payment Requests
- 🔔 Discord Webhook
- 🛠️ Installation Errors
- 🚫 Players Can't Pay
- 🧨 Balances Wiped on Restart
- 📉 Bank Doesn't Pay Interest
- 🧾 Invalid / Expired Notes
- 🩺 Complete Step-by-Step Troubleshooting
- Java API
- 📜 Skript
- 🧰 Contribute · Dual Maven Build