Configuration
EzEconomy uses a main config.yml plus a storage-specific configuration file. Only enable the storage provider you plan to use.
config.yml
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: 80
Banking toggle
Enable or disable the built-in bank subsystem (commands, GUIs, Vault bank methods, and bank placeholders).
banking:
enabled: true
Set banking.enabled to false if you prefer using a different bank plugin or want to disable shared bank accounts.
Caching strategy
Configure how EzEconomy caches frequently-read values (placeholders, top lists, GUI data).
# Available options: LOCAL, REDIS, BUNGEECORD, DATABASE
caching-strategy: LOCAL
LOCAL: in-process memory cache only (default)REDIS: use the Redis extension for a central cache shared across serversBUNGEECORD: proxy-backed cache using plugin messaging to a proxy-side storeDATABASE: use the configured database as a cache backend (usesezeconomy_cachetable)
If caching-strategy is not present, the plugin will fallback to the older locking-strategy value for backward compatibility.
Locking
Configure how EzEconomy handles distributed lock acquisition for transfer operations.
locking:
ttl-ms: 5000 # How long a lock is held before automatic expiry
retry-ms: 50 # Delay between lock acquisition retries
max-attempts: 100 # Maximum retry attempts before giving up
These values apply regardless of the chosen locking-strategy (LOCAL, REDIS, or BUNGEECORD).
Cross-server messaging
Enable cross-server payment notifications and player list synchronisation. Requires a shared storage backend (MySQL or MongoDB) for full functionality.
cross-server:
enabled: true
The transport is auto-detected based on which extensions are loaded (Velocity, BungeeCord, or Redis). See Cross-server messaging for details.
Debug logging
Enable verbose diagnostic output from EzEconomy and its internal libraries.
debug: false
When true:
- Jaloquent SQL operations are logged to the server console.
- Cross-server messaging events (relay, delivery, pending notifications) are printed.
- Daily-reward diagnostics (invalid sounds, timing) are logged.
Leave false in production to keep your console clean.
Notes
storagemust match one of the supported providers:yml,mysql,sqlite,mongodb, orcustom.- When
multi-currency.enabledisfalse, EzEconomy uses only thedefaultcurrency. - Conversion rates are directional. Define both directions if you need round trips.
YML Storage
config-yml.yml
yml:
file: balances.yml
per-player-file-naming: uuid
data-folder: data
Recommended for: small servers, quick setup, and testing.
MySQL Storage
config-mysql.yml
mysql:
host: localhost
port: 3306
database: ezeconomy
username: root
password: password
table: balances
Recommended for: shared hosting, large servers, and cross-server networks.
Additional recommended MySQL tuning options (also present in config.yml under performance.mysql):
mysql:
jdbc-params: "..."
pool:
enabled: true
maximum-pool-size: 32
minimum-idle: 8
connection-timeout-ms: 8000
idle-timeout-ms: 240000
max-lifetime-ms: 1200000
balance-background-queue-size: 10000
balance-background-batch-size: 128
balance-background-flush-interval-ms: 200
Notes:
balance-background-flush-interval-mscontrols how frequently aggregated balance deltas are flushed to the database; lower values increase persistence frequency at the cost of extra DB activity.balance-background-batch-sizecontrols how many deltas are grouped per upsert batch. Increase on busy servers to amortize DB writes.- Hikari pool tuning values should be adjusted to match your server’s connection capacity and the database server’s limits.
SQLite Storage
config-sqlite.yml
sqlite:
file: ezeconomy.db
table: balances
banksTable: banks
Recommended for: single-server environments that want a lightweight database.
MongoDB Storage
config-mongodb.yml
mongodb:
uri: mongodb://localhost:27017
database: ezeconomy
collection: balances
banksCollection: banks
Recommended for: teams already using MongoDB in their infrastructure.
Custom Storage
Set storage: custom and register a provider from another plugin.
EzEconomy.registerStorageProvider(new YourProvider(...));
See the Developer API page for details.