BeastTokens 4.3.6 — Major Multi-Currency Update
This is one of the largest BeastTokens updates so far, focused on the new multi-currency system, shop improvements, administration tools, storage, ProxySync, and reliability.
New Multi-Currency System
- BeastTokens now supports multiple independent currencies—not only Tokens plus one additional currency.
- Create currencies such as Tokens, Gems, Shards, EventPoints, or any custom economy.
- Every currency has separate settings, balance storage, drops, commands, aliases, messages, notes, limits, leaderboards, permissions, and default shops.
- Each currency receives its own command, such as /Tokens, /Gems, or /Shards.
- Currency command words such as balance, pay, shop, withdraw, top, and topspent can be renamed per currency.
- Added per-currency balance and total-spent leaderboards.
- Added per-currency permissions while keeping legacy global permissions compatible.
- Added currency administration commands for creating, copying, listing, inspecting, validating, enabling, disabling, and reloading currencies.
Storage & MigrationCode:/bta currency create <currency_id> /bta currency copy <source_id> <new_id> /bta currency list /bta currency info <currency_id> /bta currency validate [currency_id] /bta currency enable <currency_id> /bta currency disable <currency_id>
- Added SQLite balance and spent-statistics storage.
- Different currencies can now use different storage providers.
- Currencies can inherit the global storage selection with Settings.Type: Default.
- Improved MySQL connection pooling and per-currency table handling.
- Balance calculations now use BigDecimal-safe internal math.
- Added automatic migration from the legacy single-currency Tokens File/MySQL structure.
- Added safe MySQL migration journaling, verification, rollback, and conflict detection.
- Added a manual migration command with preview, confirm, and merge-missing modes.
- ConvertData is now currency-aware and supports dry-run safety backups.
- TokenManager and ElementalGems balance/shop imports can target a selected currency.
Shop System UpdateCode:/bta currency migrateLegacy <currency_id> [<balance_table|-> <stats_table|->] [preview|confirm|merge-missing]
Web & In-Game Editors
- Added multi-currency shop prices.
- Shop items can require several currencies at once using ALL mode.
- FIRST_AFFORDABLE mode lets players use the first configured price they can afford.
- Shops, individual items, buying, and selling can use different currency overrides.
- Added currency-aware price, balance, required-price, and missing-price lore.
- Added per-currency default shops and configurable shop-list filtering.
- Added a configurable main shop selector GUI.
- Added per-page rotating item pools.
- Rotating shops now support CYCLE and TIMESTAMP schedules.
- Rotating and stock state supports File, MySQL, and SQLite.
- Added shared MySQL player/server stock limits with automatic restocking.
- Buying can restore sell stock, and selling can restore buy stock.
- Added new EmptySlot filler patterns, including BORDER, SIDES, TOP_BOTTOM, RECTANGLE, and CHECKERBOARD.
- Added configurable shop-opening animations such as CENTER_OUT, SPIRAL, SNAKE, RAIN, RANDOM_POP, and slide effects.
- Added stronger transaction menu click guards to prevent duplicate purchases, sales, confirmations, messages, and sounds.
Drops & Native Notes
- Greatly expanded the authenticated BeastTokens web editor.
- Added visual Minecraft-style inventory editing with drag-and-drop item placement.
- Create, rename, duplicate, move, swap, and delete shop items and pages.
- Added visual editors for rotating pools, rotating slots, fillers, Buy Menu, Sell Menu, and Shop Menu.
- Added structured editors for shop settings, plugin settings, currencies, prices, commands, stock, animations, and sounds.
- Added a Create New Shop form with economy selection and validation.
- Added Minecraft texture, custom player-head, MiniMessage, RGB, gradient, and resource-pack model previews.
- Added an Economy Manager with searchable balances, player heads, balance editing, and transaction history.
- Added Health Check, Backups, Audit Explorer, Diagnostics, Cache Tools, Shop Preview, Bulk Tools, and Setup tools.
- Improved the in-game shop editor with page management, item previews, line-list editing, exact cursor placement, and duplicate-click protection.
Proxy & Network Improvements
- Drops are now configured separately for every currency.
- Each currency can independently reward mobs, mining, farming, fishing, players, and MythicMobs.
- Added configurable reward sounds for direct rewards and floor-drop notes.
- Added currency-aware drop earning limits with GLOBAL and PER_TYPE modes.
- Added permission profiles, interval resets, scheduled resets, and File/MySQL/SQLite tracking.
- Added currency-aware earning-limit placeholders and admin tracking commands.
- Native notes now store their currency ID and redeem into the correct balance.
- Added note item flags, enchants, CustomModelData, holograms, sounds, amount-based designs, and named visual overrides.
- Improved BeastWithdraw integration so every BeastTokens currency can use separate withdraw handling.
API, Placeholders & Administration
- Updated BungeeCord and Velocity ProxySync to handle currency-aware balance updates.
- Added proxy balance lookup, add, remove, and set commands with optional currency selection.
- Added MySQL stock and rotating-shop synchronization between servers.
- Added network shop-file synchronization through the web editor.
- Added Proxy Web Interface support for viewing connected Spigot editors.
- Added a proxy Economy panel for viewing and managing MySQL currency balances.
- Improved reconnect handling, startup order, currency registration, and missing-table handling.
Examples & Fixes
- Added currency-first PlaceholderAPI placeholders such as %beasttokens_tokens_balance% and %beasttokens_gems_balance%.
- Added /bta placeholders [category] [page] to browse placeholder examples.
- The API can now retrieve a specific manager with BeastTokensAPI.getTokensManager("Gems").
- Events now expose the currency ID and transaction reason.
- Shop transaction events now include a unique transaction ID.
- Added transaction rate limiting, duplicate protection, and asynchronous JSONL audit logs.
- Added runtime diagnostics, startup validation, safe ZIP backups, restore inspection, and structured debug categories.
- Global messages now load from Lang/<locale>.yml and can be overridden per currency.
Important Before Updating
- Rebuilt Example.yml into a polished two-page, 54-slot Beast Bazaar with MiniMessage styling, rotating offers, stock, animations, custom potions, and navigation.
- Expanded Example_Advanced.yml and Example_Ultimate.yml with current shop features.
- Moved the internal example installation marker out of the Shops folder and into plugins/BeastTokens/.state.
- Improved PLAYER_HEAD textures for Base64 values, player names, %player%, offline-mode servers, reward items, and web previews.
- Fixed duplicate shop actions, duplicate messages/sounds, transaction item leaks, empty slots, timer padding, menu refreshes, shutdown handling, and multiple storage lifecycle issues.
- Removed the obsolete Deposit GUI and MVdWPlaceholderAPI integration.
- Back up the complete BeastTokens folder and database.
- On MySQL networks, stop all backends and allow one updated server to complete migration first.
- Do not run old and new BeastTokens versions against the same database simultaneously.
- Run migrateLegacy in preview mode before confirming a manual migration.
- Update old placeholders to the new currency-first format.
- Global economy settings now belong in Currencies/<CurrencyId>/setting.yml.
- Drops now belong in Currencies/<CurrencyId>/Drops.
- Global messages now use Lang/<locale>.yml.
- Shop GUI slots are one-based: use 1 through Shop.Size and never slot 0.
Added support for ItemModel in buy and sell menu
Added support for CustomData buy and sell menu
Example how to use it in shop files
![]()
Added support for ItemModel
Added support for CustomData
Example how to use it in shop files
![]()
Added on request option:
- import gems from ElementalGems /bta importdata ElementalGems
- import shops/auto convert from ElementalGems /bta importshops ElementalGems
Fixed reported bug by user on player leave event with storing tokens to FlatFile storage!
Players are able to put withdrawn item to new shelf block
Support for latest version
Updated some api libraries
Please update BeastLib for this version to work!
New wiki section for timers
https://thebeastuniverse.gitbook.io/beasttokens/placeholder/timer-placeholder-formatting
Fixed timer placeholder not registering change on /bta reload
Removed old forgotten debug message in timer placeholder sorry about that!