Tags
Creators
Details
Licensed MIT
Published 11 months ago
Updated 2 months ago
All versions
2.3.0
Release
PerfomanceAnalyzer 2.3.08 months ago 76
Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Paper
Purpur
Spigot
Changes
[2.3.0] - 2026-02-22
Added
- Lag Compensation for Movement Checks
- Player ping considered in speed calculations (+10% per 100ms above 100ms)
- Reduces false-positives for high-ping players
- Knockback/Damage Immunity Detection
- 2-second immunity window after explosions and entity attacks
- Prevents false-positives from legitimate knockback
- Y-Level Analysis for XRay Detection
- Tracks mining height for all ores
- Optimal Y-level ranges based on Minecraft 1.21
- New detection method:
XRAY_YLEVEL - Detects suspicious pattern: 75%+ mining at optimal height
- Async Chunk Analysis
- Uses
ChunkSnapshotfor thread-safe analysis - Parallel processing with
CompletableFuture - 90% less main-thread load during performance drop analysis
- Timeout protection maintained
- Uses
- Auto-Cleanup for Database
- Automatic retention policy (default: 30 days)
- Runs daily (1h after startup, then every 24h)
- Configurable:
database.retention_days(set to 0 to disable)
- GUI Auto-Refresh System
- Performance data updates every 3 seconds
- Only active for open GUIs (no overhead)
- Automatic cleanup on GUI close
- Configurable:
gui.auto_refresh
- Trend Analysis for World Stats
- Historical tracking (up to 288 snapshots = 24h @ 5min intervals)
- Trend direction:
INCREASING,DECREASING,STABLE - Change rate calculation (entities/hour)
- Methods:
recordSnapshot(),analyzeTrend(),analyzeTrendsForAllWorlds()
- REST API for External Monitoring
- 4 JSON endpoints:
/api/health,/api/metrics,/api/worlds,/api/trends - API key authentication (
Authorization: Bearer) - Perfect for Grafana/Prometheus dashboards
- Config:
api.enabled,api.port,api.key
- 4 JSON endpoints:
- Automatic Entity Cleaner
- Smart entity management to prevent lag
- Priority-based removal (items → projectiles → monsters → animals)
- Protection for named entities, tamed animals, villagers
- Boss mob blacklist (Ender Dragon, Wither, Warden)
- Per-world and per-chunk limits
- Dry-run mode for safe testing
- Config:
entity_cleaner.*
Changed
- Movement Checker (
MovementChecker.java)- Added environmental checks (slime blocks, bubble columns)
- 2x vertical speed allowance near slime blocks/bubble columns
- Enhanced cleanup method to include new tracking maps
- XRay Detector (
XRayDetector.java)- Added Y-level tracking for pattern analysis
- New method:
analyzeYLevelPattern() - New method:
getOptimalYRange()with Minecraft 1.21 spawn data - Enhanced
checkSuspiciousPattern()with Y-level analysis
- Performance Drop Analyzer (
PerformanceDropAnalyzer.java)- Replaced synchronous chunk analysis with async processing
- Added
analyzeChunkAsync()method using ChunkSnapshot - Legacy
analyzeChunk()kept as fallback - Improved error handling for async operations
- Database Manager (
DatabaseManager.java)- Added auto-cleanup task for retention management
- Enhanced shutdown procedure to cancel cleanup task
- World Stats Manager (
WorldStatsManager.java)- Added trend tracking infrastructure
- New records:
WorldStatsSnapshot,TrendAnalysis - Multiple helper methods for trend calculation
- Performance GUI (
PerformanceGUI.java)- Added auto-refresh system with task management
- New
InventoryCloseEventhandler for cleanup - New method:
shutdown()for proper cleanup
- Plugin Config (
PluginConfig.java)- Added 10 new config methods for features
- Auto-migration for all new config entries
Fixed
- Memory leaks from incomplete cleanup (movement checker, XRay detector)
- False-positives in movement detection from knockback
- False-positives in movement detection from environmental effects
- Main-thread bottleneck in chunk analysis
Performance
- 90% reduction in main-thread load during performance drop analysis
- Reduced false-positive alerts (less CPU overhead)
- More efficient memory usage with automatic cleanup
Security
- REST API authentication with API keys
- SSRF protection in Discord webhook validation (from v2.2.0)
- SQL injection prevention (from v2.2.0)
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:xcpph8Xo:quex3WiB"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:xcpph8Xo:quex3WiB"
}

