Features
TrainGroup
Configuration
File: create_optimized_trains-common.toml
All features are individually configurable with distances, intervals and toggles.
Backported Fixes from Create 6.0.9+
Create 6.0.9 (for Minecraft 1.21.1) introduced several important fixes that were never backported to 1.20.1. Since 1.20.1 is no longer receiving updates from the Create team, this mod backports the following fixes:
Contraption Collision Box GC Pressure (#6902)
Original problem: When train doors open/close at a station, gatherBBsOffThread() combines ALL block collision shapes into a single VoxelShape using Shapes.joinUnoptimized() — an O(n²) operation that creates massive temporary objects. The garbage collector can't keep up, causing lag spikes of 1-30+ seconds.
Our fix: Replaces the collision gathering algorithm with the same O(n) approach used in Create 6.0.9. Instead of joining VoxelShapes, it collects AABBs directly from each block's collision shape — no intermediate allocations, no GC pressure.
Train Stutter from carriageWaitingForChunks
Original problem: In Train.tick(), when a carriage enters an unloaded chunk, Create sets carriageWaitingForChunks which forces speed = 0 until the chunk finishes loading. This causes 0.5-1.5 second freezes.
Our fix: TrainMixin redirects all reads of carriageWaitingForChunks to always return -1, combined with Smart Chunk Loading (pre-loading chunks ahead).
Collision Check Performance
Original problem: collideWithOtherTrains() runs every tick for every train — expensive on maps with 20+ trains.
Our fix: Throttles collision checks adaptively based on server performance — every 4 ticks normally, every 8 when degraded, every 12 when critical.
Dependencies
- Minecraft 1.20.1
- Forge 47.1.33+
- Create Mod 6.0.8+
- Flywheel 1.0.6+ (bundled with Create)
About Us
Publisher: GreenToastSoftware Games® — ©GreenToastSoftware Corporation. All rights reserved 2020-2026.
