; Each action maps to a comma-separated list of gamepad buttons - add as many as you like to ; the same action. Recognized tokens (standard GLFW gamepad mapping): gp_a, gp_b, gp_x, gp_y, ; gp_left_bumper, gp_right_bumper, gp_left_trigger, gp_right_trigger (analog triggers, treated ; as pressed past a threshold), gp_back, gp_start, gp_guide, gp_left_thumb, gp_right_thumb, ; gp_dpad_up, gp_dpad_down, gp_dpad_left, gp_dpad_right. The left stick always drives movement ; directly (not rebindable here) - see engine/gamepad.py's AXIS_LEFT_X/AXIS_LEFT_Y. ; ; A few gamepad buttons are fixed in main.py, not configurable here: the dpad/gp_a/gp_b always ; navigate/confirm/cancel every menu (start screen, character creation, controls, pause) the ; same way ArrowUp/Down/Left/Right/Enter/Escape do on a keyboard; gp_start always opens/closes ; the pause menu during play, and gp_back always toggles the character card. Since menus and ; actual play are mutually exclusive, gp_b doing menu-cancel there and activate_selected_ability ; here (see [abilities] below) is the same button serving two contexts, not a real conflict. [actions] leap = gp_a block = gp_left_bumper [hands] activate_right_hand = gp_right_bumper activate_left_hand = gp_x activate_right_hand_2 = gp_right_trigger activate_left_hand_2 = gp_left_trigger [abilities] activate_selected_ability = gp_b select_ability_1 = gp_dpad_up select_ability_2 = gp_dpad_right select_ability_3 = gp_dpad_down select_ability_4 = gp_dpad_left