Keyboard controls

Derail Valley supports keyboard controls beyond walking around. The game, although focusing on VR, is just as playable with keyboard and mouse.

In the tutorial, you are given a booklet with the most commonly needed controls.
Many additional controls can be defined (see footer of the keyboard controls manual). The file name is `GamePreferences.ini`. In there you can also find additional controls to define.

## Train controls

The keyboard controls used for train control work whenever you are in or on a locomotive cabin, or have the Locomotive remote in your hands and it's turned on and connected.

The train controls currently ignore the limits set by the levers. This means you can set the throttle between two notches using F1 and F2, which gives you much more fine grained control over the engine. This can be a powerful tool, especially when operating a locomotive at its recommended weight limit.
This may appear a bit like cheating to some people, but keep in mind that the remote will do the same thing when operated via VR or the mouse.

## List of permitted values

Below is the complete list of values recognized by the Unity game engine.

* Not all keys are available on all keyboards. Especially the function keys are increasingly disappearing.
* The function keys may require you to press the "Fn" key to activate on some keyboards.
* The list was made with the US keyboard layout in mind. Some key values may map to a differernt physical keyboard key.
* The US keyboard has one key less than some other layouts (like swiss and german). This key may not be usable.
* Some values map to the same key, for example "Pause" and "Break" are the same key, but one may require you to press shift.

Note: To shorten the lists, "..." is used to indicate that you can extrapolate values from the previous and next item

### Special values

* None

Used when no key is assigned

#### Text control

* Backspace
* Tab
* Clear
* Return

Note: "Return" is the "Enter" key. This is a leftover from "Carriage return" on typewriters.

#### Keypad

* Keypad0
* Keypad1
* ...
* Keypad9
* KeypadPeriod
* KeypadDivide
* KeypadMultiply
* KeypadMinus
* KeypadPlus
* KeypadEnter
* KeypadEquals

#### Text

* Alpha0
* Alpha1
* ...
* Alpha9
* A
* ...
* Z

#### Symbols

* Exclaim
* DoubleQuote
* Hash
* Dollar
* Percent
* Ampersand
* Quote
* LeftParen
* RightParen
* Asterisk
* Plus
* Comma
* Minus
* Period
* Slash
* Colon
* Semicolon
* Less
* Equals
* Greater
* Question
* At
* LeftBracket
* Backslash
* RightBracket
* Caret
* Underscore
* BackQuote
* LeftCurlyBracket
* Pipe
* RightCurlyBracket
* Tilde

#### Arrows

* UpArrow
* DownArrow
* RightArrow
* LeftArrow

#### Cursor control block

* Insert
* Delete
* Home
* End
* PageUp
* PageDown

#### Function keys

* F1
* ...
* F15

Note that most keyboards lack keys above F12. The unity limit is F15, the Windows limit is F24. There are keyboards with these keys available.

#### Locking keys

* Numlock
* CapsLock
* ScrollLock

Note the lowercase "lock" in "Numlock"

#### Modifier keys

* RightShift
* LeftShift
* RightControl
* LeftControl
* RightAlt
* LeftAlt
* LeftCommand
* LeftApple
* LeftWindows
* RightCommand
* RightApple
* RightWindows
* AltGr

"AltGr" is commonly found on swiss and german keyboards instead of the right alt key.

#### Special keys

* Help
* Print
* SysReq
* Break
* Menu
* Pause
* Escape

#### Mouse

* Mouse0
* Mouse1
* ...
* Mouse6

#### Joystick

* JoystickButton0
* JoystickButton1
* ...
* JoystickButton19
* Joystick1Button0
* ...
* Joystick1Button19
* Joystick2Button0
* ...
* Joystick8Button19

If this list seems confusing, you can read it like this:

There are 9 possible joysticks. The first one has no number, the rest are numbered 1-8. Each joystick has 20 buttons, numbered 0-19