Below is a configuration change you can make to play BRINK with the Xbox 360 controller.
Please note: This configuration change is unsupported and should only be applied by advanced PC users.
How can I use an Xbox 360 controller with the PC version of Brink?
Disclaimer: Using an Xbox 360 controller in the PC version of Brink is completely unsupported. Proceed at your own risk.
Enabling Controllers
Controller detection is disabled by default. To enable it, add the following line to Brink’s start-up commands in Steam:
+set g_EnablePCControllerInput 1
Once this is enabled and you’ve got your controller plugged in, you should see in your console.log a report of what controllers Brink has detected (commonly it will be a 360 controller in port 0/1).
Configuring the Buttons
Once you have enabled controllers, you will find that the analog sticks now control the player same as the mouse does. Buttons and triggers will not work yet, though – to fix this, we’ll have to tell the game via a config file which button is supposed to do what.
Create a cfg file (a file named filename.cfg that can be edited in a text editor) and place it in Brink’s base folder, which will be located inside your …\Steam\steamapps folder. The cfg file should have the following…:
g_controllerAimSmoothingCatchup "50"
g_maxYawSpinUp "15.0"
g_maxYawSpinUpTime "1.0"
ui_useConsoleControls "1"
gui_ShowCursor "0"
seta in_joy1_device "232429"
seta in_joy2_device "232566"
seta in_joy3_device "232703"
seta in_joy4_device "232840"
//movement stick
seta in_player_side_power "1"
seta in_player_side_offset "0"
seta in_player_side_invert "0"
seta in_player_side_speed "140"
seta in_player_side_deadZone "0.175"
seta in_player_side_axis "0"
seta in_player_side_joy "1"
seta in_player_forward_power "1"
seta in_player_forward_offset "0"
seta in_player_forward_invert "1"
seta in_player_forward_speed "140"
seta in_player_forward_deadZone "0.175"
seta in_player_forward_axis "1"
seta in_player_forward_joy "1"
//Aiming stick
seta in_player_yaw_power "2"
seta in_player_yaw_offset "0"
seta in_player_yaw_invert "1"
seta in_player_yaw_speed "230"
seta in_player_yaw_deadZone "0.15"
seta in_player_yaw_axis "2"
seta in_player_yaw_joy "1"
seta in_player_pitch_power "2"
seta in_player_pitch_offset "0"
seta in_player_pitch_invert "0"
seta in_player_pitch_speed "100"
seta in_player_pitch_deadZone "0.15"
seta in_player_pitch_axis "3"
seta in_player_pitch_joy "1"
seta in_player_lefttrigger_power "1"
seta in_player_lefttrigger_offset "0"
seta in_player_lefttrigger_invert "0"
seta in_player_lefttrigger_speed "0"
seta in_player_lefttrigger_deadZone "0"
seta in_player_lefttrigger_axis "4"
seta in_player_lefttrigger_joy "1"
unbindall
bind "JOY1_1" "_moveup" // A
bind "JOY1_2" "_movedown" // B
bind "JOY1_3" "_consoleContext1" // X
bind "JOY1_4" "_consoleContext2" // Y
bind "JOY1_5" "_sprint" // Left bumper
bind "JOY1_6" "_useGrenade" // Right bumper
bind "JOY1_7" "_selfInteract" // Left stick press
bind "JOY1_8" "_meleeAttack" // Right stick press
bind "JOY1_9" "_limbomenu" "" "default" // Start: Limbo Menu
bind "JOY1_10" "_limbomenushortcut" // Back
bind "JOY1_LEFT_TRIGGER" "_altattack"
bind "JOY1_RIGHT_TRIGGER" "_attack"
bind "JOY1_DPAD_LEFT" "_activateContext1"
bind "JOY1_DPAD_RIGHT" "_activateContext2"
bind "JOY1_DPAD_UP" "_consoleContext3"
bind "JOY1_DPAD_DOWN" "_activateContext3"
bind "JOY1_DPAD_LEFT" "_peekLeft" "JOY1_LEFT_TRIGGER"
bind "JOY1_DPAD_RIGHT" "_peekRight" "JOY1_LEFT_TRIGGER"
bind "JOY1_DPAD_UP" "_peekPopUp" "JOY1_LEFT_TRIGGER"
bind "JOY1_DPAD_DOWN" "_peekHide" "JOY1_LEFT_TRIGGER"
// Menus
bind "JOY1_1" "_menuClick" "" "menu"
bind "JOY1_1" "_menuAccept" "" "menu"
bind "JOY1_2" "_menuCancel" "" "menu"
bind "JOY1_3" "_menuContext" "" "menu"
bind "JOY1_3" "_menuEvent1" "" "menu"
bind "JOY1_4" "_menuEvent2" "" "menu"
bind "JOY1_9" "_menuEvent6" "" "menu"
bind "JOY1_10" "_limbomenushortcut" "" "menu"
bind "JOY1_RIGHT_TRIGGER" "_menuClick" "" "menu"
bind "JOY1_6" "_menuEvent3" "" "menu" // Left bumper
bind "JOY1_5" "_menuEvent4" "" "menu" // Right bumper
bind "JOY1_DPAD_UP" "_menuNavCategoryUp" "" "menu"
bind "JOY1_DPAD_LEFT" "_menuNavBackward" "" "menu"
bind "JOY1_DPAD_DOWN" "_menuNavCategoryDown" "" "menu"
bind "JOY1_DPAD_RIGHT" "_menuNavForward" "" "menu"
bind "JOY2_1" "_menuClick" "" "menu"
bind "JOY2_1" "_menuAccept" "" "menu"
bind "JOY2_2" "_menuCancel" "" "menu"
bind "JOY2_3" "_menuContext" "" "menu"
bind "JOY2_9" "_menuAccept" "" "menu"
bind "JOY2_10" "_menuCancel" "" "menu"
bind "JOY2_RIGHT_TRIGGER" "_menuClick" "" "menu"
bind "JOY2_DPAD_UP" "_menuNavCategoryUp" "" "menu"
bind "JOY2_DPAD_LEFT" "_menuNavBackward" "" "menu"
bind "JOY2_DPAD_DOWN" "_menuNavCategoryDown" "" "menu"
bind "JOY2_DPAD_RIGHT" "_menuNavForward" "" "menu"
// Limbo/Ingame Menus
bind "JOY1_1" "_menuClick" "" "menu_limbo"
bind "JOY1_1" "_menuAccept" "" "menu_limbo"
bind "JOY1_2" "_menuCancel" "" "menu_limbo"
bind "JOY1_3" "_menuContext" "" "menu_limbo"
bind "JOY1_3" "_menuEvent1" "" "menu_limbo"
bind "JOY1_4" "_menuEvent2" "" "menu_limbo"
bind "JOY1_9" "_limboMenu" "" "menu_limbo"//start button
bind "JOY1_10" "_limbomenushortcut" "" "menu_limbo"
bind "JOY1_RIGHT_TRIGGER" "_menuClick" "" "menu_limbo"
bind "JOY1_6" "_menuEvent3" "" "menu_limbo" // Left bumper
bind "JOY1_5" "_menuEvent4" "" "menu_limbo" // Right bumper
bind "JOY1_DPAD_UP" "_menuNavCategoryUp" "" "menu_limbo"
bind "JOY1_DPAD_LEFT" "_menuNavBackward" "" "menu_limbo"
bind "JOY1_DPAD_DOWN" "_menuNavCategoryDown" "" "menu_limbo"
bind "JOY1_DPAD_RIGHT" "_menuNavForward" "" "menu_limbo"
bind "JOY2_1" "_menuClick" "" "menu_limbo"
bind "JOY2_1" "_menuAccept" "" "menu_limbo"
bind "JOY2_2" "_menuCancel" "" "menu_limbo"
bind "JOY2_3" "_menuContext" "" "menu_limbo"
bind "JOY2_9" "_menuCancel" "" "menu_limbo"
bind "JOY2_10" "_menuCancel" "" "menu_limbo"
bind "JOY2_DPAD_UP" "_menuNavCategoryUp" "" "menu_limbo"
bind "JOY2_DPAD_LEFT" "_menuNavBackward" "" "menu_limbo"
bind "JOY2_DPAD_DOWN" "_menuNavCategoryDown" "" "menu_limbo"
bind "JOY2_DPAD_RIGHT" "_menuNavForward" "" "menu_limbo"
// Bind Menus
bind "JOY1_1" "_menuClick" "" "bindmenu"
bind "JOY1_1" "_menuAccept" "" "bindmenu"
bind "JOY1_2" "_menuCancel" "" "bindmenu"
bind "JOY1_3" "_menuContext" "" "bindmenu"
bind "JOY1_3" "_menuEvent1" "" "bindmenu"
bind "JOY1_4" "_menuEvent2" "" "bindmenu"
bind "JOY1_9" "_limbomenu" "" "bindmenu"
bind "JOY1_10" "_limbomenushortcut" "" "bindmenu"
bind "JOY1_RIGHT_TRIGGER" "_menuClick" "" "bindmenu"
bind "JOY2_1" "_menuClick" "" "bindmenu"
bind "JOY2_1" "_menuAccept" "" "bindmenu"
bind "JOY2_2" "_menuCancel" "" "bindmenu"
bind "JOY2_3" "_menuContext" "" "bindmenu"
bind "JOY2_9" "_menuAccept" "" "bindmenu"
bind "JOY2_10" "_menuCancel" "" "bindmenu"
bind "JOY2_RIGHT_TRIGGER" "_menuClick" "" "bindmenu"
// Radial Menus
bind "JOY1_1" "_menuClick" "" "radialmenu"
bind "JOY1_1" "_menuAccept" "" "radialmenu"
bind "JOY1_2" "_menuCancel" "" "radialmenu"
bind "JOY1_RIGHT_TRIGGER" "_menuClick" "" "radialmenu"
bind "JOY1_2" "_menuContext" "" "radialmenu"
bind "JOY2_1" "_menuClick" "" "radialmenu"
bind "JOY2_RIGHT_TRIGGER" "_menuClick" "" "radialmenu"
bind "JOY2_2" "_menuContext" "" "radialmenu"
This will enable a set of bindings similar to the default configuration in the Xbox 360 version of Brink. It should work correctly with all of the menus, as well. It also sets several cvars that should make the controller “feel” nicer to use – you can play around with those to tweak things if necessary.
If you want to return to your standard mouse and keyboard setup, simply go into the Options menu, select Controls and reset everything to default.
Notes
- Type exec filename.cfg in the console to exec the config that enables controller support (you could also set this in the launch parameters with +set exec filename.cfg
- Brink PC does not have any sort of aim assistance
- The on-screen prompts will not display the appropriate controller buttons