Scullyy / scully_emotemenu

An emote menu for the FiveM community.
GNU General Public License v3.0
76 stars 56 forks source link

Previews

Support:

For support join my discord here: https://discord.gg/scully

Installation Instructions:

Requirements

Features

Exports

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

Events

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

Keybinds

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.

Emote Binds

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.

Prop Extractor

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.

Additional Animation Options

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](docs/statebags/allowNSFWEmotes.md) 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.

Disclaimer & Credits

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.