eBanks | Banking, Loans, GUI & Web Interface icon

eBanks | Banking, Loans, GUI & Web Interface -----

Bank, borrow, and manage your money — in-game and on the web



eBanks
Official Documentation

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Table of Contents


1. Installation
2. Configuration
3. Messages & Translation
4. Commands & Permissions
5. Bank GUI
6. Web Interface
7. Loan System
8. Interest System
9. Death Penalty
10. TPS Guard
11. Database Setup
12. Admin Panel
13. Update Checker
14. Troubleshooting


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

1. Installation

Requirements

Paper or Spigot 1.21
Vault
An economy plugin such as EssentialsX


Steps

1. Download and install Vault into your /plugins folder
2. Download and install EssentialsX into your /plugins folder
3. Download eBanks.jar and drop it into your /plugins folder
4. Start or restart your server — do NOT use /reload
5. Config files will be generated at plugins/eBanks/config.yml and plugins/eBanks/messages.yml
6. Edit the config and set web.url to your server's public IP
7. Grant ebanks.use, ebanks.web and ebanks.loan to your player group in LuckPerms or your permission plugin
8. Restart again and you are done


⚠️ Important
Never use /reload or PlugMan to reload eBanks. Always do a full server restart when making config changes, or use /bank reload for config-only changes.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

2. Configuration

The full default config.yml is shown below with explanations for every option.

Code (Text):

# ============================================================
#   eBanks Configuration  —  v1.1.1
#   For chat messages and translations, see messages.yml
# ============================================================

# Minimum transaction amounts (0 = no minimum)
minimum-deposit: 0
minimum-withdraw: 0

# Confirmation screen threshold — players must confirm any withdraw or send
# above this amount. Set to 0 to disable confirmations entirely.
confirm-threshold: 10000

# ── Update Checker ───────────────────────────────────────────
update-checker:
  enabled: true
  resource-id: 133082
  notify-console: true
  notify-admins: true

# ── TPS Guard ────────────────────────────────────────────────
# Blocks /bank and /bank web when server TPS drops below the threshold.
# Prevents balance corruption under heavy load.
# Can be toggled live from /bankadmin → General Settings.
tps-guard:
  enabled: true
  minimum-tps: 15.0

# ── Web Interface ───────────────────────────────────────────
web:
  enabled: true
  port: 20731
  url: "http://YOUR_SERVER_IP:20731"

# ── Database ────────────────────────────────────────────────
# type: sqlite → stores data in plugins/eBanks/ebanks.db (recommended)
# type: mysql  → uses the MySQL settings below
database:
  type: sqlite
  mysql:
    host: localhost
    port: 3306
    name: ebanks
    username: username
    password: password
    pool-size: 10
    connection-timeout: 30000
    idle-timeout: 600000
    max-lifetime: 1800000
    use-ssl: false

# ── Bank Settings ────────────────────────────────────────────
bank:
  default-limit: 1000

  limit-increase:
    enabled: true
    cost-per-increase: 500.0
    cost-multiplier: 1.5
    increase-amount: 1000.0
    max-limit: -1

  interest:
    enabled: true
    interval: 86400
    tiers:
      - min-balance: 0
        rate: 0.5
      - min-balance: 100000
        rate: 1.0
      - min-balance: 1000000
        rate: 2.0
      - min-balance: 10000000
        rate: 1.5

  loan:
    enabled: true
    max-amount: 50000.0
    interest-rate: 10.0
    interest-interval: 18000
    collectors:
      missed-payments-before-spawn: 2
      count: 3
      name: "&c&l Interest Collector"
      # Mob type to use as collector (must be a valid Bukkit EntityType)
      # Examples: IRON_GOLEM, ZOMBIE, SKELETON, WARDEN, VINDICATOR
      mob: "IRON_GOLEM"

# ── Death Penalty ────────────────────────────────────────────
# Players lose a percentage of their WALLET balance on death.
# Money stored in the bank is always safe.
# Rank-based percentages are checked top-down — first match wins.
# Set a rank's percentage to 0 to fully exempt that rank.
# Permission ebanks.deathpenalty.exempt bypasses all penalties.
death-penalty:
  enabled: true
  default-percentage: 50.0
  ranks:
    - permission: ebanks.deathpenalty.rank.vip
      percentage: 25.0
    - permission: ebanks.deathpenalty.rank.mvp
      percentage: 12.5
    - permission: ebanks.deathpenalty.rank.elite
      percentage: 0.0
 
Configuration Options Explained


minimum-deposit — The minimum amount a player must deposit in a single transaction. Set to 0 to disable.
minimum-withdraw — The minimum amount a player must withdraw in a single transaction. Set to 0 to disable.
confirm-threshold — Any withdrawal or send at or above this amount will show a confirmation GUI before executing. Set to 0 to disable confirmations entirely.
update-checker.enabled — Enables or disables the automatic update checker entirely.
update-checker.resource-id — The SpigotMC resource ID used to check for updates. Do not change this.
update-checker.notify-console — Whether to log update notifications to the console on startup.
update-checker.notify-admins — Whether to notify online players with ebanks.admin permission when they join if an update is available.
tps-guard.enabled — Enables or disables the TPS Guard. When enabled, /bank and /bank web are blocked if the server TPS is below the threshold. Can be toggled live from /bankadmin → General Settings without a restart.
tps-guard.minimum-tps — The TPS threshold below which the guard kicks in. Players attempting to open the bank or web interface will be blocked with a message until TPS recovers. Can be changed live from the admin GUI.
web.enabled — Enables or disables the web interface entirely.
web.port — The port the web server runs on. Make sure this port is open in your firewall.
web.url — The public URL players receive when they use /bank web. Must be set to your server's public IP or domain.
database.type — Set to sqlite or mysql.
bank.default-limit — How much money new players can store in their bank by default.
bank.limit-increase.enabled — Whether players can pay to increase their bank limit.
bank.limit-increase.cost-per-increase — The base cost of the first upgrade.
bank.limit-increase.cost-multiplier — How much more each subsequent upgrade costs. 1.5 means each upgrade is 1.5× the previous (e.g. $500 → $750 → $1,125...).
bank.limit-increase.increase-amount — How much the limit grows per upgrade.
bank.limit-increase.max-limit — The absolute maximum limit a player can reach. Set to -1 for unlimited.
bank.interest.enabled — Enables or disables the interest system.
bank.interest.interval — How often interest is paid out in seconds.
bank.interest.tiers — Define balance thresholds and their corresponding interest rates. The highest matching tier is applied.
bank.loan.enabled — Enables or disables the loan system.
bank.loan.max-amount — The maximum amount a player can borrow at once.
bank.loan.interest-rate — The interest rate charged per interval as a percentage of the outstanding principal.
bank.loan.interest-interval — How often loan interest is charged in seconds.
bank.loan.collectors.missed-payments-before-spawn — How many missed interest payments before Debt Collectors are sent.
bank.loan.collectors.count — How many Debt Collectors to spawn.
bank.loan.collectors.name — The custom name displayed above the collectors. Supports & color codes.
bank.loan.collectors.mob — The mob type used as a Debt Collector. Must be a valid Bukkit EntityType (e.g. IRON_GOLEM, ZOMBIE, WARDEN, VINDICATOR). Invalid values fall back to IRON_GOLEM.
death-penalty.enabled — Enables or disables the death penalty system entirely.
death-penalty.default-percentage — The percentage of wallet balance lost on death for players with no matching rank permission. Set to 0 to make unranked players lose nothing.
death-penalty.ranks — A list of rank tiers, each with a permission node and a percentage. Checked top-down — the first permission the player has wins. You can add as many custom tiers as you like. Assign the permission to the relevant group in LuckPerms and it will be picked up automatically.


Tip — v1.0.5+
Most config values can now be changed directly in-game from the admin GUI (/bankadmin) without touching config.yml at all. Changes save instantly.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

3. Messages & Translation

As of v1.0.8, every chat message sent to players is fully configurable via a separate messages.yml file, generated automatically in plugins/eBanks/ on first start.

How It Works

Open plugins/eBanks/messages.yml and edit any message freely
All messages support & color codes
Placeholders like {amount}, {player} and {rate} are documented above each entry in the file
Use /bank reload to apply changes without restarting


Prefix

The prefix key at the top of messages.yml is applied to every single chat message the plugin sends. Change it once and it takes effect everywhere.


Code (Text):
prefix: "&8[&6eBanks&8] &r"
Missing Keys

As of v1.1.0, if a key is missing from your messages.yml — either because it was deleted or because it was added in a newer version — eBanks will automatically fall back to the bundled default for that key. This means existing installs will never see Missing message: errors after an update. A warning is still logged to the console so you know a key is absent and can add it to your file if you want to customise it.


Note
GUI item names and lore inside inventory menus are not configurable via messages.yml — only chat messages are included. This is intentional to keep the file clean and easy to edit. GUI text customisation may be added in a future update.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

4. Commands & Permissions

Player Commands


/bank
Opens the bank GUI.
Permission: ebanks.use (default: false)

/bank web
Generates a personal web interface link valid for 30 minutes.
Permission: ebanks.web (default: false)

/loan
Shows your current loan status, interest rate and max loan amount.
Permission: ebanks.loan (default: false)

/loan <amount>
Takes out a loan of the specified amount. The money is sent directly to your wallet.
Permission: ebanks.loan (default: false)

/borrow <amount>
Alias for /loan <amount>.
Permission: ebanks.loan (default: false)

/payinterest
Pays off your outstanding loan interest from your wallet.
Permission: ebanks.loan (default: false)

/payloan
Pays off your entire loan including all outstanding interest from your wallet.
Permission: ebanks.loan (default: false)


Admin Commands


/bankadmin
Opens the in-game admin GUI. Shows plugin info, feature statuses and all live config values.
Aliases: /bank admin, /ebankadmin, /badmin
Permission: ebanks.admin (default: op)

/bank admin web
Generates a secure web admin panel link valid for 30 minutes.
Permission: ebanks.admin (default: op)

/bank admin give <player> <amount|all>
Adds money directly to the specified player's bank balance. Use all as the amount to fill their bank to its limit. Works even if the player is offline.
Permission: ebanks.admin (default: op)

/bank admin take <player> <amount|all>
Removes money directly from the specified player's bank balance. Use all as the amount to clear their bank entirely. Works even if the player is offline.
Permission: ebanks.admin (default: op)

/bank admin loan
Shows current loan configuration.
Permission: ebanks.admin (default: op)

/bank admin loan enable
Enables the loan system.
Permission: ebanks.admin (default: op)

/bank admin loan disable
Disables the loan system.
Permission: ebanks.admin (default: op)

/bank admin loan maxamount <amount>
Sets the maximum loan amount players can borrow.
Permission: ebanks.admin (default: op)

/bank admin loan rate <percent>
Sets the loan interest rate percentage.
Permission: ebanks.admin (default: op)

/bank admin loan interval <seconds>
Sets how often loan interest is charged in seconds.
Permission: ebanks.admin (default: op)

/bank reload
Reloads config.yml and messages.yml without restarting the server.
Permission: ebanks.admin (default: op)


Permissions Summary


ebanks.use — Use /bank and the bank GUI (default: false)

ebanks.web — Use /bank web to access the web interface (default: false)
ebanks.loan — Use all loan commands (default: false)
ebanks.admin — Use all admin commands, admin GUI and web admin panel (default: op)
ebanks.deathpenalty.exempt — Fully bypass the death penalty (default: false)
ebanks.deathpenalty.rank.vip — VIP death penalty tier (default: false)
ebanks.deathpenalty.rank.mvp — MVP death penalty tier (default: false)
ebanks.deathpenalty.rank.elite — Elite death penalty tier (default: false)

⚠ As of v1.0.7, permissions default to false. You must grant ebanks.use, ebanks.web and ebanks.loan to your player groups in LuckPerms or your permission plugin. This change was made to prevent eBanks from overwriting your existing permission setup on install.



━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

5. Bank GUI

Open the bank GUI with /bank. The GUI is a 54-slot chest inventory with the following buttons:


▸ Your Account (slot 4, center top)
Shows your name, current bank balance, bank limit, available space and wallet balance.

▸ Deposit (green, slot 20)
Transfers money from your wallet into your bank. You will be prompted to type an amount in chat. Type cancel to abort.

▸ Withdraw (red, slot 24)
Transfers money from your bank back to your wallet. You will be prompted to type an amount in chat. Type cancel to abort. If the amount is at or above the configured confirm-threshold, a confirmation GUI will appear before the transaction executes.

▸ Transaction History (slot 29)
Opens a browsable history of your last 45 transactions with type, amount, description and timestamp.

▸ Send Money (slot 33)
Transfers money directly from your bank to another player's bank. Works even if the target player is offline — the money goes straight to their bank and they will see it in their transaction history when they log in. You will be prompted to type the player name then the amount. If the amount is at or above the configured confirm-threshold, a confirmation GUI will appear before the transaction executes. Type cancel at any prompt to abort.

▸ Increase Limit (slot 38)
Purchases a bank limit upgrade. Shows your current limit, the cost of the next upgrade, how much the limit will grow, and the maximum allowed limit. Each upgrade costs more than the last based on the configured multiplier. Only shown if limit increases are enabled in config.

▸ Interest Info (slot 42)
Shows your current interest rate, next estimated payout amount, time until next payout and all configured interest tiers. Only shown if interest is enabled in config.

▸ Loan (slot 46)
If you have no active loan, shows the interest rate, interval and max loan amount with a prompt to use /loan. If you have an active loan, shows your principal, interest owed and total debt. Only shown if loans are enabled in config.

▸ Open Web Interface (slot 49, compass)
Sends you a clickable link to your personal web interface. Only shown if the web interface is enabled in config.


Confirmation Screen

As of v1.1.1, any withdrawal or send at or above confirm-threshold (default $10,000) opens a separate confirmation GUI before the transaction is executed. The GUI shows the amount and target (for sends) with a green Confirm button and a red Cancel button. Cancelling returns you to the main bank GUI with no changes made. Set confirm-threshold: 0 in config.yml to disable this entirely.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

6. Web Interface

Setup

1. Make sure web.enabled is set to true in config.yml
2. Set web.url to your server's public IP address or domain, for example:


Code (Text):
web:
  enabled: true
  port: 20070
  url: "http://123.456.789.0:20070"

3. Make sure the port you set is open in your server's firewall and router
4. Players use /bank web in-game to get their personal link


Player Web Panel Features

View bank balance, wallet balance and interest rate
Bank storage progress bar
Deposit money from wallet to bank
Withdraw money from bank to wallet
Send money to any player by name — works even if they are offline
Take out a loan and view current loan status
Pay interest or full loan from the web panel
Full transaction history with color coded badges


Security

Every link contains a unique token tied to the player's UUID
Tokens expire after 30 minutes
Tokens are sent via secure request headers — never exposed in server logs or browser history
Tokens are invalidated on server restart
A player must be online to perform transactions through the web interface
Admin tokens are separate from player tokens and have their own expiry


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

7. Loan System

How It Works

1. A player runs /loan <amount> — the money is instantly deposited into their wallet
2. Every interest-interval seconds, interest is calculated as a percentage of the outstanding principal and added to their debt
3. The player uses /payinterest to pay only the accrued interest, or /payloan to clear everything at once
4. If the player misses enough payments, Debt Collector mobs will spawn around them and hunt them down until the debt is paid


Debt Collectors

Mob type is fully configurable — default is Iron Golem, but any valid Bukkit EntityType works (e.g. WARDEN, VINDICATOR, ZOMBIE)
Completely invincible — players cannot damage or kill them
Only spawn after a configurable number of missed payments (default: 2)
Players receive a warning message on each missed payment before collectors are sent
Instantly despawn the moment the player pays their debt with /payinterest or /payloan
Only spawn if the player is online when interest is charged
Any collectors left over from a server crash are automatically removed on startup
Mob type, count and name are all configurable in config.yml or via the admin GUI


Loan Rules

A player can only have one active loan at a time
The loan must be fully repaid before a new one can be taken out
The maximum loan amount is configurable in config.yml or via the admin GUI
Loans can be fully disabled via config or the admin GUI


Example

Player borrows $10,000 at 10% interest every 5 hours with collectors set to spawn after 2 missed payments.

After 5 hours: $1,000 interest added. Player gets a warning — 1 more missed payment before collectors arrive.
After 10 hours: Another $1,000 interest added. Debt Collectors spawn.
Player uses /payinterest → pays $2,000, collectors despawn instantly.
Player uses /payloan → pays the full $10,000 principal plus any outstanding interest at once.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

8. Interest System

eBanks pays interest directly into player bank balances automatically. Interest is calculated using a tiered system — the highest tier whose min-balance the player meets is applied.

Default Tiers


$0+0.5% per cycle
$100,000+1.0% per cycle
$1,000,000+2.0% per cycle
$10,000,000+1.5% per cycle

A "cycle" is one interest interval. With the default interval of 86400 seconds (24 hours), interest is paid once per day.


Customizing Tiers
You can add or remove as many tiers as you like in config.yml. Example:

Code (Text):
interest:
  enabled: true
  interval: 3600
  tiers:
    - min-balance: 0
      rate: 1.0
    - min-balance: 500000
      rate: 2.5
    - min-balance: 5000000
      rate: 1.8

Interest will not exceed the player's remaining available bank space
Players with a balance of 0 receive no interest
Interest is also checked when a player opens the GUI, not only on the scheduled timer
The interval and enabled state can be changed live from the admin GUI without editing config.yml


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

9. Death Penalty

When a player dies, eBanks deducts a percentage of their wallet balance. Money stored in the bank is always safe — giving players a real incentive to deposit.

How It Works

1. A player dies — eBanks checks their permissions against the rank tiers in config.yml top-down
2. The first matching rank permission wins and its percentage is applied
3. If no rank matches, default-percentage is used
4. The calculated amount is deducted from the player's wallet
5. The player receives a message after respawn showing how much was lost


Default Rank Tiers


No rank50% wallet lost
ebanks.deathpenalty.rank.vip25% wallet lost
ebanks.deathpenalty.rank.mvp12.5% wallet lost
ebanks.deathpenalty.rank.elite0% wallet lost
ebanks.deathpenalty.exemptno penalty at all


Adding Custom Rank Tiers
You can add as many custom tiers as you like in config.yml. Any permission string works — just assign it to the relevant group in LuckPerms and it will be picked up automatically. Order matters: the first matching permission wins, so put higher tiers above lower ones.

Code (Text):
death-penalty:
  enabled: true
  default-percentage: 50.0
  ranks:
    - permission: ebanks.deathpenalty.rank.vip
      percentage: 25.0
    - permission: ebanks.deathpenalty.rank.mvp
      percentage: 12.5
    - permission: ebanks.deathpenalty.rank.elite
      percentage: 0.0
    - permission: ebanks.deathpenalty.rank.donor   # custom
      percentage: 20.0
    - permission: ebanks.deathpenalty.rank.god     # custom
      percentage: 5.0
Rules

Only wallet balance is affected — bank balance is never touched
If the player's wallet is empty, nothing happens
Setting a rank's percentage to 0 effectively exempts that rank without needing the exempt node
The penalty can be toggled on/off and the default % changed live from /bankadmin → General Settings
Rank tiers are read from config.yml only — they are shown read-only in the admin GUI
The entire system can be disabled by setting death-penalty.enabled: false in config.yml


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

10. TPS Guard

The TPS Guard protects player balances during periods of server lag. When enabled, /bank and /bank web are automatically blocked if the server's TPS drops below a configurable threshold — preventing the rare balance corruption that could occur when deposits or withdrawals fire at the same moment as an interest or loan charge under heavy load.

How It Works

1. The server's current TPS is checked each time a player runs /bank or /bank web
2. If TPS is below tps-guard.minimum-tps, the player is shown a message and the command is blocked
3. Once TPS recovers above the threshold, access is restored automatically — no admin action needed


Atomic Transactions

As of v1.1.0, all deposits and withdrawals use SQL-level atomic transactions. This eliminates a rare edge case where a balance could be incorrectly written if an interest payout or loan charge fired at the exact same moment as a player transaction during a TPS drop. The TPS Guard and atomic transactions work together — the guard prevents new transactions from opening during lag, and atomic operations ensure any transactions that do complete are always written correctly.


Configuration

Code (Text):
tps-guard:
  enabled: true
  minimum-tps: 15.0

Both enabled and minimum-tps can be changed live from /bankadmin → General Settings — no restart required
Setting enabled: false disables the guard entirely without affecting atomic transaction protection
The default threshold of 15.0 TPS is suitable for most servers — lower it only if you have a specific reason to


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

11. Database Setup

SQLite (Default)

No setup required. Data is stored in plugins/eBanks/ebanks.db automatically. Recommended for small to medium servers. New columns are added automatically on startup so existing databases are always kept up to date.


MySQL

Recommended for large servers or networks. To switch to MySQL:


Code (Text):
database:
  type: mysql
  mysql:
    host: localhost
    port: 3306
    name: ebanks
    username: root
    password: yourpassword
    pool-size: 10
    use-ssl: false

1. Create a database named ebanks in your MySQL server
2. Update the credentials in config.yml
3. Set database.type to mysql
4. Restart your server — tables are created automatically


⚠️ Note
Migrating from SQLite to MySQL is not automatic. Player data will not carry over if you switch database types.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

12. Admin Panel

In-Game Admin GUI

Run /bankadmin (or /bank admin) to open the in-game admin GUI. No browser required. The main panel shows plugin info and feature statuses at a glance, with clickable sub-panels for every config category:


▸ Interest Settings — Toggle on/off, change payout interval
▸ Loan Settings — Toggle on/off, set max amount, interest rate, interval, collector mob type, collector count, missed payments threshold and collector name
▸ Limit Settings — Toggle upgrades on/off, set default limit, max limit, upgrade cost, cost multiplier and increase amount
▸ Web Settings — Toggle on/off, change port and URL
▸ General Settings — Set minimum deposit, minimum withdrawal, confirmation threshold, death penalty toggle and default penalty percentage, TPS Guard toggle and minimum TPS threshold


Click any value to edit it — you will be prompted to type the new value in chat. All changes save to config.yml instantly. Toggle buttons (enabled/disabled) flip immediately without leaving the GUI.

Admin Give & Take

Admins can add or remove money from any player's bank directly via command, without needing to open a GUI. Both commands work even while the target player is offline.

Code (Text):
/bank admin give <player> <amount|all>  - Add money to a player's bank
/bank admin take <player> <amount|all>  - Remove money from a player's bank
Use all as the amount to fill the account to its limit (give) or clear it entirely (take).

Web Admin Panel

Run /bank admin web to get a secure browser link valid for 30 minutes. From the web admin panel you can:


View and manage all player accounts, balances, limits and active loans
Search player accounts by name
Change transaction limits, interest, loan, web and death penalty settings


In-Game Loan Commands

If you prefer managing loans via chat commands:

Code (Text):
/bank admin loan                     - View current loan settings
/bank admin loan enable              - Enable loans
/bank admin loan disable             - Disable loans
/bank admin loan maxamount <amount>  - Set max loan amount
/bank admin loan rate <percent>      - Set interest rate
/bank admin loan interval <seconds>  - Set interest interval
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

13. Update Checker

eBanks automatically checks SpigotMC for newer versions on startup using the Spiget API. No extra dependencies are required.

How It Works

1. On startup, the plugin makes an async HTTP request to the Spiget API
2. It compares the fetched version against the running version
3. If a newer version is found, it notifies the console and any online admins immediately
4. Any admin with ebanks.admin permission will also see the notification when they join until the server is updated


Notification Placeholders

The update messages in messages.yml support the following placeholders:

%current_version% — The version currently running on your server
%new_version% — The latest version available on SpigotMC
%link% — Direct link to the SpigotMC resource page


Disabling
Set update-checker.enabled: false in config.yml to disable the checker entirely.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

14. Troubleshooting


eBanks disables itself on startup
Make sure Vault and an economy plugin like EssentialsX are installed and loaded before eBanks. Check your console for the exact error message.

Players lost access to /bank after updating to v1.0.7
As of v1.0.7 permissions default to false instead of true. You need to grant ebanks.use, ebanks.web and ebanks.loan to your player group in LuckPerms or your permission plugin. This is a one-time setup. See Section 4 for details.

Players are being blocked from /bank or /bank web
The TPS Guard is active and your server TPS has dropped below the configured threshold. This is intentional — access will restore automatically once TPS recovers. If you want to lower the threshold or disable the guard entirely, go to /bankadmin → General Settings or edit tps-guard in config.yml.

The web interface link doesn't work
Make sure web.url in config.yml is set to your actual server IP or domain and not the placeholder YOUR_SERVER_IP. Also make sure the port is open in your firewall. Free hosting providers like Falix only allow specific allocated ports — check your panel's Network tab and use one of the assigned ports.

The web interface says session expired
Tokens expire after 30 minutes. Run /bank web again to get a fresh link.

Players can't perform transactions on the web
Players must be online on the server to deposit, withdraw, send or take out loans through the web interface. This is by design for security reasons.

Interest is not being paid out
Check that bank.interest.enabled is true in config.yml. Also make sure the player has a balance greater than 0 and has not already been paid within the current interval.

Debt Collectors are not spawning
Collectors only spawn if the player is online when the interest charge fires, and only after the configured number of missed payments. If the player is offline the interest is still added to their debt but no mobs will spawn.

Collector mob type is invalid
If you set an invalid mob type in bank.loan.collectors.mob, eBanks will log a warning and fall back to IRON_GOLEM automatically. Make sure the value is a valid Bukkit EntityType in all caps (e.g. WARDEN, VINDICATOR, ZOMBIE).

Leftover Debt Collector mobs after a crash
As of v1.0.7 this is handled automatically. Any orphaned collector mobs are removed when the server starts up.

Death penalty is not firing
Check that death-penalty.enabled is true in config.yml. Also check that the player does not have ebanks.deathpenalty.exempt or a rank permission with 0%. If the player's wallet balance is 0 or negative, nothing will be deducted.

Death penalty message is not appearing
The message is sent after respawn with a short delay. If the player respawns in a different world or disconnects immediately they may not see it. The deduction still happens regardless.

Wrong penalty percentage is being applied
Rank tiers are checked top-down and the first match wins. Make sure higher-tier permissions are listed above lower ones in death-penalty.ranks in config.yml. Use /bank reload after making changes.

Limit upgrade cost is not updating in the GUI
This was fixed in v1.0.4. If you are on an older version, update to the latest release.

MySQL connection fails on startup
Double check your host, port, database name, username and password in config.yml. Make sure the database exists and the user has full permissions on it.

Config changes are not taking effect
Use /bank reload to reload config.yml and messages.yml, or change values directly from the admin GUI (/bankadmin) which saves instantly. Note that database type changes and web port changes still require a full server restart.

A message is showing in the wrong language or has wrong colors
Edit plugins/eBanks/messages.yml and change the entry to whatever you like. Use /bank reload to apply without restarting. All messages support & color codes.

A message key is missing after an update
As of v1.1.0 this is handled automatically — new keys fall back to bundled defaults so the plugin will never crash or print Missing message: errors. A warning is logged to console so you know the key is absent. Add it to your messages.yml and run /bank reload to customise it.

The confirmation screen is not appearing for large transactions
Make sure confirm-threshold is set in your config.yml. If you upgraded from v1.1.0 you need to add it manually — it is not added automatically on existing installs. The default value is 10000. Set it to 0 to disable confirmations entirely.

Admin GUI clicks are not working / items are pickable
Make sure you are running v1.0.5 or later. This was a known bug in earlier builds and has been fixed.

Update checker warning on startup
If you see "Could not parse version from Spiget response" it usually means your SpigotMC resource has no versions uploaded yet. Upload a version on your resource page and the checker will work automatically. You can also disable it with update-checker.enabled: false.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Still having issues? Join our Discord for support.
Resource Information
Author:
----------
Total Downloads: 66
First Release: Mar 3, 2026
Last Update: Mar 16, 2026
Category: ---------------
All-Time Rating:
1 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings