1.0.0
Compatibility
Changes
LagScope Update - Major Performance & Paper API Optimization
This update focuses on massive performance improvements, specifically targeting high-player and low-latency server environments. We have deeply integrated modern Paper API methods and reworked our internal algorithms to significantly reduce Garbage Collection (GC) pressure and CPU overhead.
Performance Improvements
- Optimized Entity Clearing: Completely replaced the legacy
world.getEntities()calls inLagClearer. The plugin now utilizes Paper's highly optimizedworld.getEntitiesByClasses(). Players and complex mobs are completely bypassed during clear scans, preventing TPS drops when clearing large worlds. - Spatial-Hashing for Radius Clears: Radius-based entity clears now use
world.getNearbyEntities(), leveraging the server's internal spatial hashing instead of iterating through the entire world's entity list. - Fast-Exit Chunk Analysis: The
LagAnalyzernow features a fast-exit mechanism. If a chunk contains fewer entities than the current Top-N threshold, the analyzer skips the deep iteration entirely, drastically lowering CPU usage (MSPT) during scanning cycles. - Drastic GC Reduction: Refactored object creation inside the
LagAnalyzer. By using static comparators and optimizing the PriorityQueue, we eliminated thousands of useless array allocations per second, significantly reducing Garbage Collection spikes. - Native Server Metrics: The analyzer now hooks directly into the engine's internal metrics (
Bukkit.getServer().getTPS()andgetAverageTickTime()), completely removing the need for manual TPS calculation overhead.
Technical Changes
- Stronger focus on the Paper ecosystem for peak performance.
- Codebase cleanup and improved memory management across the analysis and control pipelines.
Note for Server Admins: This update is highly recommended for all servers, especially those dealing with high entity counts or struggling with micro-stutters during GC pauses.
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:tZUH4PXA:E75VxUT6"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:tZUH4PXA:E75VxUT6"
}

