
Bug Fixes
release4 марта 2026 г.LagXpert v2.6.1 - Hotfix
🐛 Bug Fixes
Fixed: Limit messages showing raw YAML objects
Players were seeing MemorySection[path='limits.hopper', root='YamlConfiguration'] instead of actual alert messages when placing blocks near or at chunk limits.
What changed:
messages.ymlnow uses a structured format withfullandshortsub-keys per message.- ActionBar restriction messages now properly use the short variant.
Action required: Delete your existing plugins/LagXpert/messages.yml and restart the server to regenerate it, or manually update the limits: section to use the new full/short structure.
Fixed: IllegalArgumentException: Specified map is empty in AsyncChunkAnalyzer
Server log was spamming this error when analyzing chunks with no tile entities (empty chunks, deserts, oceans, etc.).
Action required: None. Just update the JAR.
Fixed: Missing message: lagshield.activated in console
LagShield was looking for messages at the wrong path in messages.yml.
Action required: None. Just update the JAR.
✨ Improvements
Translatable block and entity names in statistics
All block and entity names shown in /chunkstatus, /lagxpert inspect, chunk scan alerts, and near-limit warnings are now fully customizable from messages.yml.
A new translations: section lets you rename items like "Hoppers", "Chests", "Mobs", etc. to match your server's language. The /chunkstatus display is also fully customizable with individual line formats.
Action required: Delete your existing plugins/LagXpert/messages.yml and restart the server to regenerate it with the new translations: and chunkstatus: sections. Then edit the names to your language.
Fixed: Chests and Trapped Chests duplicated in scan statistics
Chests and Trapped Chests were showing as two separate entries in chunk overload alerts, even though they share the same limit. They are now combined into a single "Chests" entry. Same fix applied to Pistons/Sticky Pistons.
Fixed: Entity cleanup message showing raw color codes
The entity cleanup broadcast message (&a, &e, etc.) was not being translated to actual colors, showing raw codes like &e18&a in chat.
📦 Upgrade
- Replace
LagXpert-2.6.jarwithLagXpert-2.6.1.jar. - Delete
plugins/LagXpert/messages.yml(will regenerate on startup with new translation options). - Restart the server.
- Edit the
translations:section inmessages.ymlto your language.
Reactive Optimization & Modular Control
release23 декабря 2025 г.LagXpert v2.6 - Reactive Optimization & Modular Control
This update introduces advanced modules for proactive performance management, including AI optimization, lag shields, and specific controls for vehicles and explosions.
🚀 Highlights
- MobAIOptimizer: Intelligent system that disables AI and pathfinding for mobs in loaded chunks to drastically reduce CPU usage.
- LagShield: Emergency monitor that automatically activates severe restrictions when TPS drops below 16.0 or RAM exceeds 90%.
- ExplosionController: Full control over TNT, Creeper, and Wither explosions. Includes radius limits and prevention of massive chain reactions.
- VehicleManager: Configurable per-chunk limits for minecarts and boats, with automatic cleanup of abandoned vehicles.
- AbilityLimiter & ConsoleFilter: Speed restrictions for Elytras, cooldowns for Tridents, and Regex-based console spam filtering.
⚙️ Configuration Examples
explosions.yml - Prevent massive TNT chain reactions:
settings:
prevent-chain-reaction: true
max-primed-tnt-per-chunk: 20
disable-explosion-drops: false
vehicles.yml - Limit entities per chunk:
limits:
minecarts:
per-chunk: 8
boats:
per-chunk: 5
🐛 Bug Fixes & Technical Improvements
- Modular Refactoring: Clean implementation of new systems (
me.koyere.lagxpert.system.*) with independent configurations. - Compilation Fixes: Resolved symbol error in
VehicleManagerand cleaned up imports inAbilityLimiter. - Secure Integration: Verified build with Maven (
BUILD SUCCESS) and ensured correct registration of listeners and commands.
📦 Installation & Compatibility
Installation
- Stop your server.
- Delete any previous
LagXpert-*.jarversions. - Place the new
LagXpert-2.6.jarin your/plugins/folder. - Restart the server. This is required to automatically generate the new configuration files:
mobs.yml,lagshield.yml,explosions.yml,vehicles.yml,abilities.yml,console-filter.yml.
- Note: While
/lagxpert reloadexists, a full restart is strongly recommended for this update to ensure all new modules initialize correctly.
Compatibility
- Versions: Minecraft 1.16.x - 1.21.x
- Platforms: Spigot, Paper, Purpur, Folia (Experimental support).
- Java: Java 17 or higher recommended.
World-Aware Enforcement & Activity Tracking
release14 октября 2025 г.LagXpert v2.5 - World-Aware Enforcement & Activity Tracking
🚀 Highlights
- Per-world enforcement: Mob spawns, storage placement checks and automated scans now honour world-specific overrides, keeping creative hubs relaxed and survival worlds strict.
- Config-driven grace periods: The item cleaner reads
broken-block-tracking(default + material overrides) directly fromitemcleaner.yml, making temporary drop protection fully customisable. - Chunk safeguards from config: Smart chunk management now loads the important-block list from
chunks.yml, so mission-critical structures stay loaded without code changes.
⚙️ Technical Improvements
- Hooked chunk activity tracking into block/entity/player events and scheduled periodic cleanup to keep telemetry fresh.
- Added Folia/Bukkit-safe activity cleanup task and listener to populate
ChunkManager’s analytics in real time. - Introduced world-aware limit providers across listeners, smart mob manager and the auto chunk scanner.
- Implemented configurable alert skipping when no players are online, aligned with
monitoring.yml.
🛠 Developer Notes
ConfigManagerexposes per-world getters and broken block tracking settings;RecentlyBrokenBlocksTracker.configure(...)keeps runtime state in sync.- Added
ChunkActivityListenerandChunkActivityCleanupTaskto the lifecycle; ensure they remain registered when extending the chunk management module.
Action Bar Notifications Update
release7 июля 2025 г.LagXpert v2.4 - Action Bar Notifications Update
🎯 New Features
Action Bar Messages
- Restriction messages now appear in the action bar instead of chat spam
- Clean, non-intrusive notifications when you try to place blocks above limits
- Messages automatically disappear after a few seconds
Enhanced User Experience
- Shorter cooldowns for action bar messages (5 seconds instead of 15)
- Compact message format optimized for action bar display
- Fallback system - if action bar fails, messages still appear in chat
⚙️ Configuration Options
New Settings in messages.yml
delivery:
restrictions:
method: "actionbar" # Options: "chat", "actionbar", "both"
cooldown: 5 # Seconds between messages
Available Methods:
"chat"- Traditional chat messages (old behavior)"actionbar"- Action bar only (new default)"both"- Send to both chat and action bar
Message Customization
- All restriction messages now have short versions for action bar
- You can still customize both long and short message formats
- No configuration changes required - works with existing setups
🔧 What This Means for You
For Players
- Less chat spam when building near limits
- Cleaner interface with subtle notifications
- Same functionality - all limits work exactly the same
For Server Admins
- Reduced chat noise in logs and screenshots
- Better user experience for builders
- Fully configurable - switch back to chat if preferred
🐛 Bug Fixes
Block Limit Issues Resolved
- Fixed off-by-one error - Players can now place the full configured amount of blocks
- Previously: Limit of 10 only allowed 9 blocks
- Now: Limit of 10 correctly allows 10 blocks
- Fixed colored shulker boxes - All 16 colored shulker box variants are now properly limited
- Previously: Only purple shulker boxes were detected
- Now: All colored shulker boxes count toward the same limit
Affected Blocks
- TNT, Hoppers, Pistons - No longer stop 1 block short of limit
- All Shulker Boxes - White, Orange, Magenta, Light Blue, Yellow, Lime, Pink, Gray, Light Gray, Cyan, Purple, Blue, Brown, Green, Red, Black
🔒 Privacy & Permissions
Alert Privacy System
- Alert filtering by permissions - Only players with permission receive limit alerts
- No more base location reveals - Prevents accidental discovery of hidden builds
- Configurable alert access - Admins can control who sees what alerts
Custom Limit Permissions
- Per-player custom limits - Set different limits for different players/ranks
- Permission-based limits - Use permissions like
lagxpert.limits.hoppers.25 - Priority system - Bypass > Custom limit > Default limit
New Permission Examples
lagxpert.alerts.receive - Receive all alerts
lagxpert.alerts.blocks - Receive block limit alerts only
lagxpert.limits.hoppers.15 - Allow 15 hoppers instead of default
lagxpert.limits.mobs.50 - Allow 50 mobs instead of default
🛠️ Technical Notes
- Backward Compatible - All existing configurations work unchanged
- Automatic Migration - No manual config updates needed
- Spigot 1.16.5+ - Compatible with all supported Minecraft versions
This update improves the user experience while maintaining all existing functionality. Players will notice cleaner, less intrusive notifications when working with block limits, and limits now work exactly as configured.
Performance & Reliability Update
release4 июля 2025 г.LagXpert v2.3 - Performance & Reliability Update
🚀 What's New
Major Performance Improvements
- Atomic Counter System: Implemented high-performance atomic counters for TNT and block tracking, replacing expensive chunk scanning operations
- Pre-Placement Validation: Enhanced block placement validation to prevent race conditions and improve reliability
- Smart Alert System: Added intelligent alert filtering to reduce spam when no players are online
Enhanced Item Cleaner System
- Recently Broken Block Tracking: New system tracks when players break blocks and provides grace periods for dropped items
- Material-Specific Grace Periods: Configurable grace periods for valuable materials (diamonds, emeralds, spawners, etc.)
- Intelligent Item Protection: Prevents cleanup of items from recently broken blocks, solving the "mining diamonds but inventory full" scenario
Bug Fixes
- Fixed TNT Limit Bypass: Resolved critical race condition that allowed TNT placement after 3-4 attempts despite limits
- Improved Thread Safety: Enhanced concurrent access handling for block counters and cache operations
- Alert Frequency Fix: Resolved issue with alerts being sent every 2 minutes even when players are online
🔧 Technical Improvements
Performance Optimizations
- O(1) Block Counting: TNT and piston counting now uses atomic operations instead of O(n) chunk scanning
- Reduced Memory Usage: Optimized cache invalidation and cleanup processes
- Async Processing: Enhanced asynchronous chunk analysis with better error handling
Code Quality
- Better Error Handling: Improved exception handling throughout the codebase
- Enhanced Logging: Added detailed debug logging for troubleshooting
- Thread-Safe Operations: Strengthened concurrent access patterns
⚙️ Configuration Updates
New Configuration Options
itemcleaner.yml
broken-block-tracking:
enabled: true
default-grace-period-seconds: 180 # 3 minutes
custom-grace-periods:
DIAMOND_ORE: 300 # 5 minutes for valuable ores
EMERALD_ORE: 300
ANCIENT_DEBRIS: 300
CHEST: 600 # 10 minutes for storage blocks
SPAWNER: 900 # 15 minutes for spawners
monitoring.yml
alerts:
delivery:
skip-when-no-players-online: true # Reduces alert spam
🎯 User Experience Improvements
For Server Administrators
- Reduced Log Spam: Fewer unnecessary alerts when server is empty
- Better Performance Monitoring: More accurate TPS and memory tracking
- Improved Debugging: Enhanced debug logs for troubleshooting
For Players
- Protected Valuable Items: Mining diamonds and other valuables is now safer
- Reduced Frustration: Items from recently broken blocks won't be cleaned immediately
- Better Performance: Smoother gameplay due to optimized block limit checking
🛡️ Compatibility & Requirements
Minecraft Compatibility
- Tested Versions: 1.16.5 - 1.21.7
- Newly Supported: 1.21.6, 1.21.7
- Server Software: Spigot, Paper, Purpur, and forks
Java Requirements
- Minimum: Java 11
- Recommended: Java 17 or newer
📋 Migration Notes
Automatic Configuration Migration
- Existing configurations will continue to work without changes
- New features are disabled by default to maintain current behavior
- Configuration files will be automatically updated with new options
Breaking Changes
- None - this update is fully backward compatible
🔍 Developer Notes
New API Features
ChunkDataCache.getAtomicCounter()- High-performance block countingRecentlyBrokenBlocksTracker- Track recently broken blocks with grace periods- Enhanced
ChunkOverloadEventwith better context information
Internal Changes
- Refactored
StorageListenerfor better performance and reliability - Added
ItemCleanerListenerfor broken block tracking - Improved
PerformanceTrackerwith smarter alert logic
🐛 Known Issues
Resolved
- ✅ TNT limit bypass exploit
- ✅ Alert spam when no players online
- ✅ Item cleaner removing freshly mined items
- ✅ Race conditions in block placement validation
Monitoring
- Performance impact of new tracking systems (expected to be minimal)
- Memory usage with large numbers of recent block breaks (automatic cleanup implemented)
🙏 Credits
Thanks to the community for reporting these issues and providing valuable feedback that made this update possible.
📚 Documentation
For detailed configuration and usage instructions, please refer to the main README.md file.
Download: Available on GitHub Releases
Support: Open an issue on GitHub for bug reports or feature requests
License: GPL-3.0
LagXpert v2.3 - Making Minecraft servers faster and more reliable, one optimization at a time.
