Language

RedstoneRegions

RedstoneRegions

Modrinth

Per-chunk redstone speed-up on Folia (2-14× faster). Pick vanilla / Alternate Current / Eigencraft / Disabled per chunk. /undo, sign opt-in, BlueMap, WorldEdit, PAPI, en+fr.

52 downloads updated 1mo ago
Modrinth
Folia Paper Purpur 1.21.11 – 26.1.2 Game-mechanicsOptimizationUtility

🔌 Per-chunk redstone speed-up.

Mark a chunk → it ticks 2-14× faster. Leave the rest vanilla.

Server admins know the dilemma: globally enable Alternate Current and 1% of your machines break, OR keep vanilla everywhere and watch big redstone choke the server. RedstoneRegions ends the dilemma.

Per-chunk choice. Four engines. Hot-swap. Folia-thread-safe.

/redstone-region set alternate-current     ← this chunk only
/redstone-region fill 8 alternate-current  ← 17×17 chunks around you
/redstone-region selection eigencraft       ← your WorldEdit selection
/redstone-region undo                       ← oh wait, no

⚡ The four engines

| Mode | Speed | Edge cases | Use for |
|---|---|---|---|
| vanilla | 1× (baseline) | none | default; everything works |
| alternate-current | 2-14× faster | piston BUDs, observer-on-wire | dust-heavy mega-bases, sorters, salles des coffres |
| eigencraft | 3-5× faster | very few | hot piston/observer machines |
| disabled | n/a (frozen) | wire never updates | archive zones, dead builds |

📊 Performance — 32×32 dust grid

| Run | Vanilla | AC | Speedup |
|---|---|---|---|
| Cold | 234 ms | 22 ms | 10.6× |
| Warm JIT | 41 ms | 14 ms | 2.9× |
| Pre-warmed | 71 ms | 5 ms | 14.2× |

At 64×64 chunks of dust, vanilla overshoots one tick by . AC keeps it under 2.

Every wire update goes through a per-chunk dispatcher with ~50 ns total overhead (StampedLock optimistic read + a switch). Tunable via timing.mode: sample for huge grids — drops to ~5 ns at sample-rate 10. Or off for 0 ns.

🛠 Features

  • 🎯 Per-chunk control/redstone-region set ac only where you need it
  • 💾 Persistent — survives restarts, lives in chunk PDC
  • 🧵 Folia-thread-safe — per-region WireHandlers, validated by 14/14 cross-region stress tests
  • 🗺️ BlueMap overlay — colored chunk rectangles, see your perf zones at a glance
  • ✏️ WorldEdit selection/redstone-region selection ac from your //pos1 //pos2
  • 🪧 Sign opt-in — players can place [ac] signs to flip their own chunks (perm-gated, radius-capped)
  • 🤖 Auto-AC scanner — hot vanilla chunks auto-flip, threshold configurable
  • 📊 Live profiler/redstone-region profile gives a 50ms-tick-budget readout per chunk
  • 🔍 /redstone-region why x y z — explains a wire's current power by enumerating its 6 neighbors' contributions
  • /redstone-region undo — reverses the last batch (set / fill / selection / sign / auto-AC)
  • 🌍 i18n — English + French built-in, drop your own lang/<code>.yml
  • 📝 Audit log — JSONL, daily-rolled, every flip with actor + UUID + reason
  • 🔔 Discord webhook — async notifications on flip, filterable
  • 📈 PlaceholderAPI%redstone-region_mode%, count placeholders per mode
  • Click-to-tp chunk coords in chat
  • 🔧 Hot reload/redstone-region reload for config + lang, no restart

🚀 Quick install

  1. Drop redstoneregions.jar in plugins/
  2. Restart server
  3. Stand in a chunk, type /redstone-region set alternate-current. Done.

✅ Requirements

  • Folia 1.21.11 (build #6+) — Luminol and other Folia forks tested working
  • Java 21+
  • Optional: BlueMap 5.16+, PlaceholderAPI 2.11.7+, WorldEdit 7.3.19+ (Folia-patched preferred)

🧪 Validated

14/14 in-server harness cases green:

  • byte-for-byte parity with vanilla on 8 contraptions over 60+ ticks each (dust line, 16×16 grid, 4-tick repeater clock, AND gate, comparator-subtract, torch ladder, torch inverter, dust zigzag)
  • 596 toggles in 30s stress, 0 exceptions
  • 780 + 780 toggles in two different Folia regions in parallel, 0 races, 0 thread-check failures
  • 655 AC dispatches verified by counter

🎓 How it works (TL;DR)

Mojang exposed a RedstoneWireBlock.evaluator field in 1.21.2. We swap it at boot with a DispatchingEvaluator that consults a per-chunk flag (PDC-stored) and routes each wire update to the right engine. The Alternate Current implementation is a port of Space Walker's algorithm with per-thread WireHandlers to avoid the latent race in Paper's bundled-AC under Folia.

Full architecture: docs/ARCHITECTURE.md.

⚠️ Honest about edge cases

Two contraption patterns differ from vanilla under AC and may break:

  1. Piston BUDs that rely on the wire's self-shape-update at intermediate power levels
  2. Observers that count power-level transitions on a wire

Run /redstone-region check first → it warns about risky patterns. Or just keep that chunk vanilla. Eigencraft mode has neither edge case while still being 3-5× faster — use it for piston/observer machines.

📜 License

MIT. Bundled Alternate Current engine: MIT (Space Walker — see plugin's ac/LICENSE).


If you've ever typed redstone-implementation: alternate-current in paper-world.yml and held your breath, this plugin is for you.

Versions

No version history available. Use the Download button to get the latest from the source.

Comments 0

No comments yet. Be the first to share your thoughts.

Download RedstoneRegions

Files are served directly from the original source. Modgrid does not host or modify them.