-
Notifications
You must be signed in to change notification settings - Fork 6
other changelog
Config Plugins edited this page Sep 3, 2026
·
3 revisions
Release date: Q3 2025 | Dual build: Java 17 (legacy) + Java 21 (modern) | Platform: Modrinth rj9SgaYL
- β GUI Bank System: Complete bank menu with commands, configurable daily interest, and transaction tax.
- β Physical Notes with PDC + HMAC anti-dupe: Physical items signed with HMAC-SHA256 (5 fields) and i18n parsing in 11 languages.
- β
GUI Transaction History: Pagination in
/vault historywith 45 slots per page, daily JSON storage, and MySQL table. - β
/eco admin command + async /baltop cache:
give / take / set / resetwith in-memory cache + async rebuild. - β
Multi-currency:
balances.ymlwith N currency definitions (coins, gems, tokens, etc.), individual symbol and format. - β
Multi-world MySQL:
vault_world_balancestable with world-isolated balances + configurable inheritance. - β
Offline payments + pending charges:
/payqueued until recipient connects,vault_charge_requeststable. - β YAML Loans (loans.yml): Installments, interest rate, default effects when unpaid, automatic collection.
- β Discord Webhooks embeds: 11 languages with images, colors, and custom placeholders.
- β 11 languages: messages_en/es/pt/fr/de/it/ru/zh/ja/ko/ar.yml with strict i18n lint.
- β PlaceholderAPI 25+ placeholders: balance, formatted, fixed, commas, short, top, top_name, top_amount, ecobalance<0-8>dp.
- β SkinsRestorer GUI heads /pay: Real skin heads via legacy 1.8 reflection and live premium/non-premium profile.
- β
Essentials import:
/vault import essentialsfrom EssentialsX / Essentials 2.x. - β Offline UUID fallback: Premium/non-premium mode compatible, cracked UUID correctly detected.
- β
Modrinth Update checker: ID
rj9SgaYL, release/beta/alpha channel, async check every 12h. - β
Dual Java build:
- Legacy: Java 17, supports Minecraft 1.8.8 β 1.20.4.
- Modern: Java 21, supports Minecraft 1.20.5 β 1.21+.
- Refactor
VaultPlugin.getEconomyProvider()β modernSimpleEconomyinterface in addition to legacyEconomy. - Write-behind cache of 6000 ticks + HikariCP pool (configurable MySQL pool_size).
-
TransactionLogServicewithTxRecord.builder()builder and 25TxType. - HikariCP connections
vault_balances,vault_world_balances,vault_charge_requests,vault_transactions. - FlywayDB migrations for incremental schema upgrades.
- Services auto-inject (
@Serviceannotation) via reflection inonEnable.
- Balances loaded in bulk at boot (
SELECT * FROM vault_balancesonly once). - Flush dirty batches instead of querying per operation.
- Async /baltop, does not block main tick in 10k+ player mode.
-
Messages.prefixed()uses per-locale cache, no string regeneration every tick.
- HMAC notes with unique UUID nonce (anti-replay).
- ChatInput sanitization (XSS chat color exploit) using
ChatInputSanitizer. - Optional Discord Webhook HMAC signature (shared secret).
- SHA512 checksum in the Modrinth updater before moving the JAR.
| Fix | Description |
|---|---|
| NaN balances |
Double.NaN in format() due to incompatible Locale β uses sanitized BigDecimal.valueOf(). |
| ChatInputSanitizer | Allows color codes (Β§6) but blocks Β§Β§, Β§kΒ§k, null bytes, and console exploits (sendMessage). |
| Locale Currency Format |
NumberFormat with correct Locale.getDefault(), not always US; fallback if symbol is missing in Locale. |
| Async getOfflinePlayer | Prevents Mojang API timeout on onJoin with offline cache. |
1. Make a full backup of plugins/Vault/ + DB if using MySQL
2. Install Vault-2.1.0-legacy.jar or -modern.jar depending on your Java
3. Start the server
4. Files are migrated automatically:
- config.yml β new keys with comments
- balances.yml β multi-currency format (auto-migration V1βV2)
- messages_es.yml β new i18n keys
5. Run: /vault verify β OK: 9 checks passed
6. Run: /vault import essentials (if you came from Essentials)
| Flyway File | Applies to |
|---|---|
V1__init.sql |
Empty tables |
V2__add_world_balances.sql |
Creates vault_world_balances
|
V3__add_charge_requests.sql |
Creates vault_charge_requests
|
V4__add_transactions.sql |
Creates vault_transactions 45-slot log |
V5__add_loans.sql |
Creates vault_loans + vault_loan_payments
|
- β
Economy#getBalance(Player)still works, butSimpleEconomy#getBalance(OfflinePlayer)is the new path. - β Currencies are no longer just "Vault.Economy": there are N currencies in balances.yml.
- β Vault 1.x notes do not have an HMAC signature and are invalidated when hmac.secret is changed. Use
/vault notes migrate. - β
plugin.ymlnow declaressoftdepend: LuckPerms, SkinsRestorer, PlaceholderAPI, Skript.
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