Schedules turn a manually driven train into a fully autonomous vehicle. A train with an active schedule follows a list of instructions — traveling to named stations, waiting for cargo thresholds, delaying for set durations, and responding to redstone — then loops back to the beginning indefinitely. Once a schedule is assigned, no player needs to be present for the train to operate.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Creators-of-Create/Create/llms.txt
Use this file to discover all available pages before exploring further.
Schedule Basics
A Schedule is an ordered list ofScheduleEntry objects. Each entry contains exactly one instruction (what to do) paired with one or more wait conditions (when to consider that instruction complete and move on). The schedule loops by default (cyclic = true) — when the last entry finishes, the train returns to entry 0.
Schedules are stored on a Schedule item — a special book-like item that carries the schedule data as NBT. You can:
- Create and edit a schedule by right-clicking the Schedule item to open the schedule editor screen (
ScheduleScreen). - Assign a schedule to a train at a station — right-click the station while holding the Schedule item. The item is consumed and the train’s runtime (
ScheduleRuntime) takes ownership. - Auto-assign via station slot — insert the Schedule item into the station’s inventory slot. Any train that arrives at the station will have that schedule applied automatically.
A schedule remains saved on the train even when you disassemble it. When you reassemble the same train at its station, the schedule is restored — the station drops the schedule item back into your hand or onto the ground.
Schedule Instructions
Instructions define where the train goes or what action it takes. The train executes the instruction first, then evaluates its wait conditions before advancing to the next entry.Destination
Navigate to a named station. The filter supports exact names, wildcard patterns (e.g.,
Mine_*), and full glob syntax. The train pathfinds across the entire connected track graph to reach the closest matching station.Rename Train
Change the train’s display name mid-route. Useful for showing cargo state or trip phase on Display Boards (
ChangeTitleInstruction).Change Throttle
Override the train’s speed cap for the next leg of travel (
ChangeThrottleInstruction). Set a lower throttle before approaching a busy junction, then restore full speed on clear track.Deliver Packages
Deposit any packages the train is carrying that match the current station’s configured address (
DeliverPackagesInstruction). Used with the Package Port logistics system.Fetch Packages
Pick up packages addressed to destinations reachable from this station (
FetchPackagesInstruction). Pairs with Postboxes and Package Ports near the station.Wait Conditions
Wait conditions define when a train departs from its current station. The train stays put until at least one condition column is satisfied. Multiple conditions in the same column are evaluated as AND (all must pass); multiple columns are evaluated as OR (any column passing is sufficient). All condition types registered inSchedule.java:
Delay
Wait a fixed amount of time — configurable in seconds, minutes, or game ticks (
ScheduledDelay). The simplest condition: the train waits exactly as long as you specify, then departs.Time of Day
Wait until a specific in-game time of day is reached (
TimeOfDayCondition). Supports 12-hour or 24-hour display, configurable minute precision, and repeat intervals (every 24h down to every 15 min of in-game time).Item Threshold
Wait until the train’s cargo inventory contains a specific number of a given item (
ItemThresholdCondition). Supports exact item matching, filter tags, and an “at least N stacks” mode as well as a raw item count mode.Fluid Threshold
Wait until a fluid tank in the train’s contraption holds at least (or at most) a specified amount of fluid (
FluidThresholdCondition). Works with any fluid container mounted on the carriages.Redstone Link
Wait for a Redstone Link frequency signal to be active at the station area (
RedstoneLinkCondition). Lets external redstone logic gate train departures.Station Powered
Wait until the station block itself receives a redstone signal (
StationPoweredCondition). Simpler than Redstone Link — just power the station block directly.Player Passenger Count
Wait until a minimum (or maximum) number of players are seated in the train’s passenger seats (
PlayerPassengerCondition). Useful for commuter trains that wait for boarders.Idle Cargo
Wait until no items have entered or left the train’s inventory for a configurable number of ticks (
IdleCargoCondition). Detects when loading or unloading has finished without needing to know exact counts.Station Unloaded
Immediately satisfied when the station’s chunk is unloaded (
StationUnloadedCondition). Prevents trains from waiting indefinitely for conditions in unloaded areas.Conditional and Dynamic Routing
Each schedule entry can have multiple condition columns. When the train arrives at a station and evaluates conditions, the index of the first satisfied column determines which entry to go to next — not necessarily the next one in sequence. This enables branching logic without separate schedules:- Column 0 satisfied → advance normally to entry N+1
- Column 1 satisfied → jump to a different entry index (skip to unload station)
- No column satisfied → keep waiting
Automated Loading and Unloading
For fully automatic cargo routes, pair the schedule with Portable Storage Interfaces (PSIs):- Mount a PSI on the train (attached to the carriage contraption, facing the side of a chest or barrel on board).
- Place a matching PSI at the station (in the world, facing toward where the train will stop).
- When the train halts, the two PSIs connect and items transfer automatically.
- Use an Item Threshold or Idle Cargo wait condition to ensure the transfer completes before the train departs.
CC:Tweaked Integration
When CC:Tweaked is installed, the Station block (Create_Station peripheral), Signal block (Create_TrackSignal peripheral), and Train Observer block (Create_TrackObserver peripheral) all become computer peripherals. Each fires named events to attached computers:
| CC Event Name | Fired When |
|---|---|
train_imminent | A train begins navigating toward this station |
train_arrival | A train arrives and stops at this station |
train_departure | A train departs from this station |
train_signal_state_change event fires whenever a signal transitions between RED, YELLOW, GREEN, and INVALID states. The Train Observer fires train_passing when a train enters the observed section and train_passed when it exits. See the compatibility documentation for full peripheral API details.
Tutorial: A Complete Automated Cargo Route
The steps below walk through a two-station ore train that mines continuously and delivers to a base, requiring no player intervention after initial setup.Name your stations
Place two Train Stations on your track network. Name the first one
Mine and the second Base. Both names must be exact — or you can use a pattern like Mine* and Base* in the schedule filter if you plan to add more stations later.Set up loading at Mine
At the
Mine station, place a Mechanical Drill or Deployer on the train contraption to extract ore. Add a chest or barrel on the train to store it. Place a Portable Storage Interface on the train and a matching one at the mine station, both pointing inward toward each other.Set up unloading at Base
At the
Base station, add another pair of PSIs — one on the train, one at the station — to push items off the train into a base storage system on arrival.Create the schedule
Open a Schedule item and add two entries:
- Entry 1: Instruction =
Destination: Mine| Condition =Item Threshold: [ore] ≥ 64 items - Entry 2: Instruction =
Destination: Base| Condition =Delay: 10 seconds
The Train Observer Block
The Train Observer is a companion block to the signal system — it detects passing trains and emits a redstone pulse, but it does not participate in signal block calculations. Place the Observer adjacent to a track, and it outputs a redstone signal of strength 15 for a brief moment whenever a train passes. Applications include:- Counting trains passing a checkpoint
- Opening and closing gates or doors when a train approaches
- Triggering announcement displays
- Starting or stopping machines that should only run when a train is present
The Train Observer is not a substitute for signals. It does not stop trains or coordinate access to track sections — it only observes. For collision prevention on shared tracks, use Block Signals as described in the Signals guide.