Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
CoinSystem v3.1.3 — Security & Performance Update
This is a major cumulative update including all changes from v3.0 to v3.1.3. It focuses on security, performance, and stability. Fully backward compatible — your configs and database will be migrated automatically. Please read the "Important Notes" section below.
Security & Hardening
- Dupe-Proof Withdraw Items: A critical duplication exploit has been closed. The value of a withdrawn item is now stored in a secure, invisible tag. Renaming an item can no longer be used to create coins.
- Atomic & Refund-Safe Transfers: The economy core now ensures that if a recipient cannot be credited, the sender is automatically refunded. Coins can no longer vanish or be created during transactions.
- Invalid Amount Rejection: The API now rejects non-finite amounts (
NaN/Infinity) to prevent account balance corruption. - Max Balance Cap: A new
settings.economy.max_balanceoption protects against overflows and admin errors by capping balances.
Performance & Stability
- No More Server Freezes: Commands targeting offline players (like
/pay,/updatecoins) no longer trigger blocking web requests that cause lag spikes. Lookups are now instant and offline-safe. - Asynchronous Database with Connection Pooling: All database queries now run on a dedicated thread pool with HikariCP, freeing up the server's main thread and dramatically improving responsiveness.
- Fast, Cached Leaderboards:
/topcoinsand all leaderboard placeholders now read from a fast, asynchronous cache, eliminating database load and providing instant results. - Clean Vault Integration: Vault support no longer causes freezes and now correctly respects the
settings.vault.enableswitch with a safe priority.
New Features & Improvements
- Automatic Config Cleanup: Your
config.jsonis automatically split into smaller, manageable files (database.json,inventories.json) on the first run. - Integer/Decimal Mode: A new setting (
settings.currency.allow_decimals) lets you choose between whole numbers and fractional values for your currency, which is respected everywhere. - Customizable Currency: Fully configure your currency's name (singular/plural), separators, and more.
- Smarter Help Command:
/coins helpnow only shows commands a player has permission to use. - Organized Files: SQLite database files are now stored in their own
sqlitefolder.
API & SDK Updates
- Modern API: A new, instance-based
CoinSystemAPIis available as a Bukkit Service. - Asynchronous Methods:
depositAsync,withdrawAsync,setBalanceAsync, andtransferAsyncare available, all returning aCompletableFuture. - Rich Account Snapshots:
getAccount()provides an immutableCoinAccountobject with detailed player data. - Atomic Transfers:
CoinSystemAPI.transfer()offers a safe way to move coins with a detailedTransferResultenum.
⚠️ Important Notes
- Old Withdraw Items: Items created before v3.1.3 are no longer redeemable due to the security fix. Please ask your players to redeem them before you update the plugin.
- Vault Setting: If you use CoinSystem for Vault, ensure
settings.vault.enableis set totruein yourconfig.json, as this setting is now correctly enforced.
Information
| Published on | June 15, 2026 |
|---|---|
| Downloads | 4 |
Platforms
Paper (1.21-1.21.8)
Dependencies
Paper