Controls and configuration

Intro

Rigs of Rods is a simulator which strives for maximum reallism, and hence you need an appropriate controller, such as a wheel for land vehicles and joystick for aerial or marine vehicles.

Input is configured by editing configuration file input.map or by using the Input Mapping Tool. In-game configuration of controls is not implemented yet.

Keyboard layout

General keys

MiscKey
Enter or exit truckENTER
Quit Game ESC
Toggle Statistics T
Screenshot PRINTSCR
chat (Multiplayer) Y
Character controlKey
Jump SPACE
Turn Right RIGHT
Turn Left LEFT
Walk FordwardsUP
Walk BackwardsDOWN
Run SHIFT+UP
Camera / Caelum Sky Key
Change C
Control camera1, 2, 3, 4, 5, 6, 8, 9
Free camera SHIFT+C
Fixed camera ALT+C
Increase time+
Decrease time-
Increase time change rateShift (Use in combination with Inc./Dec. time keys)

Land vehicle keys

Drive controlsKey
Steer Left LEFT
Steer Right RIGHT
Accelerate/Brake UP / DOWN
Tire Pressure +/-
(not for all trucks)
[ ]
Autoshift Up PAGE-UP
Autoshift Down PAGE-DOWN
Switch Shift ModesQ
Manual Clutch SHIFT
Shift Up A
Shift Down Z
MiscKey
Truck Horn H
Parking Brake P
Blinker Left COMMA
blinker Right DOT
Blink Warn PERIOD
Toggle Contact X
Starter S
Lock Load L
Secure Load O
Reset Truck I
Show Skeleton K
Toggle Lights N
Toggle beacons M
Rescue Truck R
Toggle HUD U
Enter / Exit truckENTER
particle Cannon G
Function keysCombo
COMMANDS 01F1
......
COMMANDS 12F12
COMMANDS 13CTRL + F1
......
COMMANDS 24CTRL + F12
COMMANDS 25ALT + F1
......
COMMANDS 36ALT + F12
COMMANDS 37CTRL + ALT + F1
......
COMMANDS 48CTRL + ALT + F12
COMMANDS 49CTRL+ SHIFT + F1
......
COMMANDS 58CTRL + SHIFT + F10
COMMANDS 59CTRL + SHIFT + F11
......
COMMANDS 68CTRL + ALT + F8
COMMANDS 69CTRL + ALT + F9
......
COMMANDS 78CTRL + SHIFT + ALT + F6
COMMANDS 79CTRL + SHIFT + ALT + F7
......
COMMANDS 83CTRL + SHIFT + ALT + F11
COMMANDS 84CTRL + SHIFT + ALT + F12

Aerial and marine keys

Airplane controlsKey
Steer Left LEFT
Steer Right RIGHT
Elevator Up UP
Elevator DownDOWN
Rudder Right X
Rudder Left Z
Brake B
Parking BrakeP
Reverse R
Less Flaps 1
More Flaps 2
Less Airbrakes*3
More Airbrakes*4
Throttle DownPAGE-DOWN
Throttle Up PAGE-UP
Start EnginesCLICK BUTTONS "ON"

* Depending on the plane setup

It is recommended to use: CTRL+Home to start all engine of a plane and CTRL+PAGE-UP to full throttle all engines because some planes could have more than 4 engines and you couldn’t control them with your mouse.

Boat controlsKey
Throttle Down DOWN
Throttle Up UP
Steer Left LEFT
Steer Right RIGHT
Center Rudder PGUP
Center ThrottlePGDOWN
MiscKey
Parking Brake P
Lock Load L
Secure Load O
Reset Vehicle I
Reset Vehicle In Place BACKSPACE
Show Skeleton K
Toggle Lights N
Toggle beacons M
Toggle HUD U
Enter / Exit vehicleENTER
Adjust Simulation SpeedCtrl+= / Shift+=
Switch Between Vehicles Ctrl+] / Ctrl+[
Remove Current VehicleCtrl+Del
Respawn Last VehicleCtrl+.(period)

Config file ‘input.map’

For all keys, see the input.map file on GitHub.

This file defines all key alias for RoR. It has the following format:

EVENT_NAME    EVENT_TYPE    MAPPING

For example:

BOAT_CENTER_RUDDER     Keyboard    DOWN

This binds the BOAT_CENTER_RUDDER event to the Down arrow on your keyboard.

A list of all valid events can be found in the Keypress Events section.

Keyboard

For the keyboard there are several special things:

Modifiers:

  • CTRL
  • SHIFT
  • ALT

Combine them with a + sign. Example:

CAMERA_FREE_MODE    Keyboard    EXPL+SHIFT+C

The EXPL tag

A special keyword used in defining commands.

In this example, only COMMANDS_01 is triggered when pressing F1, and COMMANDS_13 is triggered when pressing CTRL+F1 (but not COMMANDS_01)

COMMANDS_01                    Keyboard             EXPL+F1 
COMMANDS_13                    Keyboard             EXPL+CTRL+F1 

In this example, COMMANDS_01 would be triggered if you press CTRL+F1, as F1 is part of the COMMANDS_13 combination.

COMMANDS_01                    Keyboard             F1 
COMMANDS_13                    Keyboard             CTRL+F1 

List of usable keys

0
1
2
3
4
5
6
7
8
9
A
ABNT_C1
ABNT_C2
ADD
APOSTROPHE
APPS
AT
AX
B
BACK
BACKSLASH
C
CALCULATOR
CAPITAL
COLON
COMMA
CONVERT
D
DECIMAL
DELETE
DIVIDE
DOWN
E
END
EQUALS
ESCAPE
F
F1
F10
F11
F12
F13
F14
F15
F2
F3
F4
F5
F6
F7
F8
F9
G
GRAVE
H
HOME
I
INSERT
J
K
KANA
KANJI
L
LBRACKET
LCONTROL
LEFT
LMENU
LSHIFT
LWIN
M
MAIL
MEDIASELECT
MEDIASTOP
MINUS
MULTIPLY
MUTE
MYCOMPUTER
N
NEXTTRACK
NOCONVERT
NUMLOCK
NUMPAD0
NUMPAD1
NUMPAD2
NUMPAD3
NUMPAD4
NUMPAD5
NUMPAD6
NUMPAD7
NUMPAD8
NUMPAD9
NUMPADCOMMA
NUMPADENTER
NUMPADEQUALS
O
OEM_102
P
PAUSE
PERIOD
PGDOWN
PGUP
PLAYPAUSE
POWER
PREVTRACK
Q
R
RBRACKET
RCONTROL
RETURN
RIGHT
RMENU
RSHIFT
RWIN
S
SCROLL
SEMICOLON
SLASH
SLEEP
SPACE
STOP
SUBTRACT
SYSRQ
T
TAB
U
UNDERLINE
UNLABELED
UP
V
VOLUMEDOWN
VOLUMEUP
W
WAKE
WEBBACK
WEBFAVORITES
WEBFORWARD
WEBHOME
WEBREFRESH
WEBSEARCH
WEBSTOP
X
Y
YEN
Z

Joystick, Wheel or gamepad

This category covers all analogue input devices detected by the operating system, so all gamepads, joysticks, wheels, pedals, etc.

JoystickButton

Arguments:

  • Joystick Number (unused in modern mappings), set to 0
  • Button number
AIRPLANE_THROTTLE_DOWN    JoystickButton    0    2

JoystickAxis

Arguments:

  • Joystick Number (unused in modern mappings), set to 0
  • Axis number
  • Options:
    • HALF
    • REVERSE
    • UPPER
    • LOWER
    • RELATIVE
    • DIGITAL
    • DEADZONE : add deadzone in percent with equal sign: “DEADZONE=0.15”.
    • LINEARITY: add linearity in percent with equal sign: “LINEARITY=0.15”.
AIRPLANE_STEER_RIGHT    JoystickAxis    0    1    UPPER+DEADZONE = 0.15

JoystickPov

Arguments:

  • Joystick Number (unused in modern mappings), set to 0
  • POV number
  • Direction: North, South, East, West, NorthEast, SouthEast, NorthWest, SouthWest.
CHARACTER_FORWARD    JoystickPov    0    0    North

JoystickSlider, JoystickSliderX, JoystickSliderY

Arguments:

  • Joystick Number (unused in modern mappings), set to 0
  • Slider number
  • Options:
    • REVERSE
TRUCK_MANUAL_CLUTCH    JoystickSliderY    0    Y    0    REVERSE+DEADZONE = -30

Keypress Events

Keypress event identification in RoR 0.4.7.0+

These are all the valid keypress events, they can be used in a input map or for prop animations. not all make sense though for animated props.

AIRPLANE_AIRBRAKES_FULL     
AIRPLANE_AIRBRAKES_LESS     
AIRPLANE_AIRBRAKES_MORE     
AIRPLANE_AIRBRAKES_NONE     
AIRPLANE_BRAKE              
AIRPLANE_ELEVATOR_DOWN      
AIRPLANE_ELEVATOR_UP        
AIRPLANE_FLAPS_FULL         
AIRPLANE_FLAPS_LESS         
AIRPLANE_FLAPS_MORE         
AIRPLANE_FLAPS_NONE         
AIRPLANE_PARKING_BRAKE      
AIRPLANE_REVERSE            
AIRPLANE_RUDDER_LEFT        
AIRPLANE_RUDDER_RIGHT       
AIRPLANE_STEER_LEFT         
AIRPLANE_STEER_RIGHT        
AIRPLANE_THROTTLE_AXIS      
AIRPLANE_THROTTLE_DOWN      
AIRPLANE_THROTTLE_FULL      
AIRPLANE_THROTTLE_NO        
AIRPLANE_THROTTLE_UP        
AIRPLANE_TOGGLE_ENGINES     
BOAT_CENTER_RUDDER          
BOAT_REVERSE                
BOAT_STEER_LEFT             
BOAT_STEER_RIGHT            
BOAT_THROTTLE_AXIS          
BOAT_THROTTLE_UP            
BOAT_THROTTLE_DOWN          
CAMERA_CHANGE               
CAMERA_FREE_MODE            
CAMERA_FREE_MODE_FIX        
CAMERA_LOOKBACK             
CAMERA_RESET                
CAMERA_UP                   
CAMERA_DOWN                 
CAMERA_ROTATE_DOWN          
CAMERA_ROTATE_LEFT          
CAMERA_ROTATE_RIGHT         
CAMERA_ROTATE_UP            
CAMERA_ZOOM_IN              
CAMERA_ZOOM_IN_FAST         
CAMERA_ZOOM_OUT             
CAMERA_ZOOM_OUT_FAST        
SKY_DECREASE_TIME           
SKY_DECREASE_TIME_FAST      
SKY_INCREASE_TIME           
SKY_INCREASE_TIME_FAST      
CHARACTER_BACKWARDS         
CHARACTER_FORWARD           
CHARACTER_JUMP              
CHARACTER_LEFT              
CHARACTER_RIGHT             
CHARACTER_ROT_DOWN          
CHARACTER_ROT_UP            
CHARACTER_RUN               
CHARACTER_RUN               
CHARACTER_SIDESTEP_LEFT     
CHARACTER_SIDESTEP_RIGHT    
COMMANDS_01                 
COMMANDS_02                 
COMMANDS_03                 
COMMANDS_04                 
COMMANDS_05                 
COMMANDS_06                 
COMMANDS_07                 
COMMANDS_08                 
COMMANDS_09                 
COMMANDS_10                 
COMMANDS_11                 
COMMANDS_12                 
COMMANDS_13                 
COMMANDS_14                 
COMMANDS_15                 
COMMANDS_16                 
COMMANDS_17                 
COMMANDS_18                 
COMMANDS_19                 
COMMANDS_20                 
COMMANDS_21                 
COMMANDS_22                 
COMMANDS_23                 
COMMANDS_24                 
COMMANDS_25                 
COMMANDS_26                 
COMMANDS_27                 
COMMANDS_28                 
COMMANDS_29                 
COMMANDS_30                 
COMMANDS_31                 
COMMANDS_32                 
COMMANDS_33                 
COMMANDS_34                 
COMMANDS_35                 
COMMANDS_36                 
COMMANDS_37                 
COMMANDS_38                 
COMMANDS_39                 
COMMANDS_40                 
COMMANDS_41                 
COMMANDS_42                 
COMMANDS_43                 
COMMANDS_44                 
COMMANDS_45                 
COMMANDS_46                 
COMMANDS_47                 
COMMANDS_48                 
COMMANDS_49                 
COMMANDS_50                 
COMMANDS_51                 
COMMANDS_52                 
COMMANDS_53                 
COMMANDS_54                 
COMMANDS_55                 
COMMANDS_56                 
COMMANDS_57                 
COMMANDS_58                 
COMMANDS_59                 
COMMANDS_60                 
COMMANDS_61                 
COMMANDS_62                 
COMMANDS_63                 
COMMANDS_64                 
COMMANDS_65                 
COMMANDS_66                 
COMMANDS_67                 
COMMANDS_68                 
COMMANDS_69                 
COMMANDS_70                 
COMMANDS_71                 
COMMANDS_72                 
COMMANDS_73                 
COMMANDS_74                 
COMMANDS_75                 
COMMANDS_76                 
COMMANDS_77                 
COMMANDS_78                 
COMMANDS_79                 
COMMANDS_80                 
COMMANDS_81                 
COMMANDS_82                 
COMMANDS_83                 
COMMANDS_84                 
COMMON_ACCELERATE_SIMULATION
COMMON_DECELERATE_SIMULATION
COMMON_RESET_SIMULATION_PACE
COMMON_CONSOLE_TOGGLE       
COMMON_ENTER_OR_EXIT_TRUCK  
COMMON_ENTER_NEXT_TRUCK     
COMMON_ENTER_PREVIOUS_TRUCK 
COMMON_REMOVE_CURRENT_TRUCK 
COMMON_RESPAWN_LAST_TRUCK   
COMMON_FULLSCREEN_TOGGLE    
COMMON_HIDE_GUI             
COMMON_LOCK                 
COMMON_AUTOLOCK             
COMMON_ROPELOCK             
COMMON_OUTPUT_POSITION      
COMMON_GET_NEW_VEHICLE      
COMMON_PRESSURE_LESS        
COMMON_PRESSURE_MORE        
COMMON_QUIT_GAME            
COMMON_REPLAY_BACKWARD      
COMMON_REPLAY_FAST_BACKWARD 
COMMON_REPLAY_FAST_FORWARD  
COMMON_REPLAY_FORWARD       
COMMON_RESCUE_TRUCK         
COMMON_RESET_TRUCK          
COMMON_SCREENSHOT           
COMMON_SECURE_LOAD          
COMMON_SHOW_SKELETON        
COMMON_TOGGLE_TERRAIN_EDITOR
COMMON_TOGGLE_CUSTOM_PARTICL
COMMON_TOGGLE_MAT_DEBUG     
COMMON_TOGGLE_RENDER_MODE   
COMMON_TOGGLE_REPLAY_MODE   
COMMON_TOGGLE_STATS         
COMMON_TOGGLE_TRUCK_BEACONS 
COMMON_TOGGLE_TRUCK_LIGHTS  
COMMON_TRUCK_INFO           
COMMON_TRUCK_DESCRIPTION    
COMMON_FOV_LESS             
COMMON_FOV_MORE             
GRASS_LESS                  
GRASS_MORE                  
GRASS_MOST                  
GRASS_NONE                  
GRASS_SAVE                  
SURVEY_MAP_ZOOM_IN          
SURVEY_MAP_ZOOM_OUT         
SURVEY_MAP_TOGGLE_VIEW      
SURVEY_MAP_TOGGLE_ALPHA     
SURVEY_MAP_TOGGLE_ICONS     
MENU_DOWN                   
MENU_LEFT                   
MENU_RIGHT                  
MENU_SELECT                 
MENU_UP                     
TRUCK_ACCELERATE            
TRUCK_ACCELERATE_MODIFIER_25
TRUCK_ACCELERATE_MODIFIER_50
TRUCK_ANTILOCK_BRAKE        
TRUCK_AUTOSHIFT_DOWN        
TRUCK_AUTOSHIFT_UP          
TRUCK_BLINK_LEFT            
TRUCK_BLINK_RIGHT           
TRUCK_BLINK_WARN            
TRUCK_BRAKE                 
TRUCK_BRAKE_MODIFIER_25     
TRUCK_BRAKE_MODIFIER_50     
TRUCK_CRUISE_CONTROL        
TRUCK_CRUISE_CONTROL_READJUS
TRUCK_CRUISE_CONTROL_ACCL   
TRUCK_CRUISE_CONTROL_DECL   
TRUCK_HORN                  
TRUCK_LIGHTTOGGLE1          
TRUCK_LIGHTTOGGLE2          
TRUCK_LIGHTTOGGLE3          
TRUCK_LIGHTTOGGLE4          
TRUCK_LIGHTTOGGLE5          
TRUCK_LIGHTTOGGLE6          
TRUCK_LIGHTTOGGLE7          
TRUCK_LIGHTTOGGLE8          
TRUCK_LIGHTTOGGLE9          
TRUCK_LIGHTTOGGLE10         
TRUCK_MANUAL_CLUTCH         
TRUCK_PARKING_BRAKE         
TRUCK_SHIFT_DOWN            
TRUCK_SHIFT_NEUTRAL         
TRUCK_SHIFT_UP              
TRUCK_STARTER               
TRUCK_STEER_LEFT            
TRUCK_STEER_RIGHT           
TRUCK_SWITCH_SHIFT_MODES    
TRUCK_TOGGLE_AXLE_LOCK      
TRUCK_TOGGLE_CONTACT        
TRUCK_TOGGLE_FORWARDCOMMANDS
TRUCK_TOGGLE_IMPORTCOMMANDS 
TRUCK_TOGGLE_VIDEOCAMERA    
TRUCK_TRACTION_CONTROL      

Mouse

Required applications

vJoy joystick emulator

FreePIE input emulator

Setting up the input map and FreePIE script

After installing the above applications, download this zip file which contains the required input map and FreePIE script.

There will be two files in the zip: vJoy_Device.map and MouseControl.py.

Extract both files into Documents\Rigs of Rods 0.4\config.

Using FreePIE

Open FreePIE and press File -> Open. Browse to the MouseControl.py file you downloaded earlier:

1

2

3

Then press Script -> Run script:

4

The script should now be running. If you get an error, install vJoy.

Leave FreePIE running, launch RoR and you should now have mouse control!

You can modify both the script and the input map to make them better suit for your use.

For example the numbers 40 and 80 in the script are the sensitivity of the controls.

Mouse middle button in the script above, will reset the axises in game, in this case the steering and throttle.

Configuring controls with the Input Mapping Tool

The easiest way to configure your device for use in Rigs of Rods is to use the Input Mapping Tool.

vJoy Conflicts

NOTE: If you have vJoy installed, you will have to disable it before running the tool!

vJoyDisable

Launching the tool

After downloading, extract the zip into a new folder. Then double-click Run.bat to launch the tool.

5

Adding new inputs

To begin adding inputs, click Add.

6

Select the event you want to assign an input to. In this exanmple, I will use TRUCK_ACCELERATE

Then select the correct input type:

Event typeDescription
KeyboardAll keys on the keyboard.
JoystickAxisUsed for steering wheels/sticks/etc.
JoystickSliderAny type of slider, mainly seen on flight sticks.
JoystickButtonButtons! (e.g. `A` button on an Xbox controller)
JoystickPovUsed for D-Pad controls.

Click Add once ready, the tool will then ask you to move the axis/press a button.

The popup will automatically close once the requested action is completed.

7

Repeat the process for all the inputs you want to add.

8

Once you’re done, it’s time to export the keymap.

Exporting the keymap

First, you’ll need to get the correct file name of your file.

To do this, double-click getdeviceinfo.exe. This will generate a inputinfo.txt file. Open the text file.

Example output:

System info:
	OIS Version: 1.3.0
	OIS Release Name: 1.3.0
	Input Manager: Win32InputManager
	Total Keyboards: 1
	Total Mice: 1
	Total JoySticks: 1

Devices:
	- OISKeyboard, Vendor: Win32InputManager
	- OISMouse, Vendor: Win32InputManager
	- OISJoyStick, Vendor: Logitech Extreme 3D


Joystick 0:
	Vendor: Logitech Extreme 3D
	VendorMapFilename: Logitech_Extreme_3D.map
	ID: 0
	Type: [3] OISJoyStick
	Axes: 3
	Sliders: 1
	POV/HATs: 1
	Buttons: 12
	Vector3: 0
	Vector3Sensitivity: 2.28

VendorMapFilename will be the name of your exported file. In this example, the name will be Logitech_Extreme_3D.map.

Click Export Keymap then select your device from the list.

9

10

And finally, run Rigs of Rods and test your device! You can make further edits to your input map by clicking Import Keymap.

If you want to share your created input map, upload it to the Miscellaneous section of the Repository. Thanks!

Edit page on GitHub