For support join my discord here: https://discord.gg/scully
- add
ensure scully_emotemenu
to yourserver.cfg
-
Over 20 translations
-
Search option
-
Custom animations
-
Prop emotes
-
Consumable emotes
-
Animal emotes
-
Synchronized animations
-
Synchronized particle effects with optional automated feature and color support
-
Ability to hide certain menus along with NSFW, gang and social movement emotes
-
Easy to understand configuration file
-
Exports and events to integrate within other resources
-
Walk styles that save
-
Prop variation support
-
Hands up, Pointing and crouching
-
Ability to hide animations from the menu
-
Commands
-
Emote binding
-
Ability to have multiple emotes within an option to play a random one when selected
-
Ability to make certain synchronized emotes skip the request
-
Ability to add walk styles and expressions to your radial menu
-
Prop extractor for anticheat systems
-
Emote preview system by holding
E
while selecting an emote -
Compatibility with QBCore events
-
Ability to choose where you do your animation
Export Name | Parameter(s) | Type | Description |
---|---|---|---|
toggleMenu | None | Client | Toggle the emote menu |
closeMenu | None | Client | Close the emote menu |
getCurrentExpression | None | Client | Get the players current expression |
setExpression | String (Expression Name) | Client | Set the players expression |
resetExpression | None | Client | Reset the players expression to default |
getCurrentWalk | None | Client | Get the players current walk style |
setWalk | String (Walk Name) | Client | Set the players walk style |
resetWalk | None | Client | Reset the players walk style to default |
isInEmote | None | Client | Check if the player is currently playing an animation |
getLastEmote | None | Client | Get the emote a player last used |
registerEmote | Table (Emote Data) | Client | Register an animation from an external resource |
playRegisteredEmote | String (Emote Name) | Client | Play a registered animation |
playEmote | Table (Emote Data), Number (Variant) | Client | Play an animation |
playEmoteByCommand | String (Emote Command), Number (Variant) | Client | Play an animation using the command |
cancelEmote | None | Client | Stop playing an animation |
isLimited | None | Client | Check if the player is currently limited |
setLimitation | Boolean (Limited) | Client | Toggle player limitations |
listEmotes | String (Emote Type) | Client | List emotes from any category |
customNotifyFn | Function (Emote Notification) | Client | Set a custom notification function |
customHelpAlertFn | Function (Emote Help Alert) | Client | Set a custom help alert function |
Event Name | Parameter(s) | Type | Description |
---|---|---|---|
scully_emotemenu:toggleMenu | None | Client | Toggle the animation menu |
scully_emotemenu:closeMenu | None | Client | Close the animation menu |
scully_emotemenu:setExpression | String (Expression Name) | Client | Set the players expression |
scully_emotemenu:resetExpression | None | Client | Reset the players expression to default |
scully_emotemenu:setWalk | String (Walk Name) | Client | Set the players walk style |
scully_emotemenu:resetWalk | None | Client | Reset the players walk style to default |
scully_emotemenu:registerEmote | Table (Emote Data) | Client | Register an animation from an external resource |
scully_emotemenu:playRegisteredEmote | String (Emote Name) | Client | Play a registered animation |
scully_emotemenu:play | Table (Emote Data), Number (Variant) | Client | Play an animation |
scully_emotemenu:playByCommand | String (Emote Command), Number (Variant) | Client | Play an animation using the command |
scully_emotemenu:cancelAnimation | None | Client | Stop playing an animation |
scully_emotemenu:toggleLimitation | Boolean (Limited) | Client | Toggle player limitations |
scully_emotemenu:listEmotes | String (Emote Type) | Client | List emotes from any category |
Important Note:
By default the configured keybinds in the initial config.lua will be the default keys, however once the keybinds are set for a player, they'll stay and editing the keybinds in the config will change them for new players only. Previous players can set their own keybinds within Esc > settings > keybinds > fivem
.
To use emote binds you need to have the EnableEmoteBinds
option enabled in the config.lua, this will allow your players to bind emotes by opening the keybinds sub menu. Each option within the sub menu is binded to a key within Esc > settings > keybinds > fivem
that your players can change to their own preferred keys to play emotes.
We've addressed concerns about anticheat scripts causing unintended bans or kicks by introducing a prop extractor config option. This automates the creation of a prop_dump.lua
file in the resource folder, making it easier for server owners to manage props and mitigate false positives in the anticheat system. This enhancement aims to create a more secure and fair gaming environment for community members.
NSFW
Key: NSFW = true
Description: NSFW animations are any animation that wouldn't be considered safe for anyone under the age of 18 to see, if you don't run an 18+ community I suggest keeping the EnableNSFWEmotes
config option as false which will disable all animations with this added. You can also set EnableNSFWEmotes
to 'limited'
which will make it so a state bag needs to be set so NSFW animations can be used. Info on the export can be found here and I would personally suggest making it so the animations can only be used when inside a house or apartment.
Gang
Key: Gang = true
Description: Gang animations are animations that can be used to identify your affiliation with a certain group, these animations can be disrespectful to certain people or cause controversial topics to arise so a config option was added to prevent such a thing from happening which will disable all animations with this added.
SocialMovement
Key: SocialMovement = true
Description: The social movement animations are any kind of animation that represents a group who advocates for change in society such as the LGBTQ and BLM animations in which their communities advocate for liberation, some communities might feel as if people will use them in an ironic manner or to troll which would be disrespectful and some servers might be based in countries where it is shunned due to their bigoted religion so a config option was implemented to respect both these communities and religious beliefs which will disable all animations with this added.
Hide
Key: Hide = true
Description: If you would like to hide an animation from the menu and have it only accessible by commands, exports or events you can add this to the emote table.
BlockBinding
Key: BlockBinding = true
Description: If you would like to prevent a player from using the menu to bind a certain emote you can add this to the emote table. Keep in mind they can still bind using Cfx's rbind
console command.
Auto
Key: Auto = true
Description: If you would like particles to automatically play you can add this to the PTFX table within the emote table, you will need to have the EnableAutoPtfx
config enabled for this to work.
SkipRequest
Key: SkipRequest = true
Description: If you would like a shared emote to play without needing to request it you can add this to the emote table.
PedTypes
Key: PedTypes = {'dogs', 'cats', 'birds', 'marine_mammals', 'rodents', 'land_mammals', 'aquatic_animals'}
Description: If you would like an emote to require a certain ped type you can add this to the emote table.
Placement
Key: Placement = true
Description: If you would like to be able to select the location of your emote you can add this to the emote table.
All custom animations were added with permission from the creators. Credit to the following people for their animations / props and Dulpear for providing the original project that this is inspired by:
We extend our heartfelt gratitude to everyone who played a part in shaping the project, including the valuable contributions from:
Your involvement, regardless of the scale, has made a meaningful impact on the project's progress. We truly value the collaborative spirit and diverse skills that each contributor brings to the table. Thank you all for your contributions.