
Tired of server-wide lag cleaners that punish players? CircuitBreaker is a smart, high-performance plugin built for Paper servers that finds the exact source of lag—and stops it cold.
CircuitBreaker is a powerful, high-performance anti-lag plugin for modern Minecraft (Paper 1.21+). It moves beyond basic entity killing by providing a dual-system, automated response to both physics lag and entity lag.
This plugin ensures your server maintains high TPS by surgically neutralizing lag sources without punishing legitimate players.
This release adds the Entity Culling System, a new, optional feature that runs alongside the original physics detector. You now have two layers of defense:
This is the core of the plugin. It only detects Block Physics Lag.
BlockPhysicsEvent (from pistons, redstone, water, etc.) per chunk, every second.lag-threshold, it performs a "Soft Reset"—unloading and reloading the chunk to break simple loops.strike-reset-minutes) clears all strikes every 15 minutes to ensure fairness.This is the new optional v2.0 system. It must be enabled in config.yml.
scan-interval-seconds) runs to check the total number of entities in each loaded chunk.chunk.getEntities().length is greater than the entity-culling.threshold (e.g., 500), it triggers a cull.entity-culling.whitelist in the config (e.g., "PLAYER", "VILLAGER", "IRON_GOLEM").You have 100% control. All administrative actions (like ignoring chunks) are saved to data.yml and persist through server restarts.
| Permission | Description | Default |
|---|---|---|
circuitbreaker.admin |
Grants access to all /cb commands. |
op |
antilag.notify |
Receives alerts when a chunk is frozen or culled. | op |
| Command | Alias | Description |
|---|---|---|
/cb status |
/cb status |
Checks the status of your current chunk (NORMAL, WATCHED, FROZEN, IGNORED). |
/cb unfreeze |
/cb unfreeze |
Manually unfreezes a (physics-lag) frozen chunk. |
/cb ignore |
/cb ignore |
(Most Important!) Whitelists your current chunk. It will be ignored by both the physics lag and entity lag systems. |
/cb unignore |
/cb unignore |
Removes your current chunk from the permanent ignore list. |
config.yml v2.0)Tune the plugin to perfectly match your server's needs.
# ------------------------------
# CircuitBreaker Config v2.0
# ------------------------------
# --- v1.0: Physics Lag Detector ---
# Set to false to disable the 3-strike physics lag system.
enabled: true
# How many block physics events in 1 second (20 ticks)
# will trigger a "lag" warning?
lag-threshold: 20000
# How many "strikes" a chunk gets before it is frozen.
strike-limit: 3
# How many minutes of no lag before a chunk's strike count is reset.
strike-reset-minutes: 15
# How long (in ticks) to "soft reset" a chunk for.
# 200 ticks = 10 seconds
soft-reset-duration-ticks: 200
# How long (in ticks) to "hard freeze" a chunk for.
# 6000 ticks = 5 minutes
# Set to -1 to freeze chunks permanently (requires admin /cb unfreeze).
freeze-duration-ticks: 6000
# Send a broadcast message to admins when a chunk is frozen OR culled?
notify-admins: true
# ------------------------------
# v2.0: Entity Culling Settings
# ------------------------------
entity-culling:
# Set to true to enable this new entity-culling feature.
# This is disabled by default.
enabled: false
# How often (in seconds) to scan all loaded chunks.
# This is a HEAVY task. Do not set this too low!
scan-interval-seconds: 15
# How many entities must be in a *single chunk* to trigger a cull.
threshold: 500
# A list of entity types to *NEVER* kill (case-insensitive).
whitelist:
- "PLAYER"
- "VILLAGER"
- "IRON_GOLEM"
- "ARMOR_STAND"
- "ITEM_FRAME"
- "PAINTING"