How to Hack Full Xbox Controller Support

edited July 2016 in Community Guides

Controller support is still, as of the time of writing, incomplete.  The following will show you how to map everything you should need to play the game to an Xbox controller via a combination of a third party tool and modifications to a config file.  The end result is a configuration similar to what was proposed here, though without the elements that would require UI changes.  Shown below are only the changes to the configuration. All other buttons remain as-is.

Modified Configuration

  • Ability 3 (L-Shift): Right Shoulder
  • Go/Ready: Start
  • Pause/Options: Guide (Xbox button)
  • Next Loadout Item: D-Pad Right
  • Previous Loadout Item: D-Pad Left
  • Loadout 1 (jump to weapon): D-Pad Up
  • Loadout 4 (jump to first trap): D-Pad Down

Alternate Context: Left Shoulder

Holding the Left Shoulder activates a context switch which changes the behavior of the Right Shoulder, A, B, X, Y, and the D-pad to provide mappings for Gear, Consumables, Weaver Upgrades and Unchained.

  • Unchained: Left Shoulder + Right Shoulder
  • Gear 1: Left Shoulder + X
  • Gear 2: Left Shoulder + Y
  • Consumable 1: Left Shoulder + A
  • Consumable 2: Left Shoulder + B
  • Open Weaver Upgrade Pane: Left Shoulder + D-Pad Down
  • Weaver Upgrade 1: Left Shoulder + D-Pad Left
  • Weaver Upgrade 2: Left Shoulder + D-Pad Up
  • Weaver Upgrade 3: Left Shoulder + D-Pad Right

 

Required Key Maps

First, you’ll need a third party tool to map two keys.  I use antimicro, because it’s free, but any tool should work.  Map the following keys:

  • Left Shoulder: Alt
  • Guide (Xbox button): Esc

 

Configuration File Changes

Find the DefaultInput.ini file in <game directory>\SpitfireGame\Config and make a backup copy of it.  Edit the DefaultInput.ini file and remove the entire section that begins with:

; Controller definitions


And replace it with this:


; Default controller definitions
.Bindings=(Name="XboxTypeS_Back",Command="ToggleShowTabUI",BindType=KBT_Controller)
.Bindings=(Name="XboxTypeS_Y",Command="Ability2",BindType=KBT_Controller,bIgnoreAlt=True)
.Bindings=(Name="XboxTypeS_X",Command="Ability1",BindType=KBT_Controller,bIgnoreAlt=True)
.Bindings=(Name="XboxTypeS_B",Command="KeyUse",BindType=KBT_Controller,bIgnoreAlt=True)
.Bindings=(Name="XboxTypeS_A",Command="DoJump | ToggleKillStatsUI",BindType=KBT_Controller,bIgnoreAlt=True)
.Bindings=(Name="XboxTypeS_LeftTrigger",Command="AltFire",BindType=KBT_Controller)
.Bindings=(Name="XboxTypeS_RightTrigger",Command="Fire",BindType=KBT_Controller)
.Bindings=(Name="XboxTypeS_LeftX",Command="Axis aStrafe Speed=1.0 DeadZone=0.3",BindType=KBT_Controller)
.Bindings=(Name="XboxTypeS_LeftY",Command="Axis aBaseY Speed=1.0 DeadZone=0.3",BindType=KBT_Controller)
.Bindings=(Name="XboxTypeS_RightX",Command="Axis aTurn Speed=1.0 DeadZone=0.2",BindType=KBT_Controller)
.Bindings=(Name="XboxTypeS_RightY",Command="Axis aLookup Speed=1.0 DeadZone=0.2",BindType=KBT_Controller)
.Bindings=(Name="XboxTypeS_LeftThumbStick",Command="OpenRadialComms",BindType=KBT_Controller)
.Bindings=(Name="XboxTypeS_RightThumbStick",Command="KeyRotateTrap",BindType=KBT_Controller)
; Disable LeftShoulder
.Bindings=(Name="XboxTypeS_LeftShoulder",Command="",BindType=KBT_Controller)
; Ability3 and Go
.Bindings=(Name="XboxTypeS_RightShoulder",Command="Ability3",BindType=KBT_Controller,bIgnoreAlt=True)
.Bindings=(Name="XboxTypeS_Start",Command="DoGo | ToggleShowTraps",BindType=KBT_Controller)
; Loadout navigation
.Bindings=(Name="XboxTypeS_DPad_Up",Command="Weap1",BindType=KBT_Controller,bIgnoreAlt=True)
.Bindings=(Name="XboxTypeS_DPad_Left",Command="PrvWeapon",BindType=KBT_Controller,bIgnoreAlt=True)
.Bindings=(Name="XboxTypeS_DPad_Right",Command="NxtWeapon",BindType=KBT_Controller,bIgnoreAlt=True)
.Bindings=(Name="XboxTypeS_DPad_Down",Command="Weap4",BindType=KBT_Controller,bIgnoreAlt=True)
; Alt - Unchained
.Bindings=(Name="XboxTypeS_RightShoulder",Command="BecomeUnchained",BindType=KBT_Controller,Alt=True)
; Alt - Gear and consumables
.Bindings=(Name="XboxTypeS_Y",Command="Quickcast3",BindType=KBT_Controller,Alt=True)
.Bindings=(Name="XboxTypeS_X",Command="Quickcast2",BindType=KBT_Controller,Alt=True)
.Bindings=(Name="XboxTypeS_B",Command="Consumable1",BindType=KBT_Controller,Alt=True)
.Bindings=(Name="XboxTypeS_A",Command="Consumable2",BindType=KBT_Controller,Alt=True)
; Alt - Weaver upgrades
.Bindings=(Name="XboxTypeS_DPad_Up",Command="WeaverOption2",BindType=KBT_Controller,Alt=True)
.Bindings=(Name="XboxTypeS_DPad_Left",Command="WeaverOption1",BindType=KBT_Controller,Alt=True)
.Bindings=(Name="XboxTypeS_DPad_Right",Command="WeaverOption3",BindType=KBT_Controller,Alt=True)
.Bindings=(Name="XboxTypeS_DPad_Down",Command="OpenWeaverDialog",BindType=KBT_Controller,Alt=True)



That’s it. The comments in the configuration (the stuff after the semicolons) are optional. I just put them in for explanatory purposes.

 

Side Effects

This is largely free of side effects.  However, it will remove the icons denoting which Weaver Upgrade goes with which D-pad button.  You just need to remember top=left, middle=up, bottom=right (it's a semi-circle).


Credits

Thanks to @PhoBOT for pointing to the config file.


Edit: Swapped the Pause and Go buttons, as the new Stars system necessitates more ergonomic access to the Go button.

Post edited by Hypovolemic on
Sign In or Register to comment.