Difference between revisions of "Controlconfigdefaults.tbl"
(→Sample: Provide example for Post 22.0 ControlConfig overrides) |
m (→Post-22.0) |
||
Line 234: | Line 234: | ||
Note that for compatibility, FSO builds 22.0 and later can still read Pre-22.0 format. | Note that for compatibility, FSO builds 22.0 and later can still read Pre-22.0 format. | ||
+ | }} | ||
<pre> | <pre> |
Revision as of 15:17, 12 October 2022
Revision information.....
- FSO Git Commit: Date: 2021-02-13 UTC SHA: db2bd97669c949e7d68baa9560192b7d3ad96563
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.
Contents
#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.
- 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
- 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:
- 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>.
- If not provided, the #ControlConfigPreset block will be <unnamed preset>
- Syntax: String
$Bind Name:
- Name of the bind or action to modify the default key of.
- Valid entries: Table of Bindings
- Required
- Syntax: String
As of FSO 22.0, $Bind Name: is deprecated in favor of $Bind:
$Key Default:
- Key to set as default
- Valid entries: Allowed Keys
- May be unbound by specifying NONE instead of a key
$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
$Bind:
- The IoActionID of the action to bind to.
- Valid entries: Table of Bindings
- Required
- Syntax: String
$Primary:
- Denotes the following binding is a Primary binding of the control
- Optional
- Syntax: (No arguments)
$Controller:
- 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:
- 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:
- 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:
- 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:
- 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
- If any nonzero integer >1, is the exact XSTR index within strings.tbl
- Optional
- Only valid in #ControlConfigOverride blocks
- Syntax: Integer
$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.
- CC_TYPE_TRIGGER
- Optional
- Only valid in #ControlConfigOverride blocks
- Syntax String
$Disable:
- 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
- Disables the control
- Optional
- Only valid in #ControlConfigOverride blocks
- Syntax: (No arguments)
#End
- All #ControlConfigOverride and #ControlConfigPreset sections must be terminated by #End
Sample
Post-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.
#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.
$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 |
$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 |
$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 |
$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 |
$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 |
$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 |
$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 |
$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 |
$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 |
$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 |
$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 |
$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 |
$Bind Name: | $Bind: |
---|---|
- | JOY_HEADING_AXIS |
- | JOY_PITCH_AXIS |
- | JOY_BANK_AXIS |
- | JOY_ABS_THROTTLE_AXIS |
- | JOY_REL_THROTTLE_AXIS |
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.
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'