Performance / Redstone limitsPrivate source

RedstoneLimiter

A spatial budget for redstone, not a blanket disable.

Sliding-window redstone and circuit limits at block, subchunk, chunk and region scope, with TPS scaling and manual quarantine.

Status

Current build 3.0.3. The public changelog stops at 3.0.2, so 3.0.3 is a build version rather than a dated release note.

Checked version 3.0.3

Evidence checked 2026-10-30

RedstoneLimiter case study visual

The problem

Redstone lag is rarely one bad block. It is a circuit that activates too often across a volume, and by the time TPS drops the server has already paid for the work.

What I built

  • Built a four-level spatial model: block, subchunk, chunk and region.
  • Added sliding-window counters with a sustain period instead of a simple per-tick count.
  • Made TPS scaling explicit and centralized so the same cap math is used at every scope.
  • Kept quarantine manual after automatic quarantine proved too risky for operators.

Architecture and trade-offs

Record at every scope

An activation increments the block, subchunk, chunk and region windows. If any parent scope is already blocked, the event returns immediately, so the cheap check happens before more work.

Windows with memory

A sliding window with a sustain period distinguishes a short burst from a circuit that keeps firing. Caps are evaluated against nanosecond timestamps, not a reset-every-tick counter.

TPS scaling is deliberate

When TPS degrades, the multiplier moves toward the configured minimum; when the server is healthy it can rise to the maximum. The direction is explicit in the policy class, not scattered through listeners.

Observability over automatic action

Observer physics are telemetry, not cancellable events. Quarantine is operator-only, and notifications are globally throttled with a bounded message cache.

← All work