FREE TOOL · IsControlJustPressed
FiveM controls list
All 361 GTA 5 control indices — 0 to 360, no gaps — with the INPUT_ name, the default keyboard key and the default Xbox binding. Press a key in the panel below and we tell you which control indices sit on it, which is usually the question: you know the key, you need the number. Every row copies out as a finished IsControlJustPressed or DisableControlAction call.
Indices, names and both binding columns come straight from the Cfx.re controls reference — nothing on this page is renamed or invented. 331 controls have a keyboard default, 294 have a pad default, 10 have neither. The nine group labels are ours, derived from the INPUT_ names so that 361 rows can be narrowed to the ones you care about; the game does not publish a category for a control.
WHICH CONTROL IS THIS KEY?
Arm the listener, then press a key, a mouse button or the wheel. We look the physical input up in the default QWERTY bindings and show every control index bound to it — one key is very often three or four controls at once.
| Index | Control | Keyboard | Xbox pad | Copy |
|---|---|---|---|---|
| INPUT_NEXT_CAMERACamera | V | BACK | ||
| INPUT_LOOK_LRCamera | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_LOOK_UDCamera | MOUSE DOWN | RIGHT STICK | ||
| INPUT_LOOK_UP_ONLYCamera | unbound | RIGHT STICK | ||
| INPUT_LOOK_DOWN_ONLYCamera | MOUSE DOWN | RIGHT STICK | ||
| INPUT_LOOK_LEFT_ONLYCamera | unbound | RIGHT STICK | ||
| INPUT_LOOK_RIGHT_ONLYCamera | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_CINEMATIC_SLOWMOCamera | unbound | R3 | ||
| INPUT_SCRIPTED_FLY_UDScript | S | LEFT STICK | ||
| INPUT_SCRIPTED_FLY_LRScript | D | LEFT STICK | ||
| INPUT_SCRIPTED_FLY_ZUPScript | PAGEUP | LT | ||
| INPUT_SCRIPTED_FLY_ZDOWNScript | PAGEDOWN | RT | ||
| INPUT_WEAPON_WHEEL_UDCombat | MOUSE DOWN | RIGHT STICK | ||
| INPUT_WEAPON_WHEEL_LRCombat | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_WEAPON_WHEEL_NEXTCombat | SCROLLWHEEL DOWN | DPAD RIGHT | ||
| INPUT_WEAPON_WHEEL_PREVCombat | SCROLLWHEEL UP | DPAD LEFT | ||
| INPUT_SELECT_NEXT_WEAPONCombat | SCROLLWHEEL DOWN | unbound | ||
| INPUT_SELECT_PREV_WEAPONCombat | SCROLLWHEEL UP | unbound | ||
| INPUT_SKIP_CUTSCENEOn foot | ENTER / LEFT MOUSE BUTTON / SPACEBAR | A | ||
| INPUT_CHARACTER_WHEELFrontend | LEFT ALT | DPAD DOWN | ||
| INPUT_MULTIPLAYER_INFOFrontend | Z | DPAD DOWN | ||
| INPUT_SPRINTOn foot | LEFT SHIFT | A | ||
| INPUT_JUMPOn foot | SPACEBAR | X | ||
| INPUT_ENTEROn foot | F | Y | ||
| INPUT_ATTACKCombat | LEFT MOUSE BUTTON | RT | ||
| INPUT_AIMCombat | RIGHT MOUSE BUTTON | LT | ||
| INPUT_LOOK_BEHINDCamera | C | R3 | ||
| INPUT_PHONEPhone | ARROW UP / SCROLLWHEEL BUTTON (PRESS) | DPAD UP | ||
| INPUT_SPECIAL_ABILITYCombat | unbound | L3 | ||
| INPUT_SPECIAL_ABILITY_SECONDARYCombat | B | R3 | ||
| INPUT_MOVE_LROn foot | D | LEFT STICK | ||
| INPUT_MOVE_UDOn foot | S | LEFT STICK | ||
| INPUT_MOVE_UP_ONLYOn foot | W | LEFT STICK | ||
| INPUT_MOVE_DOWN_ONLYOn foot | S | LEFT STICK | ||
| INPUT_MOVE_LEFT_ONLYOn foot | A | LEFT STICK | ||
| INPUT_MOVE_RIGHT_ONLYOn foot | D | LEFT STICK | ||
| INPUT_DUCKOn foot | LEFT CTRL | L3 | ||
| INPUT_SELECT_WEAPONCombat | TAB | LB | ||
| INPUT_PICKUPOn foot | E | LB | ||
| INPUT_SNIPER_ZOOMCombat | [ | LEFT STICK | ||
| INPUT_SNIPER_ZOOM_IN_ONLYCombat | ] | LEFT STICK | ||
| INPUT_SNIPER_ZOOM_OUT_ONLYCombat | [ | LEFT STICK | ||
| INPUT_SNIPER_ZOOM_IN_SECONDARYCombat | ] | DPAD UP | ||
| INPUT_SNIPER_ZOOM_OUT_SECONDARYCombat | [ | DPAD DOWN | ||
| INPUT_COVEROn foot | Q | RB | ||
| INPUT_RELOADCombat | R | B | ||
| INPUT_TALKOn foot | E | DPAD RIGHT | ||
| INPUT_DETONATECombat | G | DPAD LEFT | ||
| INPUT_HUD_SPECIALFrontend | Z | DPAD DOWN | ||
| INPUT_ARRESTCombat | F | Y | ||
| INPUT_ACCURATE_AIMCombat | SCROLLWHEEL DOWN | R3 | ||
| INPUT_CONTEXTOn foot | E | DPAD RIGHT | ||
| INPUT_CONTEXT_SECONDARYOn foot | Q | DPAD LEFT | ||
| INPUT_WEAPON_SPECIALCombat | unbound | Y | ||
| INPUT_WEAPON_SPECIAL_TWOCombat | E | DPAD RIGHT | ||
| INPUT_DIVEOn foot | SPACEBAR | RB | ||
| INPUT_DROP_WEAPONOn foot | F9 | Y | ||
| INPUT_DROP_AMMOOn foot | F10 | B | ||
| INPUT_THROW_GRENADECombat | G | DPAD LEFT | ||
| INPUT_VEH_MOVE_LRVehicle | D | LEFT STICK | ||
| INPUT_VEH_MOVE_UDVehicle | LEFT CTRL | LEFT STICK | ||
| INPUT_VEH_MOVE_UP_ONLYVehicle | LEFT SHIFT | LEFT STICK | ||
| INPUT_VEH_MOVE_DOWN_ONLYVehicle | LEFT CTRL | LEFT STICK | ||
| INPUT_VEH_MOVE_LEFT_ONLYVehicle | A | LEFT STICK | ||
| INPUT_VEH_MOVE_RIGHT_ONLYVehicle | D | LEFT STICK | ||
| INPUT_VEH_SPECIALVehicle | unbound | unbound | ||
| INPUT_VEH_GUN_LRVehicle | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_VEH_GUN_UDVehicle | MOUSE DOWN | RIGHT STICK | ||
| INPUT_VEH_AIMVehicle | RIGHT MOUSE BUTTON | LB | ||
| INPUT_VEH_ATTACKVehicle | LEFT MOUSE BUTTON | RB | ||
| INPUT_VEH_ATTACK2Vehicle | RIGHT MOUSE BUTTON | A | ||
| INPUT_VEH_ACCELERATEVehicle | W | RT | ||
| INPUT_VEH_BRAKEVehicle | S | LT | ||
| INPUT_VEH_DUCKVehicle | X | A | ||
| INPUT_VEH_HEADLIGHTVehicle | H | DPAD RIGHT | ||
| INPUT_VEH_EXITVehicle | F | Y | ||
| INPUT_VEH_HANDBRAKEVehicle | SPACEBAR | RB | ||
| INPUT_VEH_HOTWIRE_LEFTVehicle | W | LT | ||
| INPUT_VEH_HOTWIRE_RIGHTVehicle | S | RT | ||
| INPUT_VEH_LOOK_BEHINDVehicle | C | R3 | ||
| INPUT_VEH_CIN_CAMVehicle | R | B | ||
| INPUT_VEH_NEXT_RADIOVehicle | . | unbound | ||
| INPUT_VEH_PREV_RADIOVehicle | , | unbound | ||
| INPUT_VEH_NEXT_RADIO_TRACKVehicle | = | unbound | ||
| INPUT_VEH_PREV_RADIO_TRACKVehicle | - | unbound | ||
| INPUT_VEH_RADIO_WHEELVehicle | Q | DPAD LEFT | ||
| INPUT_VEH_HORNVehicle | E | L3 | ||
| INPUT_VEH_FLY_THROTTLE_UPVehicle | W | RT | ||
| INPUT_VEH_FLY_THROTTLE_DOWNVehicle | S | LT | ||
| INPUT_VEH_FLY_YAW_LEFTVehicle | A | LB | ||
| INPUT_VEH_FLY_YAW_RIGHTVehicle | D | RB | ||
| INPUT_VEH_PASSENGER_AIMVehicle | RIGHT MOUSE BUTTON | LT | ||
| INPUT_VEH_PASSENGER_ATTACKVehicle | LEFT MOUSE BUTTON | RT | ||
| INPUT_VEH_SPECIAL_ABILITY_FRANKLINVehicle | unbound | R3 | ||
| INPUT_VEH_STUNT_UDVehicle | unbound | unbound | ||
| INPUT_VEH_CINEMATIC_UDVehicle | MOUSE DOWN | RIGHT STICK | ||
| INPUT_VEH_CINEMATIC_UP_ONLYVehicle | NUMPAD- / SCROLLWHEEL UP | unbound | ||
| INPUT_VEH_CINEMATIC_DOWN_ONLYVehicle | NUMPAD+ / SCROLLWHEEL DOWN | unbound | ||
| INPUT_VEH_CINEMATIC_LRVehicle | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_VEH_SELECT_NEXT_WEAPONVehicle | SCROLLWHEEL UP | X | ||
| INPUT_VEH_SELECT_PREV_WEAPONVehicle | [ | unbound | ||
| INPUT_VEH_ROOFVehicle | H | DPAD RIGHT | ||
| INPUT_VEH_JUMPVehicle | SPACEBAR | RB | ||
| INPUT_VEH_GRAPPLING_HOOKVehicle | E | DPAD RIGHT | ||
| INPUT_VEH_SHUFFLEVehicle | H | DPAD RIGHT | ||
| INPUT_VEH_DROP_PROJECTILEVehicle | X | A | ||
| INPUT_VEH_MOUSE_CONTROL_OVERRIDEVehicle | LEFT MOUSE BUTTON | unbound | ||
| INPUT_VEH_FLY_ROLL_LRVehicle | NUMPAD 6 | LEFT STICK | ||
| INPUT_VEH_FLY_ROLL_LEFT_ONLYVehicle | NUMPAD 4 | LEFT STICK | ||
| INPUT_VEH_FLY_ROLL_RIGHT_ONLYVehicle | NUMPAD 6 | LEFT STICK | ||
| INPUT_VEH_FLY_PITCH_UDVehicle | NUMPAD 5 | LEFT STICK | ||
| INPUT_VEH_FLY_PITCH_UP_ONLYVehicle | NUMPAD 8 | LEFT STICK | ||
| INPUT_VEH_FLY_PITCH_DOWN_ONLYVehicle | NUMPAD 5 | LEFT STICK | ||
| INPUT_VEH_FLY_UNDERCARRIAGEVehicle | G | L3 | ||
| INPUT_VEH_FLY_ATTACKVehicle | RIGHT MOUSE BUTTON | A | ||
| INPUT_VEH_FLY_SELECT_NEXT_WEAPONVehicle | SCROLLWHEEL UP | DPAD LEFT | ||
| INPUT_VEH_FLY_SELECT_PREV_WEAPONVehicle | [ | unbound | ||
| INPUT_VEH_FLY_SELECT_TARGET_LEFTVehicle | NUMPAD 7 | LB | ||
| INPUT_VEH_FLY_SELECT_TARGET_RIGHTVehicle | NUMPAD 9 | RB | ||
| INPUT_VEH_FLY_VERTICAL_FLIGHT_MODEVehicle | E | DPAD RIGHT | ||
| INPUT_VEH_FLY_DUCKVehicle | X | A | ||
| INPUT_VEH_FLY_ATTACK_CAMERAVehicle | INSERT | R3 | ||
| INPUT_VEH_FLY_MOUSE_CONTROL_OVERRIDEVehicle | LEFT MOUSE BUTTON | unbound | ||
| INPUT_VEH_SUB_TURN_LRVehicle | NUMPAD 6 | LEFT STICK | ||
| INPUT_VEH_SUB_TURN_LEFT_ONLYVehicle | NUMPAD 4 | LEFT STICK | ||
| INPUT_VEH_SUB_TURN_RIGHT_ONLYVehicle | NUMPAD 6 | LEFT STICK | ||
| INPUT_VEH_SUB_PITCH_UDVehicle | NUMPAD 5 | LEFT STICK | ||
| INPUT_VEH_SUB_PITCH_UP_ONLYVehicle | NUMPAD 8 | LEFT STICK | ||
| INPUT_VEH_SUB_PITCH_DOWN_ONLYVehicle | NUMPAD 5 | LEFT STICK | ||
| INPUT_VEH_SUB_THROTTLE_UPVehicle | W | RT | ||
| INPUT_VEH_SUB_THROTTLE_DOWNVehicle | S | LT | ||
| INPUT_VEH_SUB_ASCENDVehicle | LEFT SHIFT | X | ||
| INPUT_VEH_SUB_DESCENDVehicle | LEFT CTRL | A | ||
| INPUT_VEH_SUB_TURN_HARD_LEFTVehicle | A | LB | ||
| INPUT_VEH_SUB_TURN_HARD_RIGHTVehicle | D | RB | ||
| INPUT_VEH_SUB_MOUSE_CONTROL_OVERRIDEVehicle | LEFT MOUSE BUTTON | unbound | ||
| INPUT_VEH_PUSHBIKE_PEDALVehicle | W | A | ||
| INPUT_VEH_PUSHBIKE_SPRINTVehicle | CAPSLOCK | A | ||
| INPUT_VEH_PUSHBIKE_FRONT_BRAKEVehicle | Q | LT | ||
| INPUT_VEH_PUSHBIKE_REAR_BRAKEVehicle | S | RT | ||
| INPUT_MELEE_ATTACK_LIGHTCombat | R | B | ||
| INPUT_MELEE_ATTACK_HEAVYCombat | Q | A | ||
| INPUT_MELEE_ATTACK_ALTERNATECombat | LEFT MOUSE BUTTON | RT | ||
| INPUT_MELEE_BLOCKCombat | SPACEBAR | X | ||
| INPUT_PARACHUTE_DEPLOYParachute and rappel | F / LEFT MOUSE BUTTON | Y | ||
| INPUT_PARACHUTE_DETACHParachute and rappel | F | Y | ||
| INPUT_PARACHUTE_TURN_LRParachute and rappel | D | LEFT STICK | ||
| INPUT_PARACHUTE_TURN_LEFT_ONLYParachute and rappel | A | LEFT STICK | ||
| INPUT_PARACHUTE_TURN_RIGHT_ONLYParachute and rappel | D | LEFT STICK | ||
| INPUT_PARACHUTE_PITCH_UDParachute and rappel | S | LEFT STICK | ||
| INPUT_PARACHUTE_PITCH_UP_ONLYParachute and rappel | W | LEFT STICK | ||
| INPUT_PARACHUTE_PITCH_DOWN_ONLYParachute and rappel | S | LEFT STICK | ||
| INPUT_PARACHUTE_BRAKE_LEFTParachute and rappel | Q | LB | ||
| INPUT_PARACHUTE_BRAKE_RIGHTParachute and rappel | E | RB | ||
| INPUT_PARACHUTE_SMOKEParachute and rappel | X | A | ||
| INPUT_PARACHUTE_PRECISION_LANDINGParachute and rappel | LEFT SHIFT | unbound | ||
| INPUT_MAPFrontend | unbound | unbound | ||
| INPUT_SELECT_WEAPON_UNARMEDCombat | 1 | unbound | ||
| INPUT_SELECT_WEAPON_MELEECombat | 2 | unbound | ||
| INPUT_SELECT_WEAPON_HANDGUNCombat | 6 | unbound | ||
| INPUT_SELECT_WEAPON_SHOTGUNCombat | 3 | unbound | ||
| INPUT_SELECT_WEAPON_SMGCombat | 7 | unbound | ||
| INPUT_SELECT_WEAPON_AUTO_RIFLECombat | 8 | unbound | ||
| INPUT_SELECT_WEAPON_SNIPERCombat | 9 | unbound | ||
| INPUT_SELECT_WEAPON_HEAVYCombat | 4 | unbound | ||
| INPUT_SELECT_WEAPON_SPECIALCombat | 5 | unbound | ||
| INPUT_SELECT_CHARACTER_MICHAELFrontend | F5 | unbound | ||
| INPUT_SELECT_CHARACTER_FRANKLINFrontend | F6 | unbound | ||
| INPUT_SELECT_CHARACTER_TREVORFrontend | F7 | unbound | ||
| INPUT_SELECT_CHARACTER_MULTIPLAYERFrontend | F8 (CONSOLE) | unbound | ||
| INPUT_SAVE_REPLAY_CLIPReplay and creator | F3 | B | ||
| INPUT_SPECIAL_ABILITY_PCCombat | CAPSLOCK | unbound | ||
| INPUT_CELLPHONE_UPPhone | ARROW UP | DPAD UP | ||
| INPUT_CELLPHONE_DOWNPhone | ARROW DOWN | DPAD DOWN | ||
| INPUT_CELLPHONE_LEFTPhone | ARROW LEFT | DPAD LEFT | ||
| INPUT_CELLPHONE_RIGHTPhone | ARROW RIGHT | DPAD RIGHT | ||
| INPUT_CELLPHONE_SELECTPhone | ENTER / LEFT MOUSE BUTTON | A | ||
| INPUT_CELLPHONE_CANCELPhone | BACKSPACE / ESC / RIGHT MOUSE BUTTON | B | ||
| INPUT_CELLPHONE_OPTIONPhone | DELETE | Y | ||
| INPUT_CELLPHONE_EXTRA_OPTIONPhone | SPACEBAR | X | ||
| INPUT_CELLPHONE_SCROLL_FORWARDPhone | SCROLLWHEEL DOWN | unbound | ||
| INPUT_CELLPHONE_SCROLL_BACKWARDPhone | SCROLLWHEEL UP | unbound | ||
| INPUT_CELLPHONE_CAMERA_FOCUS_LOCKPhone | L | RT | ||
| INPUT_CELLPHONE_CAMERA_GRIDPhone | G | RB | ||
| INPUT_CELLPHONE_CAMERA_SELFIEPhone | E | R3 | ||
| INPUT_CELLPHONE_CAMERA_DOFPhone | F | LB | ||
| INPUT_CELLPHONE_CAMERA_EXPRESSIONPhone | X | L3 | ||
| INPUT_FRONTEND_DOWNFrontend | ARROW DOWN | DPAD DOWN | ||
| INPUT_FRONTEND_UPFrontend | ARROW UP | DPAD UP | ||
| INPUT_FRONTEND_LEFTFrontend | ARROW LEFT | DPAD LEFT | ||
| INPUT_FRONTEND_RIGHTFrontend | ARROW RIGHT | DPAD RIGHT | ||
| INPUT_FRONTEND_RDOWNFrontend | ENTER | A | ||
| INPUT_FRONTEND_RUPFrontend | TAB | Y | ||
| INPUT_FRONTEND_RLEFTFrontend | unbound | X | ||
| INPUT_FRONTEND_RRIGHTFrontend | BACKSPACE | B | ||
| INPUT_FRONTEND_AXIS_XFrontend | D | LEFT STICK | ||
| INPUT_FRONTEND_AXIS_YFrontend | S | LEFT STICK | ||
| INPUT_FRONTEND_RIGHT_AXIS_XFrontend | ] | RIGHT STICK | ||
| INPUT_FRONTEND_RIGHT_AXIS_YFrontend | SCROLLWHEEL DOWN | RIGHT STICK | ||
| INPUT_FRONTEND_PAUSEFrontend | P | START | ||
| INPUT_FRONTEND_PAUSE_ALTERNATEFrontend | ESC | unbound | ||
| INPUT_FRONTEND_ACCEPTFrontend | ENTER / NUMPAD ENTER | A | ||
| INPUT_FRONTEND_CANCELFrontend | BACKSPACE / ESC | B | ||
| INPUT_FRONTEND_XFrontend | SPACEBAR | X | ||
| INPUT_FRONTEND_YFrontend | TAB | Y | ||
| INPUT_FRONTEND_LBFrontend | Q | LB | ||
| INPUT_FRONTEND_RBFrontend | E | RB | ||
| INPUT_FRONTEND_LTFrontend | PAGE DOWN | LT | ||
| INPUT_FRONTEND_RTFrontend | PAGE UP | RT | ||
| INPUT_FRONTEND_LSFrontend | LEFT SHIFT | L3 | ||
| INPUT_FRONTEND_RSFrontend | LEFT CONTROL | R3 | ||
| INPUT_FRONTEND_LEADERBOARDFrontend | TAB | RB | ||
| INPUT_FRONTEND_SOCIAL_CLUBFrontend | HOME | BACK | ||
| INPUT_FRONTEND_SOCIAL_CLUB_SECONDARYFrontend | HOME | RB | ||
| INPUT_FRONTEND_DELETEFrontend | DELETE | X | ||
| INPUT_FRONTEND_ENDSCREEN_ACCEPTFrontend | ENTER | A | ||
| INPUT_FRONTEND_ENDSCREEN_EXPANDFrontend | SPACEBAR | X | ||
| INPUT_FRONTEND_SELECTFrontend | CAPSLOCK | BACK | ||
| INPUT_SCRIPT_LEFT_AXIS_XScript | D | LEFT STICK | ||
| INPUT_SCRIPT_LEFT_AXIS_YScript | S | LEFT STICK | ||
| INPUT_SCRIPT_RIGHT_AXIS_XScript | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_SCRIPT_RIGHT_AXIS_YScript | MOUSE DOWN | RIGHT STICK | ||
| INPUT_SCRIPT_RUPScript | RIGHT MOUSE BUTTON | Y | ||
| INPUT_SCRIPT_RDOWNScript | LEFT MOUSE BUTTON | A | ||
| INPUT_SCRIPT_RLEFTScript | LEFT CTRL | X | ||
| INPUT_SCRIPT_RRIGHTScript | RIGHT MOUSE BUTTON | B | ||
| INPUT_SCRIPT_LBScript | unbound | LB | ||
| INPUT_SCRIPT_RBScript | unbound | RB | ||
| INPUT_SCRIPT_LTScript | unbound | LT | ||
| INPUT_SCRIPT_RTScript | LEFT MOUSE BUTTON | RT | ||
| INPUT_SCRIPT_LSScript | unbound | L3 | ||
| INPUT_SCRIPT_RSScript | unbound | R3 | ||
| INPUT_SCRIPT_PAD_UPScript | W | DPAD UP | ||
| INPUT_SCRIPT_PAD_DOWNScript | S | DPAD DOWN | ||
| INPUT_SCRIPT_PAD_LEFTScript | A | DPAD LEFT | ||
| INPUT_SCRIPT_PAD_RIGHTScript | D | DPAD RIGHT | ||
| INPUT_SCRIPT_SELECTScript | V | BACK | ||
| INPUT_CURSOR_ACCEPTFrontend | LEFT MOUSE BUTTON | unbound | ||
| INPUT_CURSOR_CANCELFrontend | RIGHT MOUSE BUTTON | unbound | ||
| INPUT_CURSOR_XFrontend | unbound | unbound | ||
| INPUT_CURSOR_YFrontend | unbound | unbound | ||
| INPUT_CURSOR_SCROLL_UPFrontend | SCROLLWHEEL UP | unbound | ||
| INPUT_CURSOR_SCROLL_DOWNFrontend | SCROLLWHEEL DOWN | unbound | ||
| INPUT_ENTER_CHEAT_CODEOn foot | ~ / ` | unbound | ||
| INPUT_INTERACTION_MENUFrontend | M | BACK | ||
| INPUT_MP_TEXT_CHAT_ALLFrontend | T | unbound | ||
| INPUT_MP_TEXT_CHAT_TEAMFrontend | Y | unbound | ||
| INPUT_MP_TEXT_CHAT_FRIENDSFrontend | unbound | unbound | ||
| INPUT_MP_TEXT_CHAT_CREWFrontend | unbound | unbound | ||
| INPUT_PUSH_TO_TALKOn foot | N | unbound | ||
| INPUT_CREATOR_LSReplay and creator | R | L3 | ||
| INPUT_CREATOR_RSReplay and creator | F | R3 | ||
| INPUT_CREATOR_LTReplay and creator | X | LT | ||
| INPUT_CREATOR_RTReplay and creator | C | RT | ||
| INPUT_CREATOR_MENU_TOGGLEReplay and creator | LEFT SHIFT | unbound | ||
| INPUT_CREATOR_ACCEPTReplay and creator | SPACEBAR | A | ||
| INPUT_CREATOR_DELETEReplay and creator | DELETE | X | ||
| INPUT_ATTACK2Combat | LEFT MOUSE BUTTON | RT | ||
| INPUT_RAPPEL_JUMPParachute and rappel | unbound | A | ||
| INPUT_RAPPEL_LONG_JUMPParachute and rappel | unbound | X | ||
| INPUT_RAPPEL_SMASH_WINDOWParachute and rappel | unbound | RT | ||
| INPUT_PREV_WEAPONCombat | SCROLLWHEEL UP | DPAD LEFT | ||
| INPUT_NEXT_WEAPONCombat | SCROLLWHEEL DOWN | DPAD RIGHT | ||
| INPUT_MELEE_ATTACK1Combat | R | B | ||
| INPUT_MELEE_ATTACK2Combat | Q | A | ||
| INPUT_WHISTLEOn foot | unbound | unbound | ||
| INPUT_MOVE_LEFTOn foot | D | LEFT STICK | ||
| INPUT_MOVE_RIGHTOn foot | D | LEFT STICK | ||
| INPUT_MOVE_UPOn foot | S | LEFT STICK | ||
| INPUT_MOVE_DOWNOn foot | S | LEFT STICK | ||
| INPUT_LOOK_LEFTCamera | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_LOOK_RIGHTCamera | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_LOOK_UPCamera | MOUSE DOWN | RIGHT STICK | ||
| INPUT_LOOK_DOWNCamera | MOUSE DOWN | RIGHT STICK | ||
| INPUT_SNIPER_ZOOM_INCombat | [ | RIGHT STICK | ||
| INPUT_SNIPER_ZOOM_OUTCombat | [ | RIGHT STICK | ||
| INPUT_SNIPER_ZOOM_IN_ALTERNATECombat | [ | LEFT STICK | ||
| INPUT_SNIPER_ZOOM_OUT_ALTERNATECombat | [ | LEFT STICK | ||
| INPUT_VEH_MOVE_LEFTVehicle | D | LEFT STICK | ||
| INPUT_VEH_MOVE_RIGHTVehicle | D | LEFT STICK | ||
| INPUT_VEH_MOVE_UPVehicle | LEFT CTRL | LEFT STICK | ||
| INPUT_VEH_MOVE_DOWNVehicle | LEFT CTRL | LEFT STICK | ||
| INPUT_VEH_GUN_LEFTVehicle | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_VEH_GUN_RIGHTVehicle | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_VEH_GUN_UPVehicle | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_VEH_GUN_DOWNVehicle | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_VEH_LOOK_LEFTVehicle | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_VEH_LOOK_RIGHTVehicle | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_REPLAY_START_STOP_RECORDINGReplay and creator | F1 | A | ||
| INPUT_REPLAY_START_STOP_RECORDING_SECONDARYReplay and creator | F2 | X | ||
| INPUT_SCALED_LOOK_LROn foot | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_SCALED_LOOK_UDOn foot | MOUSE DOWN | RIGHT STICK | ||
| INPUT_SCALED_LOOK_UP_ONLYOn foot | unbound | RIGHT STICK | ||
| INPUT_SCALED_LOOK_DOWN_ONLYOn foot | unbound | RIGHT STICK | ||
| INPUT_SCALED_LOOK_LEFT_ONLYOn foot | unbound | RIGHT STICK | ||
| INPUT_SCALED_LOOK_RIGHT_ONLYOn foot | unbound | RIGHT STICK | ||
| INPUT_REPLAY_MARKER_DELETEReplay and creator | DELETE | X | ||
| INPUT_REPLAY_CLIP_DELETEReplay and creator | DELETE | Y | ||
| INPUT_REPLAY_PAUSEReplay and creator | SPACEBAR | A | ||
| INPUT_REPLAY_REWINDReplay and creator | ARROW DOWN | LB | ||
| INPUT_REPLAY_FFWDReplay and creator | ARROW UP | RB | ||
| INPUT_REPLAY_NEWMARKERReplay and creator | M | A | ||
| INPUT_REPLAY_RECORDReplay and creator | S | unbound | ||
| INPUT_REPLAY_SCREENSHOTReplay and creator | U | DPAD UP | ||
| INPUT_REPLAY_HIDEHUDReplay and creator | H | R3 | ||
| INPUT_REPLAY_STARTPOINTReplay and creator | B | unbound | ||
| INPUT_REPLAY_ENDPOINTReplay and creator | N | unbound | ||
| INPUT_REPLAY_ADVANCEReplay and creator | ARROW RIGHT | DPAD RIGHT | ||
| INPUT_REPLAY_BACKReplay and creator | ARROW LEFT | DPAD LEFT | ||
| INPUT_REPLAY_TOOLSReplay and creator | T | DPAD DOWN | ||
| INPUT_REPLAY_RESTARTReplay and creator | R | BACK | ||
| INPUT_REPLAY_SHOWHOTKEYReplay and creator | K | DPAD DOWN | ||
| INPUT_REPLAY_CYCLEMARKERLEFTReplay and creator | [ | DPAD LEFT | ||
| INPUT_REPLAY_CYCLEMARKERRIGHTReplay and creator | ] | DPAD RIGHT | ||
| INPUT_REPLAY_FOVINCREASEReplay and creator | NUMPAD + | RB | ||
| INPUT_REPLAY_FOVDECREASEReplay and creator | NUMPAD - | LB | ||
| INPUT_REPLAY_CAMERAUPReplay and creator | PAGE UP | unbound | ||
| INPUT_REPLAY_CAMERADOWNReplay and creator | PAGE DOWN | unbound | ||
| INPUT_REPLAY_SAVEReplay and creator | F5 | START | ||
| INPUT_REPLAY_TOGGLETIMEReplay and creator | C | unbound | ||
| INPUT_REPLAY_TOGGLETIPSReplay and creator | V | unbound | ||
| INPUT_REPLAY_PREVIEWReplay and creator | SPACEBAR | unbound | ||
| INPUT_REPLAY_TOGGLE_TIMELINEReplay and creator | ESC | unbound | ||
| INPUT_REPLAY_TIMELINE_PICKUP_CLIPReplay and creator | X | unbound | ||
| INPUT_REPLAY_TIMELINE_DUPLICATE_CLIPReplay and creator | C | unbound | ||
| INPUT_REPLAY_TIMELINE_PLACE_CLIPReplay and creator | V | unbound | ||
| INPUT_REPLAY_CTRLReplay and creator | LEFT CTRL | unbound | ||
| INPUT_REPLAY_TIMELINE_SAVEReplay and creator | F5 | unbound | ||
| INPUT_REPLAY_PREVIEW_AUDIOReplay and creator | SPACEBAR | RT | ||
| INPUT_VEH_DRIVE_LOOKVehicle | LEFT MOUSE BUTTON | unbound | ||
| INPUT_VEH_DRIVE_LOOK2Vehicle | RIGHT MOUSE BUTTON | unbound | ||
| INPUT_VEH_FLY_ATTACK2Vehicle | RIGHT MOUSE BUTTON | unbound | ||
| INPUT_RADIO_WHEEL_UDOn foot | MOUSE DOWN | RIGHT STICK | ||
| INPUT_RADIO_WHEEL_LROn foot | MOUSE RIGHT | RIGHT STICK | ||
| INPUT_VEH_SLOWMO_UDVehicle | SCROLLWHEEL DOWN | LEFT STICK | ||
| INPUT_VEH_SLOWMO_UP_ONLYVehicle | SCROLLWHEEL UP | LEFT STICK | ||
| INPUT_VEH_SLOWMO_DOWN_ONLYVehicle | SCROLLWHEEL DOWN | LEFT STICK | ||
| INPUT_VEH_HYDRAULICS_CONTROL_TOGGLEVehicle | X | A | ||
| INPUT_VEH_HYDRAULICS_CONTROL_LEFTVehicle | A | LEFT STICK | ||
| INPUT_VEH_HYDRAULICS_CONTROL_RIGHTVehicle | D | LEFT STICK | ||
| INPUT_VEH_HYDRAULICS_CONTROL_UPVehicle | LEFT SHIFT | LEFT STICK | ||
| INPUT_VEH_HYDRAULICS_CONTROL_DOWNVehicle | LEFT CTRL | LEFT STICK | ||
| INPUT_VEH_HYDRAULICS_CONTROL_UDVehicle | D | LEFT STICK | ||
| INPUT_VEH_HYDRAULICS_CONTROL_LRVehicle | LEFT CTRL | LEFT STICK | ||
| INPUT_SWITCH_VISOROn foot | F11 | DPAD RIGHT | ||
| INPUT_VEH_MELEE_HOLDVehicle | X | A | ||
| INPUT_VEH_MELEE_LEFTVehicle | LEFT MOUSE BUTTON | LB | ||
| INPUT_VEH_MELEE_RIGHTVehicle | RIGHT MOUSE BUTTON | RB | ||
| INPUT_MAP_POIFrontend | SCROLLWHEEL BUTTON (PRESS) | Y | ||
| INPUT_REPLAY_SNAPMATIC_PHOTOReplay and creator | TAB | X | ||
| INPUT_VEH_CAR_JUMPVehicle | E | L3 | ||
| INPUT_VEH_ROCKET_BOOSTVehicle | E | L3 | ||
| INPUT_VEH_FLY_BOOSTVehicle | LEFT SHIFT | L3 | ||
| INPUT_VEH_PARACHUTEVehicle | SPACEBAR | A | ||
| INPUT_VEH_BIKE_WINGSVehicle | X | A | ||
| INPUT_VEH_FLY_BOMB_BAYVehicle | E | DPAD RIGHT | ||
| INPUT_VEH_FLY_COUNTERVehicle | E | DPAD RIGHT | ||
| INPUT_VEH_TRANSFORMVehicle | X | A | ||
| INPUT_QUAD_LOCO_REVERSEVehicle | unbound | RB | ||
| INPUT_RESPAWN_FASTEROn foot | unbound | unbound | ||
| INPUT_HUDMARKER_SELECTFrontend | unbound | unbound |
The pattern every script that takes the keyboard off the player ends up writing.
-- Lock the player out of a set of inputs while something is open.
-- Only the controls in the list are taken away, so walking, looking around and
-- the pause menu all still work. DisableAllControlActions(0) is the blunt
-- version and it takes the pause menu with it, which players notice.
local BLOCKED = {
24, -- INPUT_ATTACK
25, -- INPUT_AIM
37, -- INPUT_SELECT_WEAPON
47, -- INPUT_DETONATE
140, -- INPUT_MELEE_ATTACK_LIGHT
141, -- INPUT_MELEE_ATTACK_HEAVY
142, -- INPUT_MELEE_ATTACK_ALTERNATE
143, -- INPUT_MELEE_BLOCK
257, -- INPUT_ATTACK2
263, -- INPUT_MELEE_ATTACK1
264, -- INPUT_MELEE_ATTACK2
}
local locked = false
function SetControlsLocked(state)
locked = state
end
CreateThread(function()
while true do
-- Wait(0) while locked, a long wait otherwise: an idle resource that
-- runs an empty loop every frame is a measurable cost on a full server.
if locked then
for i = 1, #BLOCKED do
DisableControlAction(0, BLOCKED[i], true)
end
Wait(0)
else
Wait(250)
end
end
end)HOW TO USE IT
Five steps, and two of them are where the time goes
Reading an input in GTA 5 is three lines. Keeping it working once you also want the game to stop reacting to the same key is where most of the questions come from.
- 01 Find the index, not the key
Look the control up here by name or by pressing the key in the panel above. From that point on your script talks about the index. A player who moved interact to F still triggers control 51, and you never have to know.
- 02 Poll it every frame
All of these checks describe one frame. Put the check inside CreateThread with Wait(0), and keep that loop small — it runs sixty-odd times a second for every player on the server.
- 03 Pass 0 as the first argument
The reference calls it padIndex and lists two control types, 0 and 2. The documentation for DisableControlAction states outright that groups 0 and 1 give the same results as 2, so 0 is the honest default and anything else is cargo cult.
- 04 If you disable it, read the disabled variant
DisableControlAction makes the plain checks blind to that control. Swap IsControlJustPressed for IsDisabledControlJustPressed in the same loop and the key is yours alone.
- 05 Stop the loop when nothing is open
A keybind resource that runs Wait(0) forever costs the same whether a menu is open or not. Gate the fast loop behind a flag and wait 250ms when there is nothing to do.
Client side. Control 51 is INPUT_CONTEXT, the generic interact input, on E by default.
-- INPUT_CONTEXT — control 51
-- Client side. IsControlJustPressed is true on the single frame the input
-- goes down, so it has to be polled every frame: a thread that waits 100ms
-- will miss presses and feel broken rather than look broken.
CreateThread(function()
while true do
Wait(0)
if IsControlJustPressed(0, 51) then
print('INPUT_CONTEXT pressed')
end
end
end)THE FIRST ARGUMENT
0, 1 or 2 — what the control group really is
Half the snippets on the internet pass 0 and half pass 2, nobody explains why, and the honest answer is shorter than the folklore.
- What the reference actually says
The native signature names that argument
padIndex, not a control group. The Cfx.re controls page has a short “control types” table with two rows: 0 isPLAYER_CONTROLand 2 isFRONTEND_CONTROL. There is no published name for 1 — the value people callCONTROL_CAMERAis a community label, not something the documentation gives.And the documentation for DISABLE_CONTROL_ACTION states it outright: control group 1 and 0 give the same results as 2. So on PC, with one player and one pad, the three values behave the same for these natives.
Practical answer: pass 0. A menu snippet that passes 2 is not wrong, it is a habit inherited from the decompiled scripts. If a tutorial tells you 2 is required for frontend input, it is repeating something the reference contradicts.
THE CHECKS
Pressed, just-pressed, and the disabled pair
Four natives that look interchangeable and are not. Picking the wrong one produces a menu that flickers or a keybind that silently dies.
- IsControlPressed(padIndex, control)
True on every frame the input is held down.
Continuous things: a horn, a torch, holding a door open. If you use this for a toggle you get the toggle flipping sixty times a second.
- IsControlJustPressed(padIndex, control)
True only on the frame the input goes from up to down. The reference describes it as newly pressed since the last check.
Everything discrete: open a menu, pick something up, fire a one-shot action. This is the one you want nine times in ten.
- IsControlJustReleased(padIndex, control)
True on the frame the input comes back up.
Hold-to-act, and anything where you need to know how long the key was down. Pair it with GetGameTimer at the press.
- IsDisabledControlPressed(padIndex, control)
The same as IsControlPressed, but it still reports a control that your own script has disabled this frame.
Any key you took away from the game with DisableControlAction and still want to read. The plain check will not see it.
- IsDisabledControlJustPressed(padIndex, control)
The just-pressed edge, for a disabled control.
The combination most menus need: the game must not act on E, but the menu must.
- DisableControlAction(padIndex, control, disable)
Takes one control away from the game for one frame. Its own documentation says it needs to be executed each frame.
Inside a per-frame loop, never once at startup. Call it once and it is undone before the player notices.
- GetControlNormal(padIndex, control)
The analogue value of an input as a float rather than a boolean.
Sticks, triggers and the mouse axes — the inputs a pressed check cannot describe.
- GetControlInstructionalButton(padIndex, control, p2)
Returns the glyph string for a control, as the pause menu and the help text draw it.
Showing the player which key to press without hardcoding "E" — it follows their own bindings and their pad.
Client side. This is the pair that confuses everyone: the plain check goes blind the moment you disable the control, so the loop reads the disabled variant instead.
-- Take INPUT_PICKUP (control 38) off the game and read it yourself.
-- Two things matter here. DisableControlAction has to run every frame — it
-- lasts exactly one frame. And once a control is disabled, IsControlJustPressed
-- stops returning true for it, which is why the check below is the DISABLED
-- variant. Mixing those two up is the single most common reason a keybind
-- "stops working" the moment somebody disables the key.
CreateThread(function()
while true do
Wait(0)
DisableControlAction(0, 38, true)
if IsDisabledControlJustPressed(0, 38) then
print('INPUT_PICKUP pressed, and the game never saw it')
end
end
end)Client side. A pressed check cannot describe a stick, so the axes have their own getter — with a disabled twin for the same reason.
-- The analogue inputs are not on/off, so they are read as a normal.
-- GetControlNormal returns -1.0 to 1.0 for an axis and 0.0 to 1.0 for a
-- trigger, on both a pad and mouse-and-keyboard.
CreateThread(function()
while true do
Wait(0)
local lr = GetControlNormal(0, 1) -- INPUT_LOOK_LR
local ud = GetControlNormal(0, 2) -- INPUT_LOOK_UD
if math.abs(lr) > 0.2 or math.abs(ud) > 0.2 then
print(('looking %.2f / %.2f'):format(lr, ud))
end
end
end)
-- Disabled the control but still want the stick value? There is a separate
-- getter for that too, for the same reason the pressed checks have one.
-- GetDisabledControlNormal(0, 1)OUR GROUPING
Nine buckets, so 361 rows are usable
These labels are ours. We derive them from the INPUT_ name because the published table has no category column — they are a filter, not a fact about the engine.
- On foot 36
Walking, sprinting, jumping, cover, entering vehicles.
- Combat 46
Aiming, firing, melee, weapon selection, the sniper zoom.
- Vehicle 116
Every INPUT_VEH_ control - cars, bikes, boats, planes, submarines.
- Camera 13
The look axes, the camera switch, the cinematic slow-motion.
- Frontend 52
Pause menu, the map, the cursor, the character and interaction wheels.
- Phone 16
The in-game phone, including the camera mode keys.
- Script 23
The INPUT_SCRIPT_ controls the game leaves for scripts to read.
- Replay and creator 44
The Rockstar Editor and the mission creator.
- Parachute and rappel 15
Parachute steering, smoke, and rappelling out of a helicopter.
QUESTIONS
About FiveM control IDs
What is the first argument of IsControlPressed — 0, 1 or 2?
Why does my keybind stop working as soon as I disable the key?
What is the difference between IsControlPressed and IsControlJustPressed?
One key shows several control indices. Which one do I use?
Is the keyboard column what my players actually have bound?
How many control indices are there?
Every known GTA 5 stat name with its type, for StatGetInt and StatSetInt — and why a stat written without StatSave quietly disappears.
Scaleform referenceThe scaleform movies and the functions you can call on them, with the parameter lists marked documented or reconstructed.
All the free toolsThe map, the reference lists and every calculator, in one place.