EZ
ez-plugins/EzEconomy
A complete economy system with banks and multi-currency support.
EzEconomy
EzEconomy is a professional-grade Vault economy provider for Minecraft servers. Choose from YML, MySQL, SQLite, MongoDB, or custom storage with multi-currency support, async caching, and thorough permission controls.
๐ Documentation
- Overview: General introduction and architecture
- Commands: Command usage and permissions
- Configuration: All configuration options
- Developer API: API usage for plugin developers
- Permissions: Permission nodes and details
- Placeholders: PlaceholderAPI integration
- Storage: Storage backends and setup
โ Key Features
EzEconomy is designed for performance, reliability, and operational clarity. Highlights include:
- Vault API compatible: Works with any Vault-based plugin
- YML, MySQL, SQLite, MongoDB, or custom storage: Flexible, production-ready storage options
- Thread-safe: Robust error handling and concurrency controls
- Multi-currency support: Optional, per-player, fully configurable
- Async caching: Optimized for large servers
- Comprehensive commands:
/balance,/eco,/baltop,/bank,/pay,/currency - Granular permissions: Per-command and per-bank action
โก Commands
- /balance: View your balance
- /balance : View another player's balance (
ezeconomy.balance.others) - /eco <give|take|set> : Administrative balance controls (
ezeconomy.eco) - /baltop [amount]: Show top balances
- /bank <create|delete|balance|deposit|withdraw|addmember|removemember|info> ...: Bank management (
ezeconomy.bank) - /pay : Send funds to another player (
ezeconomy.pay) - /currency [currency]: Set or view your preferred currency
๐ก๏ธ Permissions
ezeconomy.balance.others: View other players' balancesezeconomy.eco: Use /eco admin commandezeconomy.pay: Use /pay commandezeconomy.currency: Use /currency command- Bank Permissions:
ezeconomy.bank.create: Create a new bankezeconomy.bank.delete: Delete a bankezeconomy.bank.balance: View bank balanceezeconomy.bank.deposit: Deposit to a bankezeconomy.bank.withdraw: Withdraw from a bankezeconomy.bank.addmember: Add a member to a bankezeconomy.bank.removemember: Remove a member from a bankezeconomy.bank.info: View bank infoezeconomy.bank.admin: All bank admin actions
๐ Security Notes for Server Owners
- Limit admin permissions: Only grant
ezeconomy.ecoandezeconomy.bank.adminto trusted staff. - Use a permissions plugin: Manage access with groups/roles so players cannot self-assign economy powers.
- Lock down database access: Use a dedicated database user with minimal privileges and keep credentials private.
- Back up economy data: Schedule regular backups of your storage files or database to recover from mistakes or exploits.
- Review bank permissions: Consider limiting bank creation/withdraw permissions to prevent abuse on public servers.
๐ก๏ธ Dupe Prevention Safeguards
- Thread-safe balance updates: Economy operations are designed to avoid race conditions during concurrent deposits, withdrawals, and transfers.
- Server-side validation: Commands and transactions validate amounts to prevent invalid or malformed requests.
- Storage integrity: Backends use consistent write patterns to reduce the risk of partial or conflicting balance writes.
โ๏ธ Configuration Example
config.yml (Only global settings):
storage: yml
multi-currency:
enabled: false
default: "dollar"
currencies:
dollar:
display: "Dollar"
symbol: "$"
decimals: 2
euro:
display: "Euro"
symbol: "โฌ"
decimals: 2
gem:
display: "Gem"
symbol: "โฆ"
decimals: 0
conversion:
dollar:
euro: 0.95
gem: 0.01
euro:
dollar: 1.05
gem: 0.012
gem:
dollar: 100
euro: 80config-yml.yml (YML storage settings):
yml:
file: balances.yml
per-player-file-naming: uuid
data-folder: dataconfig-mysql.yml (MySQL storage settings):
mysql:
host: localhost
port: 3306
database: ezeconomy
username: root
password: password
table: balancesconfig-sqlite.yml (SQLite storage settings):
sqlite:
file: ezeconomy.db
table: balances
banksTable: banksconfig-mongodb.yml (MongoDB storage settings):
mongodb:
uri: mongodb://localhost:27017
database: ezeconomy
collection: balances
banksCollection: banksโฌ๏ธ Installation
- Place
EzEconomy.jarin your plugins folder - Configure
config.ymland the appropriateconfig-*.ymlfile for your storage type - Restart your server
๐ Integration
- EzEconomy automatically registers as a Vault provider
- No extra setup required for Vault-compatible plugins
- PlaceholderAPI support:
- Use placeholders in chat, scoreboard, and other plugins:
%ezeconomy_balance%โ Your balance%ezeconomy_balance_<currency>%โ Your balance in a specific currency (e.g.,%ezeconomy_balance_euro%)%ezeconomy_bank_<bank>%โ Balance of a specific bank%ezeconomy_top_1%โ Top 1 player balance (replace 1 with rank)%ezeconomy_currency%โ Your preferred currency
- Works with all PlaceholderAPI-compatible plugins
- Use placeholders in chat, scoreboard, and other plugins:
๐ ๏ธ Developer: Custom Storage Providers
EzEconomy supports custom storage backends (YML, MySQL, SQLite, MongoDB, or your own). You can implement your own provider for any database or storage system.
How to add a custom provider:
- Implement the
StorageProviderinterface in your plugin or module. - Register your provider before EzEconomy loads:
EzEconomy.registerStorageProvider(new YourProvider(...));
- Only one provider can be registered. If set, EzEconomy will use it instead of YML/MySQL.
- See the JavaDoc in
StorageProvider.javafor required methods.
This allows you to use SQLite, MongoDB, Redis, or any other system for player balances and banks.
On this page
Languages
Java100.0%
Contributors
MIT License
Created December 31, 2025
Updated March 2, 2026