This is how I am using multiple controllers with Steel Beasts. It works with version 3.028 to 4.162
Update 19/1-2020 for version SB Pro PE 4.162 and UCR 0.9.0
My first SB Pro PE “How To”
I am posting this to illustrate a suggestion for a Forum section only for tutorials, guides and “how to,s” I will post shortly in the “Steel Beasts Complexity” thread.
Because I am a lefthander and the basic Keyboard/Mouse layout can be very painful to use for a lefty. Also because I want as many functions on my controllers as possible. When set up for SB Pro PE I have 8 controllers, with the possibility to assign at least 148 button or keypress functions.
Not to mention, that the vehicles that I am using in SB do not come with a keyboard.
It is also training for setting up a couple of buttenboxes, that I intend to create.
Mesa no liken da keyboard! Mesa no needen da keyboard! At least not for SB.
I will get into installation and basic setup of the software used later.
JoyToKey (Shareware 7$) Joystick to Keyboard mappings
UCR (Free) Universal Controller Remapper (Alpha)
Download Version 0.9.0
If you wish to use the UCR-Plugins download version 0.8.0
Important UCR information on how to install providers.
UCR Plugins (Has yet to be updated for 0.9.0)
Other Downloads for use with UCR:
vJoy (Free) Virtual Joystick Emulator. Must be installed for UCR to work.
Interception (Free for personal use) Mouse and Keyboard Emulator. Only needed if UCR is used for Mouse and Keyboard Emulation! I am not using it here, as it does not support combined keypresses like CRTL+ALT+SHIFT+H.
Note that I write out all steps so this will be useful even if the pictures disappear.
Installing files and adding shortcuts:
Adding Windows Game devices shortcut to desktop.
Open File Explorer and navigate to:
Rightclick joy.cpl, hold, drag to desktop, release, click ”Create shortcuts here” Change name as you feel like.
To change the icon:
Rightclick, click ”Properties”, click ”Change icon...”, click ”Browse...” click file with icon you wish to use, click ”Open”, doubleclick your preferred icon, click ”Apply”, click ”Ok”
You can find Windows 10 Game Controller icon files:
In System32 DDORes.dll, setupapi.dll or SysWOW64 DDORes.dll, setupapi.dll
Double click the downloaded vJoySetup.exe file.
To setup a virtual joystick navigate to your vJoy install folder, find and doubleclick vJoyConf.exe
Typically in: C:\Program Files\vJoy\x64.
I would recommend that you add a shortcut to the desktop.
Chose what Axes, Buttons, POV’s and FFB features you want your vJoy Device to have.
Max is 8 Axes, 128 Buttons and 4 POV’s.
Note that joy.cpl will only see 7 Axes, 32 Buttons and 2 POV’s.
Some games and software like DCS World, UCR and JoyToKey will see all Buttons and Axes.
For Steel Beasts Pro PE you can only use 4 Axes, 32 buttons and 1 POV.
Mark “Enable vJoy” and click “Apply” You can now close vJoyConf.
You can add up to 15 vJoy Devices and they will be present, even when restarting the PC, until you open vJoyConf again and make changes or disable vJoy.
Your added vJoy Devices should now be visible in joy.cpl.
In joy.cpl Click Advanced, Highlight your newly created vJoy Device, Click OK. You have now told Windows to use the vJoy Device for games that only support 1 controller.
Click Properties. You can now see the 7 Axes, 32 Buttons and 2 POV’s joy.cpl can see. When the window is active and UCR is providing input to the vJoy Device, you can see it here.
Doubleclick the downloaded JoyToKeySetup_en.exe file.
We will go into setting this up later.
Install UCR. (Current version 0.9.0)
Version 0.9.0 with UCR-Plugins
Unzip the UCR_v0.9.0.zip I use 7-Zip a freeware program from www.7-zip.org.
You can move the UCR_v0.9.0 folder to wherever you like.
Create a shortcut for UCR.exe.
Version 0.8.0 with UCR-Plugins
Unzip the UCR_v0.8.0.zip and UCR-Plugins.zip files. I use 7-Zip a freeware program from www.7-zip.org.
Move/copy the UCR.Plugins folder to the UCR_v0.8.0\Plugins folder.
Now you can move the UCR_v0.8.0 folder to wherever you like.
Create a shortcut for UCR.exe.
If you have problems with any of the plugins being blocked, try to run UCR_unblocker.exe.
We are now almost ready to setup the controls.
Get up! Get something to drink. Get a snack. Take a toilet break. Make yourself ready for the next installment!
Are you ready?
Well, we are not quite. This is optional, but I do recommend it. Open up Steel Beasts, click “Controls”, click “Save to HTML”, Type an appropriate name, chose folder and drive with the down arrow in the upper right corner, click Save.
You can now copy this to your favorite spreadsheet or writer program. I have created a file with a table in LibreOffice Writer (A freeware program) with all of the default mappings.
I am also creating a file for each vehicle that I use in SB.
This is a snip from my Leopard 1A5-DK file
Toggle GAS retic: KE/HEAT
G27 S PV ►
Change MG Mount
G27 S 18
Palm switch (default)
Increase GAS range
G27 S PV ▲
Decrease GAS range
G27 S PV ▼
Toggle turret speed
G27 S 18
TC palm switch (Leo1)
Toggle mag. / zoom in
FLSP Hat ►
G27 S PV ◄
Eventually I will create controller mapping pictures for each vehicle setup.
Okay! Now we are ready!
Open UCR, Click “Add profile”, Type in Profile name, Mark Input Devices you wish to use, Mark Output Devices you wish to use (In our case vJoy Stick 1), Click CREATE.
I very much recommend to save (Press the diskette in the top left corner) after each finished step as marked with a period sign.
I experience multiple freezes and shutdowns in the setup phase and even a fast scroll can shut down UCR. Do not use “Click to bind” for Axes, UCR will lock up.
The above issues seems to be fixed, but I admit that I have not done much testing.
If UCR locks up, CRTL/ALT/DELETE, open Task Manager, mark UCR, Click “End task”, Open UCR and Doubleclick the profile and continue.
Therefore! Save often!
You can check if you have the right Axis or Button, by activating the profile, by clicking the Play button in the upper left corner. The “Click to bind” button changes with axis movement and button presses. To continue to edit profile axes and buttons, stop it by clicking the stop Button.
Note that you can edit settings like Invert, Mode, Dead zone, Linear, Percentage and so forth while the profile is running.
Now we set up the Axes.
Double click the new profile.
First the X and Y Axes (Turret rotation and Gun elevation)
Click the + next to Axes to Axes Map from joystick to joystick, Name it, Click ACCEPT.
Chose X Axis input device with the down arrow next to the “Click to bind”, Click the 3 dots, Click the desired input Axis. Save. In my case T.16000M and Axes, X
Chose Y Axis input device with the down arrow next to the “Click to bind”, Click the 3 dots, Click the desired input Axis. Save. In my case T.16000M and Axes, Y
Chose X Axis output device with the down arrow next to the “Click to bind”, Click the 3 dots, Click the desired output Axis. Save. In my case vJoy Stick 1 and Axes, X
Chose Y Axis output device with the down arrow next to the “Click to bind”, Click the 3 dots, Click the desired output Axis. Save. In my case vJoy Stick 1 and Axes, Y
You can experiment with the different settings on your own.
Note that I do not use the Steering, Speeder and Brake Axes in SB, as they only work in the Driver view. But I include them here for completeness. I instead use JoyToKey for this.
Next up is the Z axis (Steering)
Click the + next to Axes to Axes Map from one axis to another, Name it, Click ACCEPT.
Chose Axis input device with the down arrow next to the “Click to bind”, Click the 3 dots, Click the desired input Axis. Save. In my case G27 and Axes, X
Chose Axis output device with the down arrow next to the “Click to bind”, Click the 3 dots, Click the desired output Axis. Save. In my case vJoy Stick 1 and Axes, Z
Then we have the Speeder and Brake.
Note that in SB it is a single Axis. If You use something like the rudder axis on rudderpedals, You just use the same plugin as above, with the appropriate name, and the relevant input and output Axes.
If you want to use separate Axes, like a Speeder pedal and Brake pedal or the Toe Brakes on a rudder pedal, then you need to:
Click the + next to Axis Merger Merge two axes into one output axis, Name it, Click ACCEPT.
Chose Axis high input device with the down arrow next to the “Click to bind”, Click the 3 dots, Click the desired input Axis. Save. In my case G27 and Axes, Y
Chose Axis low input device with the down arrow next to the “Click to bind”, Click the 3 dots, Click the desired input Axis. Save. In my case G27 and Axes, Sliders1
Chose Axis output device with the down arrow next to the “Click to bind”, Click the 3 dots, Click the desired output Axis. Save. In my case vJoy Stick 1 and Axes, Rz
Fiddle around with Invert high and Invert low until you get the desired output result.
Then there are buttons. Where would we all be without buttons? We would probably use zippers! Ohh, sorry sidetrack.
You can among other things, use UCR to remap your controller buttons. Say that you want to use your button 5 as button 2 and button 12 as button 4 you can do this. You can also use buttons from any of the controllers connected to your system, that UCR recognizes button presses from.
Click the + next to Button to Button Map from one button to another, Name it, Click ACCEPT.
Chose the Button input device, Click the 3 dots, Click the desired input button, Save.
Chose the Button output device, Click the 3 dots, Click the desired output button, Save.
You can rename a mapping by clicking the pen and you can delete a mapping by clicking the wastebasket. I have not delved into the “Add plugin to mapping” part yet.
In its current form UCR does have some limitations. It does see my TM Cougar MFD’s, but does not recognize button presses from them. Interception that does the keyboard emulation for UCR, do not support combined keypresses like CRTL+ALT+SHIFT+H.
This concludes the UCR part.
For SB I prefer to use JoyToKey for mapping of key and button presses. I find it easier, it sees the button presses on my TM Cougar MFD’s and it supports combined keypresses.
You can use Joystick Axes and button presses as input with JoyToKey.
I use JTK for Driver commands as it works in all view positions.
Setting up JTK:
Doubleclick your JTK shortcut.
To create a profile, either click File(F) on top and chose New, or Click Create at the bottom.
Name it and Click Ok. Save it by clicking File(F) and chose save.
Click your new profile to chose it.
Click Options on top.
In “Number of joysticks to configure (Max 50)” enter the number of controllers you have connected including the vJoy’s. Hit enter. Change Stick/POV to “Show all axes (8 way + POV x 4)” Save.
Click Configure. If you click “Configure Game Controller Property” You open joy.cpl.
If you click “Advanced setting for each device” You can see how JTK sees each Axis and change how much input is needed for JTK to send output. Click OK. Save.
I have not been able to figure out how to get JTK to see Slider Axes as Sliders.
Now we need to identify what controller is Joystick 1 to however many you have.
Click Settings(S), Click Preferences...(P), Mark Highlight pressed buttons” Click OK.
Now when JTK is the active window, the tab of any Joystick where JTK sees as an input, will be highlighted.
To help me remember I created this list:
Windows 10 JoyToKey controllers
Joy 1 T16000
Joy 2 TM RP
Joy 3 MFD Right
Joy 4 MFD left
Joy 5 vJoy Device 1
Joy 6 CH TQ
Joy 7 Saitek TQ
Joy 8 Logitech TQ
Joy 9 CH FLP
Joy 10 G27
As far as I have been able to determine, it is not possible to copy a profile to another PC or OS install. Therefore I recommend that you grab screenshots of each controller setup, for easy recreation.
Remember, when JTK is the active window, any button press and active Axis, will be highlighted.
Setting up controllers in JTK:
We start with the drive controls on a Logitech G27 Racing wheel and pedals.
Chose the Tab for the controller you wish to add functions to.
Move all Axes to identify.
Edit assignment by either Highlighting the axis/button and clicking on the “Edit button assignment“ button below or Right clicking the axis/button and chose “Edit this button assignment”. Right clicking and choosing “Clear this button assignment” is the fastest way to clear an assignment.
Simple assignment: (Send 1 keyboard press)
Press the wished for key and hit “Enter”
Advanced assignment: (Send key combinations, up to 4 simultaneous keys)
Press the first key in the combination, Click the next field and press the second key. Field 3 and 4 are automatically highlighted when you press a key. When done, hit Enter.
If you Right Click the field you can differentiate between left and right presses like L-Shift or R-Shift and a slew of other options.
When you have added the wished for assignments, Click File(F) and chose save.
Important! Be Careful! Your Profile is now active! It will send out keypresses if you move your controller or click the assigned buttons. I messed up my Spell Checking settings because of this.
It is possible to associate JTK profiles with specific Applications, but I have not delved into that as it works for me as is.
A fairly safe place to test is opening up Notepad and see what comes out there.
My G27 Drive assignments:
Wheel left A
Wheel right D
With this you don’t need to assign anything to Stop. If you run at low speed, an opposite direction command will make you stop.
I will probably be assigning the most needed headtracking controls to the G27 shifter together with other functions.
For my modified Thrustmaster T16000M I currently have Lase, Fire and formation commands assigned, but that will probably change as I figure out what functions I need the most.
For my CH Products Flightstick Pro, that is in my right hand, I have assigned the arrow keys to the X and Y movements, TIS controls to the Point Of View hat and P, T, Backspace and M to the buttons.
Here are the assignments for my Right MFD.
The list goes on with the rest of my controllers, but it is very much still a WIP to decide what to put where, so I will stop here.
This concludes the JoyToKey part.
I hope that you will find this useful and if you have any questions, fell free to ask them.