Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jbhannah/75ea7d8ffa3ea94817e1e6a5c24dc09c to your computer and use it in GitHub Desktop.
Save jbhannah/75ea7d8ffa3ea94817e1e6a5c24dc09c to your computer and use it in GitHub Desktop.
FFXIV Steam Controller Layout (Xbox Elite Series 2)

FFXIV Steam Controller Layout (Xbox Elite Series 2)

A custom controller layout for Final Fantasy XIV Online on Steam, optimized for the Xbox Elite Series 2 controller.

Mappings

Controller mappings screenshot

  • Upper right paddle (labeled P1 in Steam controller settings, marked as P1 on physical controller): Right WXHB (double-tap RT)
    • Start press: RT
    • Long press after 60ms + delay 50ms: RT
  • Upper left paddle (P2 Steam/P3 controller): Left WXHB (double-tap LT)
    • Start press: LT
    • Long press after 60ms + delay 50ms: LT
  • Lower right paddle (P3 Steam/P2 controller) (labeled P2 on controller): RT->LT expanded XHB
    • RT
    • After delay 50ms: LT
  • Lower left paddle (P4 Steam/P4 controller: LT->RT expanded XHB
    • LT
    • After delay 50ms: RT

Everything else is set to the default XInput mappings.

Acknowledgements

Thanks to Steam user Silesius for his FFXIV controller layout, for demonstrating how to configure the paddles to double-tap LT/RT.

"controller_mappings" {
"version" "3"
"title" "Final Fantasy XIV Online Steam Controller Layout (Xbox Elite Series 2)"
"description" "A custom controller layout for Final Fantasy XIV Online on Steam, optimized for the Xbox Elite Series 2 controller."
"creator" "76561197998672166"
"controller_type" "controller_xboxelite"
"group"
{
"id" "0"
"mode" "four_buttons"
"inputs"
{
"button_a"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button A"
}
}
}
}
"button_b"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button B"
}
}
}
}
"button_x"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button X"
}
}
}
}
"button_y"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button Y"
}
}
}
}
}
}
"group"
{
"id" "1"
"mode" "dpad"
"inputs"
{
"dpad_north"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button DPad_Up"
}
}
}
}
"dpad_south"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button DPad_Down"
}
}
}
}
"dpad_east"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button DPad_Right"
}
}
}
}
"dpad_west"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button DPad_Left"
}
}
}
}
}
}
"group"
{
"id" "2"
"mode" "joystick_move"
"inputs"
{
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button Joystick_Right"
}
}
}
}
}
}
"group"
{
"id" "3"
"mode" "joystick_move"
"inputs"
{
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button Joystick_Left"
}
}
}
}
}
}
"group"
{
"id" "4"
"mode" "trigger"
"inputs"
{
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button Trigger_Left"
}
}
}
}
}
"settings"
{
"output_trigger" "1"
}
}
"group"
{
"id" "5"
"mode" "trigger"
"inputs"
{
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button Trigger_Right"
}
}
}
}
}
"settings"
{
"output_trigger" "2"
}
}
"group"
{
"id" "6"
"mode" "switches"
"inputs"
{
"button_escape"
{
"activators" {
"Full_Press"
{
"bindings"
{
"binding" "xinput_button Start"
}
}
}
}
"button_menu"
{
"activators" {
"Full_Press"
{
"bindings"
{
"binding" "xinput_button Select"
}
}
}
}
"left_bumper"
{
"activators" {
"Full_Press"
{
"bindings"
{
"binding" "xinput_button Shoulder_Left"
}
}
}
}
"right_bumper"
{
"activators" {
"Full_Press"
{
"bindings"
{
"binding" "xinput_button Shoulder_Right"
}
}
}
}
"button_back_left_upper"
{
"activators"
{
"Start_Press"
{
"bindings"
{
"binding" "xinput_button Trigger_Left, Left WXHB"
}
}
"Long_Press"
{
"bindings"
{
"binding" "xinput_button Trigger_Left"
}
"settings"
{
"long_press_time" "60"
"delay_start" "50"
}
}
}
}
"button_back_left"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button Trigger_Left, Left Extra XHB"
}
}
"Full_Press"
{
"bindings"
{
"binding" "xinput_button Trigger_Right"
}
"settings"
{
"delay_start" "50"
}
}
}
}
"button_back_right_upper"
{
"activators"
{
"Start_Press"
{
"bindings"
{
"binding" "xinput_button Trigger_Right, Right WXHB"
}
}
"Long_Press"
{
"bindings"
{
"binding" "xinput_button Trigger_Right"
}
"settings"
{
"long_press_time" "60"
"delay_start" "50"
}
}
}
}
"button_back_right"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button Trigger_Right, Right Extra XHB"
}
}
"Full_Press"
{
"bindings"
{
"binding" "xinput_button Trigger_Left"
}
"settings"
{
"delay_start" "50"
}
}
}
}
}
}
"preset"
{
"id" "0"
"name" "Default"
"group_source_bindings"
{
"0" "button_diamond active"
"1" "dpad active"
"2" "right_joystick active"
"3" "joystick active"
"4" "left_trigger active"
"5" "right_trigger active"
"6" "switch active"
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment