Function GetPlayerKeys check which keys a player is pressing.
  • Only the FUNCTION of keys can be detected; not actual keys. For example, it is not possible to detect if a player presses SPACE, but you can detect if they press SPRINT (which can be mapped (assigned/binded) to ANY key (but is space by default)).
  • As of update 0.3.7, the keys "A" and "D" are not recognized when in a vehicle. However, keys "W" and "S" can be detected with the "keys" parameter.

(playerid, &keys, &updown, &leftright)
int playerid The ID of the player to get the keys of.
int keys A set of bits containing the player's key states. This value is what is called a bit mask. Click here for a list of keys.
int updown Up/down state.
int leftright Left/right state.

Return Values:
This function does not return any specific values.
  • The keys are stored in the specified variables.

// The following example shows how you can regularly check the up/down/left/right values using OnPlayerUpdate.
public OnPlayerUpdate(playerid)
    new Keys,ud,lr;
    if(ud == KEY_UP) SendClientMessage(playerid, -1, "UP");
    else if(ud == KEY_DOWN) SendClientMessage(playerid, -1, "DOWN");
    if(lr == KEY_LEFT) SendClientMessage(playerid, -1, "LEFT");
    else if(lr == KEY_RIGHT) SendClientMessage(playerid, -1, "RIGHT");
    return 1;

Related Callbacks
The following callbacks might be useful as well, as they are related to this callback in one way or another.