Unofficial product: not affiliated with or endorsed by Dovetail Games. Train Sim World is a trademark of Dovetail Games.
Email contact@gramshift.com in English or Japanese. We reply within 7 business days, usually sooner. Please include your Train Sim World version (TSW 6 or TSW 7), the route and train you were driving, your Windows version, your Stream Deck app version, the text of the "Status" line in the key's settings, and, if possible, a photo or screenshot of the key and of its settings. Ideas for new keys are welcome too.
-HTTPAPI in Launch Options. In the Epic Games launcher, open Settings, find the game and add -HTTPAPI to its additional command line arguments.-HTTPAPI, the game writes its key to CommAPIKey.txt in Documents\My Games\<game folder>\Saved\Config. The game folder is TrainSimWorld6 for Steam, TrainSimWorld6EGS for the Epic Games Store and TrainSimWorld6WGDK for the Microsoft Store or Xbox app (TrainSimWorld7, TrainSimWorld7EGS ... for TSW 7). The keys find all of them; with two versions installed, they use the key the running game accepts.CommAPIKey.txt in Notepad, copy its text and paste it into the API key field of any key's settings (one field for all keys).| Key | Shows | Press |
|---|---|---|
| Speed & Limit | Your speed and the speed limit where the train is. Speed and limit turn red (OVER) when you are more than half a unit over the limit. | - |
| Next Speed Limit | The next speed limit ahead and the distance to it: amber when it is lower than now, green when higher. "no change ahead" when the game reports none. | - |
| Next Signal | The aspect of the next signal in its color (red Stop, yellow Approach and other cautions, green Clear) and the distance to it; "permissive" for a permissive signal. NO SIGNAL when there is none ahead. | - |
| Power Handle | The power handle as the game's HUD shows it: the notch (negative numbers are braking notches on a combined power and brake handle), or a percent on a handle without notches; and the reverser: FORWARD, NEUTRAL or REVERSE. | - |
| Train Brake | The train brake handle in percent with a bar, and the cab's brake gauge (the white and the red needle) in bar or psi when the train reports it. Without a gauge, the locomotive (independent) brake handle when the train has one. | - |
| Next Station | The next station ahead, its platform and the distance to it. | - |
| Game Time | The time of day in the game and the service you drive. | - |
| Cab Button | Horn, Safety acknowledge, Sander, Emergency brake, Emergency brake release or Bell: ON while the control is pressed (APPLIED in red while the emergency brake is on), and which control it uses on this train (for example "Horn, rear cab"). The Safety acknowledge key flashes ACKNOWLEDGE when the train's safety system asks for it (the UK AWS, the German PZB or a US alerter, on trains that report it), and turns red with BRAKE DEMAND. | Horn, Safety acknowledge, Sander and Bell: held for as long as you hold the key, then back to where the control rests (a horn lever goes back to its middle position). If the game does not take that at once (it is busy or frozen), the plugin sends it again until it does, and the key shows NOT PUT BACK in red meanwhile. Emergency brake: a press applies it, and it stays applied when you let go. Emergency brake release: a press releases every emergency brake of the train. |
| Custom Control | Your label (or the control's name), the control's value and a bar. OUT OF RANGE in red when the value you entered is outside what the control takes. | The control you choose: held while you hold the key (and put back when you let go, as a Cab Button), toggled between its lowest and highest value, or set to the value you enter |
The keys show what the game reports, so they stay right when you use the mouse, keyboard or a controller too. A short white frame shows that the game took your press; a red frame and a reason show that it did not.
Drive a train, open the Custom Control's settings and pick the control from the list: it lists the controls of the train you drive now (door buttons, lights, wipers, pantograph and so on). Then choose what a press does:
| Press | What happens |
|---|---|
| hold while the key is down | The control goes to its highest value while you hold the key and back to where it was when you let go. For push buttons. |
| toggle (lowest / highest) | Each press moves the control to the other end. For switches with two positions. |
| set to the value below | The control is set to the value you enter (the control's own input value, for example 1 or 0.5; the Status line shows the control's range). A value outside the range is not written: the key shows OUT OF RANGE. |
Controls are named differently on every train, so a Custom Control belongs to the train it was set up for.
| Message | What it means / what to do |
|---|---|
| NO TSW | Train Sim World is not running. Start it: the keys connect by themselves. |
| API OFF | The game is running but its interface for external tools is off. Add -HTTPAPI to the game's launch options (see Getting started) and start the game again. If it is set, the game may still be starting. |
| NOT FOUND | Nothing answers and the plugin cannot tell whether the game runs. Start the game with -HTTPAPI. |
| NO API KEY | The game answers but no key file was found. Paste the text of CommAPIKey.txt into the API key field (see Getting started). |
| KEY FILE? | The key file is there but cannot be read (for example it was saved again by a text editor in another format). Delete CommAPIKey.txt and start the game once with -HTTPAPI: it writes a new one. Or paste the key's text into the API key field. |
| KEY REFUSED | The game refuses the key, and every other key file found. The key files are read again every few seconds; if you pasted a key, paste the text of CommAPIKey.txt again, or empty the field. Deleting the file makes the game write a new one the next time it starts. |
| WRONG PORT | Another program answers on the port in the key's settings. Leave the port empty for the game's usual port 31270. |
| PORT? | The port in the key's settings is not a number from 1024 to 65535. |
| CONNECTING / LOADING | The keys are connecting, or the game is busy for a moment (loading a route). They go on by themselves. |
| NO TRAIN | You are in the menus, or the train is still loading. The Game Time key still works. |
| STALE | The game's clock has stopped (the game is paused): the values shown are the last ones. |
| not on this train | This train has no control the key can find for that job. Use a Custom Control with the control's name. |
| NOT CONNECTED / NOT ON TRAIN / NOT TAKEN / NO REPLY (red frame) | A press could not be sent: the game is not connected, the train has no such control, the game refused it, or the game did not answer in time. |
| WAIT (amber frame) | The train has just loaded and the key is still reading how far the control moves and where it rests. Nothing was sent; press again in a moment. |
| NOT PUT BACK (red frame) | You let go of the key while the game was busy, so the control is not back yet. The plugin keeps sending it (for up to two minutes) and the red frame goes when the game took it. |
No. The game's interface for external tools exists on PC only.
No. The plugin uses the game's own interface for external tools, switched on with -HTTPAPI. Nothing in the game's files is changed.
Each train names its controls itself. The Cab Button looks for the game's own input names and the usual control names; when a train uses another one, pick it in a Custom Control instead.
It flashes when the train reports that its safety system asks for an acknowledgement (the UK AWS, the German PZB or a US alerter). On a train that does not report it, a press still works the control; only the flashing is missing.
Put a second Cab Button on your Stream Deck and choose Emergency brake release in its settings. The Emergency brake key itself only applies the brake, so it is never released by mistake.
Some trains do not report their brake gauge. The key then shows the brake handle only.
No. The Stream Deck must be connected to the PC that runs the game.
Train Sim World 6 or Train Sim World 7 on a Windows PC, started with -HTTPAPI; Stream Deck app 6.9 or later on Windows 10 or later, on the same PC as the game.