2.7latestAutonomous Optimizer & Lag DiagnosticsSep 7, 2026 LagXpert v2.7 — Autonomous Optimizer & Lag Diagnostics
This release does two things: it makes the automatic optimization actually run, and it adds a diagnostics system that tells you why your server is lagging and where. The honest framing matters here. Parts of v2.6 shipped configuration that was read, displayed in commands, and then never acted upon. This release closes those gaps and adds verification so they cannot silently reopen.
The most common admin question is not "what is my TPS" — it is "which build is doing this to me". v2.7 answers that directly.Lag Diagnostics (new)
/lagxpert diagnosescans every loaded chunk and produces a ranked report: - Scoring is relative to limits, not raw counts. A chunk with 40 mobs where the limit is 200 is fine. A chunk with 12 hoppers where the limit is 8 is a problem. Ranking by raw count surfaces the wrong chunks, so every metric contributes its percentage of the limit that actually applies to that world. - Intervention history counts. A chunk LagXpert has had to clean up twenty times in the last hour ranks above one that is merely full right now. - Limits come from the live adaptive engine, so the report reflects what is being enforced at that moment, matching what players experience. - Plain-language conclusions, not just numbers. The report tells you whether load is concentrated in a few chunks or spread everywhere, which violation type dominates, whether memory pressure is the real cause, which world is carrying the load, and — importantly — when the cause is outside LagXpert's scope so you stop looking in the wrong place. Scanning is two-phase: chunk snapshots are gathered on the owning thread, then all scoring happens asynchronously. Diagnosing lag must not cause lag. Reports are cached for 30 seconds so a command and a GUI opened together share one scan, and concurrent scans are rejected rather than queued.Diagnostics GUI
/lagxpert diagnosein-game opens an interactive interface with five screens: - Overview — server state, TPS across three windows, memory, entity totals per world, the plain-language diagnosis, and the limits currently in force. - Hotspots — paginated ranked chunk list, colour-coded by severity, each showing which metrics are over limit. - Chunk detail — every measured contributor for one chunk, plus a teleport button to go look at it. - Corrective actions — the audit trail, with timestamps, triggers and counts. - Trends — worst hour of the day, peak players, entity growth direction and 24h projection.Bedrock compatibility
This was built Bedrock-first rather than retrofitted: - Screen sizes come fromBedrockPlayerUtils.getSafeInventorySize, and every slot position is computed from the actual size. Nothing is placed in a slot a Bedrock client will never render. - Materials that Geyser translates badly (spawn eggs, command blocks, structure blocks, knowledge books) are substituted automatically. - Lore is capped at 10 lines, past which Bedrock truncates tooltips unpredictably. - Legacy&colour codes only. - If the inventory cannot be opened at all, the full report is sent as chat text. A Bedrock admin is never left without a diagnosis. The Bedrock rules now live in one shared helper (BedrockUI) that both the config GUI and the diagnostics GUI route through, so they cannot drift apart. The previousBedrockCompatibleGUIclass — 574 lines that registered no listener and had no callers — has been removed rather than left as a maintenance trap.
A four-level state machine (NORMAL → WARNING → CRITICAL → EMERGENCY) with hysteresis: 3 consecutive bad readings to escalate, 5 good to de-escalate, minimum 10 seconds per state. The EMERGENCY tier is now reachable. In the pre-release codeEmergency Controller
computeTargetState()could only ever return NORMAL, WARNING or CRITICAL, which made the entireresponses.emergencyblock — the 25% mob cap, the 16-block AI distance, the 1-minute unload threshold, and the custom command list — permanently dead. It now escalates via dedicatedthresholds.tps.emergency/thresholds.ram.emergencyvalues, and also on sustained CRITICAL: a server pinned at 12 TPS for two minutes is an emergency in practice even if it never crosses the raw threshold. Threshold ordering is validated at startup. Misconfiguring the tiers so one becomes unreachable now logs a warning instead of failing silently.Responses that now actually execute
| Response | Status | |---|---| | Mob cap multiplier (75% / 50% / 25%) | working | | Chunk preloader pause | working | | Aggressive chunk unloading | working | | AI distance reduction | working | | Redstone clock shutdown | working | | Block natural spawns | now implemented | | Forced item cleanup | now implemented | | Server-wide AI freeze | now implemented | | Emergency commands | now reachable | The last four were configurable and reported by/lagxpert emergencybut had no code acting on them. A new response coordinator consumes them: - Natural spawn blocking filters bySpawnReason. Only environmental pressure is suppressed — spawn eggs, breeding, plugin spawns and commands keep working, because blocking those makes a server look broken rather than busy. The list is operator-configurable, and players withlagxpert.bypass.mobsare exempt. - Forced cleanup runs off-cycle with a CAS latch and a cooldown, so a flapping state cannot stack cleanup sweeps. - AI freeze dispatches per chunk (correct under Folia), skips players and NPC-metadata entities, and on recovery respects yourmobs.ymlAI rules instead of blanket re-enabling everything. A shutdown mid-emergency lifts the freeze so mobs are never left permanently frozen.
Previously this computed multipliers correctly and nothing consumed them — turning the feature on or off only changed numbers inAdaptive Thresholds
/lagxpert status. It is now the single authority for "what is the limit right now", and is wired into: -StorageListener— hopper, chest, furnace, barrel, dropper, dispenser, shulker, TNT, piston and observer placement limits -EntityListenerandSmartMobManager— mob caps -RedstoneCircuitTracker— pulse tolerance and maximum circuit duration -AutoChunkScanTask— so a chunk flagged as overloaded matches what players are actually restricted to -EntityCleanupTask— the per-chunk entity ceiling Two independent inputs are combined: continuous server health (from TPS and memory) and the discrete emergency state. The more restrictive of the two wins; they are never multiplied, which would compound into unplayable values. Limits are only ever scaled down — your configured value is always the ceiling — and a configurableminimum-multiplierfloor prevents collapse. Per-player limits granted throughlagxpert.limits.*permissions are honored verbatim and never scaled. The health factor now takes the worse of the TPS and memory components rather than averaging them, so healthy memory can no longer mask a genuinely bad TPS reading.Optimization Profiles
profiles.ymlpreviously shipped with zero Java code behind it: no reader, noprofilesubcommand./lagxpert profile balancedreturned "unknown subcommand". Now implemented:
Applying a profile writes into the real config files, saves them, and reloads every subsystem. Before the first write the replaced values are snapshotted, so/lagxpert profile list show profiles and which is active /lagxpert profile <name> apply a profile /lagxpert profile revert restore the pre-profile configurationrevertrestores your configuration rather than an assumed default — and applying a second profile over a first still reverts all the way back.safety.auto-revert-minutesguards against applying an aggressive profile during an incident and forgetting. Profile keys that do not map to a real sett2.6.1Bug FixesMar 3, 2026 LagXpert v2.6.1 - Hotfix
Bug Fixes
Fixed: Limit messages showing raw YAML objects
Players were seeingMemorySection[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 existingplugins/LagXpert/messages.ymland restart the server to regenerate it, or manually update thelimits:section to use the newfull/shortstructure.Fixed:
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.IllegalArgumentException: Specified map is emptyin AsyncChunkAnalyzerFixed:
LagShield was looking for messages at the wrong path inMissing message: lagshield.activatedin consolemessages.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 frommessages.yml. A newtranslations:section lets you rename items like "Hoppers", "Chests", "Mobs", etc. to match your server's language. The/chunkstatusdisplay is also fully customizable with individual line formats. Action required: Delete your existingplugins/LagXpert/messages.ymland restart the server to regenerate it with the newtranslations:andchunkstatus: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&ain chat.
1. ReplaceUpgrade
LagXpert-2.6.jarwithLagXpert-2.6.1.jar. 2. Deleteplugins/LagXpert/messages.yml(will regenerate on startup with new translation options). 3. Restart the server. 4. Edit thetranslations:section inmessages.ymlto your language.2.6Reactive Optimization & Modular ControlDec 23, 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.
- 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.Highlights
`explosions.yml` - Prevent massive TNT chain reactions:Configuration Examples
`vehicles.yml` - Limit entities per chunk:settings: prevent-chain-reaction: true max-primed-tnt-per-chunk: 20 disable-explosion-drops: falselimits: minecarts: per-chunk: 8 boats: per-chunk: 5
- Modular Refactoring: Clean implementation of new systems (Bug Fixes & Technical Improvements
me.koyere.lagxpert.system.*) with independent configurations. - Compilation Fixes: Resolved symbol error inVehicleManagerand cleaned up imports inAbilityLimiter. - Secure Integration: Verified build with Maven (BUILD SUCCESS) and ensured correct registration of listeners and commands.Installation & Compatibility
Installation
1. Stop your server. 2. Delete any previousLagXpert-*.jarversions. 3. Place the newLagXpert-2.6.jarin your/plugins/folder. 4. 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. 5. Note: While `/lagxpert reload` exists, 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.2.5World-Aware Enforcement & Activity TrackingOct 14, 2025 LagXpert v2.5 - World-Aware Enforcement & Activity Tracking
- 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 readsHighlights
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 fromchunks.yml, so mission-critical structures stay loaded without code changes.
- 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 populateTechnical Improvements
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 withmonitoring.yml.
-Developer Notes
ConfigManagerexposes per-world getters and broken block tracking settings;RecentlyBrokenBlocksTracker.configure(...)keeps runtime state in sync. - AddedChunkActivityListenerandChunkActivityCleanupTaskto the lifecycle; ensure they remain registered when extending the chunk management module.2.4Action Bar Notifications UpdateJul 7, 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 secondsEnhanced 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 chatConfiguration Options
New Settings in
messages.yml
Available Methods: -delivery: restrictions: method: "actionbar" # Options: "chat", "actionbar", "both" cooldown: 5 # Seconds between messages"chat"- Traditional chat messages (old behavior) -"actionbar"- Action bar only (new default) -"both"- Send to both chat and action barMessage 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 setupsWhat 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 sameFor Server Admins
- Reduced chat noise in logs and screenshots - Better user experience for builders - Fully configurable - switch back to chat if preferredBug 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 limitAffected 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, BlackPrivacy & 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 alertsCustom Limit Permissions
- Per-player custom limits - Set different limits for different players/ranks - Permission-based limits - Use permissions likelagxpert.limits.hoppers.25- Priority system - Bypass > Custom limit > Default limitNew 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
- 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.Technical Notes
2.3Performance & Reliability UpdateJul 4, 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 onlineEnhanced 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" scenarioBug 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 onlineTechnical 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 handlingCode Quality
- Better Error Handling: Improved exception handling throughout the codebase - Enhanced Logging: Added detailed debug logging for troubleshooting - Thread-Safe Operations: Strengthened concurrent access patternsConfiguration Updates
New Configuration Options
#### itemcleaner.yml
#### monitoring.ymlbroken-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 spawnersalerts: delivery: skip-when-no-players-online: true # Reduces alert spamUser 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 troubleshootingFor 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 checkingCompatibility & 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 forksJava Requirements
- Minimum: Java 11 - Recommended: Java 17 or newerMigration 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 optionsBreaking Changes
- None - this update is fully backward compatibleDeveloper Notes
New API Features
-ChunkDataCache.getAtomicCounter()- High-performance block counting -RecentlyBrokenBlocksTracker- Track recently broken blocks with grace periods - EnhancedChunkOverloadEventwith better context informationInternal Changes
- RefactoredStorageListenerfor better performance and reliability - AddedItemCleanerListenerfor broken block tracking - ImprovedPerformanceTrackerwith smarter alert logicKnown 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)
Thanks to the community for reporting these issues and providing valuable feedback that made this update possible.Credits
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.Documentation
2.2Major Features AddedJun 19, 2025
---LagXpert Free - Changelog
[2.2] - 2025-01-19
- Smart Mob Management System: Automatically removes excess mobs while protecting important entities - Protects named mobs, tamed animals, equipped entities, and plugin-created mobs - Intelligent priority system (farm animals removed before valuable entities) - Performance-optimized gradual removal (max 10 mobs per chunk per tick) - Chunk processing cooldowns to prevent lag spikes - Comprehensive notifications with detailed statisticsMajor Features Added
- Platform Detection: Automatically detects Folia, Paper, Spigot, or Bukkit - Folia Compatibility: Native support with RegionScheduler and AsyncScheduler - Cross-Platform Scheduling: Intelligent scheduler wrapper for optimal performance - Backward Compatibility: Seamless fallback to Bukkit scheduler when neededMulti-Platform Support
- Player Detection: Automatic identification of Bedrock players via Geyser/Floodgate - GUI Optimization: Bedrock-specific inventory layouts and material handling - Cross-Platform GUIs: Separate templates for Java and Bedrock players - Smart Fallbacks: Chat-based alternatives when GUIs aren't compatibleBedrock Edition Support
- Zero-Lag Design: All new systems designed to improve performance, not hinder it - Intelligent Caching: Platform detection and player type caching for optimal performance - Batch Processing: Operations grouped to minimize server load - Region-Based Processing: Folia optimization for distributed chunk processingPerformance Enhancements
- Advanced Statistics: Detailed tracking of mob removals, protections, and performance - Platform Reporting: Comprehensive platform detection and capability reporting - Migration Tracking: Automatic configuration version tracking and migration statusEnhanced Monitoring
- Automatic Migration: Seamless upgrade from v2.1.x with automatic backup creation - New Configuration Sections: Platform detection, Bedrock compatibility, smart mob management - Enhanced Documentation: Comprehensive inline documentation for all new features - Backward Compatibility: Preserves all existing settings during migrationConfiguration System Improvements
- Advanced Protection Logic: Multiple layers of entity protection with priority systems - Plugin Integration: Detects and protects entities created by other plugins - Metadata Awareness: Respects custom entity metadata and flags - Configuration Flexibility: Granular control over protection rulesEntity Protection Enhancements
- Intelligent Notifications: Detailed feedback about optimization actions taken - Cross-Platform Commands: All commands work seamlessly across Java and Bedrock - Enhanced Debugging: Comprehensive logging and debugging options for troubleshooting - Progressive Enhancement: Features gracefully degrade based on available platform capabilitiesUser Experience Improvements
- New API Methods: SmartMobManager integration for external plugins - Platform Detection API: Allows other plugins to detect server platform - Bedrock Player API: Utilities for detecting and handling Bedrock players - Enhanced Events: Additional context and information in existing eventsAPI Enhancements
- Automatic Configuration Migration: Seamless upgrade from any v2.1.x version - Backup Creation: Automatic backup of old configurations with timestamps - Zero Downtime: Migration occurs during plugin startup with no service interruption - Rollback Support: Easy restoration from automatically created backups ---Migration & Compatibility
2.1.1LagXpert Free 2.1.1Jun 15, 2025 LagXpert v2.1.1 - Bug Fix Update
Bug Fixes
- Fixed configuration warnings on startup - Eliminated unnecessary "Could not save X.yml because X.yml already exists" warnings that appeared during plugin initialization - Improved startup logging - Cleaner console output during plugin loading processTechnical Details
- Enhanced configuration file detection logic to prevent false warnings - Optimized default configuration saving process - No functional changes - all features work exactly the same
This is a minor maintenance update focused on improving user experience by removing confusing warning messages that appeared on plugin startup. The warnings were harmless but caused unnecessary concern for server administrators.What's New
Compatibility
- Minecraft: 1.16.5 - 1.21+ - Java: 11+ - Update Process: Simply replace the JAR file - no configuration changes needed Download LagXpert v2.1.1 and enjoy a cleaner startup experience!2.1Bug Fixes & ImprovementsJun 6, 2025 LagXpert v2.1 - Bug Fixes & Improvements
Critical Bug Fixes
Item Cleaner System: - Fixed excluded items being deleted despite being in the exclusion list - Improved item type detection and comparison logic - Added automatic protection for enchanted items, named items, and items with lore - Better error handling to prevent crashes with corrupted items Entity Cleanup System: - Fixed named entities being removed incorrectly - Fixed tamed animals being deleted despite protection settings - Fixed leashed entities being removed when they shouldn't be - Improved detection of custom names, taming status, and leash connections - Better respect for all protection configuration options Configuration System: - Fixed configuration lists not loading properly from files - Improved validation to prevent invalid settings - Added automatic fallback values for missing or empty configurations - Better error messages when configuration files are missing Improvements - Enhanced debug logging for better troubleshooting - Improved performance with better error handling - More reliable detection of important entities and items - Better configuration validation on server startup ⚠️ Important Notes - Your existing configurations will continue to work - Excluded items in itemcleaner.yml will now be properly respected - Protected entities in entitycleanup.yml will now be properly protected - Enable debug mode in config.yml to see detailed logs if needed This update focuses on fixing critical issues reported by users. No new features were added to ensure stability.2.0Major UpdateJun 5, 2025
Release Date: June 2025 Compatibility: Minecraft 1.16.5+ (Spigot/Paper) ---LagXpert v2.0 - Major Update
LagXpert v2.0 is a complete rewrite that transforms your server's performance management. This isn't just an update - it's a revolution in how you handle server lag.What's New in v2.0
- Real-time TPS tracking - Know exactly when your server starts lagging - Memory usage monitoring - Catch memory issues before they crash your server - Automatic lag spike detection - Get instant alerts when performance drops - Performance history - Track your server's health over time - Daily and weekly reports - Understand your server's performance patternsSmart Performance Monitoring
- Smart chunk unloading - Automatically removes inactive chunks to save memory - Directional chunk preloading - Loads chunks ahead of moving players for smoother gameplay - Activity tracking - Learns which areas are important to keep loaded - Border optimization - Special handling for world border chunks - Performance safeguards - Protects important blocks and redstone from accidental unloadingIntelligent Chunk Management
- No more YAML editing - Configure everything through an easy-to-use in-game menu - Real-time previews - See changes before applying them - Session management - Safe configuration editing with timeout protection - Permission-based access - Control who can modify settingsInteractive GUI Configuration
- World-specific limits - Different rules for Nether, End, and custom worlds - Inheritance system - Override only what you need, inherit the rest - Dynamic configuration - Create new world configs without server restarts - Automatic detection - New worlds get appropriate default settingsPer-World Settings
- Advanced caching system - Dramatically faster chunk analysis - Asynchronous processing - Heavy operations won't freeze your server - Circuit detection - Automatically identifies and manages redstone clocks - Smart entity cleanup - Removes problematic entities without affecting gameplayEnhanced Performance Engine
- TPS Command - Detailed performance information at your fingertips - Memory tracking - Monitor Java heap usage and garbage collection - Chunk statistics - See exactly how many chunks are loaded - Lag spike analysis - Identify patterns in server performance issues ---Professional Monitoring Tools
Installation & Update Guide
1. Download LagXpert v2.0 2. Place theFresh Installation
.jarfile in yourplugins/folder 3. Restart your server 4. LagXpert will automatically create all configuration files 5. Use/lagxpertguito configure settings through the GUI
1. Stop your server 2. Backup your current LagXpert folder (important!) 3. Replace the oldUpdating from v1.x
.jarfile with LagXpert v2.0 4. Start your server 5. LagXpert will automatically migrate your old settings 6. Your existing limits and configurations will be preserved 7. New features will use default settings ⚠️ Your server will NOT be affected during the update. All your current limits and settings will continue working. ---Why You Should Update
- 70% faster chunk scanning - Operations that took seconds now take milliseconds - Reduced memory usage - Smart caching reduces RAM consumption by up to 15% - Better server stability - Advanced monitoring prevents crashes before they happenMassive Performance Improvements
- Smoother gameplay - Intelligent chunk preloading eliminates lag spikes - Faster world loading - Players experience less waiting when exploring - Consistent performance - Automatic optimization keeps your server running smoothlyBetter Player Experience
- No more config file editing - Everything can be done through the GUI - Better monitoring - Know exactly what's happening on your server - Automated optimization - Let LagXpert handle performance tuning for you - Detailed insights - Understand your server's performance like never beforeEasier Server Management
- Predictive alerts - Get warned before problems become critical - Historical analysis - Track performance trends over weeks and months - Professional reporting - Generate performance reports for your team - Scalable architecture - Supports servers with 1000+ concurrent players ---Enterprise-Grade Features
| Command | Description | |---------|-------------| |New Commands
/lagxpertgui| Open the interactive configuration interface | |/tps| View detailed server performance information | |/tps detailed| Advanced performance statistics | |/tps memory| Memory usage and garbage collection stats | |/tps lagspikes| Recent lag spike analysis | ---
| Permission | Description | |------------|-------------| |New Permissions
lagxpert.gui| Access to the configuration GUI | |lagxpert.tps| View server performance information | |lagxpert.monitoring.alerts| Receive performance alerts | ---Configuration Highlights
-New Configuration Files
monitoring.yml- TPS and performance tracking settings -chunks.yml- Smart chunk management configuration -entitycleanup.yml- Advanced entity cleanup options -config/worlds/- Per-world override configurations
- All existing configurations have been expanded with new options - Backward compatibility maintained - your current settings still work - New features use safe defaults ---Enhanced Existing Files
1. Start with GUI - UsePro Tips for v2.0
/lagxpertguito familiarize yourself with new features 2. Check TPS regularly - Use/tpsto monitor your server's health 3. Customize per world - Set different limits for Nether and End dimensions 4. Monitor alerts - Enable performance alerts to catch issues early 5. Review reports - Check daily performance summaries to optimize settings ---
- No breaking changes - All existing functionality is preserved - New dependencies - None! Still only requires Spigot API - Memory usage - Initial memory usage may be slightly higher due to monitoring features - CPU impact - New async processing actually reduces CPU load - Database - No database required, all data stored in lightweight files ---Technical Notes
- GUI sessions timeout after 5 minutes of inactivity (by design) - Some advanced chunk management features may need fine-tuning for very large servers - Performance monitoring generates more log entries (can be disabled) ---Known Issues
Found a bug? Have a suggestion? Need help? - SpigotMC: [LagXpert Resource Page](https://www.spigotmc.org/resources/lagxpert-free.124725/) - Discord: Join our community server - Issues: Report bugs through our issue tracker ---Support & Feedback
LagXpert v2.0 sets the foundation for exciting future features: - Discord integration for alerts - Web-based dashboard - Machine learning lag prediction - Advanced analytics and reporting --- Thank you for using LagXpert! Your server's performance journey just got a major upgrade.Coming Next
1.3Improved performance, enhanced stabilityMay 22, 2025 LagXpert v1.3 - Changelog
We are excited to announce the release of LagXpert v1.3! This update brings a comprehensive overhaul of the plugin, focusing on drastically improved performance, enhanced stability, more intuitive configuration, and new alert control features for a smoother and less intrusive server administration experience.Key Improvements & New Features
- Block and entity counting logic across all modules (listeners, scheduled tasks, and commands) has been completely rewritten. Highly efficient methods, such as specific Tile Entity scanning and single-pass full scans for other blocks, are now used. This significantly reduces the plugin's impact on server performance, especially during chunk scanning and command execution like /chunkstatus and /lagxpert inspect. LagXpert is now lighter than ever!Massive Performance Overhaul:
- To prevent chat spam, an intelligent alert cooldown system has been implemented. Players will no longer receive the same specific alert for the same condition/location repeatedly within a short, configurable timeframe (see alerts.yml).New Alert Cooldown System:
- The alerts.yml file has been redesigned to offer much finer control over which specific types of alerts are active (e.g., limit-reached alerts vs. near-limit warnings, for each block/entity type). This allows server administrators to tailor notifications to their exact needs, complementing the master alert toggle in config.yml.Granular Alert Configuration (New alerts.yml):
The inspect subcommand has been fully implemented, allowing administrators with the lagxpert.admin permission to get a detailed and efficient breakdown of any loaded chunk's contents by specifying coordinates and an optional world./lagxpert inspect <x> <z> [world] Command Now - ------ Functional:
The codebase has been refactored to ensure compatibility with Java 11. This broadens the range of server Java versions LagXpert can run on smoothly, which is especially important for servers still utilizing Minecraft 1.16.5.Enhanced Java 11 Compatibility:
The structure of custom events (LagEvent, ChunkOverloadEvent) has been corrected and improved, ensuring proper implementation of Bukkit's HandlerList for better integration with other plugins.Improved Event API:
General Optimizations & Fixes
Configuration Consistency:
- config.yml now acts as the central control panel for enabling or disabling main plugin modules (mobs, storage, redstone, alerts, auto-chunk-scan, item-cleaner). - Individual YAML files (mobs.yml, storage.yml, redstone.yml, itemcleaner.yml, task.yml) now focus on the detailed settings for their respective modules. - All configuration keys and paths have been aligned between YAML files and ConfigManager.java for clarity and to prevent loading errors.Improved ItemCleanerTask:
- The item cleaning task now handles its own warning cycle internally (if enabled), eliminating the need for a separate warning schedule and ensuring the warning always precedes the cleanup in each cycle. - It now consistently pulls all its settings from ConfigManager, responding correctly to reloads.Message System (MessageManager & messages.yml):
- MessageManager is now correctly initialized by ConfigManager. - The messages.yml file has been thoroughly reviewed: all missing message keys have been added, discrepancies corrected, and placeholders standardized. All default messages are now in English and fully customizable.Polished Commands:
- All commands (/lagxpert, /chunkstatus, /clearitems, /abyss) now consistently use MessageManager for all user-facing messages. - Improved TabCompleter for /lagxpert and /clearitems, offering more accurate and permission-based suggestions. - Corrected permission handling and argument parsing in various commands.Optimized Listeners:
- EntityListener, StorageListener, and RedstoneListener now use optimized counting methods and the new granular alert and cooldown logic. - The limit logic in StorageListener has been reviewed for accuracy. - RedstoneListener now correctly implements persistent signal control with a delayed task.Updated plugin.yml:
- Permission nodes have been expanded and detailed, especially for bypasses (lagxpert.bypass.*), covering all limitable elements. - Added permission-message and aliases to command definitions for better Bukkit integration.Various Bug Fixes:
- Resolved multiple "Cannot resolve symbol" and "Cannot resolve method" errors that arose during refactoring. - Fixed the "Duplicate class" issue related to LagXpertCommand.java. - Ensured code compatibility with Java 11 by removing records and "pattern matching for instanceof" where necessary. - We hope you enjoy the stability, performance, and customization improvements in LagXpert v1.3. As always, your feedback and bug reports are welcome on our Discord or the plugin page!1.2Performance, Recovery & Professional UX!May 14, 2025
LagXpert continues to evolve with new optimizations, enhanced features, and improved user experience. This update focuses on player clarity, admin control, and data persistence.LagXpert v1.2 – Performance, Recovery & Professional UX!
What's New
Now displays all relevant blocks: hoppers, chests, furnaces, blast furnaces, barrels, shulker boxes, droppers, dispensers, observers, pistons, TNT and more. Beautifully formatted with clear sections and color coding. Automatically warns when chunk limits are exceeded.Enhanced /chunkstatus Output
Items removed via /clearitems or auto-cleanups are now saved per player in plugins/LagXpert/data/abyss/uuid.yml. Players can safely recover items with /abyss even after a server restart.Fully Persistent Abyss System
- /clearitems all → removes ground items from all enabled worlds. - /clearitems <world> → cleans a specific world by name. Granular permissions added: - lagxpert.clearitems.all - lagxpert.clearitems.worldNew /clearitems Subcommands
Added debug: true in config.yml to output detailed logs in console. Perfect for diagnostics, testing and reporting issues.Debug Mode
Plugin now tracks: - Number of items removed via cleanup. - Players recovering items via Abyss. - Helps us improve performance and feature planning.Extended bStats Metrics
Minecraft 1.16.5 to 1.21.5 Paper, Purpur, Spigot, PufferfishCompatible With
Join our support server: Discord: https://discord.gg/xKUjn3EJzRNeed Help or Want to Share Feedback?
Please consider leaving aEnjoying the Plugin?
review to support continued development!
1.1New Features and ImprovementsMay 10, 2025 LagXpert Free - Update 1.1
Abyss Recovery System (Persistent): - Now players can recover their recently cleared items using /abyss. - Items are stored safely in YAML files per player inside plugins/LagXpert/data/abyss/. - Recovery is available within a configurable time limit and item cap. - Full compatibility with automatic and manual cleanups (/clearitems).New Features
Improvements
Improved Cleanup Logic:
- /clearitems now associates items with the player who used the command. - Better item filtering and world configuration via itemcleaner.yml.Color Message Fix:
- Recovery messages now display with proper color formatting (&a, &f, etc.).Technical Changes
- Clean separation of temporary item storage from runtime memory. - Uses ItemStack.serialize() and deserialize() to ensure compatibility across versions. - Optimized file handling and error resilience in AbyssManager.Notes
- If you already use LagXpert, the plugin will automatically create the new data/abyss/ folder on first use. - No data is stored in RAM — the Abyss system is safe and lag-free even on large servers.
If this plugin is helping your server reduce lag and stay clean, please leave a 5-star review — it means a lot and helps the project grow! Need help or want to suggest a feature? Join our official support server: https://discord.gg/xKUjn3EJzREnjoying LagXpert?
1.0.0LagXpert Free 1.0.0May 5, 2025 LagXpert Free
Monitor and reduce lag sources caused by entities, redstone, hoppers, and chunk overloads.
-Features
Real-time chunk usage inspection - Mob, hopper, chest, and furnace limits per chunk - Automatic chunk scanner with alerts - Redstone disruption for overactive signals -
Item cleaner with optional recovery (
/abyss) - Modular system: enable/disable features via YAML - API & events for developers - Integrated with [bStats]️ Commands
-/lagxpert– Admin command with subcommands likereload,inspect-/chunkstatus– Players check current chunk usage -/abyss– Recover recently cleared ground itemsPermissions
-lagxpert.use– General access -lagxpert.admin– Admin tools -lagxpert.abyss– Access to item recovery -lagxpert.bypass.*– Exemptions for mobs, redstone, hoppers, etc.Configuration
-config.yml– Global toggles and module states -mobs.yml,storage.yml,redstone.yml,alerts.yml,itemcleaner.yml,messages.ymlCompatibility
- Minecraft: 1.14 – 1.21.5 - Servers: Spigot, Paper, Purpur - Java 17+Sreenshots:
- https://imgur.com/sIJNmOq - https://imgur.com/5eAagOE - https://imgur.com/ZoYVTka - https://imgur.com/BIMPMwb - https://imgur.com/GKRfgWA - https://imgur.com/eJsMjxr - https://imgur.com/1LBotoJ - https://imgur.com/AABbkY1 - https://imgur.com/FKpuD41 - https://imgur.com/KBKfTr4 - https://imgur.com/2cjEn2qNeed Help?
Join our [[Discord Support](https://discord.gg/xKUjn3EJzR)] --- Built for performance-focused server admins. Free and open source.
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta
PatPat [Mod & Plugin]
Allows you to pat ANY loved and unloved living mobs in Minecraft!
2.8MSueta
LuckPerms
A permissions plugin/mod for Minecraft servers.
2.8MSueta
ItemSwapper
Inventory update concept for hotswapping items.
2.1MSueta