Oolite Keyboard Controls

From Elite Wiki
Revision as of 16:55, 13 December 2020 by Cholmondely (talk | contribs) (Noted issues with foreign Linux keyboards.)

Galcop Health Warning for Linux Keyboards

Problems with foreign Linux keyboard layouts have been known for ages and are not so much an Oolite issue, rather than an SDL 1.2.x one. All keyboards are treated as if they were US layout and one finds quite a few projects using SDL that have similar inconveniences.

Using SDL 1.2.x's unicode inputs seems to help, but unfortunately unicode inputs recognize only keydown events and not keyup ones. Getting this to work properly may not be impossible, but it is not straightforward either. See here.

Default Key Assignments

Key assignments are stored in the file keyconfig.plist. This file, by default, is in the following location:

  • Linux: /usr/lib/GNUstep/Applications/oolite.app/Resources/Config/keyconfig.plist
  • Windows: C:\Oolite\oolite.app\Resources\Config\keyconfig.plist - (was C:\Program Files\Oolite\... before 1.73.x)
  • Mac OS-X: In “Extras” folder, or in Oolite.app/Contents/Resources/Config/keyconfig.plist

++Please Note: All characters in capitals are shift + character, i.e. R = shift + r.++

++Additional: the column labelled BBC, refers to the alternate BBC keyboard controls.++

Flight Controls

Action Keyconfig Entry Key Keycode (Dec) Keycode (Hex) BBC Key Notes
Roll Left key_roll_left Left arrow 253 FD , Roll anticlockwise.
Roll Right key_roll_right Right arrow 252 FC . Roll clockwise.
Pitch Forward key_pitch_forward Up arrow 255 FF s Pitch down (dive).
Pitch Back key_pitch_back Down arrow 254 FE x Pitch up (climb).
Yaw Left key_yaw_left , 44 2C Left arrow Yaw (turn) left.
Yaw Right key_yaw_right . 46 2E Right arrow Yaw (turn) right.
Increase Speed key_increase_speed w 119 77 Space Speed increase.
Inject Fuel key_inject_fuel i 105 69 i Witchspace Fuel Injectors. Only available when equipment installed.
Decrease Speed key_decrease_speed s 115 73 / Speed decrease.
Activate Ident System key_ident_system r 114 72 r Activate Ident System.
Deactivate Ident system key_untarget_missile u 117 75 u NB: This is the same action as "Deactivate Missile-targeting system".
Launch Escape Pod key_launch_escapepod Esc 27 1B Esc Requires an Escape Pod to be fitted.
Jumpdrive key_jumpdrive j 106 6A j Cannot activate when close to planets or ships.
Hyperspace key_hyperspace h 104 68 h Requires a hyperspace-capable ship.
Galactic Hyperspace key_galactic_hyperspace g 103 67 g Must have a Galactic Hyperdrive fitted.
Ask for docking clearance key_docking_clearance_request L 76 4C L The targeted station will give you clearance (or not). Carriers might stop when giving clearance.
Autopilot key_autopilot c 99 63 c Requires Docking Computer. Slow-docking.
Autodock key_autodock C 68 44 C Requires Docking Computer. Instant-docking.

Combat Controls

Action Keyconfig Entry Key Keycode (Dec) Keycode (Hex) BBC Key Notes
Toggle Weapons On/Off key_weapons_online_toggle _ 95 5f _ Toggle weapon lockdown (laser and turrets).
Fire Lasers key_fire_lasers a 97 61 a Fire laser in current view (if installed).
Activate Missile-targeting system key_target_missile t 116 74 t Activate Missile-targeting system.
Deactivate Missile-targeting system key_untarget_missile u 117 75 u Deactivate Missile-targeting system.
Launch Missile key_launch_missile m 109 6D m Launch Missile or Mine.
Next Missile key_next_missile y 121 79 y Multi-Targeting System required in Oolite versions before 1.74.
Cycle forward between targets key_next_target + 43 2B + Target System Memory Upgrade required.
Cycle backward between targets key_previous_target - 45 2D - Target System Memory Upgrade required.
Activate ECM key_ecm e 101 65 e ECM System required.
Target nearest incoming missile key_target_incoming_missile T 84 54 e
Energy Bomb key_energy_bomb Tab ("\t") 9 09 Tab Energy Bomb required. (Strict mode only from v1.77 on.)
Toggle cloaking device key_cloaking_device 0 48 30 0 Cloaking Device required.

In-Flight Controls

Action Keyconfig Entry Key Keycode (Dec) Keycode (Hex) BBC Key Notes
Dump Cargo key_dump_cargo d 100 64 d
Cycle cargo to dump key_rotate_cargo R 82 52 R
Prime optional equipment key_prime_equipment N 78 4e N From Oolite v1.76. Requires OXP-installed equipment (not in core game).
Activate optional equipment key_activate_equipment n 110 6e n From Oolite v1.76. Requires OXP-installed equipment (not in core game).
Activate optional equipment secondary function key_mode_equipment b 98 62 b From Oolite v1.77. Requires OXP-installed equipment (not in core game).
Scanner Zoom key_scanner_zoom z 122 7A z
Reset Scanner Zoom key_scanner_unzoom Z 90 5A Z
Next Compass Target key_next_compass_mode \ or # 92 5C \
Previous Compass Target key_prev_compass_mode 124 7C Oolite V1.77 or later.
Comms Log key_comms_log ` 96 60 `


Map Controls (F6 screen)

Action Keyconfig Entry Key Keycode (Dec) Keycode (Hex) BBC Key Notes
Advanced Navigational Array key_advanced_nav_array ^ 94 5E ^ In Galactic-Chart Mode: Hold down to activate, release to deactivate.
Map Home key_map_home Home or ↖ 302 12E O In Galactic-Chart Mode: Selects your current system.
Map Info key_map_info i 105 69 i Toggles between names & additional system information (economy/government/TL).
Cycle Map Highlight (?) ? (?) (?) Toggles colour of systems (sun colour/economy/government/TL).

Market Controls (F8 screen)

Action Keyconfig Entry Key Keycode (Dec) Keycode (Hex) BBC Key Notes
Buy/sell maximum amount ? Enter or Return ? ? ? Once item is selected: buys/sells maximum and then sells/buys on second press
Sort market goods ? / ? ? Toggles between default sort/alphabetical/price/quantity for sale/quantity in hold/unit mass
Map Info Select market goods ? (?) (?) Toggles between all goods/carried or in stock/carried/in stock/'legal'/'illegal'.

Misc. Controls

Action Keyconfig Entry Key Keycode (Dec) Keycode (Hex) BBC Key Notes
Docking Music Toggle key_docking_music s 115 73 q Only if Docking Computer fitted!
Cycle through external views key_custom_view v 118 76 v
Take a Snapshot key_snapshot * (shift+8) 42 2A * (shift+8) Written to $HOME/oolite-saves.
Toggle Hud key_hud_toggle o 111 6F o Oolite 1.76 or later (replaces fixed debug key). Useful for screen dumps.
Pause Game key_pausebutton p 112 70 p
Toggle Mouse Control key_mouse_control M 77 4D M When activated, the mouse becomes a virtual joystick (in full screen mode only). The left mouse button fires and the right re-centres your ship.
Display Frame Rate key_show_fps F 70 46 F Displays frame rate, object- and collision-counter and player's pwm-coordinates. (Only available in test releases.)
Dump Target State key_dump_target_state H 72 48 H Writes a detailed dump of your current target to the logfile. If no target is chosen, the player's state will be dumped. (Only available in test releases.)


Debugging Keys

The following keys only work while you have paused the game by pressing p. Most of them will dump debug-messages to Oolite's logfile. This is highly useful for debugging OXPs or helping to debug Oolite.


Action Key Notes
Entity Dump 0 (zero) Writes a list of all entities in your current system to the logfile. Useful e.g. to find out whether a certain ship exists.
Collision Debug b Enables collision test debugging.
Octree Debug c Enables octree debugging, which will print the line “DEBUG Octrees collide!” in the logfile whenever two objects collide.
Complete Debug d Enables all debug flags.
Shader Debug s Enables shader debug messages.
Entity Boxes x Enables drawing of bounding boxes around all entities in the game.
Planet Textures t Turns on the experimental on-the-fly generation of planet textures. Dock and launch or hyperjump to see the effect. This feature is still under development and may produce unintended results. Therefore it is disabled in Oolite 1.69.1.
Switch off HUD o Switches off the HUD.
End Debugging n Disables all debug flags and the textured planets. Switches the HUD back on.


Changing Key Assignments

If you want to change key assignments don't alter the default file. Instead, create a 'Config' folder in your local AddOns folder, and copy keyconfig.plist into it, then edit the copy:

  • Linux: ~/.Oolite/AddOns
  • Windows (except Vista): C:\Program Files\Oolite\AddOns
  • Windows Vista: C:\Oolite\AddOns
  • Mac OS-X: ~/Library/Application Support/Oolite/AddOns


You can edit keyconfig.plist with any standard text editor. In Oolite 1.65 and earlier, keys are specified as key codes. You'll find a list of Linux keycodes here. Note that Oolite uses decimal values whereas most keycodes are expressed in hexadecimal. This can cause confusion. For example the comma key produces a keycode of 2C (hex) which translates to 44 (decimal), whereas keycode 44 (hex) refers to the uppercase "D" key, which is actually 68 (decimal)! (If you don't have a hex/decimal calculator handy try this table or this online converter.)

In current test releases, key assignments can be specified as text instead.

If you can't be bothered with manual editing try Keyconfig - a small helper for creating your personal keymapping for Oolite 1.76+.

Numeric Keypads

Oolite does not make use of the numeric keypad. This ensures the game is playable on laptops. However, since some players may wish to make use of it, here are the keycodes for all the numeric pad keys.

Key Name Keycode (Dec) Keycode (Hex) Suggested keyconfig.plist usage
gvArrowKeyRight 252 FC 252; // gvArrowKeyRight
gvArrowKeyLeft 253 FD 253; // gvArrowKeyLeft
gvArrowKeyDown 254 FE 254; // gvArrowKeyDown
gvArrowKeyUp 255 FF 255; // gvArrowKeyUp
gvHomeKey 303 12F 303; // gvHomeKey
gvEndKey 304 130 304; // gvEndKey
gvInsertKey 305 131 305; // gvInsertKey
gvDeleteKey 306 132 306; // gvDeleteKey
gvPageUpKey 307 133 307; // gvPageUpKey
gvPageDownKey 308 134 308; // gvPageDownKey
gvNumberPadKey0 310 136 310; // gvNumberPadKey0
gvNumberPadKey1 311 137 311; // gvNumberPadKey1
gvNumberPadKey2 312 138 312; // gvNumberPadKey2
gvNumberPadKey3 313 139 313; // gvNumberPadKey3
gvNumberPadKey4 314 13A 314; // gvNumberPadKey4
gvNumberPadKey5 315 13B 315; // gvNumberPadKey5
gvNumberPadKey6 316 13C 316; // gvNumberPadKey6
gvNumberPadKey7 317 13D 317; // gvNumberPadKey7
gvNumberPadKey8 318 13E 318; // gvNumberPadKey8
gvNumberPadKey9 319 13F 319; // gvNumberPadKey9


Classic Elite keyboard controls

In the original BBC version, you could control your ship with the following controls: S and X to dive and climb; < and > (well "," and ".") to roll left and right; and A to fire the lasers.

Here is a download link to grab the keyconfig.plist file that you need to change the keys.

Download this file, put it into a Config folder, and put that in your AddOns folder.

OXPs

  • Classic Elite keyboard config (just above!)
  • Keyboard Cobra alters the effects of your roll/pitch/yaw keys to make your cobra more manoeuverable

Silly Keyboard Tricks

  • Change key_launch_missile to 112. Now you'll need to hit "p" to launch a missile - which also pauses the game. You'll sometimes get a nice snapshot of the departing missile!