Custom Controller Mapper - Control Train Sim World with Any Joystick or Analog Controller – No RailDriver Required

  • by L_
  • 2 upvotes
  • Downloaded 69 times

Looking for a way to drive Train Sim World using your own joystick, throttle, or custom controller setup? This open-source mod and program uses UE4SS to inject input directly into the game, giving you complete control over the train and completely bypassing the raildriver interface.

✅ Customizable profiles per locomotive
✅ Cross-platform support (Windows/Linux)
✅ Works with most analog/game controllers

This software requires some configuration and set-up most of which can be found on Github
https://github.com/LiamMartens/tsw-controller-app
https://github.com/LiamMartens/tsw-controller-app/blob/main/beta.package/README.md

Explanations on the profile configurations can also be found in the repository
https://github.com/LiamMartens/tsw-controller-app/blob/main/beta.package/PROFILE_EXPLAINER.md

Previous threads where I answer questions / give suggestions
https://www.reddit.com/r/trainsimworld/comments/1jqt103/i_created_a_modsoftware_to_directly_control_in/
https://forums.dovetailgames.com/threads/i-created-a-mod-software-to-directly-control-in-game-trains-using-a-joystick-no-raildriver.90609/#post-999423

Changelog

v0.2.4 - 2025/06/15

  • Fix calibration mode not exiting and writing files.

v0.2.3 - 2025/06/06

  • Update the mixing of null values to act as free range zones instead of automatic interpolation zones. This makes for smoother actions between detents. Eg, the following steps value: [0.0, null, 0.5, 0.6, null, 1.0] - will snap to 0.5 and 0.6 but allow free range of motion between 0.0 and 0.5 and 0.6 and 1.0.

Requirements

You can also install UE4SS directly from the UE4SS GitHub repository
!! USE THE LATEST EXPERIMENTAL VERSION
https://github.com/UE4SS-RE/RE-UE4SS/releases

Installation Instructions

See Github instructions (https://github.com/LiamMartens/tsw-controller-app)
In short you will need to

  1. Calibrate and set-up your joystick / gamecontroller
  2. Disable the game controller for Train Sim World by enabling steam input and completely clearing the mappings (otherwise you get in game conflicts)
  3. Install UE4SS and add the UE4SS mod
  4. Configure your profiles (or use some of the pre-defined profiles to start)
  5. Run the program

Tags: gamepad joystick raildriver

Files

beta.package.zip 55 MB · Added 6 days ago · Downloaded 14×

Previously uploaded files have been downloaded 55 times before being withdrawn.

Comments

Avatar of train_bird
train_bird 24 days ago

Thanks for this very useful piece of software, especially for the linux support! Quite simple to set up and just works "out of the box" with my Arduino powered DIY controller.
I've got two little suggestions for improvements:

  • German vehicles with combined power and brake have a kind of "dead zone" around the neutral notch where the lever jumps back to 0 with every value that you send through direct control. At the moment I work around that by adding steps for the actual lever positions of minimum power and brake and a bunch of "null" steps up to maximum power and brake. If we could combine steps with sections of linear interpolation between two steps, we could replicate the actual behaviour of the lever (3 notches around the center and then linear until maximum power/brake).
  • As far as I know, the names of direct controls and sync controls are different. If the direct control names were also printed to the terminal when moving a lever, it would be more easy to configure new vehicles.
Avatar of L_
L_ 14 days ago

Good to hear it works with your Arduino powered controller! I actually just updated the software to interpret the null values as free range motion instead of automatic interpolation. So it will now just jump to the notches where defined and between the defined notches if there is a null value it will just send raw values. Try it out to see if that's better!

Yea it's a good point; it is more difficult to print out those names because of how the internals work which is why you need to look them up through the UE4ss code generation. I'll have a look though

Add a comment

If you wish to leave a comment, please log in .

About this mod

Created
29 days ago
Updated
6 days ago
Game
Train Sim World
Type of content
Utility
Train Sim World compatibility
Train Sim World 5