RailOptimization

Quick rating

Community listing page, reviews here may not be monitored by the author.

RailOptimization

By EasterGhost2Owner
  • FXContributor

No reviews yet

A simple mod that makes powered/activator rails turn on/off up to 20x faster.

Mod Loaders
Minecraft
26.3 26.2

About

Description

Description

RailOptimization is a lightweight mod that makes powered rails and activator rails turn on and off up to 20x faster in complex rail networks.

The best result is that you notice nothing while it is operating, except smoother and faster rail updates. Vanilla behavior and the default power range are preserved unless you explicitly change the range.

Performance

Benchmark scenario (use v2.0) Fabric (up to) NeoForge (up to)
Straight rail state changes 9.38x 16.69x
Mixed-slope state changes 12.09x 22.93x
Repeated unchanged-state updates (indirect power) 48.69x 38.30x

Snapshot:

Benchmark scenario (use v2.5-snapshot.1) Fabric (up to) NeoForge (up to)
Straight rail state changes 15.10x 26.04x
Mixed-slope state changes 20.07x 34.20x
Repeated unchanged-state updates (indirect power) 52.27x 40.15x

Measured in local multi-round benchmarks at the default power range of 8 with updating length 17, comparing optimized and unoptimized rail updates on the same mod loader. Actual gains vary with rail layout, server load, hardware, power range, and other installed mods.

State-change results include both turning rails on and turning them off. The unchanged-state result measures repeated updates without a power-state change; it is not an on/off speedup or a whole-server speedup.

Features

  • Fast updates across straight, ascending, descending, and mixed-slope rail networks.
  • Greatly reduced cost for repeated updates that leave rail state unchanged.
  • Optional power range from 1 to 64, with vanilla's default of 8 unchanged.
  • Switch between vanilla and optimized update logic without restarting.
  • Native builds for Fabric, Forge, and NeoForge, with no Architectury API dependency.

Install it with the default settings and it works without additional configuration.

Commands

Command Purpose
/railoptimization Show the current state and power limit
/railoptimization on Enable the optimized update path
/railoptimization off Use vanilla update logic
/railoptimization powerLimit <value> Set the rail power range from 1 to 64
/railoptimization reload Reload the configuration file

Changing settings requires administrator permission. Settings are saved automatically in railoptimization.json and persist across restarts.

Compatibility

  • Choose the file for your Minecraft version and mod loader.
  • RailOptimization v1.2 and earlier are incompatible with Carpet TIS Addition. RailOptimization v1.3 and later are compatible.
  • To compare a contraption with vanilla, use /railoptimization off and trigger it again. If you find a behavioral difference, please report it with a minimal reproduction.

Acknowledgements

RailOptimization began as a fork of FxMorin's RailOptimization. My sincere thanks go to FxMorin and the original contributors for their work. The current implementation has since been extensively rewritten, but this project would not exist without their original work.

Special thanks also go to JellySquid, 2No2Name, and the other Lithium contributors. RailOptimization's rail-specific batch-write design was developed by studying and drawing on their source code and existing palette and chunk-storage optimizations. When Lithium is installed, RailOptimization uses its optimized palette and bit-storage implementations and integrates with its block-change tracking. Lithium remains optional.

More Information

For source code, issue reports, or any other questions, please visit the RailOptimization GitHub repository.