Releases: AJARETRO/CircuitBreaker
Release list
CircuitBreaker v2.0
🚀 CircuitBreaker v2.0: The Performance Suite Update
This is a major feature update that introduces the Entity Culling System, transforming CircuitBreaker from a specialized physics-lag tool into an all-in-one server performance suite.
✨ New Feature: Entity Culling System
A new, optional system has been added to detect and clear excessive entity build-ups. This runs completely separately from the v1.0 physics lag detector.
- Fully Configurable: The entire feature is disabled by default. You can enable it and configure it in the new
entity-cullingsection of yourconfig.yml. - New Scanner: A new, slower, and server-friendly scanner (
startEntityScanner) runs on its own configurable timer (e.g., every 15-30 seconds) to check for entity-crammed chunks. - Threshold Culling: If the number of entities in a single chunk exceeds the
entity-threshold, the plugin will perform a "cull". - Admin Notifications: When a cull occurs, a message is sent to the console and to all in-game admins (with the
antilag.notifypermission) detailing how many entities were removed and from which chunk (including coordinates).
🧠 Smart Culling: No More Deleting Pets!
The biggest feature of the new system is its "smart" culling logic. The plugin will not remove entities that are considered "important".
An entity is considered important (and will be skipped) if it:
- Is on the new
entity-culling.whitelistin the config (e.g., "PLAYER", "VILLAGER"). - Has a custom name.
- Is a tamed pet (like a dog or cat).
- Is a vehicle (like a boat or minecart).
🎨 Minor Fixes & QoL (v1.1 -> v2.0)
- Console Colors: All console messages (startup, shutdown, and warnings) have been updated to use
Bukkit.getConsoleSender()for proper, sexy "blood-red" color rendering that avoids§cartifacts. - Code Cleanup: Cleaned up various classes and fixed minor bugs from v1.1.
CircuitBreaker v1.1.0
🚀 CircuitBreaker v1.0.0 (The Foundation Release)
This is the initial public release of CircuitBreaker, the surgical anti-lag solution for modern Minecraft servers. This version introduces the core tiered defense system, providing server owners with an active tool to manage persistent physics-based lag machines without punishing legitimate players.
✨ NEW FEATURES & CORE FUNCTIONALITY
1. Tiered Anti-Lag Defense System
The plugin actively monitors Block Physics Events (the true source of redstone/piston lag) on a per-chunk basis, rather than relying on general TPS or broad entity deletion.
- Surgical Detection: Monitors and logs the exact event count of malicious activity in real-time.
- Strike System: Utilizes a configurable 3-strike mechanism to differentiate between a brief spike and a persistent lag machine.
2. Automated Tiered Response
The plugin automatically escalates its defense based on the threat level:
- Strike 1 & 2 (Soft Reset): The chunk is temporarily unloaded and reloaded (jiggled) to break simple lag cycles without requiring admin intervention.
- Strike 3 (Hard Freeze): The chunk is added to the "Jail" list, and the plugin actively cancels all future physics events within that chunk, stopping the lag machine dead.
3. Advanced Admin Controls & Persistence
This release ensures maximum reliability and configurability for server staff.
- Persistence: All ignored (whitelisted) chunks are saved to a separate
data.ymlfile and are loaded automatically on server restart. Your whitelist is never lost. - Strike Reset Timer: A configurable global timer automatically resets all strike counts every 15 minutes (default), ensuring fairness by preventing a single strike from lingering indefinitely.
- Admin Commands (
/cb):/cb status: Check the status (Normal, Watching, Frozen) of the chunk you are standing in./cb ignore: Adds the current chunk to the permanent whitelist./cb unfreeze: Manually releases a frozen chunk.
🛠️ CONFIGURATION HIGHLIGHTS
The plugin is immediately functional out of the box, but we recommend tuning these critical values in your config.yml:
| Setting | Default | Purpose |
|---|---|---|
lag-threshold |
20000 |
Recommended maximum physics events allowed per second before a warning is issued. |
strike-limit |
3 |
How many warnings before a Hard Freeze is applied. |
strike-reset-minutes |
15 |
How often the strike count for all chunks is cleared. |
freeze-duration-ticks |
6000 |
How long (5 minutes) a chunk stays frozen before auto-unfreezing. Use -1 for permanent freeze. |
⚠️ Compatibility Note
- Required API: Paper/Spigot 1.21+
- Folia: This plugin contains a mandatory check and will disable itself if Folia is detected, as the Bukkit Global Schedulers used for the tiered response are incompatible with Folia's regionized threading model.
Update:
*fine tuning
Release-v1.0
🚀 CircuitBreaker v1.0.0 (The Foundation Release)
This is the initial public release of CircuitBreaker, the surgical anti-lag solution for modern Minecraft servers. This version introduces the core tiered defense system, providing server owners with an active tool to manage persistent physics-based lag machines without punishing legitimate players.
✨ NEW FEATURES & CORE FUNCTIONALITY
1. Tiered Anti-Lag Defense System
The plugin actively monitors Block Physics Events (the true source of redstone/piston lag) on a per-chunk basis, rather than relying on general TPS or broad entity deletion.
- Surgical Detection: Monitors and logs the exact event count of malicious activity in real-time.
- Strike System: Utilizes a configurable 3-strike mechanism to differentiate between a brief spike and a persistent lag machine.
2. Automated Tiered Response
The plugin automatically escalates its defense based on the threat level:
- Strike 1 & 2 (Soft Reset): The chunk is temporarily unloaded and reloaded (jiggled) to break simple lag cycles without requiring admin intervention.
- Strike 3 (Hard Freeze): The chunk is added to the "Jail" list, and the plugin actively cancels all future physics events within that chunk, stopping the lag machine dead.
3. Advanced Admin Controls & Persistence
This release ensures maximum reliability and configurability for server staff.
- Persistence: All ignored (whitelisted) chunks are saved to a separate
data.ymlfile and are loaded automatically on server restart. Your whitelist is never lost. - Strike Reset Timer: A configurable global timer automatically resets all strike counts every 15 minutes (default), ensuring fairness by preventing a single strike from lingering indefinitely.
- Admin Commands (
/cb):/cb status: Check the status (Normal, Watching, Frozen) of the chunk you are standing in./cb ignore: Adds the current chunk to the permanent whitelist./cb unfreeze: Manually releases a frozen chunk.
🛠️ CONFIGURATION HIGHLIGHTS
The plugin is immediately functional out of the box, but we recommend tuning these critical values in your config.yml:
| Setting | Default | Purpose |
|---|---|---|
lag-threshold |
20000 |
Recommended maximum physics events allowed per second before a warning is issued. |
strike-limit |
3 |
How many warnings before a Hard Freeze is applied. |
strike-reset-minutes |
15 |
How often the strike count for all chunks is cleared. |
freeze-duration-ticks |
6000 |
How long (5 minutes) a chunk stays frozen before auto-unfreezing. Use -1 for permanent freeze. |
⚠️ Compatibility Note
- Required API: Paper/Spigot 1.21+
- Folia: This plugin contains a mandatory check and will disable itself if Folia is detected, as the Bukkit Global Schedulers used for the tiered response are incompatible with Folia's regionized threading model.