
Ved Emotive Reactions pairs configured player emotes with nearby NPC animations and optional text replies. Version 1.0.0 is framework-independent at its core, but the supplied configuration selects qb notifications. Standalone use therefore needs the notification setting reviewed rather than an assumption that every default works without QBCore.
Command mode and notification setup
Keep fxmanifest.lua, config.lua and the client and server directories in ved-emotivereactions, then use ensure ved-emotivereactions after any selected notification dependency. The default detection mode is command, with /react wave as an example. The configured emotes are wave, salute3 and dance.
NotificationFramework selects qb, esx, oxlib or the native fallback. Inspect client/utils.lua against the actual notification API installed on your server. The README asks ox_lib users to uncomment its initialization import in the manifest. Reduce the default debug logging for normal operation after testing.
NPC selection and rate limits
The defaults consider at most two eligible NPCs within seven metres, skip hostile or fleeing NPCs, and apply a ten-second per-NPC cooldown. Emote probabilities and reaction-zone multipliers mean a nearby NPC is not guaranteed to respond. Text can appear in chat, above the NPC or both.
The server checks the emote name, coordinate data type and a limit of five requests per 60-second reset window. ACE permission ved.emotivereactions.bypass skips that rate limit. Coordinates are still supplied by the client and are not compared with its actual server position; NPC selection and reactions run on the requesting client. These controls are not a general security or multiplayer-sync guarantee.
Review loop mode before enabling it
In client/emote_detection.lua, animDuration is declared locally inside the loop-mode branch but used after that branch when calculating the remaining cooldown. That later reference does not access the local variable and can produce a nil-arithmetic error in loop mode. Correct the scope and test repeated detection before switching away from command mode.
Also test invalid animation dictionaries, cancellation, NPC disappearance and interaction with existing emote scripts. Animation-loading waits have no timeout and the code clears ped tasks. Source checked on 10 September 2026 at revision 0f4cd049f781c5f266be130b8a9159308065badb; no gameplay, performance or synchronization test was performed.