-
Notifications
You must be signed in to change notification settings - Fork 6
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
- π Formats and Localization
- π± Multi-currency
- π’ Abbreviation (k / M / B / T)
- π 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
- πΊοΈ Separate Balances Per World
- π Migration from EssentialsX
- π PlaceholderAPI (25+ placeholders)
- π€ SkinsRestorer Β· GUI Heads
- π LuckPerms
- ποΈ MySQL / HikariCP
-
Java API
- π¬ Getting Started
- π‘ Events and Transactions
- π SimpleEconomy Hooks
- π Skript
- π§° Contribute Β· Dual Maven Build
- π Changelog v2.1.0
- π Support