-
Notifications
You must be signed in to change notification settings - Fork 6
faq bank interest disabled
--
You expected interest to be applied to the bank every hour and it doesn't happen. Here's the checklist in order of probability.
bank:
interest:
enabled: true # ← this is the general switch
every_minutes: 60
percent_per_period: 0.5Even if percent_per_period is > 0, BankService.start() does not schedule the task if enabled is false (BankService.java:119-125):
boolean interestEnabled = isInterestEnabled();
if (interestEnabled && interestPct > 0 && interestMinutes > 0) {
// schedule runTaskTimerAsynchronously
}With enabled: false none of this happens.
Same guard: interestPct > 0. If you have it set to 0 (for testing) the task is not scheduled.
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.
Inside applyInterest():
for (Map.Entry<UUID, Double> e : bankBalances.entrySet()) {
double bal = sanitize(e.getValue());
if (bal <= 0) continue; // ← skips to the next one
...
}A player with bank_balance = 0 will never have interest applied even if everything else is perfect. They must have deposited something first. /vault bank → Deposit.
BankService.depositBank(uuid, amount) writes to bank_balances.yml:
bankBalances.merge(uuid, amount, ...); save();If the file is not written due to permissions (see Installation FAQ), on restart it goes back to 0 and point 4 kicks in. Check the modification time of bank_balances.yml.
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.
Both schedulers are independent:
bank:
interest: { ... } # ← gives money to the player
tax: { ... } # ← TAKES money above bank.tax.thresholdIf you confuse the two, you thought you were going to gain and ended up losing. Check /vault history looking for TxType.TAX or TxType.INTEREST. The bank GUI (SLOT_INFO slot 22) shows the next formatted interest/tax.
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
If you expected 5% and put 0.5 (0.5%) it's normal. Raise it to percent_per_period: 5.
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
- 📋 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
- Java API
- 📜 Skript
- 🧰 Contribute · Dual Maven Build