Documentation
[HR]
Quick Start
- Drop the jar in plugins/.
- Start the server once to generate configs.
- Edit plugins/REconomy/config.yml:
- storage.mode: MYSQL or YAML
- If MYSQL: set host, port, database (default: test), username, password
- (Optional) Install Vault and/or PlaceholderAPI.
- Run /eco reload (or restart).
[HR]
Commands & Permissions
Code (Text):
/balance - reconomy.balance (true)
/balance <player> - reconomy.balance.others (op) or reconomy.admin
/balancetop [page] - reconomy.baltop (true)
/pay <player> <amount> - reconomy.pay (true)
/eco set <player> <amount> - reconomy.admin (op)
/eco add <player> <amount> - reconomy.admin (op)
/eco remove <player> <amount> - reconomy.admin (op)
/eco reload - reconomy.admin (op)
Amounts support suffixes: k/m/b/t (e.g. 2.5k, 3m)
[HR]
Configuration (Key Options)
Code (YAML):
storage:
mode
: MYSQL
# YAML | MYSQL
mysql:
host
: 127.0.0.1
port
: 3306
database
: test
# default
username
: root
password
:
""
use-ssl
: false
pool:
connection-timeout-ms
: 2000
# faster fail when DB is down
max-pool-size
: 10
min-idle
: 2
driver:
connect-timeout-ms
: 1500
socket-timeout-ms
: 1500
cache:
enabled
: true
ttl-seconds
: 120
max-size
: 10000
failover:
retry-seconds
: 15
# circuit breaker window
quiet-logs
: true
# one-line warnings
fallback:
enabled
: true
folder
: data-fallback
autosave-interval-seconds
: 120
economy:
starting-balance
: 0.00
format:
decimal-places
: 2
grouping
: true
abbreviate:
enabled
: true
min
: 1000
decimal-places
: 1
[HR]
Messages (Placeholders)
- %balance% → exact value (e.g. 12,345.67)
- %balance_formatted% → abbreviated value (K/M/B/T)
- Other common: %player%, %target%, %rank%, %page%, %pages%, %amount%
Code (YAML):
balance-self
:
"&aYour balance:&f %balance% &7(&f%balance_formatted%&7)"
balance-other
:
"&a%target%&7's balance:&f %balance% &7(&f%balance_formatted%&7)"
[HR]
Integrations
- Vault: registers as Economy provider so shops/jobs/etc. can use REconomy automatically.
- PlaceholderAPI: global placeholders for scoreboards/menus:
Code (Text):
%reconomy_balance% -> exact balance (respects config)
%reconomy_balance_formatted% -> abbreviated balance (K/M/B/T)
[HR]
Failover Behavior (MySQL → YAML)
- If SQL fails, REconomy writes/reads on YAML automatically.
- A circuit breaker skips SQL attempts during retry-seconds to avoid delays on joins.
- When SQL comes back, the plugin recovers and continues on PRIMARY.
[HR]
Troubleshooting
- Join delays when DB is down: lower storage.mysql.pool.connection-timeout-ms (e.g. 2000), keep failover.retry-seconds ≥ 10.
- “Account not loaded”: the player joined exactly during a storage switch; try again or relog once.
- Spammy stacktraces: set failover.quiet-logs: true and debug: false.
- Switching storage: change storage.mode, then /eco reload or restart.
[HR]
Developer Hooks (Events)
- PreBalanceChangeEvent / BalanceChangeEvent
- PreTransferEvent / TransferEvent
- AccountLoadEvent / AccountSavedEvent
- StorageFailoverEvent / StorageRecoveryEvent
Code (Java):
@EventHandler
public
void onBalanceChange
(BalanceChangeEvent e
)
{
// e.getPlayerUuid(), e.getOldBalance(), e.getNewBalance(), e.getDelta(), e.getCause()
}
[HR]
Performance Tips
- Keep MySQL on the same machine or low-latency network.
- Use reasonable pool sizes (max-pool-size: 10, min-idle: 2).
- Enable SQL cache for read-heavy setups (ttl: 60–180s).
[HR]
FAQ
- Does it work without MySQL? Yes, set storage.mode: YAML.
- How to show short numbers (12.3K)? Use %balance_formatted% in messages or PAPI.
- Is Vault mandatory? No, but recommended if you use other economy-based plugins.