EcoXpert icon

EcoXpert -----

Take full control of your server’s economy — intelligent, stable, and impossible to break.




EcoXpert - Changelog v1.4.0
Version 1.4.0 - Economic Intelligence Overhaul
Release Date: May 11, 2026
Compatibility: Minecraft 1.19.4 - 26.2+
Java Version: 17+

Economic Intelligence — Now Real
The Economic Intelligence Engine has been completely rewritten. All calculations now use real server data instead of placeholder values.

What Changed
  • Liquidity injection now calculates the optimal amount based on your server's actual money supply, health deficit, velocity gap, and active player count. Previously it injected a flat $10,000 regardless of conditions.
  • Player stimulus distribution is now weighted by each player's economic activity and personality. Active traders and investors receive proportionally more; hoarders and exploiters receive less.
  • Velocity of money is now tracked in real-time from actual transaction volume vs total money supply. This metric was previously never updated.
  • Economic health is now a composite of 5 real indicators: wealth distribution (Gini), transaction flow, market activity, inflation rate, and player participation.
  • All economic metrics (total money supply, average balance, transaction volume, market activity) now query the database directly instead of returning hardcoded estimates.
Persistence Across Restarts
The intelligence engine no longer loses its memory when the server restarts:
  • Economic snapshots are saved to the database every 5 minutes and restored on startup (last 24 hours).
  • Player economic profiles (personality, credit score, risk/trust scores, transaction history) are now persisted and survive restarts.
  • Old snapshot data is automatically cleaned up after 7 days.
Pattern Recognition
The system now identifies real patterns:
  • Daily activity cycles — detects peak and trough hours on your server.
  • Volatility periods — flags when the economy is unstable (>10% health swings in 30-minute windows).
  • Cycle rhythm — tracks average cycle duration and most common transitions to improve predictions.
Dynamic Interest Rates
Bank interest rates now respond to economic conditions automatically:
  • During downturns: rates increase to reward saving.
  • During booms: rates decrease to encourage spending.
  • High inflation: rates increase to discourage borrowing.
  • The adjustment is applied proportionally to all bank tiers.
New Database Tables
Two new tables are created automatically on first startup:

Table Purpose
ecoxpert_economic_snapshots Stores economic state every 5 minutes for learning
ecoxpert_player_profiles Persists player behavior analysis across restarts
No manual migration required — tables are created automatically.

Bugs Fixed
  • Fixed: Player economic profiles were never saved to database (lost on restart).
  • Fixed: Velocity of money placeholder always returned 1.0 regardless of actual activity.
  • Fixed: Economic health calculation used hardcoded values instead of real wealth distribution.
  • Fixed: Interest rate adjustments were only logged, never applied to the banking system.
  • Fixed: Liquidity injection always distributed $100 per player regardless of economic conditions.
Update Instructions
  1. Stop server
  2. Replace EcoXpert-1.3.1.jar with EcoXpert-1.4.0.jar
  3. Start server
  4. No configuration changes required — new tables are created automatically
Notes
  • The intelligence engine will start with a fresh learning state on first boot (no historical snapshots from pre-1.4). After ~1 hour of operation it will have enough data for trend analysis; after ~4 hours for forecasting.
  • Existing modules/inflation.yml policy parameters are fully compatible. No changes needed.
  • If you use MySQL, the new tables use the same charset/engine as existing tables.
⚙️ Compatibility
  • ✅ Minecraft 1.19.4 – 26.2+
  • ✅ Spigot / Paper / Purpur / Folia
  • ✅ Java 17+
  • ✅ SQLite and MySQL
  • ✅ All existing configurations from 1.3.x
  • ✅ Vault, PlaceholderAPI, DiscordSRV, GeyserMC
  • ✅ WorldGuard, Lands, Towny, Jobs, Slimefun, mcMMO integrations
EcoXpert Pro — Because your economy deserves intelligence
----------, May 11, 2026

EcoXpert - Changelog v1.3.1
Version 1.3.1 - Bug Fixes & Stability
Release Date: January 8, 2026 Compatibility: Minecraft 1.19.4 - 1.21.11 Java Version: 17+

Bug Fixes
SQLite Database Lock Fix
  • Problem: SQLITE_BUSY - database is locked error under concurrent operations
  • Solution: SQLite pool size reduced to 1 connection to serialize writes
  • Details:
    • SQLite only allows one writer at a time
    • HikariCP pool was configured with 10 connections causing conflicts
    • busy_timeout increased to 30 seconds as safety net
    • MySQL pool remains at 10 connections (handles concurrency properly)
SQL Compatibility Fix
  • Problem: INSERT OR IGNORE syntax only works in SQLite, not MySQL
  • Solution: Database-specific SQL syntax detection
  • Details:
    • SQLite: INSERT OR IGNORE INTO...
    • MySQL: INSERT IGNORE INTO...
    • Affected files: EconomyManagerImpl.java, MarketManagerImpl.java
Market GUI Click Handler Fix
  • Problem: Clicking "Sell Hand by $" button sent "hand" to chat instead of opening sub-GUI
  • Solution: Reordered event handlers to check sub-GUI title before marketInv == null
  • Details:
    • Sub-GUI was not tracked in openGUIs map
    • Handler returned early without cancelling the event
    • Same fix applied to MarketOrdersGUI.java
Missing Translation Keys Fix
  • Problem: Translation keys displayed as raw text (e.g., market.gui.sell-hand.lore1)
  • Solution: Added missing keys to correct YAML paths
  • Added keys:
    • market.gui.sell-hand.* (title, amount, lore1, lore2)
    • market.gui.bedrock.action.* (19 keys for Bedrock action GUI)
  • Files: messages_en.yml, messages_es.yml
Translation System Fallback Improvement
  • Problem: New translation keys not available if user has old language files
  • Solution: Improved fallback to always check embedded JAR resources for missing keys
  • Details:
    • Local files are checked first (preserves user customizations)
    • If key not found, automatically loads from JAR embedded resources
    • Added UTF-8 encoding for proper character support
    • Debug logging for troubleshooting translation issues
GUI Item Theft Prevention
  • Problem: Items in GUIs could be moved to player inventory when translation keys failed
  • Solution: All GUI click handlers now check both translated title AND raw key
  • Affected GUIs:
    • MarketGUI: List GUI, Sell Hand sub-GUI
    • MarketOrdersGUI: Orders list, Select quantity
    • LoansGUI: Offer preview, Schedule
Update Instructions
  1. Stop server
  2. Replace EcoXpert-1.3.0.jar with EcoXpert-1.3.1.jar
  3. Start server
  4. No configuration changes required
EcoXpert Pro - Because your economy deserves intelligence
----------, Jan 8, 2026

Here is the conversion of your changelog to **BBCode**, optimized for forums like SpigotMC, MCMarket (BuiltByBit), or XenForo.

EcoXpert - Changelog v1.3.0

Version 1.3.0 - Balance Leaderboard & Discord Integration

Release Date: December 19, 2025
Compatibility: Minecraft 1.19.4 - 1.21.8+
Java Version: 17+


What's New

Balance Leaderboard System (Baltop)
Complete leaderboard system with cross-platform support for Java and Bedrock editions.

Commands:
Code (Text):
/baltop [page]           - View leaderboard in chat
/baltop gui [page]       - Open GUI leaderboard
Aliases: /balancetop, /topbalances

Features:
  • Console view: 10 entries per page with pagination
  • GUI view: 45 entries per page with player skulls
  • Bedrock Forms: Native Geyser Forms for mobile/console players
  • Self-highlighting: Your position highlighted in gold
  • Real-time data: with 30-second smart caching
  • Rank display: See your position even when not on current page

Discord Integration (NEW)
Full DiscordSRV integration for economy notifications and commands.

Discord Commands:
Code (Text):
!balance <player>        - Check player balance
!market <item>           - Check item prices
!top [count]             - View top players
!inflation               - Current inflation rate
!stats                   - Economy statistics
Notifications:
  • Large transactions (configurable threshold)
  • Market price changes (>20% by default)
  • ⚠️ Inflation alerts (>5% by default)
  • Daily economy reports


Technical Improvements

Performance & Compatibility
  • Smart caching system reduces database queries
  • Async operations prevent server lag
  • 100% Bedrock Edition compatibility maintained
  • Automatic Geyser Forms detection and fallback

Cross-Platform Support
  • Java Edition: Full chest GUI support
  • Bedrock Edition: Native Geyser Forms when available
  • Automatic Fallback: Chest GUI when Geyser unavailable


Commands & Permissions

New Commands
Command Permission Description
/baltop [page] ecoxpert.baltop View balance leaderboard
/baltop gui [page] ecoxpert.baltop.gui Open GUI leaderboard


New Permissions
  • ecoxpert.baltop - View balance leaderboard (default: true)
  • ecoxpert.baltop.gui - Open GUI leaderboard (default: true)


PlaceholderAPI Integration

New Placeholders
Code (Text):
%ecox_baltop_balance_<rank>%              - Balance at specific rank
%ecox_baltop_balance_formatted_<rank>%    - Formatted balance with currency
%ecox_baltop_player_<rank>%               - Player name at rank
%ecox_baltop_rank%                        - Your current rank
Example: %ecox_baltop_player_1% returns the richest player's name


Configuration

Discord Setup

1. Install DiscordSRV plugin
2. Configure channels in modules/discord.yml:
Code (Text):
discord:
enabled: true
channels:
economy: "CHANNEL_ID"
alerts: "CHANNEL_ID"
3. Reload: /ecoxpert reload

Baltop Settings
  • Console: 10 entries per page
  • GUI: 45 entries per page
  • Cache: 30 seconds TTL
  • No configuration required - works out of the box


Installation & Update

New Installation

1. Download EcoXpert-1.3.0.jar
2. Place in plugins/ folder
3. Install Vault (required) and DiscordSRV (optional)
4. Restart server

Update from v1.2.x

1. Stop server
2. Replace JAR file
3. Start server
4. No database changes - fully backward compatible


Bug Fixes

  • Fixed potential memory leak in leaderboard queries
  • Improved error handling for empty result sets
  • Enhanced GUI pagination edge cases
  • Better Discord integration error handling


Integration Status

  • Vault - Complete economy integration
  • PlaceholderAPI - 50+ placeholders available
  • DiscordSRV - Full notification and command support
  • GeyserMC - Native Bedrock Forms support
  • WorldGuard/Lands - Territory-based bonuses
  • Jobs/Towny/Slimefun - Economic adjustments


Support


EcoXpert Pro - Because your economy deserves intelligence
----------, Dec 20, 2025

Changelog - Version 1.2.3
Release Date: 2025-11-24 Type: Bug Fix & Bedrock Compatibility Update

Bug Fixes
#1: SQLite Database Lock Errors
Issue:
  • Multiple [SQLITE_BUSY] The database file is locked errors during market transactions
  • Occurred when many players traded simultaneously
  • Caused transaction failures and poor user experience
Root Cause:
  • SQLite busy_timeout was set to 5 seconds
  • High concurrency in market transactions exceeded timeout
  • Default configuration not optimized for multi-player servers
Solution:
  • Increased SQLite busy_timeout from 5s → 15s (3x improvement)
  • Applied in both JDBC URL and PRAGMA connection init
  • Maintains WAL mode for better concurrent access
Testing:
  • Load tested with 10+ concurrent market transactions
  • Lock errors reduced by ~90%
  • Recommended migration to MySQL for servers with 50+ players
#2: Bedrock Edition GUI Incompatibility
Issue:
  • Bedrock players reported "blocks staying in inventory" when using Market GUI
  • Items from chest-based GUIs appeared as real items in inventory
  • Bedrock Edition doesn't support interactive chest GUIs like Java Edition
Root Cause:
  • All GUIs used Bukkit.createInventory() (chest-based GUIs)
  • Minecraft Bedrock Edition interprets chest GUI items as real items
  • No Bedrock-native interface (Geyser Forms) implemented
Solution - (Market GUI):

1. Geyser Forms API Integration:
  • Added BedrockFormsManager with full reflection support
  • Uses Geyser's native SimpleForm and ModalForm APIs
  • Zero compile-time dependency - loads dynamically at runtime
2. Intelligent Platform Detection:
  • Detects Bedrock players via Floodgate API (reflection)
  • Checks if Geyser Forms API is available
  • Auto-switches between Forms (Bedrock) and Chest GUIs (Java)
3. Fallback System:
Code (Java):
Bedrock Player + Geyser Installed → Native Forms (✅ Fixed )
Bedrock Player + No Geyser       → Chest GUI (⚠️ Known issue )
Java Edition Player              → Chest GUI (✅ Works )

4. ALL GUIs Now Support Bedrock Forms:


MarketGUI:
  • Buy items (1x, 16x, stack)
  • Sell items (1x, stack, all)
  • Create market listings
  • Touch-friendly item selection
BankGUI:
  • Deposit money (100,500, 1�,5K, $10K)
  • Withdraw money (same amounts)
  • Check balance in real-time
  • Automatic menu refresh after transactions
LoansGUI:
  • Request loans (1�,2.5K, 5�,10K, $25K)
  • Confirmation dialog with offer details
  • Make payments (500,1K, 2.5�,5K, full amount)
  • View loan status
  • Smart credit score integration
ProfessionsGUI:
  • Select from 7 professions
  • View buy/sell factors
  • Real-time XP and level display
All Forms Include:
  • Full translation support (EN/ES)
  • Touch-friendly Bedrock UX
  • Graceful fallback to chest GUIs if Geyser unavailable
  • Automatic platform detection
Installation Requirements:

  • Geyser-Spigot plugin (optional but recommended)
  • Floodgate plugin (optional but recommended)
  • Auto-detects at runtime - no configuration needed
Current Status:
  • ✅ MarketGUI - Full Geyser Forms support
  • ✅ BankGUI - Full Geyser Forms support (NEW)
  • ✅ LoansGUI - Full Geyser Forms support (NEW)
  • ✅ ProfessionsGUI - Full Geyser Forms support (NEW)
Technical Improvements
Dependency Management
  • Geyser/Floodgate APIs loaded via reflection (no compile dependency)
  • Dependencies marked as provided and optional in pom.xml
  • Dependencies commented out in pom.xml for easier compilation
  • Zero JAR size increase - maintains 2.5MB optimized build
  • Graceful degradation when APIs not available
Bedrock Forms Architecture
  • SimpleForm - Menu with buttons (main menus, selections)
  • ModalForm - Yes/No confirmations (loan approval, critical actions)
  • CustomForm - Input fields (text, dropdowns, sliders, toggles)
  • Dual implementation pattern (Forms for Bedrock, Chest GUI for Java)
  • Automatic platform detection via PlatformManager
  • Translation-first design (all text uses TranslationManager)
Database Optimization
  • SQLite busy_timeout: 5000ms → 15000ms
  • Connection pool configuration optimized
  • Better error handling for concurrent writes
Platform Detection
  • Enhanced Bedrock player detection via Floodgate reflection
  • Runtime capability detection (Forms API availability)
  • Automatic UX adaptation based on client type
Documentation Updates
README.md
  • Added "Bedrock Edition (GeyserMC) Issues" troubleshooting section
  • Documented SQLite lock error solutions
  • Added current Bedrock Forms support status
  • Included Geyser installation requirements
Translation Files
  • Added 50+ new translation keys for Bedrock Forms:
    • Market Forms: market.gui.bedrock.* (13 keys)
    • Bank Forms: bank.gui.bedrock.* (15 keys)
    • Loans Forms: loans.gui.bedrock.* (18 keys)
    • Professions Forms: professions.gui.bedrock.* (4 keys)
  • Both English and Spanish translations
  • All Forms use translated text - zero hardcoded strings
Migration Notes
From v1.2.2 → v1.2.3
Automatic (No Action Required):

  • SQLite timeout increase applies automatically
  • Bedrock Forms activate if Geyser detected
  • All existing functionality preserved
Optional (Recommended for Bedrock Servers):

  1. Install Geyser-Spigot plugin
  2. Install Floodgate plugin
  3. Restart server
  4. Verify log: "Geyser Forms API detected"
For High-Traffic Servers (50+ players):

  • Consider migrating from SQLite to MySQL
  • MySQL drivers download automatically
  • Update config.yml:
  • Code (YAML):
    database:
      type
    : "mysql"
Performance Impact
  • JAR Size: No change (optimized)
  • Memory: +0.5MB when Geyser Forms active
  • CPU: Negligible (<1% overhead for platform detection)
  • Database: ~90% reduction in SQLite lock errors
⚠️ Known Issues
Bedrock Edition (Without Geyser)
  • All main GUIs now work with Geyser installed!
  • If Geyser NOT installed: chest GUIs used (items may appear in inventory)
  • Solution: Install Geyser-Spigot + Floodgate for best experience
  • Alternative: Use text commands (/bank deposit, /loans request, etc.)
SQLite Under Extreme Load
  • Lock errors may still occur with 100+ concurrent transactions
  • Solution: Migrate to MySQL for production servers
Upgrade Recommendations
Priority: HIGH for servers with:
  • Bedrock Edition players (via GeyserMC)
  • High market trading activity
  • Frequent SQLite lock errors in logs
Priority: MEDIUM for servers with:
  • Java Edition only
  • Low-medium player count (<50)
  • Occasional database warnings
Installation:
  1. Stop server
  2. Replace EcoXpert-1.2.2.jar with EcoXpert-1.2.3.jar
  3. (Optional) Install Geyser + Floodgate
  4. Start server
  5. Verify logs for successful initialization
Issues: https://github.com/koyere/ecoxpert/issues

Discord: https://discord.gg/xKUjn3EJzR
----------, Nov 25, 2025

EcoXpert 1.2.2 — Market Safety & Integrity
  • Fixed: hard blockers on market buys/sells/orders when unit price or totals are zero/negative; cache and price calculator now auto-heal corrupt prices back to safe base values so items can’t be bought for free.
  • Improved: economy operations now require strictly positive amounts, tightening validation across transfers/debits.
  • Compatibility: Java 17+, Spigot/Paper/Purpur/Folia 1.19.4–1.21.9+ (no API changes).
  • Update: build or download EcoXpert-1.2.2.jar, replace the old JAR in plugins/, and restart your server. No config changes required.
----------, Nov 17, 2025

EcoXpert 1.2.1 — MySQL Schema Finalization
  • Fixed: schema creation now generates valid MySQL DDL (AUTO_INCREMENT, booleans, compatible defaults) and uses dialect-specific upsert logic to avoid syntax errors during startup.
  • Improved: database initialization chooses the correct SQL dialect (SQLite/MySQL/H2), verifies index existence via metadata, and handles meta-version updates without driver-specific queries.
  • Fixed: MySQL charset compatibility — added automatic fallback from utf8mb4 to utf8 if server doesn't support utf8mb4. Database is now auto-created if it doesn't exist.
  • Improved: config.yml now includes MySQL troubleshooting guide with solutions for charset, timeout, and access errors.
----------, Oct 17, 2025

EcoXpert 1.2 — MySQL Reliability Update
  • Added: full MySQL configuration support driven by config.yml, including optional pool tuning.
  • Fixed: removed hardcoded credentials to stop "Access denied" errors during MySQL startup.
  • Improved: MySQL connections now enforce utf8mb4 and validate parameters before building the pool for safer boot.
----------, Oct 15, 2025

Version 1.1 > Bug Fixes

1. Fixed errors in the Spanish and English translation keys. Some GUIs had errors. All translation errors were corrected.

2. Added the full API methods. The API is now more complete, secure, and robust. You can check the official plugin information.

Installation:
1. Replace the plugin.
2. Delete the messages files.
3. Restart the server.
----------, Oct 12, 2025

Resource Information
Author:
----------
Total Downloads: 120
First Release: Oct 6, 2025
Last Update: May 11, 2026
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings