Difference between revisions of "Controlconfigdefaults.tbl"

From FreeSpace Wiki
Jump to: navigation, search
(Undo revision 46046 by Z64555 (Talk))
($Bind Name:: Updated to hopefully clarify that these options and suboptions are deprecated)
 
(21 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{TableVersion|7478}}
+
{{TableVersionGit| 2021-02-13 UTC | db2bd97669c949e7d68baa9560192b7d3ad96563}}
  
 +
{{Tables}}
 
The '''controlconfigdefaults.tbl''' can be used to modify the default key bindings in FSO.
 
The '''controlconfigdefaults.tbl''' can be used to modify the default key bindings in FSO.
  
 
+
==#ControlConfigOverride==
[[Tables|List of Tables]]
+
* Starts an Override section
 
+
* Begins with '''#ControlConfigOverride''' and ends with '''#End'''.
==General Format==
+
* Only entries that you want to change are required, the rest will use the default binding
*Begins with '''#ControlConfigOverride''' and ends with '''#End'''.
+
* Entries not listed will be assigned to their default/hardcoded values.
*Only entries that you want to change are required.
 
*Entries not listed will be assigned to their default/hardcoded values.
 
 
{{Table371|
 
{{Table371|
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".
+
* Multiple #ControlConfigOverride...#End blocks can be provided.
 +
** Each block defines a separate control config preset
 +
** The "Defaults" button in the control config screen may be used to reset to the selected preset, then cycle through to the next preset.
 +
** The first given block is used as the "global" defaults, and is used when working with the key-pressed SEXP and LUA scripts.
 +
** Note: It's a good idea to also use [[Strings.tbl]] to change the "Defaults" text on the button 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.}}
+
==#ControlConfigPreset==
 +
{{Table212|
 +
* Starts a Preset section
 +
* Begins with '''#ControlConfigPreset''' and ends with '''#End'''.
 +
* All keybinds you wish to have bound must be specified, any unspecified keys will be unbound.
 +
}}
  
 
===$Name:===
 
===$Name:===
 
{{Table373|
 
{{Table373|
*The name of this control config preset, displayed at the top left corner of the control config screen when selected through the "Defaults" button.
+
* The name of this control config preset, displayed at the top left corner of the control config screen when selected through the "Defaults" button.
 +
* If not provided, the first [[#ControlConfigOverride]] block will override the hardcoded defaults, all subsequent blocks will be '''<unnamed preset>.'''
 +
{{Table212|
 +
* If not provided, the [[#ControlConfigPreset]] block will be '''<unnamed preset>'''
 +
}}
 
**Syntax: '''''String'''''
 
**Syntax: '''''String'''''
 
}}
 
}}
  
 
+
===$Bind Name:===
==$Bind Name:==
 
 
*Name of the bind or action to modify the default key of.
 
*Name of the bind or action to modify the default key of.
*Valid entries: [[Controlconfigdefaults.tbl#List of Bindings|List of Bindings]]
+
*Valid entries: [[Controlconfigdefaults.tbl#Table of Bindings|Table of Bindings]]
 
*Required
 
*Required
 
*Syntax: '''String'''
 
*Syntax: '''String'''
 +
{{Table220|
 +
As of FSO 22.0, '''$Bind Name:''', '''$Key Default:''', '''$Joy Default:''', '''$Key Mod Shift:''', '''$Key Mod Alt:''', and '''$Key Mod Ctrl:''' are deprecated in favor of '''Bind:''' and its respective suboptions.
 +
}}
  
===$Key Default:===
+
====$Key Default:====
 
*Key to set as default
 
*Key to set as default
 
*Valid entries: [[Controlconfigdefaults.tbl#Allowed Keys|Allowed Keys]]
 
*Valid entries: [[Controlconfigdefaults.tbl#Allowed Keys|Allowed Keys]]
 +
{{Table372|
 +
*May be unbound by specifying '''NONE''' instead of a key}}
 
*Optional
 
*Optional
 
*Syntax: '''String'''
 
*Syntax: '''String'''
 +
{{Table220|
 +
As of FSO 22.0, '''$Bind Name:''', '''$Key Default:''', '''$Joy Default:''', '''$Key Mod Shift:''', '''$Key Mod Alt:''', and '''$Key Mod Ctrl:''' are deprecated in favor of '''Bind:''' and its respective suboptions.
 +
}}
  
===$Joy Default:===
+
====$Joy Default:====
 
*Joystick button to set as default
 
*Joystick button to set as default
 
*Optional
 
*Optional
 
*Syntax: '''Integer'''
 
*Syntax: '''Integer'''
 +
{{Table220|
 +
As of FSO 22.0, '''$Bind Name:''', '''$Key Default:''', '''$Joy Default:''', '''$Key Mod Shift:''', '''$Key Mod Alt:''', and '''$Key Mod Ctrl:''' are deprecated in favor of '''Bind:''' and its respective suboptions.
 +
}}
  
===$Key Mod Shift:===
+
====$Key Mod Shift:====
 
*Sets the key to require the Shift key
 
*Sets the key to require the Shift key
 
*'''1''' for yes, '''0''' for no
 
*'''1''' for yes, '''0''' for no
 
*Optional
 
*Optional
 
*Syntax: '''Integer'''
 
*Syntax: '''Integer'''
===$Key Mod Alt:===
+
{{Table220|
 +
As of FSO 22.0, '''$Bind Name:''', '''$Key Default:''', '''$Joy Default:''', '''$Key Mod Shift:''', '''$Key Mod Alt:''', and '''$Key Mod Ctrl:''' are deprecated in favor of '''Bind:''' and its respective suboptions.
 +
}}
 +
 
 +
====$Key Mod Alt:====
  
 
*Sets the key to require the Alt key
 
*Sets the key to require the Alt key
Line 50: Line 77:
 
*Optional
 
*Optional
 
*Syntax: '''Integer'''
 
*Syntax: '''Integer'''
 +
{{Table220|
 +
As of FSO 22.0, '''$Bind Name:''', '''$Key Default:''', '''$Joy Default:''', '''$Key Mod Shift:''', '''$Key Mod Alt:''', and '''$Key Mod Ctrl:''' are deprecated in favor of '''Bind:''' and its respective suboptions.
 +
}}
 +
 +
====$Key Mod Ctrl:====
 +
* Sets the key to require the Ctrl key
 +
* '''1''' for yes, '''0''' for no
 +
* Optional
 +
* Syntax: '''Integer'''
 +
{{Table220|
 +
As of FSO 22.0, '''$Bind Name:''', '''$Key Default:''', '''$Joy Default:''', '''$Key Mod Shift:''', '''$Key Mod Alt:''', and '''$Key Mod Ctrl:''' are deprecated in favor of '''Bind:''' and its respective suboptions.
 +
}}
 +
 +
===$Bind:===
 +
{{Table220|
 +
*The IoActionID of the action to bind to.
 +
*Valid entries: [[Controlconfigdefaults.tbl#Table of Bindings|Table of Bindings]]
 +
*Required
 +
*Syntax: '''String'''
 +
}}
 +
 +
====$Primary:====
 +
{{Table220|
 +
*Denotes the following binding is a Primary binding of the control
 +
*Optional
 +
*Syntax: (No arguments)
 +
}}
 +
 +
=====$Controller:=====
 +
{{Table220|
 +
*Denotes which controller this binding is for
 +
*Required
 +
*Syntax: '''String''', any of the following:
 +
**'''CID_NONE'''
 +
**'''CID_KEYBOARD'''
 +
**'''CID_MOUSE'''
 +
**'''CID_JOY0'''
 +
**'''CID_JOY1'''
 +
**'''CID_JOY2'''
 +
**'''CID_JOY3'''
 +
}}
 +
 +
=====$Flags:=====
 +
{{Table220|
 +
*Denotes a number of flags for button behavior
 +
*Required
 +
*Syntax: '''String''', any of the following:
 +
}}
 +
{| class="wikitable"
 +
| '''AXIS_BTN''' || An axis that's treated as a digital control should it be deflected past a certain threshold (Note: WIP)
 +
|-
 +
| '''RELATIVE'''  || A relative axis which increases or decreases the control's value instead of directly setting its value. (Example: Relative Throttle)
 +
|-
 +
| '''INVERTED'''  || An axis who's input is inverted
 +
|-
 +
| '''AXIS''' || Input is an axis
 +
|-
 +
| '''HAT'''  || Input is a POV HAT switch
 +
|-
 +
| '''BALL''' || Input is a trackball
 +
|-
 +
| '''NONE''' || Input is assumed to be a standard button or key
 +
|}
 +
 +
=====$Input:=====
 +
{{Table220|
 +
*Which button, key, or axis is bound
 +
*Required
 +
*Syntax: '''string''', any of the following:
 +
 +
Joystick axes:
 +
*'''X_AXIS'''
 +
*'''Y_AXIS'''
 +
*'''Z_AXIS'''
 +
*'''RX_AXIS'''
 +
*'''RY_AXIS'''
 +
*'''RZ_AXIS'''
 +
 +
Joystick Buttons:
 +
*Buttons are simply the button number, such as "1" for button 1.
 +
 +
Mouse Buttons:
 +
*'''LEFT_BUTTON'''
 +
*'''RIGHT_BUTTON'''
 +
*'''MIDDLE_BUTTON'''
 +
*'''X1_BUTTON'''
 +
*'''X2_BUTTON'''
 +
*'''WHEEL_UP'''
 +
*'''WHEEL_DOWN'''
 +
*'''WHEEL_LEFT'''
 +
*'''WHEEL_RIGHT'''
 +
 +
Keyboard Keys:
 +
[[Controlconfigdefaults.tbl#Allowed Keys|Allowed Keys]]
 +
*Key modifiers '''ALT-''' and '''SHIFT-''' can be prepended to the Key ID.
 +
**Example: '''ALT-J''', '''SHIFT-KEY_Q''', '''ALT-SHIFT-KEY_1'''
 +
}}
  
===$Key Mod Ctrl:===
+
====$Secondary:====
*Sets the key to require the Ctrl key
+
{{Table220|
*'''1''' for yes, '''0''' for no
+
*Denotes the following binding is a Secondary binding of the control
 +
*Has the same suboptions as [[Controlconfigdefaults.tbl#$Primary:|$Primary]]
 
*Optional
 
*Optional
*Syntax: '''Integer'''
+
*Syntax: (No Arguments)
 +
}}
 +
 
  
 
===$Category:===
 
===$Category:===
*Tab where the binding appears in the options menu.
+
* Tab where the binding appears in the options menu.
*Valid entries: TARGET_TAB, SHIP_TAB, WEAPON_TAB, COMPUTER_TAB
+
* Valid entries: TARGET_TAB, SHIP_TAB, WEAPON_TAB, COMPUTER_TAB
*Optional
+
* Optional
*Syntax: '''String'''
+
* Only valid in [[#ControlConfigOverride]] blocks
 +
* Syntax: '''String'''
 +
 
 +
===$Text:===
 +
{{Table212|
 +
* The label of the control to use in the controls config menu.
 +
* Is overridden by XSTR, if provided
 +
** '''Note:''' This is meant to be a lazy temporary substitution to modifying [[strings.tbl]].  Your released mod should nstill provide its own strings.tbl.
 +
* Optional
 +
* Syntax: '''String'''
 +
}}
  
 
===$Has XStr:===
 
===$Has XStr:===
*Whether or not the binding has an entry in [[strings.tbl]]
+
* Whether or not the binding has an entry in [[strings.tbl]]
*'''1''' for yes, '''0''' for no
+
** If '''0''', assumes no XSTR is provided
*Optional
+
** If '''1''', assumes an XSTR is provided alongside the other ControlConfig strings according to its internal, hardcoded index
*Syntax: '''Integer'''
+
{{Table382|
 +
** If any nonzero integer >1, is the exact XSTR index within [[strings.tbl]]
 +
}}
 +
* Optional
 +
* Only valid in [[#ControlConfigOverride]] blocks
 +
* Syntax: '''Integer'''
  
 
===$Type:===
 
===$Type:===
Determines the type of control this is.
+
*Determines the type of control this is.
  
Valid entries:
+
*Valid entries:
*CC_TYPE_TRIGGER
+
**CC_TYPE_TRIGGER
**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.
+
***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.
*CC_TYPE_CONTINUOUS
+
**CC_TYPE_CONTINUOUS
**Control that activates when the key/button is held down, and stays activated until the key/button is released. Ex: Afterburner key.
+
***Control that activates when the key/button is held down, and stays activated until the key/button is released. Ex: Afterburner key.
 
*Optional
 
*Optional
 +
*Only valid in [[#ControlConfigOverride]] blocks
 
*Syntax '''String'''
 
*Syntax '''String'''
  
Line 83: Line 226:
 
{{Table373|
 
{{Table373|
 
*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.
 
*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'''''
+
*Syntax: '''''Boolean'''''
 +
}}
 +
 
 +
===+Disable===
 +
{{Table212|
 +
* Disables the control
 +
* Optional
 +
* Only valid in [[#ControlConfigOverride]] blocks
 +
* Syntax: (No arguments)
 
}}
 
}}
  
 +
==#End==
 +
* All [[#ControlConfigOverride]] and [[#ControlConfigPreset]] sections must be terminated by #End
  
 
==Sample==
 
==Sample==
This example does the following...
+
===Post-22.0===
 +
{{Table220|
 +
This example is for Post-22.0 and does the following...
 +
*Sets Clear Escort List to Alt-Shift-Q
 +
*Sets Target Target's Attacker to Alt-Shift-J and Button 2 on Joystick 0, 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
 +
 
 +
Note that for compatibility, FSO builds 22.0 and later can still read Pre-22.0 format.
 +
 
 +
Note: the indents are optional, and are provided to improve readibility.
 +
}}
 +
 
 +
<pre>
 +
#ControlConfigOverride
 +
 
 +
$Bind: ESCORT_CLEAR
 +
  $Primary:
 +
    $Controller: CID_KEYBOARD
 +
    $Flags: NONE
 +
    $Input: ALT-SHIFT-KEY_Q
 +
 
 +
$Bind: TARGET_CLOSEST_SHIP_ATTACKING_TARGET
 +
  $Primary:
 +
    $Controller: CID_KEYBOARD
 +
    $Flags: NONE
 +
    $Input: ALT-SHIFT-KEY_J
 +
  $Secondary:
 +
    $Controller: CID_JOY0
 +
    $Flags: NONE
 +
    $Input: 2
 +
  $Category: SHIP_TAB
 +
  $Has XStr: 0
 +
  $TYPE:    CC_TYPE_TRIGGER
 +
 
 +
$Bind: XFER_LASER
 +
  $Primary:
 +
    $Controller: CID_KEYBOARD
 +
    $FLAGS: NONE
 +
    $Inpute: KEY_R
 +
 
 +
#End
 +
</pre>
 +
 
 +
===Pre-22.0===
 +
This example is for Pre-22.0 and does the following...
 
*Sets Clear Escort List to Alt-Shift-Q
 
*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 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
Line 116: Line 313:
 
</pre>
 
</pre>
  
==List of Bindings==
+
==Table of Bindings==
*This is a list of all possible bindings that can be modified.
+
* This is a table of all possible bindings that can be modified, grouped into smaller tables for easier reference.
*Must use the string below (without quotes).
+
* '''$Bind Name:''' column is to be used with '''$Bind Name:''' entries, and '''$Bind:''' column is to be used with '''$Bind:''' entries.
*These bindings are case-sensitive
+
* These bindings are case-sensitive
 +
* Controls added after 22.0 might not have a '''$Bind Name:'''.  Use the '''$Bind:''' identifier instead.
 +
{| class="wikitable"
 +
|+ style="color:white" | Targeting
 +
|-
 +
! $Bind Name: !! $Bind:
 +
|-
 +
| Target Next Ship || TARGET_NEXT
 +
|-
 +
| Target Previous Ship || TARGET_PREV
 +
|-
 +
| Target Next Closest Hostile Ship        || TARGET_NEXT_CLOSEST_HOSTILE
 +
|-
 +
| Target Previous Closest Hostile Ship    || TARGET_PREV_CLOSEST_HOSTILE
 +
|-
 +
| Toggle Auto Targeting                  || TOGGLE_AUTO_TARGETING
 +
|-
 +
| Target Next Closest Friendly Ship      || TARGET_NEXT_CLOSEST_FRIENDLY
 +
|-
 +
| Target Previous Closest Friendly Ship  || TARGET_PREV_CLOSEST_FRIENDLY
 +
|-
 +
| Target Ship in Reticle                  || TARGET_SHIP_IN_RETICLE
 +
|-
 +
| Target Targets Nearest Attacker        || TARGET_CLOSEST_SHIP_ATTACKING_TARGET
 +
|-
 +
| Target Last Ship to Send Transmission  || TARGET_LAST_TRANMISSION_SENDER
 +
|-
 +
| Turn Off Targeting                      || STOP_TARGETING_SHIP
 +
|-
 +
| Target Closest Attacking Ship          || TARGET_CLOSEST_SHIP_ATTACKING_SELF
 +
|-
 +
| Target Next Escort Ship                || TARGET_NEXT_ESCORT_SHIP
 +
|-
 +
| Target Closest Repair Ship              || TARGET_CLOSEST_REPAIR_SHIP
 +
|-
 +
| Target Next Uninspected Cargo          || TARGET_NEXT_UNINSPECTED_CARGO
 +
|-
 +
| Target Previous Uninspected Cargo      || TARGET_PREV_UNINSPECTED_CARGO
 +
|-
 +
| Target Newest Ship in Area              || TARGET_NEWEST_SHIP
 +
|-
 +
| Target Targets Target                  || TARGET_TARGETS_TARGET
 +
|-
 +
| Target Next Hostile Bomb or Bomber      || TARGET_NEXT_BOMB
 +
|-
 +
| Target Previous Hostile Bomb or Bomber  || TARGET_PREV_BOMB
 +
|}
 +
 
 +
 
 +
{| class="wikitable"
 +
|+ style="color:white" | Targeting Subsystems and Turrets
 +
|-
 +
! $Bind Name: !! $Bind:
 +
|-
 +
| Target Subsystem in Reticle      || TARGET_SUBOBJECT_IN_RETICLE
 +
|-
 +
| Target Next Subsystem            || TARGET_NEXT_SUBOBJECT
 +
|-
 +
| Target Previous Subsystem        || TARGET_PREV_SUBOBJECT
 +
|-
 +
| Turn Off Targeting of Subsystems || STOP_TARGETING_SUBSYSTEM
 +
|-
 +
| Target Next Live Turret          || TARGET_NEXT_LIVE_TURRET
 +
|-
 +
| Target Previous Live Turret      || TARGET_PREV_LIVE_TURRET
 +
|}
 +
 
 +
 
 +
{| class="wikitable"
 +
|+ style="color:white" | Weapons
 +
|-
 +
! $Bind Name: !! $Bind:
 +
|-
 +
| Fire Primary Weapon                || FIRE_PRIMARY
 +
|-
 +
| Fire Secondary Weapon              || FIRE_SECONDARY
 +
|-
 +
| Cycle Forward Primary Weapon      || CYCLE_NEXT_PRIMARY
 +
|-
 +
| Cycle Backward Primary Weapon      || CYCLE_PREV_PRIMARY
 +
|-
 +
| Cycle Primary Weapon Firing Rate  || CYCLE_PRIMARY_WEAPON_SEQUENCE
 +
|-
 +
| Cycle Secondary Weapon Bank        || CYCLE_SECONDARY
 +
|-
 +
| Cycle Secondary Weapon Firing Rate || CYCLE_NUM_MISSLES
 +
|-
 +
| Launch Countermeasure              || LAUNCH_COUNTERMEASURE
 +
|}
 +
 
 +
 
 +
{| class="wikitable"
 +
|+ style="color:white" | Flight Controls
 +
|-
 +
! $Bind Name: !! $Bind:
 +
|-
 +
| Forward Thrust    || FORWARD_THRUST
 +
|-
 +
| Reverse Thrust    || REVERSE_THRUST
 +
|-
 +
| Bank Left          || BANK_LEFT
 +
|-
 +
| Bank Right        || BANK_RIGHT
 +
|-
 +
| Pitch Forward      || PITCH_FORWARD
 +
|-
 +
| Pitch Backward    || PITCH_BACK
 +
|-
 +
| Turn Left          || YAW_LEFT
 +
|-
 +
| Turn Right        || YAW_RIGHT
 +
|-
 +
| Right Thrust      || RIGHT_SLIDE_THRUST
 +
|-
 +
| Left Thrust        || LEFT_SLIDE_THRUST
 +
|-
 +
| Up Thrust          || UP_SLIDE_THRUST
 +
|-
 +
| Down Thrust        || DOWN_SLIDE_THRUST
 +
|-
 +
| Afterburner        || AFTERBURNER
 +
|-
 +
| Glide When Pressed || GLIDE_WHEN_PRESSED
 +
|-
 +
| Bank When Pressed  || BANK_WHEN_PRESSED
 +
|-
 +
| Match Target Speed || MATCH_TARGET_SPEED
 +
|}
 +
 
 +
 
 +
{| class="wikitable"
 +
|-
 +
|+ style="color:white" | Throttle Control
 +
|-
 +
! $Bind Name: !! $Bind:
 +
|-
 +
| Set Throttle to Zero        || ZERO_THROTTLE
 +
|-
 +
| Set Throttle to Max        || MAX_THROTTLE
 +
|-
 +
| Set Throttle to One-Third  || ONE_THIRD_THROTTLE
 +
|-
 +
| Set Throttle to Two-Thirds  || TWO_THIRDS_THROTTLE
 +
|-
 +
| Increase Throttle 5 Percent || PLUS_5_PERCENT_THROTTLE
 +
|-
 +
| Decrease Throttle 5 Percent || MINUS_5_PERCENT_THROTTLE
 +
|}
 +
 
 +
 
 +
{| class="wikitable"
 +
|+ style="color:white" | HUD Controls
 +
|-
 +
! $Bind Name: !! $Bind:
 +
|-
 +
| Toggle High HUD Contrast        || TOGGLE_HUD_CONTRAST
 +
|-
 +
| Toggle HUD                      || TOGGLE_HUD
 +
|-
 +
| Toggle HUD Wireframe Target View || HUD_TARGETBOX_TOGGLE_WIREFRAME
 +
|-
 +
| Cycle Radar Range                || RADAR_RANGE_CYCLE
 +
|-
 +
| Communications Menu              || SQUADMSG_MENU
 +
|-
 +
| Show Objectives                  || SHOW_GOALS
 +
|-
 +
| Show Nav Map                    || SHOW_NAVMAP
 +
|-
 +
| Add or Remove Escort            || ADD_REMOVE_ESCORT
 +
|-
 +
| Clear Escort List                || ESCORT_CLEAR
 +
|-
 +
| -                                || TOGGLE_HUD_SHADOWS
 +
|}
 +
 
 +
 
 +
{| class="wikitable"
 +
|+ style="color:white" | Squadmate Messaging
 +
|-
 +
! $Bind Name: !! $Bind:
 +
|-
 +
| Attack My Target    || ATTACK_MESSAGE
 +
|-
 +
| Disarm My Target    || DISARM_MESSAGE
 +
|-
 +
| Disable My Target  || DISABLE_MESSAGE
 +
|-
 +
| Attack My Subsystem || ATTACK_SUBSYSTEM_MESSAGE
 +
|-
 +
| Capture My Target  || CAPTURE_MESSAGE
 +
|-
 +
| Engage Enemy        || ENGAGE_MESSAGE
 +
|-
 +
| Form on My Wing    || FORM_MESSAGE
 +
|-
 +
| Ignore My Target    || IGNORE_MESSAGE
 +
|-
 +
| Protect My Target  || PROTECT_MESSAGE
 +
|-
 +
| Cover Me            || COVER_MESSAGE
 +
|-
 +
| Return to Base      || WARP_MESSAGE
 +
|-
 +
| Rearm Me            || REARM_MESSAGE
 +
|}
 +
 
 +
 
 +
{| class="wikitable"
 +
|+ style="color:white" | Views
 +
|-
 +
! $Bind Name: !! $Bind:
 +
|-
 +
| Chase View                  || VIEW_CHASE
 +
|-
 +
| External View              || VIEW_EXTERNAL
 +
|-
 +
| Toggle External Camera Lock || VIEW_EXTERNAL_TOGGLE_CAMERA_LOCK
 +
|-
 +
| Free Look View              || VIEW_SLEW
 +
|-
 +
| Current Target View        || VIEW_OTHER_SHIP
 +
|-
 +
| Increase View Distance      || VIEW_DIST_INCREASE
 +
|-
 +
| Decrease View Distance      || VIEW_DIST_DECREASE
 +
|-
 +
| Center View                || VIEW_CENTER
 +
|-
 +
| View Up                    || PADLOCK_UP
 +
|-
 +
| View Rear                  || PADLOCK_DOWN
 +
|-
 +
| View Left                  || PADLOCK_LEFT
 +
|-
 +
| View Right                  || PADLOCK_RIGHT
 +
|-
 +
| Top-Down View              || VIEW_TOPDOWN
 +
|-
 +
| Target Padlock View        || VIEW_TRACK_TARGET
 +
|}
 +
 
 +
 
 +
{| class="wikitable"
 +
|-
 +
|+ style="color:white" | ETS and Shields
 +
|-
 +
! $Bind Name: !! $Bind:
 +
|-
 +
| Increase Weapon Energy        || INCREASE_WEAPON
 +
|-
 +
| Decrease Weapon Energy        || DECREASE_WEAPON
 +
|-
 +
| Increase Shield Energy        || INCREASE_SHIELD
 +
|-
 +
| Decrease Shield Energy        || DECREASE_SHIELD
 +
|-
 +
|-
 +
| Increase Engine Energy        || INCREASE_ENGINE
 +
|-
 +
| Decrease Engine Energy        || DECREASE_ENGINE
 +
|-
 +
| Equalize Energy Settings      || ETS_EQUALIZE
 +
|-
 +
| Equalize Shields              || SHIELD_EQUALIZE
 +
|-
 +
| Augment Forward Shield        || SHIELD_XFER_TOP
 +
|-
 +
| Augment Rear Shield          || SHIELD_XFER_BOTTOM
 +
|-
 +
| Augment Left Shield          || SHIELD_XFER_LEFT
 +
|-
 +
| Augment Right Shield          || SHIELD_XFER_RIGHT
 +
|-
 +
| Transfer Energy Laser->Shield || XFER_SHIELD
 +
|-
 +
| Transfer Energy Shield->Laser || XFER_LASER
 +
|}
 +
 
 +
 
 +
{| class="wikitable"
 +
|+ style="color:white" | Misc
 +
|-
 +
! $Bind Name: !! $Bind:
 +
|-
 +
| Enter Subspace (End Mission) || END_MISSION
 +
|-
 +
| Increase Time Compression    || TIME_SPEED_UP
 +
|-
 +
| Decrease Time Compression    || TIME_SLOW_DOWN
 +
|-
 +
| Toggle Auto Pilot            || AUTO_PILOT_TOGGLE
 +
|-
 +
| Cycle Nav Points            || NAV_CYCLE
 +
|-
 +
| Toggle Gliding              || TOGGLE_GLIDING
 +
|-
 +
| Toggle Auto Speed Matching  || TOGGLE_AUTO_MATCH_TARGET_SPEED
 +
|}
 +
 
 +
 
 +
{| class="wikitable"
 +
|+ style="color:white" | Multiplayer Only
 +
|-
 +
! $Bind Name: !! $Bind:
 +
|-
 +
| (Multiplayer) Message All            || MULTI_MESSAGE_ALL
 +
|-
 +
| (Multiplayer) Message Friendly        || MULTI_MESSAGE_FRIENDLY
 +
|-
 +
| (Multiplayer) Message Hostile        || MULTI_MESSAGE_HOSTILE
 +
|-
 +
| (Multiplayer) Message Target          || MULTI_MESSAGE_TARGET
 +
|-
 +
| (Multiplayer) Observer Zoom To Target || MULTI_OBSERVER_ZOOM_TO
 +
|-
 +
| (Multiplayer) Toggle Network info    || MULTI_TOGGLE_NETINFO
 +
|-
 +
| (Multiplayer) Self Destruct          || MULTI_SELF_DESTRUCT
 +
|}
 +
 
  
===Targeting Ships and Objects===
+
{| class="wikitable"
*'Target Next Ship'
+
|+ style="color:white" | Custom Controls
*'Target Previous Ship'
+
|-
*'Target Next Closest Hostile Ship'
+
! $Bind Name: !! $Bind:
*'Target Previous Closest Hostile Ship'
+
|-
*'Target Next Closest Friendly Ship'
+
|  Custom Control 1 || CUSTOM_CONTROL_1
*'Target Previous Closest Friendly Ship'
+
|-
*'Target Ship in Reticle'
+
|  Custom Control 2 || CUSTOM_CONTROL_2
*'Target Target's Nearest Attacker'
+
|-
*'Target Last Ship to Send Transmission'
+
|  Custom Control 3 || CUSTOM_CONTROL_3
*'Turn Off Targeting'
+
|-
*'Target Closest Attacking Ship'
+
|  Custom Control 4 || CUSTOM_CONTROL_4
*'Target Next Escort Ship'
+
|-
*'Target Closest Repair Ship'
+
|  Custom Control 5 || CUSTOM_CONTROL_5
*'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'
 
  
===Weapons===
+
{| class="wikitable"
*'Fire Primary Weapon'
+
|+ style="color:white" | Analog Controls
*'Fire Secondary Weapon'
+
|-
*'Cycle Forward Primary Weapon'
+
! $Bind Name: !! $Bind:
*'Cycle Backward Primary Weapon'
+
|-
*'Cycle Secondary Weapon Bank'
+
| - || JOY_HEADING_AXIS
*'Cycle Secondary Weapon Firing Rate'
+
|-
*'Launch Countermeasure'
+
| - || JOY_PITCH_AXIS
 +
|-
 +
| - || JOY_BANK_AXIS
 +
|-
 +
| - || JOY_ABS_THROTTLE_AXIS
 +
|-
 +
| - || JOY_REL_THROTTLE_AXIS
 +
|}
  
===Controls===
 
*'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===
+
===Custom Controls===
*'Toggle High HUD Contrast'
+
{{Table382|
*'Toggle HUD'
+
* 'Custom Control 1'
*'Toggle HUD Wireframe Target View'
+
* 'Custom Control 2'
*'Cycle Radar Range'
+
* 'Custom Control 3'
*'Communications Menu'
+
* 'Custom Control 4'
*'Show Nav Map
+
* 'Custom Control 5'
*'Add or Remove Escort'
 
*'Clear Escort List'
 
  
===Squadmate Messaging===
+
These are empty controls for modders and/or scripters to use.
*'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'
 
  
===Views===
+
Disabled by default
*'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===
+
Default XSTR index is 0 (thus, they do not have an entry in [[strings.tbl]])
*'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'
 
  
===Misc===
+
The default key bindings are Shift-Alt (1-5) for Custom Control 1-5, respectively.
*'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===
+
To use these, create a new entry in a [[#ControlConfigOverride]] block and with the respective name. You should specify a label in [[strings.tbl]], otherwise they'll show up as "Custom Control" in the control config menu.
*'(Multiplayer) Message All'
+
 
*'(Multiplayer) Message Friendly'
+
Example:
*'(Multiplayer) Message Hostile'
+
* $Bind Name: Custom Control 1
*'(Multiplayer) Message Target'
+
* $Has XStr: 1570
*'(Multiplayer) Observer Zoom To Target'
+
* $Disable: false
*'(Multiplayer) Toggle Network info'
+
}}
*'(Multiplayer) Self Destruct'
 
  
 
==Allowed Keys==
 
==Allowed Keys==
Line 370: Line 807:
  
 
[[Category:Tables]]
 
[[Category:Tables]]
 +
 +
==Debug Commands==
 +
===save_ccd===
 +
If running a Debug Build, the '''save_ccd''' command may be used on the debug console to save the current Control Configuration Defaults (in the default preset) to a .tbl.  This should allow developers to quickly modify the default preset without needing to transcribe everything by hand, or try to use a controlconfigdefaults.tbl from somewhere else.

Latest revision as of 02:44, 27 December 2022

Revision information.....

FSO Git Commit: Date: 2021-02-13 UTC SHA: db2bd97669c949e7d68baa9560192b7d3ad96563
Note: Please update the revision information when the page is updated. If your edit had nothing to do with new code entries then please do not edit the revision information


List of Tables and related code files
* Notes Modular Tables
** Notes tables which only use modular tables
Ai.tbl* /ai/aicode.cpp
Ai_profiles.tbl* /ai/ai_profiles.cpp
Animation.tbl** /model/modelanimation.cpp
Armor.tbl* /ship/ship.cpp
Asteroid.tbl* /asteroid/asteroid.cpp
Autopilot.tbl* /autopilot/autopilot.cpp
Cheats.tbl* /cheats_table/cheats_table.cpp
Colors.tbl* /globalincs/alphacolors.cpp
Curves.tbl* /math/curves.cpp
Controlconfigdefaults.tbl /controlconfig/controlsconfigcommon.cpp
Credits.tbl* /menuui/credits.cpp
Cutscenes.tbl* /cutscene/cutscenes.cpp
Decals.tbl** /decals/decals.cpp
Fireball.tbl* /fireball/fireballs.cpp
Fonts.tbl* /graphics/font.cpp
Game_settings.tbl* /mod_table/mod_table.cpp
Glowpoints.tbl* /model/modelread.cpp
Help.tbl* /gamehelp/contexthelp.cpp
Hud_gauges.tbl* /hud/hudparse.cpp
Icons.tbl* /mission/missionbriefcommon.cpp
Iff_defs.tbl* /iff_defs/iff_defs.cpp
Keywords.tbl* Not In Codebase
Lighting_Profiles.tbl* /lighting/lighting_profiles.cpp
Lightning.tbl* /nebula/neblightning.cpp
Mainhall.tbl* /menuui/mainhallmenu.cpp
Medals.tbl* /stats/medals.cpp
Messages.tbl* /mission/missionmessage.cpp
Mflash.tbl* /weapon/muzzleflash.cpp
Music.tbl* /gamesnd/eventmusic.cpp
Nebula.tbl* /nebula/neb.cpp
Objecttypes.tbl* /ship/ship.cpp
Options.tbl* Not In Codebase
Particle effects(-part.tbm)** /particle/effects...
Post_processing.tbl /graphics/gropenglpostprocessing.cpp
Rank.tbl* /stats/scoring.cpp
Scpui.tbl* Not In Codebase
Scripting.tbl* /parse/scripting.cpp
Ships.tbl* /ship/ship.cpp
Sexps.tbl** /parse/sexp/sexp_lookup.cpp
Sounds.tbl* /gamesnd/gamesnd.cpp
Species_defs.tbl* /species_defs/species_defs.cpp
Species.tbl* /menuui/techmenu.cpp
Ssm.tbl* /hud/hudartillery.cpp
Stars.tbl* /starfield/starfield.cpp
Strings.tbl* /localization/localize.cpp
Tips.tbl* /menuui/playermenu.cpp
Traitor.tbl* /stats/scoring.cpp
Tstrings.tbl* /localization/localize.cpp
Virtual_pofs.tbl* /model/modelreplace.cpp
Weapon_expl.tbl* /weapon/weapons.cpp
Weapons.tbl* /weapon/weapons.cpp

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

#ControlConfigOverride

  • Starts an Override section
  • Begins with #ControlConfigOverride and ends with #End.
  • Only entries that you want to change are required, the rest will use the default binding
  • Entries not listed will be assigned to their default/hardcoded values.
FS2 Open, 3.7.2:
  • Multiple #ControlConfigOverride...#End blocks can be provided.
    • Each block defines a separate control config preset
    • The "Defaults" button in the control config screen may be used to reset to the selected preset, then cycle through to the next preset.
    • The first given block is used as the "global" defaults, and is used when working with the key-pressed SEXP and LUA scripts.
    • Note: It's a good idea to also use Strings.tbl to change the "Defaults" text on the button to for example "Cycle\nPresets".

#ControlConfigPreset

FS2 Open, 21.2:
  • Starts a Preset section
  • Begins with #ControlConfigPreset and ends with #End.
  • All keybinds you wish to have bound must be specified, any unspecified keys will be unbound.

$Name:

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.
  • If not provided, the first #ControlConfigOverride block will override the hardcoded defaults, all subsequent blocks will be <unnamed preset>.
FS2 Open, 21.2:
    • Syntax: String

$Bind Name:

  • Name of the bind or action to modify the default key of.
  • Valid entries: Table of Bindings
  • Required
  • Syntax: String
FS2 Open, 22.0:

As of FSO 22.0, $Bind Name:, $Key Default:, $Joy Default:, $Key Mod Shift:, $Key Mod Alt:, and $Key Mod Ctrl: are deprecated in favor of Bind: and its respective suboptions.

$Key Default:

FS2 Open, 3.7.2:
  • May be unbound by specifying NONE instead of a key
  • Optional
  • Syntax: String
  • FS2 Open, 22.0:

    As of FSO 22.0, $Bind Name:, $Key Default:, $Joy Default:, $Key Mod Shift:, $Key Mod Alt:, and $Key Mod Ctrl: are deprecated in favor of Bind: and its respective suboptions.

    $Joy Default:

    • Joystick button to set as default
    • Optional
    • Syntax: Integer
    FS2 Open, 22.0:

    As of FSO 22.0, $Bind Name:, $Key Default:, $Joy Default:, $Key Mod Shift:, $Key Mod Alt:, and $Key Mod Ctrl: are deprecated in favor of Bind: and its respective suboptions.

    $Key Mod Shift:

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

    As of FSO 22.0, $Bind Name:, $Key Default:, $Joy Default:, $Key Mod Shift:, $Key Mod Alt:, and $Key Mod Ctrl: are deprecated in favor of Bind: and its respective suboptions.

    $Key Mod Alt:

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

    As of FSO 22.0, $Bind Name:, $Key Default:, $Joy Default:, $Key Mod Shift:, $Key Mod Alt:, and $Key Mod Ctrl: are deprecated in favor of Bind: and its respective suboptions.

    $Key Mod Ctrl:

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

    As of FSO 22.0, $Bind Name:, $Key Default:, $Joy Default:, $Key Mod Shift:, $Key Mod Alt:, and $Key Mod Ctrl: are deprecated in favor of Bind: and its respective suboptions.

    $Bind:

    FS2 Open, 22.0:
    • The IoActionID of the action to bind to.
    • Valid entries: Table of Bindings
    • Required
    • Syntax: String

    $Primary:

    FS2 Open, 22.0:
    • Denotes the following binding is a Primary binding of the control
    • Optional
    • Syntax: (No arguments)
    $Controller:
    FS2 Open, 22.0:
    • Denotes which controller this binding is for
    • Required
    • Syntax: String, any of the following:
      • CID_NONE
      • CID_KEYBOARD
      • CID_MOUSE
      • CID_JOY0
      • CID_JOY1
      • CID_JOY2
      • CID_JOY3
    $Flags:
    FS2 Open, 22.0:
    • Denotes a number of flags for button behavior
    • Required
    • Syntax: String, any of the following:
    AXIS_BTN An axis that's treated as a digital control should it be deflected past a certain threshold (Note: WIP)
    RELATIVE A relative axis which increases or decreases the control's value instead of directly setting its value. (Example: Relative Throttle)
    INVERTED An axis who's input is inverted
    AXIS Input is an axis
    HAT Input is a POV HAT switch
    BALL Input is a trackball
    NONE Input is assumed to be a standard button or key
    $Input:
    FS2 Open, 22.0:
    • Which button, key, or axis is bound
    • Required
    • Syntax: string, any of the following:

    Joystick axes:

    • X_AXIS
    • Y_AXIS
    • Z_AXIS
    • RX_AXIS
    • RY_AXIS
    • RZ_AXIS

    Joystick Buttons:

    • Buttons are simply the button number, such as "1" for button 1.

    Mouse Buttons:

    • LEFT_BUTTON
    • RIGHT_BUTTON
    • MIDDLE_BUTTON
    • X1_BUTTON
    • X2_BUTTON
    • WHEEL_UP
    • WHEEL_DOWN
    • WHEEL_LEFT
    • WHEEL_RIGHT

    Keyboard Keys: Allowed Keys

    • Key modifiers ALT- and SHIFT- can be prepended to the Key ID.
      • Example: ALT-J, SHIFT-KEY_Q, ALT-SHIFT-KEY_1

    $Secondary:

    FS2 Open, 22.0:
    • Denotes the following binding is a Secondary binding of the control
    • Has the same suboptions as $Primary
    • Optional
    • Syntax: (No Arguments)


    $Category:

    • Tab where the binding appears in the options menu.
    • Valid entries: TARGET_TAB, SHIP_TAB, WEAPON_TAB, COMPUTER_TAB
    • Optional
    • Only valid in #ControlConfigOverride blocks
    • Syntax: String

    $Text:

    FS2 Open, 21.2:
    • The label of the control to use in the controls config menu.
    • Is overridden by XSTR, if provided
      • Note: This is meant to be a lazy temporary substitution to modifying strings.tbl. Your released mod should nstill provide its own strings.tbl.
    • Optional
    • Syntax: String

    $Has XStr:

    • Whether or not the binding has an entry in strings.tbl
      • If 0, assumes no XSTR is provided
      • If 1, assumes an XSTR is provided alongside the other ControlConfig strings according to its internal, hardcoded index
    FS2 Open, 19.0:
      • If any nonzero integer >1, is the exact XSTR index within strings.tbl

    $Type:

    • Determines the type of control this is.
    • Valid entries:
      • CC_TYPE_TRIGGER
        • 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.
      • CC_TYPE_CONTINUOUS
        • Control that activates when the key/button is held down, and stays activated until the key/button is released. Ex: Afterburner key.
    • Optional
    • Only valid in #ControlConfigOverride blocks
    • Syntax String

    $Disable:

    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

    +Disable

    FS2 Open, 21.2:

    #End

    Sample

    Post-22.0

    FS2 Open, 22.0:

    This example is for Post-22.0 and does the following...

    • Sets Clear Escort List to Alt-Shift-Q
    • Sets Target Target's Attacker to Alt-Shift-J and Button 2 on Joystick 0, 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

    Note that for compatibility, FSO builds 22.0 and later can still read Pre-22.0 format.

    Note: the indents are optional, and are provided to improve readibility.

    #ControlConfigOverride
    
    $Bind: ESCORT_CLEAR
      $Primary:
        $Controller: CID_KEYBOARD
        $Flags: NONE
        $Input: ALT-SHIFT-KEY_Q
    
    $Bind: TARGET_CLOSEST_SHIP_ATTACKING_TARGET
      $Primary:
        $Controller: CID_KEYBOARD
        $Flags: NONE
        $Input: ALT-SHIFT-KEY_J
      $Secondary:
        $Controller: CID_JOY0
        $Flags: NONE
        $Input: 2
      $Category: SHIP_TAB
      $Has XStr: 0
      $TYPE:     CC_TYPE_TRIGGER
    
    $Bind: XFER_LASER
      $Primary:
        $Controller: CID_KEYBOARD
        $FLAGS: NONE
        $Inpute: KEY_R
    
    #End
    

    Pre-22.0

    This example is for Pre-22.0 and 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
    #ControlConfigOverride
    
    $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
    $TYPE:			CC_TYPE_TRIGGER
    
    $Bind Name:		Transfer Energy Shield->Laser
    $Key Default:		KEY_R
    
    #End
    

    Table of Bindings

    • This is a table of all possible bindings that can be modified, grouped into smaller tables for easier reference.
    • $Bind Name: column is to be used with $Bind Name: entries, and $Bind: column is to be used with $Bind: entries.
    • These bindings are case-sensitive
    • Controls added after 22.0 might not have a $Bind Name:. Use the $Bind: identifier instead.
    Targeting
    $Bind Name: $Bind:
    Target Next Ship TARGET_NEXT
    Target Previous Ship TARGET_PREV
    Target Next Closest Hostile Ship TARGET_NEXT_CLOSEST_HOSTILE
    Target Previous Closest Hostile Ship TARGET_PREV_CLOSEST_HOSTILE
    Toggle Auto Targeting TOGGLE_AUTO_TARGETING
    Target Next Closest Friendly Ship TARGET_NEXT_CLOSEST_FRIENDLY
    Target Previous Closest Friendly Ship TARGET_PREV_CLOSEST_FRIENDLY
    Target Ship in Reticle TARGET_SHIP_IN_RETICLE
    Target Targets Nearest Attacker TARGET_CLOSEST_SHIP_ATTACKING_TARGET
    Target Last Ship to Send Transmission TARGET_LAST_TRANMISSION_SENDER
    Turn Off Targeting STOP_TARGETING_SHIP
    Target Closest Attacking Ship TARGET_CLOSEST_SHIP_ATTACKING_SELF
    Target Next Escort Ship TARGET_NEXT_ESCORT_SHIP
    Target Closest Repair Ship TARGET_CLOSEST_REPAIR_SHIP
    Target Next Uninspected Cargo TARGET_NEXT_UNINSPECTED_CARGO
    Target Previous Uninspected Cargo TARGET_PREV_UNINSPECTED_CARGO
    Target Newest Ship in Area TARGET_NEWEST_SHIP
    Target Targets Target TARGET_TARGETS_TARGET
    Target Next Hostile Bomb or Bomber TARGET_NEXT_BOMB
    Target Previous Hostile Bomb or Bomber TARGET_PREV_BOMB


    Targeting Subsystems and Turrets
    $Bind Name: $Bind:
    Target Subsystem in Reticle TARGET_SUBOBJECT_IN_RETICLE
    Target Next Subsystem TARGET_NEXT_SUBOBJECT
    Target Previous Subsystem TARGET_PREV_SUBOBJECT
    Turn Off Targeting of Subsystems STOP_TARGETING_SUBSYSTEM
    Target Next Live Turret TARGET_NEXT_LIVE_TURRET
    Target Previous Live Turret TARGET_PREV_LIVE_TURRET


    Weapons
    $Bind Name: $Bind:
    Fire Primary Weapon FIRE_PRIMARY
    Fire Secondary Weapon FIRE_SECONDARY
    Cycle Forward Primary Weapon CYCLE_NEXT_PRIMARY
    Cycle Backward Primary Weapon CYCLE_PREV_PRIMARY
    Cycle Primary Weapon Firing Rate CYCLE_PRIMARY_WEAPON_SEQUENCE
    Cycle Secondary Weapon Bank CYCLE_SECONDARY
    Cycle Secondary Weapon Firing Rate CYCLE_NUM_MISSLES
    Launch Countermeasure LAUNCH_COUNTERMEASURE


    Flight Controls
    $Bind Name: $Bind:
    Forward Thrust FORWARD_THRUST
    Reverse Thrust REVERSE_THRUST
    Bank Left BANK_LEFT
    Bank Right BANK_RIGHT
    Pitch Forward PITCH_FORWARD
    Pitch Backward PITCH_BACK
    Turn Left YAW_LEFT
    Turn Right YAW_RIGHT
    Right Thrust RIGHT_SLIDE_THRUST
    Left Thrust LEFT_SLIDE_THRUST
    Up Thrust UP_SLIDE_THRUST
    Down Thrust DOWN_SLIDE_THRUST
    Afterburner AFTERBURNER
    Glide When Pressed GLIDE_WHEN_PRESSED
    Bank When Pressed BANK_WHEN_PRESSED
    Match Target Speed MATCH_TARGET_SPEED


    Throttle Control
    $Bind Name: $Bind:
    Set Throttle to Zero ZERO_THROTTLE
    Set Throttle to Max MAX_THROTTLE
    Set Throttle to One-Third ONE_THIRD_THROTTLE
    Set Throttle to Two-Thirds TWO_THIRDS_THROTTLE
    Increase Throttle 5 Percent PLUS_5_PERCENT_THROTTLE
    Decrease Throttle 5 Percent MINUS_5_PERCENT_THROTTLE


    HUD Controls
    $Bind Name: $Bind:
    Toggle High HUD Contrast TOGGLE_HUD_CONTRAST
    Toggle HUD TOGGLE_HUD
    Toggle HUD Wireframe Target View HUD_TARGETBOX_TOGGLE_WIREFRAME
    Cycle Radar Range RADAR_RANGE_CYCLE
    Communications Menu SQUADMSG_MENU
    Show Objectives SHOW_GOALS
    Show Nav Map SHOW_NAVMAP
    Add or Remove Escort ADD_REMOVE_ESCORT
    Clear Escort List ESCORT_CLEAR
    - TOGGLE_HUD_SHADOWS


    Squadmate Messaging
    $Bind Name: $Bind:
    Attack My Target ATTACK_MESSAGE
    Disarm My Target DISARM_MESSAGE
    Disable My Target DISABLE_MESSAGE
    Attack My Subsystem ATTACK_SUBSYSTEM_MESSAGE
    Capture My Target CAPTURE_MESSAGE
    Engage Enemy ENGAGE_MESSAGE
    Form on My Wing FORM_MESSAGE
    Ignore My Target IGNORE_MESSAGE
    Protect My Target PROTECT_MESSAGE
    Cover Me COVER_MESSAGE
    Return to Base WARP_MESSAGE
    Rearm Me REARM_MESSAGE


    Views
    $Bind Name: $Bind:
    Chase View VIEW_CHASE
    External View VIEW_EXTERNAL
    Toggle External Camera Lock VIEW_EXTERNAL_TOGGLE_CAMERA_LOCK
    Free Look View VIEW_SLEW
    Current Target View VIEW_OTHER_SHIP
    Increase View Distance VIEW_DIST_INCREASE
    Decrease View Distance VIEW_DIST_DECREASE
    Center View VIEW_CENTER
    View Up PADLOCK_UP
    View Rear PADLOCK_DOWN
    View Left PADLOCK_LEFT
    View Right PADLOCK_RIGHT
    Top-Down View VIEW_TOPDOWN
    Target Padlock View VIEW_TRACK_TARGET


    ETS and Shields
    $Bind Name: $Bind:
    Increase Weapon Energy INCREASE_WEAPON
    Decrease Weapon Energy DECREASE_WEAPON
    Increase Shield Energy INCREASE_SHIELD
    Decrease Shield Energy DECREASE_SHIELD
    Increase Engine Energy INCREASE_ENGINE
    Decrease Engine Energy DECREASE_ENGINE
    Equalize Energy Settings ETS_EQUALIZE
    Equalize Shields SHIELD_EQUALIZE
    Augment Forward Shield SHIELD_XFER_TOP
    Augment Rear Shield SHIELD_XFER_BOTTOM
    Augment Left Shield SHIELD_XFER_LEFT
    Augment Right Shield SHIELD_XFER_RIGHT
    Transfer Energy Laser->Shield XFER_SHIELD
    Transfer Energy Shield->Laser XFER_LASER


    Misc
    $Bind Name: $Bind:
    Enter Subspace (End Mission) END_MISSION
    Increase Time Compression TIME_SPEED_UP
    Decrease Time Compression TIME_SLOW_DOWN
    Toggle Auto Pilot AUTO_PILOT_TOGGLE
    Cycle Nav Points NAV_CYCLE
    Toggle Gliding TOGGLE_GLIDING
    Toggle Auto Speed Matching TOGGLE_AUTO_MATCH_TARGET_SPEED


    Multiplayer Only
    $Bind Name: $Bind:
    (Multiplayer) Message All MULTI_MESSAGE_ALL
    (Multiplayer) Message Friendly MULTI_MESSAGE_FRIENDLY
    (Multiplayer) Message Hostile MULTI_MESSAGE_HOSTILE
    (Multiplayer) Message Target MULTI_MESSAGE_TARGET
    (Multiplayer) Observer Zoom To Target MULTI_OBSERVER_ZOOM_TO
    (Multiplayer) Toggle Network info MULTI_TOGGLE_NETINFO
    (Multiplayer) Self Destruct MULTI_SELF_DESTRUCT


    Custom Controls
    $Bind Name: $Bind:
    Custom Control 1 CUSTOM_CONTROL_1
    Custom Control 2 CUSTOM_CONTROL_2
    Custom Control 3 CUSTOM_CONTROL_3
    Custom Control 4 CUSTOM_CONTROL_4
    Custom Control 5 CUSTOM_CONTROL_5


    Analog Controls
    $Bind Name: $Bind:
    - JOY_HEADING_AXIS
    - JOY_PITCH_AXIS
    - JOY_BANK_AXIS
    - JOY_ABS_THROTTLE_AXIS
    - JOY_REL_THROTTLE_AXIS


    Custom Controls

    FS2 Open, 19.0:
    • '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.

    Disabled by default

    Default XSTR index is 0 (thus, they do not have an entry in strings.tbl)

    The default key bindings are Shift-Alt (1-5) for Custom Control 1-5, respectively.

    To use these, create a new entry in a #ControlConfigOverride block and with the respective name. You should specify a label in strings.tbl, otherwise they'll show up as "Custom Control" in the control config menu.

    Example:

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

    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
    'KEY_0'
    'KEY_1'
    'KEY_2'
    'KEY_3'
    'KEY_4'
    'KEY_5'
    'KEY_6'
    'KEY_7'
    'KEY_8'
    'KEY_9'
    'KEY_A'
    'KEY_B'
    'KEY_C'
    'KEY_D'
    'KEY_E'
    'KEY_F'
    'KEY_G'
    'KEY_H'
    'KEY_I'
    'KEY_J'
    'KEY_K'
    'KEY_L'
    'KEY_M'
    'KEY_N'
    'KEY_O'
    'KEY_P'
    'KEY_Q'
    'KEY_R'
    'KEY_S'
    'KEY_T'
    'KEY_U'
    'KEY_V'
    'KEY_W'
    'KEY_X'
    'KEY_Y'
    'KEY_Z'
    'KEY_MINUS'
    'KEY_EQUAL'
    'KEY_DIVIDE'
    'KEY_SLASH'
    'KEY_SLASH_UK'
    'KEY_COMMA'
    'KEY_PERIOD'
    'KEY_SEMICOL'
    'KEY_LBRACKET'
    'KEY_RBRACKET'
    'KEY_RAPOSTRO'
    'KEY_LAPOSTRO'
    'KEY_ESC'
    'KEY_ENTER'
    'KEY_BACKSP'
    'KEY_TAB'
    'KEY_SPACEBAR'
    'KEY_NUMLOCK'
    'KEY_SCROLLOCK'
    'KEY_CAPSLOCK'
    'KEY_LSHIFT'
    'KEY_RSHIFT'
    'KEY_LALT'
    'KEY_RALT'
    'KEY_LCTRL'
    'KEY_RCTRL'
    'KEY_F1'
    'KEY_F2'
    'KEY_F3'
    'KEY_F4'
    'KEY_F5'
    'KEY_F6'
    'KEY_F7'
    'KEY_F8'
    'KEY_F9'
    'KEY_F10'
    'KEY_F11'
    'KEY_F12'
    'KEY_PAD0'
    'KEY_PAD1'
    'KEY_PAD2'
    'KEY_PAD3'
    'KEY_PAD4'
    'KEY_PAD5'
    'KEY_PAD6'
    'KEY_PAD7'
    'KEY_PAD8'
    'KEY_PAD9'
    'KEY_PADMINUS'
    'KEY_PADPLUS'
    'KEY_PADPERIOD'
    'KEY_PADDIVIDE'
    'KEY_PADMULTIPLY'
    'KEY_PADENTER'
    'KEY_INSERT'
    'KEY_HOME'
    'KEY_PAGEUP'
    'KEY_DELETE'
    'KEY_END'
    'KEY_PAGEDOWN'
    'KEY_UP'
    'KEY_DOWN'
    'KEY_LEFT'
    'KEY_RIGHT'
    'KEY_PRINT_SCRN'
    'KEY_PAUSE'
    'KEY_BREAK'

    Debug Commands

    save_ccd

    If running a Debug Build, the save_ccd command may be used on the debug console to save the current Control Configuration Defaults (in the default preset) to a .tbl. This should allow developers to quickly modify the default preset without needing to transcribe everything by hand, or try to use a controlconfigdefaults.tbl from somewhere else.