Economy that never touches your main thread.

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

You see what is running the moment it boots

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.

Server start latest.log
[17:52:45 INFO]: [CoinSystem] CoinSystem, Economy Plugin for Spigot, Paper
[17:52:45 INFO]: [CoinSystem]
[17:52:45 INFO]: [CoinSystem] Tech stuff
[17:52:45 INFO]: [CoinSystem] Java » 21.0.10
[17:52:45 INFO]: [CoinSystem] Server » 1.21.8-56-65641d1 (MC: 1.21.8)
[17:52:45 INFO]: [CoinSystem] OS » Linux (amd64)
[17:52:45 INFO]: [CoinSystem] Memory » 435MB/856MB (Max: 3688MB)
[17:52:45 INFO]: [CoinSystem] Threads » 66
[17:52:45 INFO]: [CoinSystem] Language » de_DE
[17:52:45 INFO]: [CoinSystem]
[17:52:45 INFO]: [CoinSystem] Data Handling
[17:52:45 INFO]: [CoinSystem] Database » MYSQL ( Status: Connected)
[17:52:45 INFO]: [CoinSystem] Cache » Enabled (Caffeine, Status: Connected)
[17:52:45 INFO]: [CoinSystem] REST API » Enabled (Port: 8080)
[17:52:45 INFO]: [CoinSystem]
[17:52:45 INFO]: [CoinSystem] Features
[17:52:45 INFO]: [CoinSystem] Commands » Enabled (1 loaded, 18 aliases)
[17:52:45 INFO]: [CoinSystem] Economy (Vault) » Hooked
[17:52:45 INFO]: [CoinSystem] PlaceholderAPI » Hooked
[17:52:45 INFO]: [CoinSystem]
[17:52:45 INFO]: [CoinSystem] Plugin CoinSystem v2.5.1-RELEASE was successfully started.
[17:52:45 INFO]: [CoinSystem]
Features / 06

Built for servers that cannot afford to stutter

Every database query runs in its own thread pool. The main thread only ever sees the finished result.

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.

MySQL MariaDB SQLite Caffeine-Cache

02

Vault, not a lookalike

CoinSystem registers as a full Vault economy provider. ShopGUI+, Jobs, ChestShop and Essentials work from the first boot, no bridge plugin needed.

Vault-API PlaceholderAPI REST-API

03

Zero config

Drop the jar in plugins, start the server. Without MySQL credentials CoinSystem creates a SQLite file on its own.

04

Developer SDK

A documented API for your own extensions, plus REST endpoints for web shops and dashboards.

05

Name it yourself

Currency name, symbol, message colours and number format all live in config.yml. "Thaler" instead of "coins" works too.

06

Cached leaderboard

/coins top reads from the cache instead of the database. Even on the hundredth call per minute.

Load test

We measured it under load instead of claiming it

200 players trigger a /pay wave at once. CoinSystem on the left, the same scenario with synchronous database queries on the right.

Full load, 200 players running

/pay wave, 200 concurrent accounts, MySQL at 12 ms latency

CoinSystem

Peak

1,4 ms

Ø 1,2 ms · 20,0 tps
0 ticks lost

without async cache

Peak

56,2 ms

Ø 27,4 ms · 17,8 tps
6 ticks lost

50 ms, stutter starts here CoinSystem, under 2.5 ms last 10 s · scale 0–60 ms

Above the red line the server drops ticks and the world runs slower than real time. CoinSystem never comes close to it.

Commands & permissions

One command, 18 aliases, six permission nodes

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.

Aliases: /coin · /money · /balance · /bal · +14
Permission nodes system.commands.*

system.commands.coins.display

Check your own and other balances via /coins.

Base

system.commands.coins.pay

Transfer balance to other players via /pay.

Player

system.commands.coins.top

Open the server-wide top ten of the richest players.

Ranking

system.commands.coins.withdraw

Pay coins out as a physical banknote item.

Item

system.commands.coinlog

View the transaction history of a player. Read only.

Staff

system.commands.coins.update

Full write access to other balances (+, −, set).

Admin

system.commands.coins.update grants write access to other players' balances. Give it to admins only, never to support staff.

Support

We are reachable, and you can check the numbers

Every ticket lands in the public system. The figures come live from the database, not from a press release.

Submit a ticket
Avg. resolution time
4,7 days

From submission to completion.

Solved this week
0 tickets

Completed in the last seven days.

In progress
0 tickets

Currently with a team member.

Completed
3 tickets

Since the first release.

Auto-sync on changes 10:22:22

Changelog

What changed most recently

All posts →