~/guides/fivem-controls-list
FiveM Controls List
-- reference · updated august 2026 · var fivem team
-- 361 control ids · 0 to 360 range · 3 control groups
FiveM controls are the numeric input IDs you pass to natives like IsControlPressed, IsControlJustPressed and DisableControlAction to read a key or block a vanilla action. This page is the complete FiveM controls list: all 361 control IDs from 0 to 360, each with its INPUT_ name, default keyboard binding and Xbox controller mapping, the three control groups (0, 1, 2), plus copy-paste Lua snippets, all sourced from the official Cfx.re documentation.
How FiveM controls work
A control in FiveM is a game input identified by a number. GTA V groups its inputs into a fixed enum, so pressing space is not read as the letter "space" but as INPUT_JUMP, control ID 22. You read these client-side with IsControlPressed(group, id) for a held key, IsControlJustPressed for a single tap and IsControlJustReleased for the release. Because the IDs come from the game itself, the same number works on ESX, QBCore, Qbox or standalone, and it keeps working even if the player has rebound the key, which is why scripts read control IDs instead of raw scan codes.
One physical key can back several controls. E, for example, is INPUT_PICKUP (38), INPUT_CONTEXT (51) and INPUT_TALK (46) at once, which is why two scripts both listening for E can clash. The default bindings in the tables below are what a fresh install ships with; players can change them in the pause menu, but the numeric ID never changes.
Most-used FiveM control IDs
These are the controls scripts reach for most often: the interact and movement keys, combat inputs and the core vehicle controls. If you just need a key for an interaction prompt, 38 (E, INPUT_PICKUP) and 51 (E, INPUT_CONTEXT) are the usual picks, and 47 (G, INPUT_DETONATE) is a common free-ish key for a secondary action.
| ID | Control | Keyboard | Controller |
|---|---|---|---|
| 51 | INPUT_CONTEXT | E | DPAD RIGHT |
| 38 | INPUT_PICKUP | E | LB |
| 23 | INPUT_ENTER | F | Y |
| 22 | INPUT_JUMP | SPACEBAR | X |
| 21 | INPUT_SPRINT | LEFT SHIFT | A |
| 36 | INPUT_DUCK | LEFT CTRL | L3 |
| 45 | INPUT_RELOAD | R | B |
| 24 | INPUT_ATTACK | LEFT MOUSE BUTTON | RT |
| 25 | INPUT_AIM | RIGHT MOUSE BUTTON | LT |
| 44 | INPUT_COVER | Q | RB |
| 47 | INPUT_DETONATE | G | DPAD LEFT |
| 74 | INPUT_VEH_HEADLIGHT | H | DPAD RIGHT |
| 75 | INPUT_VEH_EXIT | F | Y |
| 73 | INPUT_VEH_DUCK | X | A |
| 76 | INPUT_VEH_HANDBRAKE | SPACEBAR | RB |
| 71 | INPUT_VEH_ACCELERATE | W | RT |
| 72 | INPUT_VEH_BRAKE | S | LT |
| 86 | INPUT_VEH_HORN | E | L3 |
| 19 | INPUT_CHARACTER_WHEEL | LEFT ALT | DPAD DOWN |
| 20 | INPUT_MULTIPLAYER_INFO | Z | DPAD DOWN |
| 246 | INPUT_MP_TEXT_CHAT_TEAM | Y | - |
| 249 | INPUT_PUSH_TO_TALK | N | - |
| 199 | INPUT_FRONTEND_PAUSE | P | START |
| 288 | INPUT_REPLAY_START_STOP_RECORDING | F1 | A |
All FiveM control IDs (0 to 360)
The table below lists all 361 controls in the FiveM control enum, from ID 0 to 360, with the default keyboard and controller binding for each. On-foot controls sit in the low IDs (movement 21 to 36, combat 24 to 47), vehicle controls run from INPUT_VEH_MOVE_LR (59) through the flight, sub and hydraulics inputs, then cellphone (172 to 186), frontend/menu (187 to 217), script axes (218 to 235), cursor (237 to 242) and the replay editor (288 onward). A dash means the game ships no default binding for that control on that device.
| ID | Control | Keyboard | Controller |
|---|---|---|---|
| 0 | INPUT_NEXT_CAMERA | V | BACK |
| 1 | INPUT_LOOK_LR | MOUSE RIGHT | RIGHT STICK |
| 2 | INPUT_LOOK_UD | MOUSE DOWN | RIGHT STICK |
| 3 | INPUT_LOOK_UP_ONLY | - | RIGHT STICK |
| 4 | INPUT_LOOK_DOWN_ONLY | MOUSE DOWN | RIGHT STICK |
| 5 | INPUT_LOOK_LEFT_ONLY | - | RIGHT STICK |
| 6 | INPUT_LOOK_RIGHT_ONLY | MOUSE RIGHT | RIGHT STICK |
| 7 | INPUT_CINEMATIC_SLOWMO | - | R3 |
| 8 | INPUT_SCRIPTED_FLY_UD | S | LEFT STICK |
| 9 | INPUT_SCRIPTED_FLY_LR | D | LEFT STICK |
| 10 | INPUT_SCRIPTED_FLY_ZUP | PAGEUP | LT |
| 11 | INPUT_SCRIPTED_FLY_ZDOWN | PAGEDOWN | RT |
| 12 | INPUT_WEAPON_WHEEL_UD | MOUSE DOWN | RIGHT STICK |
| 13 | INPUT_WEAPON_WHEEL_LR | MOUSE RIGHT | RIGHT STICK |
| 14 | INPUT_WEAPON_WHEEL_NEXT | SCROLLWHEEL DOWN | DPAD RIGHT |
| 15 | INPUT_WEAPON_WHEEL_PREV | SCROLLWHEEL UP | DPAD LEFT |
| 16 | INPUT_SELECT_NEXT_WEAPON | SCROLLWHEEL DOWN | - |
| 17 | INPUT_SELECT_PREV_WEAPON | SCROLLWHEEL UP | - |
| 18 | INPUT_SKIP_CUTSCENE | ENTER / L-MOUSE / SPACEBAR | A |
| 19 | INPUT_CHARACTER_WHEEL | LEFT ALT | DPAD DOWN |
| 20 | INPUT_MULTIPLAYER_INFO | Z | DPAD DOWN |
| 21 | INPUT_SPRINT | LEFT SHIFT | A |
| 22 | INPUT_JUMP | SPACEBAR | X |
| 23 | INPUT_ENTER | F | Y |
| 24 | INPUT_ATTACK | LEFT MOUSE BUTTON | RT |
| 25 | INPUT_AIM | RIGHT MOUSE BUTTON | LT |
| 26 | INPUT_LOOK_BEHIND | C | R3 |
| 27 | INPUT_PHONE | ARROW UP / SCROLLWHEEL BUTTON | DPAD UP |
| 28 | INPUT_SPECIAL_ABILITY | - | L3 |
| 29 | INPUT_SPECIAL_ABILITY_SECONDARY | B | R3 |
| 30 | INPUT_MOVE_LR | D | LEFT STICK |
| 31 | INPUT_MOVE_UD | S | LEFT STICK |
| 32 | INPUT_MOVE_UP_ONLY | W | LEFT STICK |
| 33 | INPUT_MOVE_DOWN_ONLY | S | LEFT STICK |
| 34 | INPUT_MOVE_LEFT_ONLY | A | LEFT STICK |
| 35 | INPUT_MOVE_RIGHT_ONLY | D | LEFT STICK |
| 36 | INPUT_DUCK | LEFT CTRL | L3 |
| 37 | INPUT_SELECT_WEAPON | TAB | LB |
| 38 | INPUT_PICKUP | E | LB |
| 39 | INPUT_SNIPER_ZOOM | [ | LEFT STICK |
| 40 | INPUT_SNIPER_ZOOM_IN_ONLY | ] | LEFT STICK |
| 41 | INPUT_SNIPER_ZOOM_OUT_ONLY | [ | LEFT STICK |
| 42 | INPUT_SNIPER_ZOOM_IN_SECONDARY | ] | DPAD UP |
| 43 | INPUT_SNIPER_ZOOM_OUT_SECONDARY | [ | DPAD DOWN |
| 44 | INPUT_COVER | Q | RB |
| 45 | INPUT_RELOAD | R | B |
| 46 | INPUT_TALK | E | DPAD RIGHT |
| 47 | INPUT_DETONATE | G | DPAD LEFT |
| 48 | INPUT_HUD_SPECIAL | Z | DPAD DOWN |
| 49 | INPUT_ARREST | F | Y |
| 50 | INPUT_ACCURATE_AIM | SCROLLWHEEL DOWN | R3 |
| 51 | INPUT_CONTEXT | E | DPAD RIGHT |
| 52 | INPUT_CONTEXT_SECONDARY | Q | DPAD LEFT |
| 53 | INPUT_WEAPON_SPECIAL | - | Y |
| 54 | INPUT_WEAPON_SPECIAL_TWO | E | DPAD RIGHT |
| 55 | INPUT_DIVE | SPACEBAR | RB |
| 56 | INPUT_DROP_WEAPON | F9 | Y |
| 57 | INPUT_DROP_AMMO | F10 | B |
| 58 | INPUT_THROW_GRENADE | G | DPAD LEFT |
| 59 | INPUT_VEH_MOVE_LR | D | LEFT STICK |
| 60 | INPUT_VEH_MOVE_UD | LEFT CTRL | LEFT STICK |
| 61 | INPUT_VEH_MOVE_UP_ONLY | LEFT SHIFT | LEFT STICK |
| 62 | INPUT_VEH_MOVE_DOWN_ONLY | LEFT CTRL | LEFT STICK |
| 63 | INPUT_VEH_MOVE_LEFT_ONLY | A | LEFT STICK |
| 64 | INPUT_VEH_MOVE_RIGHT_ONLY | D | LEFT STICK |
| 65 | INPUT_VEH_SPECIAL | - | - |
| 66 | INPUT_VEH_GUN_LR | MOUSE RIGHT | RIGHT STICK |
| 67 | INPUT_VEH_GUN_UD | MOUSE DOWN | RIGHT STICK |
| 68 | INPUT_VEH_AIM | RIGHT MOUSE BUTTON | LB |
| 69 | INPUT_VEH_ATTACK | LEFT MOUSE BUTTON | RB |
| 70 | INPUT_VEH_ATTACK2 | RIGHT MOUSE BUTTON | A |
| 71 | INPUT_VEH_ACCELERATE | W | RT |
| 72 | INPUT_VEH_BRAKE | S | LT |
| 73 | INPUT_VEH_DUCK | X | A |
| 74 | INPUT_VEH_HEADLIGHT | H | DPAD RIGHT |
| 75 | INPUT_VEH_EXIT | F | Y |
| 76 | INPUT_VEH_HANDBRAKE | SPACEBAR | RB |
| 77 | INPUT_VEH_HOTWIRE_LEFT | W | LT |
| 78 | INPUT_VEH_HOTWIRE_RIGHT | S | RT |
| 79 | INPUT_VEH_LOOK_BEHIND | C | R3 |
| 80 | INPUT_VEH_CIN_CAM | R | B |
| 81 | INPUT_VEH_NEXT_RADIO | . | - |
| 82 | INPUT_VEH_PREV_RADIO | , | - |
| 83 | INPUT_VEH_NEXT_RADIO_TRACK | = | - |
| 84 | INPUT_VEH_PREV_RADIO_TRACK | - | - |
| 85 | INPUT_VEH_RADIO_WHEEL | Q | DPAD LEFT |
| 86 | INPUT_VEH_HORN | E | L3 |
| 87 | INPUT_VEH_FLY_THROTTLE_UP | W | RT |
| 88 | INPUT_VEH_FLY_THROTTLE_DOWN | S | LT |
| 89 | INPUT_VEH_FLY_YAW_LEFT | A | LB |
| 90 | INPUT_VEH_FLY_YAW_RIGHT | D | RB |
| 91 | INPUT_VEH_PASSENGER_AIM | RIGHT MOUSE BUTTON | LT |
| 92 | INPUT_VEH_PASSENGER_ATTACK | LEFT MOUSE BUTTON | RT |
| 93 | INPUT_VEH_SPECIAL_ABILITY_FRANKLIN | - | R3 |
| 94 | INPUT_VEH_STUNT_UD | - | - |
| 95 | INPUT_VEH_CINEMATIC_UD | MOUSE DOWN | RIGHT STICK |
| 96 | INPUT_VEH_CINEMATIC_UP_ONLY | NUMPAD- / SCROLLWHEEL UP | - |
| 97 | INPUT_VEH_CINEMATIC_DOWN_ONLY | NUMPAD+ / SCROLLWHEEL DOWN | - |
| 98 | INPUT_VEH_CINEMATIC_LR | MOUSE RIGHT | RIGHT STICK |
| 99 | INPUT_VEH_SELECT_NEXT_WEAPON | SCROLLWHEEL UP | X |
| 100 | INPUT_VEH_SELECT_PREV_WEAPON | [ | - |
| 101 | INPUT_VEH_ROOF | H | DPAD RIGHT |
| 102 | INPUT_VEH_JUMP | SPACEBAR | RB |
| 103 | INPUT_VEH_GRAPPLING_HOOK | E | DPAD RIGHT |
| 104 | INPUT_VEH_SHUFFLE | H | DPAD RIGHT |
| 105 | INPUT_VEH_DROP_PROJECTILE | X | A |
| 106 | INPUT_VEH_MOUSE_CONTROL_OVERRIDE | LEFT MOUSE BUTTON | - |
| 107 | INPUT_VEH_FLY_ROLL_LR | NUMPAD 6 | LEFT STICK |
| 108 | INPUT_VEH_FLY_ROLL_LEFT_ONLY | NUMPAD 4 | LEFT STICK |
| 109 | INPUT_VEH_FLY_ROLL_RIGHT_ONLY | NUMPAD 6 | LEFT STICK |
| 110 | INPUT_VEH_FLY_PITCH_UD | NUMPAD 5 | LEFT STICK |
| 111 | INPUT_VEH_FLY_PITCH_UP_ONLY | NUMPAD 8 | LEFT STICK |
| 112 | INPUT_VEH_FLY_PITCH_DOWN_ONLY | NUMPAD 5 | LEFT STICK |
| 113 | INPUT_VEH_FLY_UNDERCARRIAGE | G | L3 |
| 114 | INPUT_VEH_FLY_ATTACK | RIGHT MOUSE BUTTON | A |
| 115 | INPUT_VEH_FLY_SELECT_NEXT_WEAPON | SCROLLWHEEL UP | DPAD LEFT |
| 116 | INPUT_VEH_FLY_SELECT_PREV_WEAPON | [ | - |
| 117 | INPUT_VEH_FLY_SELECT_TARGET_LEFT | NUMPAD 7 | LB |
| 118 | INPUT_VEH_FLY_SELECT_TARGET_RIGHT | NUMPAD 9 | RB |
| 119 | INPUT_VEH_FLY_VERTICAL_FLIGHT_MODE | E | DPAD RIGHT |
| 120 | INPUT_VEH_FLY_DUCK | X | A |
| 121 | INPUT_VEH_FLY_ATTACK_CAMERA | INSERT | R3 |
| 122 | INPUT_VEH_FLY_MOUSE_CONTROL_OVERRIDE | LEFT MOUSE BUTTON | - |
| 123 | INPUT_VEH_SUB_TURN_LR | NUMPAD 6 | LEFT STICK |
| 124 | INPUT_VEH_SUB_TURN_LEFT_ONLY | NUMPAD 4 | LEFT STICK |
| 125 | INPUT_VEH_SUB_TURN_RIGHT_ONLY | NUMPAD 6 | LEFT STICK |
| 126 | INPUT_VEH_SUB_PITCH_UD | NUMPAD 5 | LEFT STICK |
| 127 | INPUT_VEH_SUB_PITCH_UP_ONLY | NUMPAD 8 | LEFT STICK |
| 128 | INPUT_VEH_SUB_PITCH_DOWN_ONLY | NUMPAD 5 | LEFT STICK |
| 129 | INPUT_VEH_SUB_THROTTLE_UP | W | RT |
| 130 | INPUT_VEH_SUB_THROTTLE_DOWN | S | LT |
| 131 | INPUT_VEH_SUB_ASCEND | LEFT SHIFT | X |
| 132 | INPUT_VEH_SUB_DESCEND | LEFT CTRL | A |
| 133 | INPUT_VEH_SUB_TURN_HARD_LEFT | A | LB |
| 134 | INPUT_VEH_SUB_TURN_HARD_RIGHT | D | RB |
| 135 | INPUT_VEH_SUB_MOUSE_CONTROL_OVERRIDE | LEFT MOUSE BUTTON | - |
| 136 | INPUT_VEH_PUSHBIKE_PEDAL | W | A |
| 137 | INPUT_VEH_PUSHBIKE_SPRINT | CAPSLOCK | A |
| 138 | INPUT_VEH_PUSHBIKE_FRONT_BRAKE | Q | LT |
| 139 | INPUT_VEH_PUSHBIKE_REAR_BRAKE | S | RT |
| 140 | INPUT_MELEE_ATTACK_LIGHT | R | B |
| 141 | INPUT_MELEE_ATTACK_HEAVY | Q | A |
| 142 | INPUT_MELEE_ATTACK_ALTERNATE | LEFT MOUSE BUTTON | RT |
| 143 | INPUT_MELEE_BLOCK | SPACEBAR | X |
| 144 | INPUT_PARACHUTE_DEPLOY | F / L-MOUSE | Y |
| 145 | INPUT_PARACHUTE_DETACH | F | Y |
| 146 | INPUT_PARACHUTE_TURN_LR | D | LEFT STICK |
| 147 | INPUT_PARACHUTE_TURN_LEFT_ONLY | A | LEFT STICK |
| 148 | INPUT_PARACHUTE_TURN_RIGHT_ONLY | D | LEFT STICK |
| 149 | INPUT_PARACHUTE_PITCH_UD | S | LEFT STICK |
| 150 | INPUT_PARACHUTE_PITCH_UP_ONLY | W | LEFT STICK |
| 151 | INPUT_PARACHUTE_PITCH_DOWN_ONLY | S | LEFT STICK |
| 152 | INPUT_PARACHUTE_BRAKE_LEFT | Q | LB |
| 153 | INPUT_PARACHUTE_BRAKE_RIGHT | E | RB |
| 154 | INPUT_PARACHUTE_SMOKE | X | A |
| 155 | INPUT_PARACHUTE_PRECISION_LANDING | LEFT SHIFT | - |
| 156 | INPUT_MAP | - | - |
| 157 | INPUT_SELECT_WEAPON_UNARMED | 1 | - |
| 158 | INPUT_SELECT_WEAPON_MELEE | 2 | - |
| 159 | INPUT_SELECT_WEAPON_HANDGUN | 6 | - |
| 160 | INPUT_SELECT_WEAPON_SHOTGUN | 3 | - |
| 161 | INPUT_SELECT_WEAPON_SMG | 7 | - |
| 162 | INPUT_SELECT_WEAPON_AUTO_RIFLE | 8 | - |
| 163 | INPUT_SELECT_WEAPON_SNIPER | 9 | - |
| 164 | INPUT_SELECT_WEAPON_HEAVY | 4 | - |
| 165 | INPUT_SELECT_WEAPON_SPECIAL | 5 | - |
| 166 | INPUT_SELECT_CHARACTER_MICHAEL | F5 | - |
| 167 | INPUT_SELECT_CHARACTER_FRANKLIN | F6 | - |
| 168 | INPUT_SELECT_CHARACTER_TREVOR | F7 | - |
| 169 | INPUT_SELECT_CHARACTER_MULTIPLAYER | F8 | - |
| 170 | INPUT_SAVE_REPLAY_CLIP | F3 | B |
| 171 | INPUT_SPECIAL_ABILITY_PC | CAPSLOCK | - |
| 172 | INPUT_CELLPHONE_UP | ARROW UP | DPAD UP |
| 173 | INPUT_CELLPHONE_DOWN | ARROW DOWN | DPAD DOWN |
| 174 | INPUT_CELLPHONE_LEFT | ARROW LEFT | DPAD LEFT |
| 175 | INPUT_CELLPHONE_RIGHT | ARROW RIGHT | DPAD RIGHT |
| 176 | INPUT_CELLPHONE_SELECT | ENTER / L-MOUSE | A |
| 177 | INPUT_CELLPHONE_CANCEL | BACKSPACE / ESC / R-MOUSE | B |
| 178 | INPUT_CELLPHONE_OPTION | DELETE | Y |
| 179 | INPUT_CELLPHONE_EXTRA_OPTION | SPACEBAR | X |
| 180 | INPUT_CELLPHONE_SCROLL_FORWARD | SCROLLWHEEL DOWN | - |
| 181 | INPUT_CELLPHONE_SCROLL_BACKWARD | SCROLLWHEEL UP | - |
| 182 | INPUT_CELLPHONE_CAMERA_FOCUS_LOCK | L | RT |
| 183 | INPUT_CELLPHONE_CAMERA_GRID | G | RB |
| 184 | INPUT_CELLPHONE_CAMERA_SELFIE | E | R3 |
| 185 | INPUT_CELLPHONE_CAMERA_DOF | F | LB |
| 186 | INPUT_CELLPHONE_CAMERA_EXPRESSION | X | L3 |
| 187 | INPUT_FRONTEND_DOWN | ARROW DOWN | DPAD DOWN |
| 188 | INPUT_FRONTEND_UP | ARROW UP | DPAD UP |
| 189 | INPUT_FRONTEND_LEFT | ARROW LEFT | DPAD LEFT |
| 190 | INPUT_FRONTEND_RIGHT | ARROW RIGHT | DPAD RIGHT |
| 191 | INPUT_FRONTEND_RDOWN | ENTER | A |
| 192 | INPUT_FRONTEND_RUP | TAB | Y |
| 193 | INPUT_FRONTEND_RLEFT | - | X |
| 194 | INPUT_FRONTEND_RRIGHT | BACKSPACE | B |
| 195 | INPUT_FRONTEND_AXIS_X | D | LEFT STICK |
| 196 | INPUT_FRONTEND_AXIS_Y | S | LEFT STICK |
| 197 | INPUT_FRONTEND_RIGHT_AXIS_X | ] | RIGHT STICK |
| 198 | INPUT_FRONTEND_RIGHT_AXIS_Y | SCROLLWHEEL DOWN | RIGHT STICK |
| 199 | INPUT_FRONTEND_PAUSE | P | START |
| 200 | INPUT_FRONTEND_PAUSE_ALTERNATE | ESC | - |
| 201 | INPUT_FRONTEND_ACCEPT | ENTER / NUMPAD ENTER | A |
| 202 | INPUT_FRONTEND_CANCEL | BACKSPACE / ESC | B |
| 203 | INPUT_FRONTEND_X | SPACEBAR | X |
| 204 | INPUT_FRONTEND_Y | TAB | Y |
| 205 | INPUT_FRONTEND_LB | Q | LB |
| 206 | INPUT_FRONTEND_RB | E | RB |
| 207 | INPUT_FRONTEND_LT | PAGE DOWN | LT |
| 208 | INPUT_FRONTEND_RT | PAGE UP | RT |
| 209 | INPUT_FRONTEND_LS | LEFT SHIFT | L3 |
| 210 | INPUT_FRONTEND_RS | LEFT CONTROL | R3 |
| 211 | INPUT_FRONTEND_LEADERBOARD | TAB | RB |
| 212 | INPUT_FRONTEND_SOCIAL_CLUB | HOME | BACK |
| 213 | INPUT_FRONTEND_SOCIAL_CLUB_SECONDARY | HOME | RB |
| 214 | INPUT_FRONTEND_DELETE | DELETE | X |
| 215 | INPUT_FRONTEND_ENDSCREEN_ACCEPT | ENTER | A |
| 216 | INPUT_FRONTEND_ENDSCREEN_EXPAND | SPACEBAR | X |
| 217 | INPUT_FRONTEND_SELECT | CAPSLOCK | BACK |
| 218 | INPUT_SCRIPT_LEFT_AXIS_X | D | LEFT STICK |
| 219 | INPUT_SCRIPT_LEFT_AXIS_Y | S | LEFT STICK |
| 220 | INPUT_SCRIPT_RIGHT_AXIS_X | MOUSE RIGHT | RIGHT STICK |
| 221 | INPUT_SCRIPT_RIGHT_AXIS_Y | MOUSE DOWN | RIGHT STICK |
| 222 | INPUT_SCRIPT_RUP | RIGHT MOUSE BUTTON | Y |
| 223 | INPUT_SCRIPT_RDOWN | LEFT MOUSE BUTTON | A |
| 224 | INPUT_SCRIPT_RLEFT | LEFT CTRL | X |
| 225 | INPUT_SCRIPT_RRIGHT | RIGHT MOUSE BUTTON | B |
| 226 | INPUT_SCRIPT_LB | - | LB |
| 227 | INPUT_SCRIPT_RB | - | RB |
| 228 | INPUT_SCRIPT_LT | - | LT |
| 229 | INPUT_SCRIPT_RT | LEFT MOUSE BUTTON | RT |
| 230 | INPUT_SCRIPT_LS | - | L3 |
| 231 | INPUT_SCRIPT_RS | - | R3 |
| 232 | INPUT_SCRIPT_PAD_UP | W | DPAD UP |
| 233 | INPUT_SCRIPT_PAD_DOWN | S | DPAD DOWN |
| 234 | INPUT_SCRIPT_PAD_LEFT | A | DPAD LEFT |
| 235 | INPUT_SCRIPT_PAD_RIGHT | D | DPAD RIGHT |
| 236 | INPUT_SELECT | V | BACK |
| 237 | INPUT_CURSOR_ACCEPT | LEFT MOUSE BUTTON | - |
| 238 | INPUT_CURSOR_CANCEL | RIGHT MOUSE BUTTON | - |
| 239 | INPUT_CURSOR_X | - | - |
| 240 | INPUT_CURSOR_Y | - | - |
| 241 | INPUT_CURSOR_SCROLL_UP | SCROLLWHEEL UP | - |
| 242 | INPUT_CURSOR_SCROLL_DOWN | SCROLLWHEEL DOWN | - |
| 243 | INPUT_ENTER_CHEAT_CODE | ~ / ` | - |
| 244 | INPUT_INTERACTION_MENU | M | BACK |
| 245 | INPUT_MP_TEXT_CHAT_ALL | T | - |
| 246 | INPUT_MP_TEXT_CHAT_TEAM | Y | - |
| 247 | INPUT_MP_TEXT_CHAT_FRIENDS | - | - |
| 248 | INPUT_MP_TEXT_CHAT_CREW | - | - |
| 249 | INPUT_PUSH_TO_TALK | N | - |
| 250 | INPUT_CREATOR_LS | R | L3 |
| 251 | INPUT_CREATOR_RS | F | R3 |
| 252 | INPUT_CREATOR_LT | X | LT |
| 253 | INPUT_CREATOR_RT | C | RT |
| 254 | INPUT_CREATOR_MENU_TOGGLE | LEFT SHIFT | - |
| 255 | INPUT_CREATOR_ACCEPT | SPACEBAR | A |
| 256 | INPUT_CREATOR_DELETE | DELETE | X |
| 257 | INPUT_ATTACK2 | LEFT MOUSE BUTTON | RT |
| 258 | INPUT_RAPPEL_JUMP | - | A |
| 259 | INPUT_RAPPEL_LONG_JUMP | - | X |
| 260 | INPUT_RAPPEL_SMASH_WINDOW | - | RT |
| 261 | INPUT_PREV_WEAPON | SCROLLWHEEL UP | DPAD LEFT |
| 262 | INPUT_NEXT_WEAPON | SCROLLWHEEL DOWN | DPAD RIGHT |
| 263 | INPUT_MELEE_ATTACK1 | R | B |
| 264 | INPUT_MELEE_ATTACK2 | Q | A |
| 265 | INPUT_WHISTLE | - | - |
| 266 | INPUT_MOVE_LEFT | D | LEFT STICK |
| 267 | INPUT_MOVE_RIGHT | D | LEFT STICK |
| 268 | INPUT_MOVE_UP | S | LEFT STICK |
| 269 | INPUT_MOVE_DOWN | S | LEFT STICK |
| 270 | INPUT_LOOK_LEFT | MOUSE RIGHT | RIGHT STICK |
| 271 | INPUT_LOOK_RIGHT | MOUSE RIGHT | RIGHT STICK |
| 272 | INPUT_LOOK_UP | MOUSE DOWN | RIGHT STICK |
| 273 | INPUT_LOOK_DOWN | MOUSE DOWN | RIGHT STICK |
| 274 | INPUT_SNIPER_ZOOM_IN | [ | RIGHT STICK |
| 275 | INPUT_SNIPER_ZOOM_OUT | [ | RIGHT STICK |
| 276 | INPUT_SNIPER_ZOOM_IN_ALTERNATE | [ | LEFT STICK |
| 277 | INPUT_SNIPER_ZOOM_OUT_ALTERNATE | [ | LEFT STICK |
| 278 | INPUT_VEH_MOVE_LEFT | D | LEFT STICK |
| 279 | INPUT_VEH_MOVE_RIGHT | D | LEFT STICK |
| 280 | INPUT_VEH_MOVE_UP | LEFT CTRL | LEFT STICK |
| 281 | INPUT_VEH_MOVE_DOWN | LEFT CTRL | LEFT STICK |
| 282 | INPUT_VEH_GUN_LEFT | MOUSE RIGHT | RIGHT STICK |
| 283 | INPUT_VEH_GUN_RIGHT | MOUSE RIGHT | RIGHT STICK |
| 284 | INPUT_VEH_GUN_UP | MOUSE RIGHT | RIGHT STICK |
| 285 | INPUT_VEH_GUN_DOWN | MOUSE RIGHT | RIGHT STICK |
| 286 | INPUT_VEH_LOOK_LEFT | MOUSE RIGHT | RIGHT STICK |
| 287 | INPUT_VEH_LOOK_RIGHT | MOUSE RIGHT | RIGHT STICK |
| 288 | INPUT_REPLAY_START_STOP_RECORDING | F1 | A |
| 289 | INPUT_REPLAY_START_STOP_RECORDING_SECONDARY | F2 | X |
| 290 | INPUT_SCALED_LOOK_LR | MOUSE RIGHT | RIGHT STICK |
| 291 | INPUT_SCALED_LOOK_UD | MOUSE DOWN | RIGHT STICK |
| 292 | INPUT_SCALED_LOOK_UP_ONLY | - | RIGHT STICK |
| 293 | INPUT_SCALED_LOOK_DOWN_ONLY | - | RIGHT STICK |
| 294 | INPUT_SCALED_LOOK_LEFT_ONLY | - | RIGHT STICK |
| 295 | INPUT_SCALED_LOOK_RIGHT_ONLY | - | RIGHT STICK |
| 296 | INPUT_REPLAY_MARKER_DELETE | DELETE | X |
| 297 | INPUT_REPLAY_CLIP_DELETE | DELETE | Y |
| 298 | INPUT_REPLAY_PAUSE | SPACEBAR | A |
| 299 | INPUT_REPLAY_REWIND | ARROW DOWN | LB |
| 300 | INPUT_REPLAY_FFWD | ARROW UP | RB |
| 301 | INPUT_REPLAY_NEWMARKER | M | A |
| 302 | INPUT_REPLAY_RECORD | S | - |
| 303 | INPUT_REPLAY_SCREENSHOT | U | DPAD UP |
| 304 | INPUT_REPLAY_HIDEHUD | H | R3 |
| 305 | INPUT_REPLAY_STARTPOINT | B | - |
| 306 | INPUT_REPLAY_ENDPOINT | N | - |
| 307 | INPUT_REPLAY_ADVANCE | ARROW RIGHT | DPAD RIGHT |
| 308 | INPUT_REPLAY_BACK | ARROW LEFT | DPAD LEFT |
| 309 | INPUT_REPLAY_TOOLS | T | DPAD DOWN |
| 310 | INPUT_REPLAY_RESTART | R | BACK |
| 311 | INPUT_REPLAY_SHOWHOTKEY | K | DPAD DOWN |
| 312 | INPUT_REPLAY_CYCLEMARKERLEFT | [ | DPAD LEFT |
| 313 | INPUT_REPLAY_CYCLEMARKERRIGHT | ] | DPAD RIGHT |
| 314 | INPUT_REPLAY_FOVINCREASE | NUMPAD + | RB |
| 315 | INPUT_REPLAY_FOVDECREASE | NUMPAD - | LB |
| 316 | INPUT_REPLAY_CAMERAUP | PAGE UP | - |
| 317 | INPUT_REPLAY_CAMERADOWN | PAGE DOWN | - |
| 318 | INPUT_REPLAY_SAVE | F5 | START |
| 319 | INPUT_REPLAY_TOGGLETIME | C | - |
| 320 | INPUT_REPLAY_TOGGLETIPS | V | - |
| 321 | INPUT_REPLAY_PREVIEW | SPACEBAR | - |
| 322 | INPUT_REPLAY_TOGGLE_TIMELINE | ESC | - |
| 323 | INPUT_REPLAY_TIMELINE_PICKUP_CLIP | X | - |
| 324 | INPUT_REPLAY_TIMELINE_DUPLICATE_CLIP | C | - |
| 325 | INPUT_REPLAY_TIMELINE_PLACE_CLIP | V | - |
| 326 | INPUT_REPLAY_CTRL | LEFT CTRL | - |
| 327 | INPUT_REPLAY_TIMELINE_SAVE | F5 | - |
| 328 | INPUT_REPLAY_PREVIEW_AUDIO | SPACEBAR | RT |
| 329 | INPUT_VEH_DRIVE_LOOK | LEFT MOUSE BUTTON | - |
| 330 | INPUT_VEH_DRIVE_LOOK2 | RIGHT MOUSE BUTTON | - |
| 331 | INPUT_VEH_FLY_ATTACK2 | RIGHT MOUSE BUTTON | - |
| 332 | INPUT_RADIO_WHEEL_UD | MOUSE DOWN | RIGHT STICK |
| 333 | INPUT_RADIO_WHEEL_LR | MOUSE RIGHT | RIGHT STICK |
| 334 | INPUT_VEH_SLOWMO_UD | SCROLLWHEEL DOWN | LEFT STICK |
| 335 | INPUT_VEH_SLOWMO_UP_ONLY | SCROLLWHEEL UP | LEFT STICK |
| 336 | INPUT_VEH_SLOWMO_DOWN_ONLY | SCROLLWHEEL DOWN | LEFT STICK |
| 337 | INPUT_VEH_HYDRAULICS_CONTROL_TOGGLE | X | A |
| 338 | INPUT_VEH_HYDRAULICS_CONTROL_LEFT | A | LEFT STICK |
| 339 | INPUT_VEH_HYDRAULICS_CONTROL_RIGHT | D | LEFT STICK |
| 340 | INPUT_VEH_HYDRAULICS_CONTROL_UP | LEFT SHIFT | LEFT STICK |
| 341 | INPUT_VEH_HYDRAULICS_CONTROL_DOWN | LEFT CTRL | LEFT STICK |
| 342 | INPUT_VEH_HYDRAULICS_CONTROL_UD | D | LEFT STICK |
| 343 | INPUT_VEH_HYDRAULICS_CONTROL_LR | LEFT CTRL | LEFT STICK |
| 344 | INPUT_SWITCH_VISOR | F11 | DPAD RIGHT |
| 345 | INPUT_VEH_MELEE_HOLD | X | A |
| 346 | INPUT_VEH_MELEE_LEFT | LEFT MOUSE BUTTON | LB |
| 347 | INPUT_VEH_MELEE_RIGHT | RIGHT MOUSE BUTTON | RB |
| 348 | INPUT_MAP_POI | SCROLLWHEEL BUTTON | Y |
| 349 | INPUT_REPLAY_SNAPMATIC_PHOTO | TAB | X |
| 350 | INPUT_VEH_CAR_JUMP | E | L3 |
| 351 | INPUT_VEH_ROCKET_BOOST | E | L3 |
| 352 | INPUT_VEH_FLY_BOOST | LEFT SHIFT | L3 |
| 353 | INPUT_VEH_PARACHUTE | SPACEBAR | A |
| 354 | INPUT_VEH_BIKE_WINGS | X | A |
| 355 | INPUT_VEH_FLY_BOMB_BAY | E | DPAD RIGHT |
| 356 | INPUT_VEH_FLY_COUNTER | E | DPAD RIGHT |
| 357 | INPUT_VEH_TRANSFORM | X | A |
| 358 | INPUT_QUAD_LOCO_REVERSE | - | RB |
| 359 | INPUT_RESPAWN_FASTER | - | - |
| 360 | INPUT_HUDMARKER_SELECT | - | - |
Control groups (0, 1, 2) and DisableControlAction
Every control native takes a control group as its first argument. In practice you pass 0 almost every time: it covers gameplay controls on foot and in vehicles, and the Cfx.re docs use it in their own examples. The three documented groups are:
| ID | Group | Use |
|---|---|---|
| 0 | PLAYER_CONTROL | Gameplay controls (on foot, in vehicles, combat). The default and by far the most used, works for virtually every control ID. |
| 1 | CAMERA_CONTROL | Camera / look inputs. Rarely needed on its own since group 0 covers look controls too. |
| 2 | FRONTEND_CONTROL | Menu and UI (frontend) inputs, used when the pause menu or a scaleform menu owns the input. |
To stop the game from acting on a control, call DisableControlAction(0, id, true) once per frame. It only lasts a single frame, so scripts keep a list of control IDs and disable them in a loop while a menu or minigame owns the input; DisableAllControlActions(0) blocks every control at once. You can still read a disabled control with IsDisabledControlJustPressed, which is how you reuse a vanilla key for your own action without the game reacting to it.
Lua snippets: read, disable and reuse controls
Reading a key is a per-frame check inside a thread. This one fires an event the moment the player taps E (control 38).
-- client.lua | run an action when the player taps E
-- INPUT_PICKUP = 38, control group 0 = PLAYER_CONTROL
CreateThread(function()
while true do
Wait(0)
if IsControlJustPressed(0, 38) then
TriggerEvent("myscript:interact")
end
end
end)The DisableControlAction list pattern: build a table of control IDs and disable them all every frame while your NUI is focused, so clicks and keys do not leak into the game.
-- client.lua | block game input while a NUI menu is open
-- attack, aim, detonate, throw, melee and the weapon wheel
local DISABLED = { 24, 25, 47, 58, 263, 264, 257, 140, 141, 142, 12, 13 }
CreateThread(function()
while menuOpen do
Wait(0)
for _, control in ipairs(DISABLED) do
DisableControlAction(0, control, true)
end
end
end)To repurpose a game key, disable it and read it back with the disabled-control natives. Here the vehicle X key (control 73) drives a custom action instead of ducking.
-- client.lua | reuse a game key without the vanilla action
-- disable INPUT_VEH_DUCK (73, the X key in a vehicle), then read it yourself
CreateThread(function()
while true do
Wait(0)
DisableControlAction(0, 73, true)
if IsDisabledControlJustPressed(0, 73) then
TriggerEvent("myscript:vehicleAction")
end
end
end)Rebinding keys with RegisterKeyMapping
Hard-coding a control ID is fine for reading the game's own inputs, but for a key that opens your script, the modern FiveM approach is RegisterKeyMapping. You register a +commandand bind a default key to it; FiveM then adds a row to Settings > Key Bindings so every player can rebind it without editing your code, and two resources no longer fight over the same physical key.
-- client.lua | let players rebind the key from FiveM Settings > Key Bindings
RegisterCommand("+openInventory", function()
TriggerEvent("inventory:open")
end, false)
RegisterKeyMapping("+openInventory", "Open inventory", "keyboard", "F2")Need more than this list? The authoritative, always-current source is the Cfx.re control reference at docs.fivem.net (game-references > controls), which is where the 361 IDs above come from. For analog inputs (sticks, triggers) use GetControlNormal(0, id), which returns a -1.0 to 1.0 value instead of a boolean, and GetControlInstructionalButton to resolve the on-screen button glyph for a control at runtime.
Scripts with configurable keybinds
If you would rather configure a keybind than write a control loop, several Var FiveM scripts expose their keys in the config. The FiveM emote script opens its React menu with M and adds an 8-slot emote wheel plus Numpad keybind slots, the FiveM interaction script is a standalone system whose hold-to-confirm panels use a configurable hold duration and key bind, the FiveM keypad script gates any action behind a NUI PIN with a plug-and-play example command, the FiveM dispatch script accepts or refuses alerts on configurable keybinds (default Y and G), and the FiveM AFK script toggles with a configurable command and exit key. The keypad, dispatch and AFK scripts run on ESX, QBCore and standalone.
Frequently asked questions
How many controls are there in FiveM?
FiveM exposes 361 controls, with IDs running from 0 to 360. Each one is a named INPUT_* action (INPUT_JUMP, INPUT_ATTACK, INPUT_VEH_ACCELERATE and so on) with a default keyboard and controller binding. The full list on this page comes from the official Cfx.re control reference.
What is the control ID for E, F and the interact key in FiveM?
The E key maps to several controls: INPUT_PICKUP is 38, INPUT_CONTEXT (the generic interact) is 51 and INPUT_TALK is 46. The F key is INPUT_ENTER (23), also used for entering vehicles and INPUT_VEH_EXIT (75). Because one physical key can back multiple controls, most scripts pick 38 or 51 for a on-foot interact prompt.
How do I check if a control is pressed in Lua?
Call IsControlPressed(0, control) every frame for a held key, or IsControlJustPressed(0, control) for a single press. The first argument is the control group (0 = PLAYER_CONTROL, which works for almost everything) and the second is the control ID from the table above. For example, IsControlJustPressed(0, 38) fires when the player taps E.
What is the DisableControlAction list used for?
DisableControlAction(0, control, true) blocks the game's default action for one control for a single frame, so you call it in a loop. Scripts build a list of control IDs (attack, aim, melee, weapon wheel) and disable them all while a NUI menu or a minigame is open, then read the same key with IsDisabledControlJustPressed to reuse it without triggering the vanilla behavior. DisableAllControlActions(0) blocks every control at once.
What are control groups 0, 1 and 2?
The control natives take a control group as their first argument: 0 is PLAYER_CONTROL (gameplay, on foot and in vehicles), 1 is CAMERA_CONTROL (look inputs) and 2 is FRONTEND_CONTROL (menus and UI). Group 0 works for effectively every control ID and is what the vast majority of scripts pass, including the examples in the Cfx.re docs.
Can players rebind FiveM controls?
Yes. Instead of hard-coding a control ID, register a command and bind it with RegisterKeyMapping, which adds an entry to the FiveM Settings > Key Bindings menu so each player can choose their own key. The numeric control IDs in this list are still the way to read the game's own inputs and to disable vanilla actions.
-- var-fivem.com
Skip the control loops
Var FiveM scripts ship with keybinds, prompts and NUI input handled and fully editable in config. Escrow, Partially Open and Open Source variants, instant Tebex delivery.
Related: FiveM blips list · FiveM emote list · FiveM weapon list