Tags
Creators
Details
2.5-snapshot.1
Compatibility
Changes
RailOptimization v2.5-snapshot 1
This snapshot introduces a new batch-write and notification engine for faster powered and activator rail updates. RailOptimization 2.0 remains the stable release while feedback is collected.
Improvements
- Added rail-specific batch writes grouped by chunk section, developed by studying and drawing on Lithium's source code and its existing palette optimizations, to reduce the overhead of turning rails on and off.
- Batched neighbor notifications and removed repeated NC updates while retaining vanilla-compatible update ordering and native nested-update processing.
- Combined signal searches with depower planning to reduce repeated work when turning rails off.
- Reused chunk and section references during signal checks and neighbor notifications, while continuing to read live block states.
- Preserved Lithium's block tracking and cache invalidation when using batch writes. Lithium remains optional.
Performance
| Combined on/off updates | Fabric (up to) | NeoForge (up to) |
|---|---|---|
| Straight rails | 15.10x | 26.04x |
| Mixed-slope rails | 20.07x | 34.20x |
Measured locally at the default power range of 8, without Lithium, using per-run median timings against the same loader without RailOptimization. Actual gains vary with hardware, JVM, server load, rail layout, and other installed mods; these are rail-update speedups, not whole-server speedups.
The default power range, commands, and configuration remain unchanged. Please report any differences from vanilla behavior with a minimal reproduction.
Acknowledgements
Special thanks to JellySquid, 2No2Name, and the other Lithium contributors for the source code and optimization work that informed this batch-write design. When installed, Lithium also supplies the optimized palette and bit-storage implementations used by RailOptimization. Lithium remains optional.
Optional dependencies
Supplementary resources
| File | Type | Size | |
|---|---|---|---|
| railoptimization-2.5-snapshot.1+mc26.1.2-neoforge-sources.jar | Sources jar | 94.14 KiB |
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:QSvN5pBU:qValE4WF"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:QSvN5pBU:qValE4WF"
}

