Skip to content

Gamepad

Gamepad, joystick and game controllers can be used in your game. Xbox, Playstation and generic controllers are supported.

This feature can be activated by adding the Gamepad extension to your project. You will then be able to use conditions and expressions to check if a gamepad is connected, if a button is pressed, released or if a stick is pushed.

Tip

Learn how to install new extensions by following a step-by-step guide.

Move a character

Move a top-down character

The "Top-down gamepad mapper" behavior can be added to the character to make the character move according to player inputs automatically. The default configuration will work without any change for single player games.

Tip

Learn more about the Top-Down Movement behavior.

Move a platformer character

The "Platformer gamepad mapper" behavior can be added to the character to make the character move according to player inputs automatically.

Tip

Learn more about the Platform Character behavior.

Open example in GDevelop

Move a character with custom movement

Handle pressed buttons

Detecting pressed buttons can be done with the Gamepad button pressed (or released) condition. Playstation and Xbox controllers have different button names, but checking for A or Cross is the same.

Handle sticks

Gamepads::StickAngle and Gamepads::StickForce expressions can be used to apply a force on an object.

Handle several players on the same device

Detect connected gamepads

Each gamepad connected to the computer or phone is numbered from 1 to 4:

  • If your game is single player, you'll usually always use condition for the Gamepad 1.
  • If your game is multi player, it's a good idea to use the Gamepad connected condition to check which gamepads are connected. You could store in a variable the gamepad number associated to a player. You can also force the first player to use the Gamepad 1, and the other player to use Gamepad 2.

Vibrate a gamepad

Use the action Gamepad vibration to make a gamepad vibrate.

Advanced Gamepad vibration allows to setup vibration magnitudes for low and high frequency rumble motors. Each player can have different rumble values.