😎EMOTE








A complete emote & animation system for RedM. Standalone by default, compatible with VORP, QBR-Core, RSG-Core and RedEM:RP. No SQL, no external dependencies for the core features.
Features at a glance
Full emote menu with categories (Animations, Emotes, Shared, Dances, Weapon, Walking)
Instant command play via
/e <name>Search bar (by name or command)
Favorites bar with drag-and-drop ordering
Sequences: chain multiple emotes with custom durations
Numpad quick binds (10 slots)
Shared / duo emotes (accept/decline prompt)
Placement mode with a 3D gizmo (move + rotate the emote on the ground)
Ragdoll, auto-scenario and cancel shortcuts
Multi-language support (no SQL, KVP-based persistence)
Framework-agnostic (auto-detect VORP / QBR / RSG / RedEM:RP / standalone)
Installation
Drop
rex_animationinto yourresources/folder.Add
ensure rex_animationto yourserver.cfg.(Optional) If you use the gizmo placement, also ensure
object_gizmois started.Edit
config/config.luaif you want to change the language, commands, keys or framework.
No database, no extra resources required for the core features.
Commands
/emote
Open the full emote menu (configurable, default).
/fav
Open the compact floating favorites panel.
/e <name>
Play an emote directly by its command name (e.g. /e sleep).
/e c
Cancel the current animation (also /e stop or /e cancel).
All command names are configurable in config/config.lua:
Keyboard shortcuts
Menu shortcuts
Bound to the configured keys and polled client-side (works on RedM where RegisterKeyMapping does not).
F2
Open the emote menu
Config.OpenMenuKey
F3
Open the favorites panel
Config.OpenFavKey
You can use any key from F1 to F12, or set the value to false to disable the shortcut:
In-game shortcuts
X
Stop the current animation
F6
Play the nearest scenario automatically (auto-anim)
L
Toggle ragdoll
Numpad quick binds
10 slots (Numpad 0 - 9). Each slot can be bound to any emote command from the menu (Settings / Binds tab).
Press
Numpad 1→ plays the emote assigned to slot 1 (equivalent to/e <cmd>).Binds are saved per-player (KVP) and persist across sessions.
Disabled while the menu is open, to avoid conflicts with input typing.
The emote menu
Browse tabs for each category (Animations, Emotes, Shared, Dances, Weapon, Walking).
Live search bar (name or command).
Left click on a card → play the emote.
Star icon → add / remove from favorites.
Right click on a card → placement mode (see below).
Grip icon → drag a card straight into the favorites bar.
Favorites bar
Accessible from the bottom of the menu, or in its own floating panel via
/favorF3.Drag-and-drop to reorder favorites.
Click a favorite to instantly play the emote / sequence.
Sequences can also be added to favorites (star button on the sequence card).
Placement mode (gizmo)
Right click on any emote icon to enter placement mode:
A transparent clone of your character appears in front of you, already playing the selected emote.
The
object_gizmohandles let you:Move the clone (red / green / blue axes).
Rotate the clone (circular handles).
Scenario-based animations (sleep, sit, bar, lean, …) keep playing while the clone is moved or rotated.
Confirm the placement → your character walks to the validated spot and plays the emote at that exact position and heading.
Tunable values in config/config.lua:
Sequences
Chain several emotes into a single playable macro.
Open the menu → Sequences tab.
Type a sequence name.
Add each step: pick an emote and set its duration in seconds.
Click Save.
Play it back from the Saved sequences list, or click the star to pin it to the favorites bar.
Sequences are stored locally (KVP) and persist across sessions. Removing a sequence automatically cleans it up from the favorites.
Shared / duo emotes
Some emotes (handshake, hug, …) are tagged as shared and require another player.
Player A plays a shared emote from the Shared tab.
The nearest player within range receives a prompt.
Press
E(INPUT_DYNAMIC_SCENARIO) to accept,R(INPUT_RELOAD) to decline.Both players synchronize on the animation.
Tunable values:
Translations (no SQL)
All UI text and notifications come from Lua locale files, loaded on resource start.
Files live in
locales/(en.lua,fr.lua, …).Select the active language in config:
To add a new language: copy
en.lua, translate each string, then setConfig.Localeto your new key.
All user data (favorites, sequences, numpad binds, UI settings) is persisted through RedM's native KVP (key-value pair) storage — no database is needed.
Framework support
Animations, menu, favorites, sequences, placement and shortcuts are 100% framework-agnostic. The only framework integration is for usable inventory items (e.g. the pocket watch).
Auto-detection order: VORP → QBR-Core → RSG-Core → RedEM:RP → standalone.
Set
"auto"to let the resource detect the framework.Force a specific framework if you want to bypass auto-detection.
Set
"standalone"(or leaveConfig.UsableItemsempty) to disable item registration. Animations still work everywhere via/eand the menu.
To register more items, add entries to Config.UsableItems and add a matching handler in client/item.lua.
Configuration summary
Main options in config/config.lua:
Config.Locale
Active language (en, fr, …).
Config.Framework
Framework mode (auto / vorp / qbr / rsg / …).
Config.UsableItems
Inventory items registered through the framework.
Config.OpenMenu
Command that opens the main menu.
Config.OpenFav
Command that opens the favorites panel.
Config.OpenMenuKey
Keyboard shortcut for the main menu.
Config.OpenFavKey
Keyboard shortcut for the favorites panel.
Config.Menu
Category order in the menu.
Config.AnimationMenu
Full list of animations, grouped by category.
Config.SharedEmote*
Range, timeout and controls for shared emotes.
Config.Placement*
Placement camera, limits, gizmo options.
Config.DebugScenarios
Verbose scenario logs in the server console.
Credits
Built for RedM (RDR2).
NUI: HTML / CSS / JavaScript.
Persistent storage: RedM KVP (no SQL).
Last updated