RedM Controls & Prompt Keys
A searchable reference of common RedM control input hashes. Look up the hex and decimal hashfor movement, combat, horse and UI actions, see each one's default keyboard and controller key, and copy a hash straight into IsControlPressed or a prompt. Everything runs in your browser.
Common RedM controls
Search by name, hash or key, or filter by category. Click a hash to copy it.
| Control | Category | Keyboard | Controller | Hash |
|---|---|---|---|---|
INPUT_MOVE_LR MoveLr | Movement | A / D | LS X | |
INPUT_MOVE_UD MoveUd | Movement | W / S | LS Y | |
INPUT_SPRINT Sprint | Movement | Shift | A | |
INPUT_JUMP Jump | Movement | Space | X | |
INPUT_DUCK Duck | Movement | Ctrl | LS Click | |
INPUT_DIVE Dive | Movement | - | - | |
INPUT_LOOK_LR LookLr | Camera | Mouse X | RS X | |
INPUT_LOOK_UD LookUd | Camera | Mouse Y | RS Y | |
INPUT_LOOK_BEHIND LookBehind | Camera | C | RS Click | |
INPUT_ATTACK Attack | Combat | Mouse Left | RT | |
INPUT_AIM Aim | Combat | Mouse Right | LT | |
INPUT_ATTACK2 Attack2 | Combat | - | - | |
INPUT_RELOAD Reload | Combat | R | B | |
INPUT_COVER Cover | Combat | Q | RB | |
INPUT_MELEE_ATTACK MeleeAttack | Combat | F | B | |
INPUT_MELEE_BLOCK MeleeBlock | Combat | R | X | |
INPUT_TOGGLE_HOLSTER ToggleHolster | Combat | Tab | LB | |
INPUT_TWIRL_PISTOL TwirlPistol | Combat | - | - | |
INPUT_SELECT_NEXT_WEAPON SelectNextWeapon | Combat | Scroll Down | - | |
INPUT_SELECT_PREV_WEAPON SelectPrevWeapon | Combat | Scroll Up | - | |
INPUT_OPEN_WHEEL_MENU OpenWheelMenu | Combat | - | - | |
INPUT_SPECIAL_ABILITY SpecialAbility | Combat | Caps Lock | - | |
INPUT_ENTER Enter | Interaction | E | Y | |
INPUT_CONTEXT Context | Interaction | - | - | |
INPUT_CONTEXT_SECONDARY ContextSecondary | Interaction | - | - | |
INPUT_PICKUP Pickup | Interaction | - | - | |
INPUT_MAP Map | Interaction | M | Start | |
INPUT_OPEN_JOURNAL OpenJournal | Interaction | J | Dpad Left | |
INPUT_OPEN_SATCHEL_MENU OpenSatchelMenu | Interaction | B | Dpad Right | |
INPUT_PLAYER_MENU PlayerMenu | Interaction | L | - | |
INPUT_INTERACTION_MENU InteractionMenu | Interaction | - | - | |
INPUT_WHISTLE Whistle | Interaction | H | Dpad Up | |
INPUT_PHONE Phone | Interaction | - | - | |
INPUT_HORSE_MOVE_LR HorseMoveLr | Horse | A / D | LS X | |
INPUT_HORSE_MOVE_UD HorseMoveUd | Horse | W / S | LS Y | |
INPUT_HORSE_SPRINT HorseSprint | Horse | Shift | A | |
INPUT_HORSE_JUMP HorseJump | Horse | Space | X | |
INPUT_HORSE_AIM HorseAim | Horse | Mouse Right | LT | |
INPUT_HORSE_ATTACK HorseAttack | Horse | Mouse Left | RT | |
INPUT_FRONTEND_ACCEPT FrontendAccept | Menu | Enter | A | |
INPUT_FRONTEND_CANCEL FrontendCancel | Menu | Backspace | B | |
INPUT_FRONTEND_PAUSE FrontendPause | Menu | Esc | - | |
INPUT_FRONTEND_UP FrontendUp | Menu | - | - | |
INPUT_FRONTEND_DOWN FrontendDown | Menu | - | - | |
INPUT_FRONTEND_LEFT FrontendLeft | Menu | - | - | |
INPUT_FRONTEND_RIGHT FrontendRight | Menu | - | - | |
INPUT_MP_TEXT_CHAT_ALL MpTextChatAll | Multiplayer | - | - | |
INPUT_PUSH_TO_TALK PushToTalk | Multiplayer | - | - | |
INPUT_MULTIPLAYER_INFO MultiplayerInfo | Multiplayer | - | - |
Showing 49 of 49 common controls. Hashes are shown in hex exactly as documented; the smaller number is the same value in unsigned decimal. Default keyboard and controller bindings are the game defaults and can be remapped by the player.
Read a control in Lua
Pass a hash from the table to a control native. padIndex is 0. Use IsControlJustPressed for a single tap and IsControlPressed for a held input.
-- Check a control every frame (padIndex 0, then the control hash).
-- INPUT_JUMP = 0xD9D0E1C0 (default: Space / X)
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
if IsControlJustPressed(0, 0xD9D0E1C0) then
print('Jump was pressed')
end
end
end)Show a prompt for a control
The RedM prompt natives attach a control hash to an on-screen button prompt with its own label.
-- On-screen prompt bound to a real control. -- INPUT_FRONTEND_ACCEPT = 0xC7B5340A (default: Enter / A) local prompt = PromptRegisterBegin() PromptSetControlAction(prompt, 0xC7B5340A) PromptSetText(prompt, CreateVarString(10, 'LITERAL_STRING', 'Interact')) PromptSetEnabled(prompt, true) PromptSetVisible(prompt, true) PromptSetStandardMode(prompt, true) PromptRegisterEnd(prompt)
Bind your own key with RegisterKeyMapping
To let players rebind a custom action, register a +command and -command pair against a default key. This is supported on current RedM builds; verify your server version if a binding never fires.
-- Bind your own command to a key with RegisterKeyMapping.
RegisterKeyMapping('+openmenu', 'Open my menu', 'keyboard', 'F5')
RegisterCommand('+openmenu', function()
print('F5 pressed')
end, false)
RegisterCommand('-openmenu', function() end, false)Where these come from
This page lists the most common controls only. RedM exposes hundreds more across contexts like vehicles, minigames, the camera and photo mode. For the complete documented list of input names, hashes and default bindings, use the reference below.
RedM controls, explained
What are RedM control hashes?+
In RedM (the Red Dead Redemption 2 multiplayer platform), every input is an "action" identified by a fixed hash rather than a raw key. Natives like IsControlPressed and PromptSetControlAction take that hash, so your code reacts to the action (for example Jump or Aim) no matter which key or button the player has bound to it.
How do I check if a control is pressed in RedM?+
Call IsControlPressed(padIndex, controlHash) for a held input or IsControlJustPressed(padIndex, controlHash) for a single tap, usually from a client-side loop. padIndex is 0, and controlHash is one of the values in the table above, such as 0x8FFC75D6 for Sprint. Use GetControlNormal for analog axes like movement or look.
What is the difference between a control hash and a keyboard key?+
A control hash names an in-game action; a keyboard key or controller button is the physical input mapped to it. Players can rebind keys in the settings, so checking the control hash keeps your script working after any remap. The default key and controller columns above are just the out-of-the-box bindings.
How do I show an on-screen prompt for a control?+
Build a prompt with PromptRegisterBegin, attach a control with PromptSetControlAction(prompt, hash), set its label using CreateVarString, then enable, make it visible and finish with PromptRegisterEnd. See the copyable prompt snippet above for a complete working example using a real control hash.
Are these control hashes official, and is this tool free?+
The names, hashes and default bindings here come from the community RedM controls reference linked above and were cross-checked against the CitizenFX control list. This is a common-controls subset, not the full list, so follow the Source link for every context. The tool is completely free with no login and runs entirely in your browser.
Related tools
All tools →More in FiveM & RedM Tools.

