GamePad Input

This section deals with gamepad input for your game.

GameMaker: Studio has a number of dedicated functions that can be used to detect both analogue and digital controls from multiple connected game pads. These functions work similar to the Device Inputs, in that you can detect up to four different game pads that are connected and deal with the input from each one using the same functions. Note that when a gamepad is plugged in to your device (or it is removed) then an asynchronous System Event is triggered where you can deal with the situation using the appropriate functions.

When working with the gamepad functions, there are a number of built-in constants that should be used for getting/defining buttons and stick axis etc...:

Constant Description
gp_face1 Top button 1 (this maps to the "A" on an Xbox 360 controller and the cross on a PS controller)
gp_face2 Top button 2 (this maps to the "B" on an Xbox 360 controller and the circle on a PS controller)
gp_face3 Top button 3 (this maps to the "X" on an Xbox 360 controller and the square on a PS controller)
gp_face4 Top button 4 (this maps to the "Y" on an Xbox 360 controller and the triangle on a PS controller)
gp_shoulderl Left shoulder button
gp_shoulderlb Left shoulder trigger
gp_shoulderr Right shoulder button
gp_shoulderrb Right shoulder trigger
gp_select The select button (this is a touch-pad press on a PS4 controller)
gp_start The start button (this is the "options" button on a PS4 controller)
gp_stickl The left stick pressed (as a button)
gp_stickr The right stick pressed (as a button)
gp_padu D-pad up
gp_padd D-pad down
gp_padl D-pad left
gp_padr D-pad right
gp_axislh Left stick horizontal axis (analogue)
gp_axislv Left stick vertical axis (analogue)
gp_axisrh Right stick horizontal axis (analogue)
gp_axisrv Right stick vertical axis (analogue)

To better understand exactly what part of the controller each constant represents, you can refer to the following image of a standard gamepad:

Below you can find a list of all the gamepad functions:

  1. gamepad_is_supported
  2. gamepad_get_device_count
  3. gamepad_is_connected
  4. gamepad_get_description
  5. gamepad_get_button_threshold
  6. gamepad_set_button_threshold
  7. gamepad_axis_count
  8. gamepad_axis_value
  9. gamepad_button_check
  10. gamepad_button_check_pressed
  11. gamepad_button_check_released
  12. gamepad_button_count
  13. gamepad_button_value
  14. gamepad_set_vibration
  15. gamepad_set_axis_deadzone
  16. gamepad_set_colour


The following list shows current compatibility across the platforms (note that this will change with future updates):

Back: Mouse, Keyboard and Other Controls
Next: Joystick Input
© Copyright YoYo Games Ltd. 2015 All Rights Reserved