Emotes

Emotes are expressive character animations that are accessible by using chat commands ("/e cheer") or by accessing the emotes menu on the top right of any experience. All users have access to default emotes, such as dance, point, and cheer. Additional avatar emotes can be purchased and equipped from the Avatar Shop.

In your experience, you can perform the following emote customizations:

Emotes Menu

You can open and close a user's emote menu manually, customize the menu to display specific emotes, or disable the menu completely.

Opening and Closing

To manually open or close a player's emote menu, call GuiService:SetEmotesMenuOpen() with a boolean value of true or false.

The following code sample will open the emotes menu for the user:


1-- Open the emote Menu
2local GuiService = game:GetService("GuiService")
3GuiService:SetEmotesMenuOpen(true)
4

If you need to detect whether the emotes menu is open, call GuiService:GetEmotesMenuOpen(). This returns a boolean indicating the menu's current state.

Adding and Removing Emotes

Customize the emote menu by setting emotes from the catalog and then equipping emotes to a Humanoid. Set emotes with the HumanoidDescription:SetEmotes() method and equip up to 8 emotes to the emotes menu using HumanoidDescription:SetEquippedEmotes().

Use the following code sample in a LocalScript within the StarterCharacterScripts folder to set and equip emotes in your experience:


1local Players = game:GetService("Players")
2local humanoid = Players.LocalPlayer.Character.Humanoid
3local humanoidDescription = humanoid.HumanoidDescription
4
5-- Set custom emotes within a table
6local emoteTable = {
7["Hello"] = {3576686446},
8["Stadium"] = {3360686498},
9["Tilt"] = {3360692915},
10["Shrug"] = {3576968026},
11["Salute"] = {3360689775},
12["Point"] = {3576823880}
13}
14humanoidDescription:SetEmotes(emoteTable)
15
16-- Equip emotes in a specific order
17local equippedEmotes = {"Hello", "Stadium", "Tilt", "Shrug", "Salute", "Point"}
18humanoidDescription:SetEquippedEmotes(equippedEmotes)
19

Disabling

Disable the emotes menu with StarterGui:SetCoreGuiEnabled(). Disabling the emotes menu will not prevent emotes from being performed with a chat command.

The following sample code will disable the emotes menu:


1local StarterGui = game:GetService("StarterGui")
2StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.EmotesMenu, false)
3

In addition to disabling the menu, you can disable loading of user-owned emotes by setting the StarterPlayer.UserEmotesEnabled property within StarterPlayer > Character to false. This specific property can only be set in Studio and cannot be set by scripts.

Playing Emotes

To manually play an emote that a character has in its HumanoidDescription, call Humanoid:PlayEmote(), passing the string name of the emote. This call will return true to indicate that the emote was played successfully, or false otherwise.

Use the following code sample to play the Shrug emote:


1local Players = game:GetService("Players")
2local humanoid = Players.LocalPlayer.Character.Humanoid
3
4humanoid:PlayEmote("Shrug")
5