Trains can be routed to different locations in the Minecraft world by automatically switching the track. By placing signs the track network topology is configured, which pre-configured trains will follow to reach their destination.
Locations trains can go to are known as Destinations, which are designated using destination signs. Locations where track is being switched, as well as the end-locations, are known as Nodes in the network, which are designated using switcher signs. To enforce a single direction on the tracks, blocker signs can be employed, which disables routes that go against the flow of traffic.
Designate the destinations
Start by placing down destination signs with a name for the destination on the third line. The fourth line can be used to set a new destination to go to once a train goes over the sign, but can be left empty.
Designate the switched nodes
Places where the track should be switched need to have an always-powered switcher sign placed. Now when a train moves over it that has a destination set, a route will be calculated and then the track is switched.
Enforce one direction
When it is desirable that trains only ever go in one direction over a piece of track, an always-powered blocker sign can be used. This is useful when having two tracks side-by-side, each going in opposing directions. The path finding system will automatically ignore paths that are blocked by blocker signs.
Test it out
Place down a minecart on the track, and use the Destination command to set a destination:
/train destination [name] /train destination output
Now give the minecart a push towards the switcher sign, and observe how it will automatically switch the track to send the train towards the destination. You can change the destination again and send it to the switcher again. Continue to experiment with multiple switchers, blockers and destinations.
If you run into a problem where the switcher appears to make a mistake, use the Reroute command to force a recalculation of all routing information:
It is also possible to use the property sign to set a destination:
Once the basic system is understood, there are some more complicated features to discuss.
Keep Chunks Loaded
Prevent trains unloading when no player is nearby or in the train, by enabling the train keep chunks loaded property.
You can use this property sign to set it:
Or you can create your train, use
/train keeploaded true and save it under a saved train name using
/train save name. You can then automatically spawn it by this name using the spawner sign.
To maintain distance between trains and avoid collisions over long stretches, use the wait distance property.
Protects intersections against collisions with mutex zones.
Station signs can launch the train into the direction of the next destination.
The plugin offers a debug stick with which path finding information can be displayed. Use the stick item to click on rails to show information about the route(s) that can be taken. Sneak (shift) while clicking performs a reroute, which recalculates the track reachable from where you clicked. If you have multiple smaller rail networks, this can be more efficient than executing the global reroute command.
Use the following command to get a stick item that displays all destinations reached from a given track:
/train debug destination
The track clicked is followed until a node of the track network is found, after which all routeable destinations are listed. For every destination the total distance to it is listed, and particles are displayed leading into it. If you find that a certain destination is not listed that should be, you can move further along the track clicking occasionally to find where the break is.
A single destination
Use the following command to debug a specific destination:
/train debug destination [destination]
Now when you click on the track, particles are displayed what route is taken to reach the destination. This is useful when debugging a specific destination so no particles are displayed for routes and destinations that aren't relevant to you.
Normally only one destination is set at a time. It is possible to set the next destination to go to on the destination sign itself, but that means you can only have one possible route. With the route manager a list of destinations to visit can be configured, and then applied to trains. Trains will then go down this list, advancing it every time they pass by a destination on it.
First, edit a train, then use the following commands to set a list of destinations:
/train route set [destination1] ([destination2] [destination3...]) /train route set outpost hillfort dungeon
To add additional destinations to the existing route, or to remove them, use these commands:
/train route add [destination1] ([destination2] [destination3...]) /train route remove [destination1] ([destination2] [destination3...])
You can then use the destination command or property to start the route at a desired destination. Otherwise, the route is started from the beginning the moment the train hits a destination sign. To inspect the route of a train, use the base route command. The current destination the train has is highlighted green.
The route of a train can be saved globally under a name so it can later be applied to other trains instantly.
/train route save [name]
To load a saved route, this command can be used:
/train route load [name]
Alternatively, it can be done using a property sign as well: