FAQ: Bank Interest Disabled / Not Arriving
You expected interest to be applied to the bank every hour and it doesn’t happen. Here’s the checklist in order of probability.1. bank.interest.enabled: false — master switch
percent_per_period is > 0, BankService.start() does not schedule the task if enabled is false (BankService.java:119-125):
enabled: false none of this happens.
2. percent_per_period is 0 or negative
Same guard: interestPct > 0. If you have it set to 0 (for testing) the task is not scheduled.
3. every_minutes is 0
Guard: interestMinutes = Math.max(1L, config.getLong(...)). Internally it is forced to 1; but if you set it very high (1440 = 1 day) you’ll think it doesn’t work until 24 hours have passed.
4. The player’s bank balance is 0
InsideapplyInterest():
bank_balance = 0 will never have interest applied even if everything else is perfect. They must have deposited something first. /vault bank → Deposit.
5. Bank balance was not saved
BankService.depositBank(uuid, amount) writes to bank_balances.yml:
bank_balances.yml.
6. Async scheduler cancelled or plugin disabled
interestTask is stored in a volatile BukkitTask. If there is an unhandled exception in some plugin that kills Bukkit’s async thread, the task will not run again.
Quick diagnosis:
- Wait 1 minute and run
/vault reload(recreates all services). - If after the reload it starts working, the task was stopped. Look for warnings in the log from the last hour.
7. TAX confused with INTEREST
Both schedulers are independent:/vault history looking for TxType.TAX or TxType.INTEREST. The bank GUI (SLOT_INFO slot 22) shows the next formatted interest/tax.
8. Interest does arrive but is minuscule
Formula:interest = bankBal × percent_per_period / 100.
With percent_per_period: 0.5:
- Bank = 100 → interest = 0.5
- Bank = 1,000 → interest = 5
- Bank = 1,000,000 → interest = 5,000
percent_per_period: 5.