Skip to content

Releases: AJARETRO/CircuitBreaker

CircuitBreaker v2.0

Choose a tag to compare

@AJARETRO AJARETRO released this 13 Nov 16:37

🚀 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-culling section of your config.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.notify permission) 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.whitelist in 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 §c artifacts.
  • Code Cleanup: Cleaned up various classes and fixed minor bugs from v1.1.

CircuitBreaker v1.1.0

Choose a tag to compare

@AJARETRO AJARETRO released this 12 Nov 05:11

🚀 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.yml file 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

Choose a tag to compare

@AJARETRO AJARETRO released this 11 Nov 20:57
7e80bc1

🚀 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.yml file 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.