
BankSystem
BankSystem is a Minecraft mod that brings money in to the game. Players can have a bankacount that can not only hold money but items too.
Bank System Mod
About
BankSystem is a Minecraft mod that adds a full banking system to the game. Every player gets an account that can hold money and items, with support for shared accounts, per-user permissions, redstone automation, in-world balance displays, and an interactive balance-history chart. The Bank Terminal includes a full crafting grid that can pull ingredients directly from your account, and individual slots can be bound to third-party currency mods so a single balance is shared across every system that touches it. Ideal for multiplayer servers with active economies, and the financial backbone for the Stock Market Mod.
Version 2.0.6 is a TEST VERSION. It ships major new systems — the external-currency-mod binding SPI with Numismatics and Lightman's Currency adapters, coin-variant auto-conversion at the deposit terminal, an in-game Mod Settings screen, and a rebuilt bind/unbind flow — none of which have been fully tested in production. Expect bugs. Feedback and bug reports are welcome on GitHub. Do not use on production servers without backups. Stable release: v1.4.1.
Features
Bank Accounts
- Personal and shared bank accounts holding both money and items in the same slot list.
- Per-user permissions — Deposit, Withdraw, and Manage, mixed and matched per account and per member.
- Shared accounts always keep at least one manager — the last user cannot be removed by accident.
- Money system with 1 / 5 / 10 / 20 / 50 / 100 / 200 / 500 / 1000 denominations; every coin and note is also placeable as a decorative block.
- Configurable allowed-items list prevents the bank from being used as infinite storage.
Bank Terminal
- Deposit and withdraw money and items from a single screen.
- Full 3×3 crafting grid inside the terminal that can source missing ingredients from your bank account and auto-deposit the crafted output.
- JEI integration — the "+" button on any recipe fills the grid, and clicking any item in the bank list looks up its recipes and applies the best one your bank can satisfy.
- Item filter box narrows the balance list by name or tag.
- The terminal remembers your last-selected account across every terminal on the server.
- Interactive balance-history chart with zoom, pan, tag-based search, and per-item series filters that persist across sessions.
ATM & Automation
- ATM block — withdraw money as specific note denominations.
- Bank Upload and Bank Download blocks — redstone-powered automation that connects to hoppers, pipes, and modded item conduits on a configurable interval.
- Coin-variant deposits are routed to the account's money slot at the currency mod's live face value — no per-variant sub-accounts are created.
Bank Displays
- Configurable in-world display showing a live balance overview grid or a balance-history line chart for any account.
- Adjacent displays automatically link into a multi-block screen and inherit configuration from neighbors on placement.
- Chart colors are derived per item from the item's own texture for a distinct look per market.
Currency Mod Bindings
- Bind any bank slot to an external currency mod's account. Supported are:
- Numismatics
- Lightman's Currency.
- Every deposit, withdrawal, and StockMarket trade routes through the bound account transparently.
- Coin variants auto-convert at the mod's live face value — Numismatics spurs / bevels / sprockets / cogs / crowns / suns and Lightman's copper / iron / gold / emerald / diamond / netherite coins.
- Locked-balance protocol keeps pending StockMarket orders intact across bind and unbind.
- Unbind offers a three-way choice — keep funds on BankSystem, keep them on the external provider, or cancel.
- Public
ExternalCurrencyProviderSPI lets third-party mod authors add more providers via Architectury service loader.
Administration
- In-game Mod Settings screen for server admins (master only) — every
settings.jsonvalue editable with validation, no more manual file edits. - Dedicated BankSystem-admin permission flag gates settings, allowed-item list, and slave-trust access.
- ItemID merge guard, monotonic short counter, and world-format versioning protect world data against silent corruption from mod updates or downgrades.
- TerraFirmaCraft-compatible item identity — banked food no longer spoils inside the account, and spoiled items can't be laundered into fresh ones.
Multi-Server
- Master/slave architecture for server networks — one master holds authoritative balances, slave servers forward requests.
- Trust-based access control — untrusted slaves are read-only, trusted slaves can write. Admins toggle trust with
/banksystem trust <slaveID>. - Master is the sole ItemID minter so mixed-mod setups can never desynchronise item identities.
- Mixed-mod slaves hide items they can't resolve — no more broken "air" rows in the terminal or chart.
API for Developers
- Sync and async interfaces for bank accounts, banks, and the bank manager, exposed through
BankSystemAPIfor other mods. ItemPriceProviderAPI — external mods can supply market prices for total-wealth tracking.ExternalCurrencyProviderSPI — third-party currency mods plug in via Architectury service loader.- Full event and signal system for dependent mods — user, account, ItemID-merge, and multi-server lifecycle events, documented in
documentation/developer-guide/EventsAndSignals.md.
What's new since 1.4.1
The 1.4.1 → 2.0.5 window spans the entire 2.0.x line. Highlights, grouped by area:
Bank Terminal & UI
- Balance-history chart with zoom, pan, tag-based search, and per-item series filters.
- 3×3 crafting grid inside the Bank Terminal with full JEI recipe-transfer support on Fabric, NeoForge, and Quilt.
- Filter box above the item list; JEI's item panel now sits beside the terminal instead of overlapping it.
- Bank Terminal remembers your last-selected account across every terminal on the server.
- Account picker can list accounts you lack rights on as grayed-out with an exact "missing rights" tooltip.
- Shared accounts can no longer be orphaned by removing the last managing user.
Blocks & Displays
- Bank Display block with live balance-overview and history-chart modes, auto-linking multi-block screens.
- Money items are now placeable as decorative stockpile blocks.
- Refreshed pixel-art textures for every block and item.
Currency Mod Support
- Numismatics adapter — bind personal (PLAYER) and shared (BLAZE_BANKER) accounts to BankSystem slots.
- Lightman's Currency adapter — bind personal and team accounts with primary-chain routing for LC's multi-chain MoneyValue model.
- Coin-variant auto-conversion at deposit time — every denomination in the currency mod's chain credits the bound money slot at its live face value.
- Bindings screen reachable from account management, with a full picker for provider → account → confirmation flow.
- Fresh accounts auto-seed a slot for every registered currency provider's base currency.
- Public
ExternalCurrencyProviderSPI with Architectury service-loader discovery for third-party adapters.
Administration
- In-game Mod Settings screen on the master server — every setting editable with typed inputs, server-side validation, and "⟳ Restart required" markers.
- BankSystem-admin permission flag gates settings and management access instead of relying on operator level alone.
- Trust-based writes for slave servers — untrusted slaves are locked to reads; deposit, withdraw, and account edits are rejected at the master.
Multi-Server Hardening
- Master is now the sole ItemID minter — slave servers never assign shorts locally, closing every cross-server ID divergence class for mixed-mod setups.
- Items shared between master and slave travel by stable resource name instead of per-startup registry slots — first-time slave connections no longer render wrong item names.
- Mixed-mod setups hide items the local server can't resolve — no broken "air" rows.
- Rejected operations now tell the affected player why instead of failing silently in the master's log.
- New lifecycle events for dependent mods — slave-connected, slave-disconnected, and trusted-slaves-changed.
World-Data Safety
- World-format versioning — newer-mod saves are refused by older builds before anything is loaded or mutated.
- ItemID merge guard — identity-set changes that would collapse distinct bank items now require admin confirmation at startup with a full merge report.
- Monotonic ItemID counter — dropped shorts stay reserved for the lifetime of the world so downstream data can never be silently rebound to an unrelated item.
- Corrupted-world detection and one-shot repair path for the pre-2.0.3 ItemID load-order bug, with a full audit trail.
- Alias-table auto-heal at load; alias insertions guarded at write time with a stack-trace-annotated ERROR log on violation.
Item Identity
- Volatile item components — datapack tag and config list strip components from bank item identity, so mods like TerraFirmaCraft can rewrite food creation dates without corrupting bank entries.
- Deposit-gated components — spoiled items can no longer be laundered into fresh ones; the deposit check uses the game's own component-aware stack equality.
API
ItemPriceProviderAPI andsetPriceCurrencyItemfor total-wealth tracking.- Per-user custom data field on the
Userobject with sync via ARRS. ExternalCurrencyProviderSPI andunregisterCurrencyProviderprimitive.IBankSystemEvents.getItemIDsMergedEvent()for dependent mods to reconcile after a merge.- Slave-connection, disconnect, and trust-change events, plus a full developer guide in
documentation/developer-guide/EventsAndSignals.md. - AND-permission account picker for dependent mods (
hasAllPermissions+requireAllPermissions).
Full per-version changelog: changelog/.
Please visit the repository for full documentation
Bank System Mod Repository
Dependencies
- Architectury
- Mod Utilities
- Fabric API (Fabric only)
- Quilted Fabric API (Quilt only)
