Essentials → Vault Migration
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.
Configuration
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.
Import modes
Internallymode 0 = merge / mode 1 = replace:
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
Player resolution by UUID or name
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
Import statistics
On completion it writes a line to the log:Import marker (anti-re-execution)
So it doesn’t repeat on every restart, upon finishing withfailed == 0 it writes:
.internal/essentials_import.done(hidden.internal/folder withdos:hiddenon Windows)- Visible fallback: legacy
essentials_import.done
failed > 0 it is not marked, so the next startup retries the failed ones.
Persistence destination
target: fileor MySQL inactive →economy.saveToFile()(balances.yml)target: auto(default) and MySQL active →economy.save()via HikariCP
