Transfer tables
A piece of track that slides sideways to store trains — and a coaster that puts its trains back in place on every restart.
Updated 28 October 2026
A transfer table is a length of track that slides sideways to face two or three storage tracks, usually between the final brakes and the station. Operators use it to take trains off the circuit or bring them back, from a panel of its own on their page.
It also gives your coaster a superpower: on every restart, it rebuilds its fleet. The plugin clears the old trains away, spawns fresh ones in the storage tracks, and brings them out onto the circuit one by one. No more half-derailed trains after a crash.
1. Animate the table with TC-Coasters#
The table needs one animation state per position: position 0 lines it up with the circuit, positions 1, 2, 3 with each storage track.
For each position:
- Move the table's nodes to that position.
- Select all the table's nodes and record the position:
/tcc animation add tt0(thentt1,tt2…).
Record the state after moving the nodes. Don't use /tcc animation select during this: while an animation is selected, every edit is saved into it. To check a state, /tcc animation play tt1 4.
Then, with every node of the table selected, add one sign per position, each on its own power channel. For ride 7:
/tcc sign add [train] tcc-animate tt0 4
/tcc sign power add utp-7-tt-0
/tcc sign add [train] tcc-animate tt1 4
/tcc sign power add utp-7-tt-1
…and so on for each storage track.
Test it: typing tcc power utp-7-tt-1 pulse in the console should slide the table to position 1.
2. Tell the ride how to move it#
In the administration, Rides → Edit → Machinery, in the Transfer table box:
- Moving the table — the command that moves it. The default is already right if you named your power channels as above:
tcc power utp-{rideId}-tt-{position} pulse
- Movement length — how many seconds the table takes to move. Match your animation: the plugin waits at least that long, then watches the table's track until it has stopped moving, so a lagging server never sends a train off a table that is still sliding.
3. Place the signs#
/tcc sign add [train] utp-transfer 7 4
/tcc sign add [train] utp-storage 7 1
utp-transfergoes on the middle node of the table. The table is also a block section: the last number is its section number on the circuit (here, 4).utp-storagegoes on each storage track, about where the middle of a parked train should stand. The last number is the table position that faces this track: 1, 2, 3…
The block section just before the table (usually the final brakes) needs its own utp-block sign, numbered one less than the table — here, 3. Place it like any block sign, under the middle of where a waiting train should stand, far enough from the table that the whole train stays off it: at least half a train's length before the table's first node.
Those brakes are where every train coming back round waits whenever the table is busy: while it slides, while the plugin brings trains out, while an operator holds it. They let trains through again once the table is back in line and nobody is working it.
Storage tracks can be ahead of the table or behind it: the plugin drives trains towards them either way.
4. Declare the fleet (optional)#
In Fleet, on the Machinery tab, list your trains, one saved train name per line — the names you gave them with TrainCarts' /train save. The first goes to storage track 1, the second to track 2, and so on (up to 8).
With a fleet, the ride rebuilds itself every time the server starts, and whenever you type /utp ride reset 7:
- Every train on the ride's track is removed.
- The table goes back in line.
- One fresh train is spawned in each storage track.
- The trains are brought out one by one and sent on along the circuit. Each one stops where the block sections stop it: the first in the station, the next ones in the blocks just behind it.
No train runs a lap for nothing: whatever lies between the table and the station fills up straight from the table. Only the blocks between the station and the table need a train to go round through the station. With the table just before the station and two trains, the first goes into the station and the second waits on the table.
Leave Fleet empty and the plugin never touches your trains. A coaster without a table can still have its one train put back in the station: see Your first coaster.
If the trains stay where they are after a restart or a reset, /utp ride reset 7 tells you why: no fleet saved in the administration, or a utp-transfer or utp-storage sign the plugin has not read — see A ride keeps its old trains after a restart.
Using the table#
The operator needs the utp.operator.transfer permission on top of utp.operator. On their panel, turning the Transfer key opens the table's own desk: a diagram of the table and its tracks — which train is stored where, where the table stands, and the gap it leaves in the circuit when it slides away — with lamps and buttons under it.
| Button | What it does |
|---|---|
| Previous / Next | Slides the table to the next position |
| Store | Drives the train on the table into the storage track it faces |
| Fetch | Pulls the train from the facing track onto the table — or, with the table in line, brings on the train waiting at the brakes |
| Send on | With the table in line, sends its train on along the circuit, as far as the block sections let it go |
| E-stop | Stops everything, as on the ride's panel. Press it again to release it |
| Transfer key | Turn it back to hand the table back: it is lined up, and the station reopens. Release the emergency stop first |
Good to know:
- Taking the table closes the station. While the table is out of line, the circuit has a gap in it.
- Trains coming back round wait at the brakes while you hold the table: none rolls onto it by itself. Press Fetch, with the table in line, to bring one on.
- A train with a guest on board never moves. The panel says so.
- Storing a train takes a lap. The table sits before the station, so a train is caught at the brakes as it comes round, then fetched and stored.
- Storing every train is fine. When the operator hands the table back, one train is brought out on its own.
If a move fails#
Every move is checked. If the table or a train doesn't get where it should — a misnamed power channel, a missing animation state, a saved train that doesn't exist, a table still sliding long after its movement length — the ride stops itself, and the console says which step failed:
[UltimateThemePark] [ride] transfer manoeuvre did not take effect (ride=The Plunge, step=table to position 2), ride stopped
Fix the cause, then /utp ride reset 7.