Documentation

BankCore

Standalone bank and economy plugin, fully configurable in game.

v1.0.01.14 - 26.2Spigot / PaperFolia supportedReleased
BankCore overview

BankCore splits money into a wallet you carry and a bank you save into, then builds tiers, interest and a leaderboard on top of it. It can be your whole economy or sit on top of the one you already run.

Every tier, interest bracket, menu and message is edited from an in game admin hub, so tuning the economy never means opening a config file or restarting the server.

Tested on Paper and Folia, against SQLite and MySQL.

What it does

Wallet and bank, kept apart
The wallet is spending money, the bank is savings. Shops spend the wallet, so a plugin can never quietly drain the pot a player is saving on purpose.
Tiers and interest
Bank capacity grows through tiers players buy into, and interest pays out on a bracket you set. Both are edited in game.
Four ways to speak Vault
Provide the economy, consume somebody else's, decide automatically, or ignore Vault entirely. Set it once and the rest follows.
Cached leaderboard
The top list is cached and refreshed on a timer, so a scoreboard asking every tick never touches the database.
Transaction history
Every movement is recorded and paged in game, so a player asking where their money went can be answered without a database client.
Folia, SQLite and MySQL
Verified on Paper and Folia against both storage backends, so it runs on a single box or a real network.

Installation

  1. Drop BankCore.jar into your server's plugins folder.
  2. Restart the server. The plugin writes its own configuration on first start.
  3. Run /bank admin hub in game to set everything up. There is no file editing step.
iEverything ships in one jar. The shared framework is shaded in, so BankCore does not depend on any other Core plugin and any number of them run side by side.

Optional integrations

All of these are soft dependencies. BankCore loads and runs with none of them installed.

PluginWhat it adds
VaultReads or provides the server economy, depending on the mode you choose.
PlaceholderAPIRegisters the placeholder expansion listed below.
ItemsCoreCustom ItemsCore items are understood and displayed properly.
LuckPermsPermission driven limits resolve for offline players too.

Commands

Generated from the plugin's own command registry at version 1.0.0, so this list cannot drift out of date.

/bankBank balance, deposits, withdrawals and transfers
Usage
UsagePermissionDescription
/bankbankcore.openBank balance, deposits, withdrawals and transfers
/bank <player>bankcore.open.othersOpen somebody else's bank screen for them
Subcommands
UsagePermissionPlayer onlyDescription
/bank balance [player]bankcore.balancenoShow your wallet and bank balance
/bank deposit <amount>bankcore.deposityesMove money from your wallet into the bank
/bank withdraw <amount>bankcore.withdrawyesMove money from the bank into your wallet
/bank pay <player> <amount>bankcore.payyesSend money from your wallet to another player
/bank history [page]bankcore.historyyesShow your recent transactions
/bank top [page]bankcore.topnoShow the richest players
/bank upgrade [confirm]bankcore.upgradeyesUpgrade your bank to the next tier
/bank admin [action] [player] [amount]bankcore.adminnoAdministration commands
/bank admin actions
UsagePermissionDescription
/bank admin give <player> <amount>bankcore.admin.giveAdd money to an account
/bank admin take <player> <amount>bankcore.admin.takeRemove money from an account
/bank admin set <player> <amount>bankcore.admin.setSet a bank balance
/bank admin wallet <player> <amount>bankcore.admin.walletSet a wallet balance
/bank admin reset <player>bankcore.admin.resetWipe an account back to its starting balance
/bank admin hubbankcore.adminOpen the admin hub
/bank admin tiersbankcore.adminEdit the bank tiers and interest brackets
/bank admin menusbankcore.admin.menusEdit any menu in game
/bank admin settingsbankcore.admin.settingsEdit the settings in game
/bank admin messagesbankcore.admin.settingsEdit any player facing message
/bank admin reloadbankcore.admin.reloadReload the configuration

Permissions

everyone is granted to all players, operator only to ops, and nobody must be granted explicitly by a permissions plugin.

NodeDefaultDescription
bankcore.*operatorGrants every bankcore permission
bankcore.adminoperatorUse the admin commands
bankcore.admin.giveoperatorAdd money to an account
bankcore.admin.menusoperatorEdit the menus in game
bankcore.admin.reloadoperatorReload the configuration
bankcore.admin.resetoperatorReset an account
bankcore.admin.setoperatorSet a bank balance
bankcore.admin.settingsoperatorEdit the settings in game
bankcore.admin.takeoperatorRemove money from an account
bankcore.admin.walletoperatorSet a wallet balance
bankcore.balanceeveryoneCheck your own balance
bankcore.balance.othersoperatorCheck another player's balance
bankcore.depositeveryoneDeposit into the bank
bankcore.historyeveryoneView your transaction history
bankcore.openeveryoneOpen your own bank screen
bankcore.open.othersoperatorOpen somebody else's bank screen for them, for npc commands
bankcore.payeveryoneSend money to another player
bankcore.topeveryoneView the balance leaderboard
bankcore.upgradeeveryoneUpgrade your bank tier
bankcore.withdraweveryoneWithdraw from the bank

Placeholders

Requires PlaceholderAPI. Turn the expansion off with integrations.placeholderapi: false.

Every key below is walked by the plugin's own self test, which fails if one stops resolving, so this list cannot quietly go out of date.

Per player

A per player key resolves only for a player whose account is loaded, which means anyone online.

PlaceholderExampleNotes
%bankcore_wallet%$1,250.00money the player is carrying
%bankcore_bank%$48,000.00money in the bank
%bankcore_total%$49,250.00wallet plus bank
%bankcore_wallet_raw%1250.0unformatted, for sorting and maths
%bankcore_bank_raw%48000.0
%bankcore_total_raw%49250.0
%bankcore_wallet_short%1.25kcompact, for scoreboards
%bankcore_bank_short%48k
%bankcore_total_short%49.25k
%bankcore_tier%Silvercurrent tier name
%bankcore_tier_index%2
%bankcore_tier_next%Goldempty at the highest tier
%bankcore_tier_next_cost%$5,000,000.00empty at the highest tier
%bankcore_capacity%$10,000,000.00Unlimited when the tier is uncapped
%bankcore_capacity_raw%1.0E70.0 means unlimited
%bankcore_space%$9,952,000.00room left in the bank
%bankcore_interest%$620.00what the next payout pays at the current balance
%bankcore_interest_raw%620.0

Server wide

These answer with no player, so they work on a lobby scoreboard or in a message.

PlaceholderExampleNotes
%bankcore_symbol%$
%bankcore_currency%coin
%bankcore_currency_plural%coins

Leaderboard

Append the position, starting at 1. These read the cached leaderboard and never touch the database, because a placeholder can be asked for on every scoreboard tick.

PlaceholderExampleNotes
%bankcore_top_name_1%Notch
%bankcore_top_amount_1%$2,400,000.00
%bankcore_top_amount_raw_1%2400000.0

Vault modes

auto provides the economy if nothing else has, otherwise uses the one that has. provide registers BankCore as the server economy. consume leaves the economy to another plugin and puts the bank on top of it. off ignores Vault entirely.

As a provider BankCore exposes the wallet, never the bank. The bank is a savings pot the player withdraws from on purpose, and a shop plugin quietly spending it would defeat the point of having one. Vault bank methods answer NOT_IMPLEMENTED rather than pretending.

In consume mode the other plugin owns the wallet and BankCore's own column becomes a mirror kept in step on every read. The leaderboard then ranks on the bank alone, because the mirror is stale for anyone who has not logged in since.