HomeJavaModsCreate Optimized Trains
Create Optimized Trains
Create Optimized Trains — screenshot 1Create Optimized Trains — screenshot 2Create Optimized Trains — screenshot 3Create Optimized Trains — screenshot 4

🚅⚡Create Optimized Trains

Performance optimization addon for Create Mod trains (Forge 1.20.1).

🔗Dependencies

This mod requires Create or Create Fabric.

📦Features

1. LOD (Level of Detail) for Trains

2. Carriage Grouping / Abstraction

3. Safe Multi-threading

Secondary thread (safe):

Main thread (required):

4. Tick Throttling (Partial Updates)

5. Render Optimization

6. Proxy Entities

7. Smart Chunk Loading Management

8. Physics Optimization

9. Networking Optimization

10. Priority System

11. Dynamic Performance Monitor

🏅 Technical Performance Certificate

Create Optimized Trains has undergone a series of internal and community tests, including:

Stress Tests

Compatibility Tests

Community Testing

Pre-release versions were made available on the official Discord, ensuring that every public update is stable and free of regressions.

⚙️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 for users staying on 1.20.1:

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 depending on train complexity.

Our fix: ContraptionCollisionMixin replaces the collision gathering algorithm with the same O(n) approach used in Create 6.0.9 (commit 8f30c2c). Instead of joining VoxelShapes, it collects AABBs directly from each block's collision shape — no intermediate allocations, no GC pressure. Also includes related duplicates: #4607#5685#9026#9389.

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. On maps with many trains and limited view distance, this causes 0.5-1.5 second freezes every time a train crosses a chunk boundary.

Our fix: TrainMixin redirects all reads of carriageWaitingForChunks in tick() to always return -1, so speed is never zeroed. Combined with the Smart Chunk Loading system (pre-loading chunks ahead of the train), trains move continuously without stutter.

Collision Check Performance

Original problem: collideWithOtherTrains() runs every tick for every train, which becomes expensive on maps with 20+ trains.

Our fix: TrainMixin throttles collision checks adaptively based on server performance — every 4 ticks normally, every 8 when degraded, every 12 when critical. Each train's check is offset by its UUID hash to distribute the load evenly across ticks.

💚About us

Publisher: GreenToastSoftware Games® (C)GreenToastSoftware Corporation. All rights reserved 2020-2026.

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more