Bank (/vault bank)
The bank introduces a second independent balance per player (stored in bank_balances.yml) separate from the wallet. Players can deposit funds to generate interest or withdraw them when needed.
Accessing the Bank
Open from:- Slot 13 🏦 Bank of the main
/vaultmenu (VaultMenuService.java:79-97, materialGOLD_BLOCK) - Command
/vault bank
BankMenuService with a 45-slot inventory.
GUI Layout
Quick Picks with Shift ×10
The 4 percentage buttons behave differently when pressing Shift + Click (BankMenuService.java:270–280):
Quick picks use
niceRound() to round to friendly multiples (5 / 10 / 100 / 1,000 / 10,000 / 100,000 / 1,000,000…).
Bank Transactions
Each operation records aTxType in the transaction log (BankService.java:85–106):
BANK_DEPOSIT— On deposit: withdraws from wallet → adds to bank_balanceBANK_WITHDRAW— On withdrawal: subtracts from bank_balance → deposits into wallet
bank_balances.yml file stores a balances.<UUID>: value map and optionally teams.<teamId> for team banks. It is persisted with save() after each operation.
Interest and Tax Configuration
Interest (applyInterest)
Asynchronous scheduler (runTaskTimerAsynchronously) that applies percent_per_period% on the full bank_balance every every_minutes minutes. Records TxType.INTEREST for every player with balance > 0.
If enabled: false, no task is scheduled regardless of the percentage value.
Progressive Tax (applyTax)
Only applies to the portion of the balance STRICTLY ABOVE THE THRESHOLD. Example:
- threshold = 1,000,000 ; balance = 1,500,000
- Only 500,000 is taxed × 0.1% = 500
TxType.TAX and subtracts from bank_balance.