From FreeSpace Wiki
Revision as of 15:06, 11 December 2019 by Wookieejedi (talk | contribs) (List of Bindings)
Jump to: navigation, search

Revision information.....

FSO Revision: 7478
Note: Please update the version when the page is updated. If your edit had nothing to do with new code entries then please do not edit the version

The controlconfigdefaults.tbl can be used to modify the default key bindings in FSO.

List of Tables

General Format

  • Begins with #ControlConfigOverride and ends with #End.
  • Only entries that you want to change are required.
  • Entries not listed will be assigned to their default/hardcoded values.
FS2 Open, 3.7.2:

Multiple #ControlConfigOverride...#End blocks can be provided. In this case, each block defines a separate control config preset, and the "Defaults" button in the control config screen can be used to cycle through them. This can be used to provide multiple pre-defined control schemes for the player to choose from (or base their personal modifications on). If used, it's a good idea to also use Strings.tbl to change the "Defaults" text to for example "Cycle\nPresets".

The first given block is used as the "global" defaults, used for example when working with the key-pressed SEXP in FRED.


FS2 Open, 3.7.4:
  • The name of this control config preset, displayed at the top left corner of the control config screen when selected through the "Defaults" button.
    • Syntax: String

$Bind Name:

  • Name of the bind or action to modify the default key of.
  • Valid entries: List of Bindings
  • Required
  • Syntax: String

$Key Default:

  • Key to set as default
  • Valid entries: Allowed Keys
  • Optional
  • Syntax: String

$Joy Default:

  • Joystick button to set as default
  • Optional
  • Syntax: Integer

$Key Mod Shift:

  • Sets the key to require the Shift key
  • 1 for yes, 0 for no
  • Optional
  • Syntax: Integer

$Key Mod Alt:

  • Sets the key to require the Alt key
  • 1 for yes, 0 for no
  • Optional
  • Syntax: Integer

$Key Mod Ctrl:

  • Sets the key to require the Ctrl key
  • 1 for yes, 0 for no
  • Optional
  • Syntax: Integer


  • Tab where the binding appears in the options menu.
  • Optional
  • Syntax: String

$Has XStr:

  • Whether or not the binding has an entry in strings.tbl
  • 1 for yes, 0 for no
FS2 Open, 19.0:

Now the index within strings.tbl can also be specified, though the index must be > 1. For example, $Has XStr: 1570 will use the string index 1570 instead of the default string index.

  • Optional
  • Syntax: Integer


Determines the type of control this is.

Valid entries:

    • Normal control that activates upon the first press. Resetting devices (such as weapons) will keep firing as long as the key/button is held down.
    • Control that activates when the key/button is held down, and stays activated until the key/button is released. Ex: Afterburner key.
  • Optional
  • Syntax String


FS2 Open, 3.7.4:
  • Determines whether the binding can be used and appears in the options menu. Can be used to hide bindings which are not needed, or to enable bindings which are hidden by default.
    • Syntax: Boolean


This example does the following...

  • Sets Clear Escort List to Alt-Shift-Q
  • Sets Target Target's Attacker to Ctrl-Alt-Shift-J, moves it to the Ship Tab, denotes it's type as a trigger and sets it to not have a XString
  • Sets Transfer Energy from Shield to Laser to R

$Bind Name:		Clear Escort List
$Key Default:		KEY_Q
$Key Mod Shift:		1
$Key Mod Alt:		1

$Bind Name:		Target Target's Nearest Attacker
$Key Default:		KEY_J
$Key Mod Shift:		1
$Key Mod Alt:		1
$Key Mod Ctrl:		1
$Category:		SHIP_TAB
$Has XStr:		0

$Bind Name:		Transfer Energy Shield->Laser
$Key Default:		KEY_R


List of Bindings

  • This is a list of all possible bindings that can be modified.
  • Must use the string below (without quotes).
  • These bindings are case-sensitive

Targeting Ships and Objects

  • 'Target Next Ship'
  • 'Target Previous Ship'
  • 'Target Next Closest Hostile Ship'
  • 'Target Previous Closest Hostile Ship'
  • 'Target Next Closest Friendly Ship'
  • 'Target Previous Closest Friendly Ship'
  • 'Target Ship in Reticle'
  • 'Target Target's Nearest Attacker'
  • 'Target Last Ship to Send Transmission'
  • 'Turn Off Targeting'
  • 'Target Closest Attacking Ship'
  • 'Target Next Escort Ship'
  • 'Target Closest Repair Ship'
  • 'Target Next Uninspected Cargo'
  • 'Target Previous Uninspected Cargo'
  • 'Target Newest Ship in Area'
  • 'Target Target's Target'
  • 'Target Next Hostile Bomb or Bomber'
  • 'Target Previous Hostile Bomb or Bomber'

Targeting Subsystems and Turrets

  • 'Target Subsystem in Reticle'
  • 'Target Next Subsystem'
  • 'Target Previous Subsystem'
  • 'Turn Off Targeting of Subsystems'
  • 'Target Next Live Turret'
  • 'Target Previous Live Turret'


  • 'Fire Primary Weapon'
  • 'Fire Secondary Weapon'
  • 'Cycle Forward Primary Weapon'
  • 'Cycle Backward Primary Weapon'
  • 'Cycle Secondary Weapon Bank'
  • 'Cycle Secondary Weapon Firing Rate'
  • 'Launch Countermeasure'


  • 'Forward Thrust'
  • 'Reverse Thrust'
  • 'Bank Left'
  • 'Bank Right'
  • 'Pitch Forward'
  • 'Pitch Backward'
  • 'Turn Left'
  • 'Turn Right'
  • 'Right Thrust'
  • 'Left Thrust'
  • 'Up Thrust'
  • 'Down Thrust'
  • 'Afterburner'
  • 'Glide When Pressed'
  • 'Bank When Pressed'
  • 'Match Target Speed'

Throttle Control

  • 'Set Throttle to Zero'
  • 'Set Throttle to Max'
  • 'Set Throttle to One-Third'
  • 'Set Throttle to Two-Thirds'
  • 'Increase Throttle 5 Percent'
  • 'Decrease Throttle 5 Percent'

HUD Controls

  • 'Toggle High HUD Contrast'
  • 'Toggle HUD'
  • 'Toggle HUD Wireframe Target View'
  • 'Cycle Radar Range'
  • 'Communications Menu'
  • 'Show Nav Map
  • 'Add or Remove Escort'
  • 'Clear Escort List'

Squadmate Messaging

  • 'Attack My Target'
  • 'Disarm My Target'
  • 'Disable My Target'
  • 'Attack My Subsystem'
  • 'Capture My Target'
  • 'Engage Enemy'
  • 'Form on My Wing'
  • 'Ignore My Target'
  • 'Protect My Target'
  • 'Cover Me'
  • 'Return to Base'
  • 'Rearm Me'


  • 'Chase View'
  • 'External View'
  • 'Toggle External Camera Lock'
  • 'Free Look View'
  • 'Current Target View'
  • 'Increase View Distance'
  • 'Decrease View Distance'
  • 'Center View'
  • 'View Up'
  • 'View Rear'
  • 'View Left'
  • 'View Right
  • 'Top-Down View'
  • 'Target Padlock View'

ETS and Shields

  • 'Increase Weapon Energy'
  • 'Decrease Weapon Energy'
  • 'Increase Shield Energy'
  • 'Decrease Shield Energy'
  • 'Increase Engine Energy'
  • 'Decrease Engine Energy'
  • 'Equalize Energy Settings'
  • 'Equalize Shields'
  • 'Augment Forward Shield'
  • 'Augment Rear Shield'
  • 'Augment Left Shield'
  • 'Augment Right Shield'
  • 'Transfer Energy Laser->Shield'
  • 'Transfer Energy Shield->Laser'


  • 'Enter Subspace (End Mission)'
  • 'Increase Time Compression'
  • 'Decrease Time Compression'
  • 'Toggle Auto Pilot'
  • 'Cycle Nav Points'
  • 'Toggle Gliding'
  • 'Toggle Auto Speed Matching'
  • 'Toggle Auto Targeting'

Multiplayer Only

  • '(Multiplayer) Message All'
  • '(Multiplayer) Message Friendly'
  • '(Multiplayer) Message Hostile'
  • '(Multiplayer) Message Target'
  • '(Multiplayer) Observer Zoom To Target'
  • '(Multiplayer) Toggle Network info'
  • '(Multiplayer) Self Destruct'

FS2 Open, 19.0:

Custom Controls

  • 'Custom Control 1'
  • 'Custom Control 2'
  • 'Custom Control 3'
  • 'Custom Control 4'
  • 'Custom Control 5'

These are empty controls for modders and/or scripters to use. They are disabled by default, have no default key-binding, and no default index in strings.tbl. To use these, create a new entry in Controlconfigdefaults.tbl and with the respective name. For example, $Bind Name: Custom Control 1 for Custom Control 1. To change the string add a string entry to strings.tbl and specify that index in $Has XStr: for Custom Control 1. For example, if you add string 1570 for this key binding set $Has XStr: 1570.

The complete entry of this example would be:

  • $Bind Name: Custom Control 1
  • $Has XStr: 1570

Allowed Keys

  • Not all keys are checked by FSO for key bindings, so some of these may not work.
  • List coppied from controlsconfigcommon.cpp and edited to make readable.
  • Must use the string below (without quotes).
  • List of keys