March 16, 2024: This was once again deleted/closed. I have reopened this repository.
This repository serves as my fork of rpemotes, with fixes and edits done following the privatization of rpemotes in 2024. It remains up for anyone to view changes made by me, as of February 8, 2024.
RPEmotes has been made public once again, which you can find here, which will likely be more up-to-date in the future.
The below information is left as is for you to view/read.
rpemotes-reborn is a community-driven FiveM emote menu allowing players to express themselves in roleplay with custom animations, countless facial expressions, walk styles, and props inspired by DullPear, then managed by TayMcKenzieNZ, and then later forked by Popcorn RP as "rpemotes-reborn" to make some minor fixes after TayMcKenzieNZ set all his repositories to private.
The original repository can be found here.
A partial archive of the original RP Emotes docs can be found here: https://web.archive.org/web/20231218223552/https://docs.rpemotes.com/
Unfortunately, some pages are missing.
- Multiple Translations ๐
- Search Function ๐
- Custom Animations with permission from the community ๐
- Persistent Facial Expressions via client KVP ๐คช
- Animal Emotes ๐ฉ
- Shared Dances ๐บ๐
- Persistent Walkstyles via client KVP ๐ถโโ๏ธ
- Standalone, QB-Core and ESX support!
- Persistent Disabling Of Idle Camera via KVP ๐ฅ
- Crouching ๐
- Crawling ๐
- Finger Pointing ๐
- Ragdoll ๐ต
- Hands up ๐
- Shared Particle Effects ๐จ
- QB-Core Framework & SQL Keybinding Support โ๏ธ
- Further support for shared and couple poses/animations ๐ซ
- Easily convert Menyoo to RPEmotes ๐
- Hide Adult Emotes ๐
- Hide Animal Emotes โ
- Easy To Understand Configuration File โ๏ธ
- Exit Emotes ๐
- Working Binoculars ๐
- News Camera ๐ค๐น
- Props Extractor for anti-cheat scripts ๐พ
Available in the following languages:
Albanian, Brazilian Portuguese, Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hungarian, Indonesian, Italian, Lithuanian, Norwegian, Persian, Polish, Romanian, Russian, Serbian, Sinhala, Slovenian, Spanish, Swedish, Turkish, Vietnamese
Languages can be selected and/or added in the config.lua.
All languages were translated or contributed by you, our amazing community with the odd exception of using Google Translate.
If you happen to find any incorrect translations or would like to add more languages, please feel free to make a pull request with the corrections.
When using our emote menu with other scripts, using the TriggerEvent('animations:client:EmoteCommandStart
won't do anything because the events do not exist. These have simply been replaced with the following exports:
exports["rpemotes"]:EmoteCommandStart(emoteName, textureVariation)
exports["rpemotes"]:EmoteCancel(forceCancel) โ forceCancel is optional
exports["rpemotes"]:CanCancelEmote(state)
exports["rpemotes"]:IsPlayerCrouched()
exports["rpemotes"]:IsPlayerProne()
exports["rpemotes"]:IsPlayerCrawling()
exports["rpemotes"]:IsPlayerPointing()
exports["rpemotes"]:IsPlayerInAnim()
exports["rpemotes"]:toggleWalkstyle(bool, message)
exports["rpemotes"]:toggleBinoculars()
exports["rpemotes"]:toggleNewscam()
-- bool to allow the user to change their walk style in the menu or not / message to show the user (optional, default is: "You are unable to change your walking style right now.")"
Having issues with players using emotes when/where they're not supposed to? Use the following where you needed. This would be somewhere like if you want to disable emotes in jail or when someone is handcuffed/escorted:
LocalPlayer.state:set('canEmote', false, true) -- stops emoting
LocalPlayer.state:set('canEmote', true, true) -- allows emoting
The keybind uses RegisterKeyMapping. By default the configured keybind in the initial config.lua will be the default key, however once the keybind is set for a user it'll remain and can be changed in the users settings under Esc > settings > keybinds > fivem
.
Menu key:
COMMAND: | ACTION: |
---|---|
F4 | Open / Close RPEmotes menu |
Server owners can change this in the config.lua
.
Alternatively, the player base can set their menu keybind to open rpemotes-reborn
Esc > settings > keybinds > fivem
- More keybinds are now using key mappings which means that they are now available in your FiveM settings to change (
FavKeybind
andRagdollKeybind
)
To use the SQL features, install the latest version of the oxmysql resource and enable the setting in config.lua
SqlKeybinding = false,
If you do not want to use the SQL features keep the oxmysql
region in fxmanifest.lua commented out.
Alternatively, you can use the keybind command that comes with FiveM without having to use SQL, by entering the following into F8:
bind keyboard "Yourbutton" "e youremote"
. To remove the keybind, type "unbind keyboard "Yourbutton"
.
Pressing 'LEFT ALT' on the keyboard allows players to scroll through the menu one by one, or by 10.
Alternatively, players can use the SHARE
button on an Xbox controller or OPTIONS
button on a Playstation controller.
- To enable ragdoll, change
RagdollEnabled = false,
to true in config.lua.
Much like the menu key, RagdollKeybind
is also using RegisterKeyMapping. It is currently set to U
by default (server side) however can be set to the player's preferred keybind in the FiveM keybinds setting found in the settings menu within the Esc Menu.
- New setting:
RagdollAsToggle
, this will make either the ragdoll a toggle or a hold key
Once enabled, players can press B
on the keyboard to enable standalone finger pointing, and Y
to put their hands up, without the need for unnecessary frameworks or "small resources".
Much like everything else in the menu, server owners can change these keybinds to their own preferences.
COMMAND: | ACTION: |
---|---|
B | Toggle Finger Pointing |
Y | Toggle Hands Up |
/pointing | Toggle Finger Pointing |
/handsup | Toggle Hands Up |
Crouching:
RIGHT CONTROL. Players can move forward, back, left, and right as well as turn around. Press SPACEBAR to switch from stomach to back. Pressing the RIGHT CONTROL key while running will have the player "dive into" a crouching animation.
Crawling:
Server owners can opt in to either overriding the stealth/action animation when pressing the LEFT CONTROL keybind or have players tap LEFT CONTROL twice to switch from stealth to crouch (when enabled in the config.lua file)
COMMAND: | ACTION: |
---|---|
LEFT CONTROL | Toggle Crouching On / Off |
RIGHT CONTROL | Toggle Crawling On / Off |
/crouch | Toggle Crouching On / Off |
/crawl | Toggle Crawling On / Off |
Moods and walk styles can be set from the menu. These will save to your character and reapply when exiting a vehicle, or loading back into the server as they are saved via client-side KVP.
COMMAND: | ACTION: |
---|---|
F4 | Opens RPEmotes menu |
/walks | See A List Of Walkstyles In Chat |
/moods | See A List Of Walkstyles In Chat |
/reset mood | Remove preferred mood and set default |
/reset walk | Remove last walk style and set default |
No Idle Cam allows players to disable the idle camera animation on foot and in the vehicle, making RP scenarios, streaming on Twitch, or just general gameplay just a little more enjoyable.
COMMAND: | ACTION: |
---|---|
/Idlecamon | deactivates the native |
/idlecamoff | enables the native |
COMMAND: | ACTION: |
---|---|
/binoculars | starts the binoculars |
L ALT | Toggle between night, heat, and normal visions |
G | Show or hide the instructions |
BACKSPACE | Exit the binoculars |
COMMAND: | ACTION: |
---|---|
/newscam | starts the News Camera |
H | Edit Text |
L ALT | Toggle between vision modes |
G | Show or hide the instructions |
BACKSPACE | Exit News Camera |
Players can search for an emote (as long as the search is enabled) and press LEFT SHIFT and CAPLOCKS on their keyboard to add it to their 'Favorites'. Pressing CAPLOCKS will toggle the emote.
Alternatively, you can use the ๐ Favorite menu to find an emote and press enter.
Exit Emotes are used to make canceling an animation more smoother and dynamic, such as getting up off a chair or throwing a cigarette out instead of dropping it.
You can add your own Exit Emotes under AnimationListCustom.lua
's new CustomDP.Exits = {}
array.
Below is an example of how this would look:
},
["sit"] = {
"anim@amb@business@bgen@bgen_no_work@",
"sit_phone_phoneputdown_idle_nowork",
"Sit",
AnimationOptions = {
EmoteLoop = true,
ExitEmote = "getup",
ExitEmoteType = "Exits"
}
},
The ExitEmote calls for the 'getup' emote, which is noted as the following:
["getup"] = {
"get_up@sat_on_floor@to_stand",
"getup_0",
"Get Up",
AnimationOptions = {
EmoteDuration = 2000
}
}
}
Adult Emotes can be hidden from the menu by setting AdultEmotesDisabled
to true
in the config.lua file.
This will completely conceal the emotes from the lists (Emotes, Shared Emotes, etc) at startup making them unusable.
The emotes that are concealed, are the ones flagged in the animation list with AdultAnimation
. You can see how it is done with fspose
.
Alternatively, you can also hide animal emotes.
QBCore integration to match their fork of dpemotes
- Config option that supports the QB Framework in their fork of the original dpemotes.
If youโre using qb-core, you can now set
Framework = "qb-core",
in the config file, otherwise, leave it as
Framework = false,
You may need to alter some code within qb-core to work with RPEmotes.
Many people have expressed concerns over anti-cheat scripts kicking or banning their community members due to the fact rpemotes-reborn uses props and anti-cheats detecting said props being spawned.
To make server owners' jobs a little easier, we have added a prop extractor command that you can enter into the server console which will automate a file inside the rpemotes-reborn resource folder appropriately named, prop_list.lua
.
emoteextract
Available output formats:
1 - 'prop_name',
2 - "prop_name",
3 - prop_name
Command usage example: emoteextract 1
-
Add
ensure rpemotes
to yourserver.cfg
-
Download the latest recommended artifacts for Windows or for Linux
-
Enforce gamebuild to latest build for all emotes and props to work as intended.
Onesync Infinity is required for the particle effects to work as intended This can be done via txadmin or your localhost .bat file.**
For localhost servers, comment out onesync from your server.cfg and add the following to your .bat
file:
+set onesync on +set onesync_enableInfinity 1 +set onesync_enableBeyond 1 +set onesync_population true
You can put this before your gamebuild enforcement, aka +set sv_enforceGameBuild XXXX
-
Set the desired language and settings in the config.lua under
MenuLanguage = 'en',
-
Qb-Core server owners, set
Framework = 'qb-core'
in the config file, otherwise leave it as false. -
To use the SQL features, install the oxmysql resource then open
keybinds.lua
in RPEmotes. If you do not want to use the SQL features, comment out theoxmysql
region in fxmanifest.lua.
Alternatively, you can use the keybind command that comes with FiveM without having the SQL, by entering the following into F8:
bind keyboard "Yourbutton" "e youremote"
. To remove the keybind, type "unbind keyboard "Yourbutton"
.
- Type
/refresh
and/ensure rpemotes
into your chat resource, or simply restart your server
Emotes will work with either SyncOffset
or Attachto
.
-
If it is with
SyncOffsetFront
orSyncOffsetSide
, then the offset used is the one of the emote the player started.
For example, if player one starts the emotehandshake
which hasSyncOffsetFront
, then player one will have theSyncOffsetFront
but not the other player. -
If it is with
Attachto
, then it'll either be player one's data used for attaching or player two's data.
For example, if player one starts the emote carry, then the other player will be attached but not the player one because Attachto is set incarry2
and notcarry
. -
If player one starts the emote
carry2
, then player one will be attached and not the other player. it's the player who starts the animation who will in most cases be moved
Special case, if both emote have the Attachto
then only the player who started the emote will be attached.
You can find a list of ped bones to attach the other player here: Ped Bones or alternatively, if the link is down for some reason, you can check here
Using the websites provided above, enter the bone ID, ie 1356
and not 111
, which is the Bone Index.
Understandably, this can be confusing for some people. We suggest using the Attachto
approach.
REQUIRES ONESYNC INFINITY
Particle effects can be found using the DurtyFree GTA V Dump. You will need to add the particle asset, name, and placement. Placement is done via XYZ, Pitch, Roll, Yaw, and scale.
Onesync is required for them to work across all clients.
Big thanks to DurtyFree for his amazing work.
PtfxPlacement = {
-0.15, -- X
-0.35, -- Y
0.0, -- Z
0.0, -- ROTATION X
90.0, -- ROTATION Y
180.0, -- ROTATION Z
1.0 -- SCALE
},
By default, the main prop will share its coordinates with the particle effect, so just put 0.0 for the particle effects and you will be good to go.
If no prop is used in the animation or you require the particle effect to be in a different location, use PtfxNoProp = true
, and 0.0 will 9/10 times be the human peds' stomach; you can then offset your coordinates based on that with the first 3 entries being XYZ, and the last 3 being rotation XYZ.
Alternatively, you can use the PtfxBone =
AnimationOption to attach the PTFX to the ped's bone, similarly to how you attach props.
Using Menyoo, spawn down a tennis ball and attach it to a human, by default menyoo will attach it to the SKEL_ROOT bone (stomach), so from that, what we can do is either offset the coordinates, say, up to the human ped's mouth, or change the bone altogether. Once we've got it correct, we can transfer those coordinates over to RPEmotes, and tah dah, we have our Ptfx Placement.
Because the menu gets updated frequently, the files get overwritten. To avoid this, you can add your own / downloaded animation files (.ycd)
inside of a newly created folder, give it a name, and place it in the rpemotes\stream\[Custom Emotes]
folder.
Add your animation code to the AnimationListCustom.lua
and make a backup of this file, call it BackUpAnimationListCustom.lua
.
Whenever an update is released, rename BackUpAnimationListCustom.lua
to AnimationListCustom.lua
, click yes to overwrite, and you're good to go.
It is also a good idea to keep a backup of your config file. Below is an example:
- Thank you to DerDevHD for the insight on deleting scenario props.
All custom animations and props were added with permission from the creators.
All animation creators have specifically asked that their content remains free and that the RPEmotes team and community do not try to profit from them, claim them as their own, or reupload them anywhere else.
A huge thank you to the following people for their amazing contributions to the menu ๐ซถ๐ป :
- Thank you to TayMcKenzieNZ for maintaining and updating RP emotes and managing the RP Emotes community
- A huge thank you to Kibook for the addition of the Animal Emotes sub menu
- Thank you to AvaN0x for reformatting and assisting with code, additional features, and figuring out shared particle effects
- Thank you to Mads for joining the team as Co-Developer
- Thank you to Mathu_lmn for joining the team as Co-Developer
- Thank you to Tigerle for providing the additional code required to make Shared Emotes work to its full extent
- Thank you to SMGMissy for assisting with custom pride flags and how to stream them
- Thank you to MissSnowie for the Explicit Usage Rights Agreement to add free custom animations either publicly available or on their discord and for the motivational and overall moral support
- Thank you to GeekGarage for their knowledge, time, and dedication, helping to bring new and exciting features to the menu
- Thank you to Smokey for the Explicit Usage Rights Agreement to add free custom animations either publicly available on their discord
- Thank you to BzZzi for the Explicit Usage Rights Agreement to add free donuts, croissants and fire torch props
- Thank you to Natty3d for the Explicit Usage Rights Agreement to add free lollipop props
- Thank you to northsqrd for adding the search function, Animal Emotes config, mobile phone prop texture variants, and general contributions
- Thank you to crusopaul and Eki for discussing KVP and initializing it to the menu for persistent walk styles
- Thank you to Amnilka for the Explicit Usage Rights Agreement to add free custom animations either publicly available or on their discord
- Thank you to LittleSpoon for the Explicit Usage Rights Agreement to add free custom animations either publicly available or on their discord
- Thank you to Pupppy for the Explicit Usage Rights Agreement to add free custom animations either publicly available or on their discord
- Thank you to SapphireMods for the Explicit Usage Rights Agreement to add free custom animations either publicly available or on their discord
- Thank you to QueenSisters Animations for the Explicit Usage Rights Agreement to add free custom animations either publicly available or on their discord
- Thank you to Kri's Graphic House for the custom banners
- Thank you to !MWooM#0597 on Discord for the custom banners
- Thank you to BoringNeptune for the custom dance emotes
- Thank you to CMG Mods for the custom emotes
- Thank you to prue้ข for being a great friend and providing us with exclusive custom animations
- Thank you to PataMods for the custom props
- Thank you to Crowded1337 for the custom Gucci bag. I have removed the Gucci logo to comply with Rockstar Games & TakeTwo Interactive
- Thanks to EnchantedBrownie for the custom animations
- Thanks to Copofiscool for adding a toggle to the Favorite Keybinds
- Thank you to iSentrie for additional code, support, and joining the RPEmotes project
- Thank you to Chocoholic Animations for the custom animations
- Thank you to CrunchyCat for the custom animations
- Thank you KayKayMods for the custom props
- Thank you to MonkeyWhisper and Project Sloth for the custom props
- Thank you to Brummieee for the custom props
- Thank you Dark Animations for the partnership and custom animations. You the goat ๐
- Thank you Chico for implementing natives to reapply persistent moods and walk styles for ESX and QB-Core frameworks
- Thank you -EcLiPsE- for allowing me to implement Improved Prop Sets and GTA Online Biker Idle Anims
- Thank you MrWittfor the custom animations and partnership
- A huge thank you to AdoredRose for assisting with animations
- Thank you Vedere for the custom props
- Thank you to DRX Animations for the custom animations and partnership
- Thank you to VNSIanims for the custom animations and partnership
- Thank you to PNWParksFan for the custom props
- Thank you to you, the community for being patient, showing love and appreciation, and for providing translations.
- Custom LSPD police badge by LSPDFR member Sam
- LSPD reskinned badge by GTA5Mods user Sladus_Slawonkus
You played a big role in making this script what it is today and we could not do it without you ๐