01
Asynchronous database
Every query runs in its own thread pool and comes back cached. With 3,000 concurrent players we measure 0 ms of main-thread load from economy lookups.
An economy plugin that runs every query asynchronously. Works on networks with thousands of players and on the box in your basement alike.
Server start
Environment, database status and detected hooks all land in the log. If something is missing you read it at startup, not three hours later in a silent failure.
Every database query runs in its own thread pool. The main thread only ever sees the finished result.
01
Every query runs in its own thread pool and comes back cached. With 3,000 concurrent players we measure 0 ms of main-thread load from economy lookups.
02
CoinSystem registers as a full Vault economy provider. ShopGUI+, Jobs, ChestShop and Essentials work from the first boot, no bridge plugin needed.
03
Drop the jar in plugins, start the server. Without MySQL credentials CoinSystem creates a SQLite file on its own.
04
A documented API for your own extensions, plus REST endpoints for web shops and dashboards.
05
Currency name, symbol, message colours and number format all live in config.yml. "Thaler" instead of "coins" works too.
06
/coins top reads from the cache instead of the database. Even on the hundredth call per minute.
Load test
200 players trigger a /pay wave at once. CoinSystem on the left, the same scenario with synchronous database queries on the right.
/pay wave, 200 concurrent accounts, MySQL at 12 ms latency
Peak
Ø 1,2 ms · 20,0 tps
0 ticks lost
Peak
Ø 27,4 ms · 17,8 tps
6 ticks lost
Above the red line the server drops ticks and the world runs slower than real time. CoinSystem never comes close to it.
Commands & permissions
Every command hangs off its own node. No catch-all permission that hands out write access to other balances by accident.
/coins
Shows your current balance.
/coins <Spieler>
Checks the balance of another player.
/pay <Spieler> <Betrag>
Transfers coins from your pocket to someone else.
/topcoins
Opens the top 10 leaderboard. Cached, so it never hits the database.
/withdraw <Betrag>
Turns coins into a redeemable banknote item.
/coinlog [Option] <Spieler>
Reads payments and changes from the transaction history.
/updatecoins <Spieler> <Betrag>
Sets, adds or removes balance. Write access to other accounts.
/coinsystem reload
Reloads config.yml without stopping the server.
system.commands.coins.display
Check your own and other balances via /coins.
system.commands.coins.pay
Transfer balance to other players via /pay.
system.commands.coins.top
Open the server-wide top ten of the richest players.
system.commands.coins.withdraw
Pay coins out as a physical banknote item.
system.commands.coinlog
View the transaction history of a player. Read only.
system.commands.coins.update
Full write access to other balances (+, −, set).
system.commands.coins.update grants write access to other players' balances. Give it to admins only, never to support staff.
Support
Every ticket lands in the public system. The figures come live from the database, not from a press release.
From submission to completion.
Completed in the last seven days.
Currently with a team member.
Since the first release.
Changelog
Release
22. Jul 2026
Coming in v3.3.0: Added taxes to the /pay command. Collected taxes can either be transferred to the server bank for future community redistribution (api) or be voided.
Release
04. Jul 2026
We now have a download page for Spigot and Folia versions