PcoWSkbVqDnWTu_dm2ix
We use cookies on this site to enhance your user experience

Aug 23 2019, 2:23 PM PST 5 min

In addition to the default articles/Lua Chat System|chat and opt-in articles/Avatar Context Menu|Avatar Context Menu, Roblox players can express what they’re feeling through emotes.

Depending on the platform, the emote menu can be opened as follows:

Platform Method
PC / Mobile Click/tap the button from the top menu bar.
Console Access it from the radial menu.

Controlling the Emotes Menu

Customizing the Menu

The emotes menu can be customized by loading and “equipping” emotes from the catalog. In a script, this can be done by calling HumanoidDescription/SetEmotes|SetEmotes() on a player’s HumanoidDescription object. Once set, specific emotes can be equipped via the HumanoidDescription/SetEquippedEmotes|SetEquippedEmotes() API.

Consider the following example which may be placed in a LocalScript within StarterCharacterScripts:

local Players = game:GetService("Players")
local humanoid = Players.LocalPlayer.Character.Humanoid
local humanoidDescription = humanoid.HumanoidDescription

-- Load custom emotes
local emoteTable = {
	["Hello"] = {3576686446},
	["Stadium"] = {3360686498},
	["Tilt"] = {3360692915},
	["Shrug"] = {3576968026},
	["Salute"] = {3360689775},
	["Point"] = {3576823880}
}
humanoidDescription:SetEmotes(emoteTable)

-- Equip emotes in a specific order
local equippedEmotes = {"Hello", "Stadium", "Tilt", "Shrug", "Salute", "Point"}
humanoidDescription:SetEquippedEmotes(equippedEmotes)
Setup Notes
  • The key names such as ["Shrug"] or ["Salute"] within emoteTable are customizable and will appear in the center of emotes menu as players browse its options.
  • The order of key names in the equippedEmotes table define the order in which menu emotes will appear, in clockwise order from slot 1 (top of the wheel).
  • The emotes menu contains 8 slots. If you don't have 8 custom emotes to load, consider repeating some keys to populate the equippedEmotes table with 8 total entries; this will ensure there are no empty slots in the menu.

Opening/Closing the Menu

To forcibly open or close the emotes menu, call GuiService/SetEmotesMenuOpen|GuiService:SetEmotesMenuOpen() with a boolean value of true or false.

-- Open the emotes menu
local GuiService = game:GetService("GuiService")
GuiService:SetEmotesMenuOpen(true)

Disabling the Menu

The emotes menu can be disabled via the StarterGui/SetCoreGuiEnabled|StarterGui:SetCoreGuiEnabled() API. Note, however, that disabling the menu will not prevent emotes from being performed with an articles/Lua Chat System|admin command.

local StarterGui = game:GetService("StarterGui")
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.EmotesMenu, false)
Disabling User Emotes

In addition to disabling the menu, you can disable loading of user-owned emotes by turning off the UserEmotesEnabled option within StarterPlayerCharacter. Note that this property can only be set in Studio and cannot be set by scripts at runtime, although it can be read by scripts.


Playing Emotes

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

local Players = game:GetService("Players")
local humanoid = Players.LocalPlayer.Character.Humanoid

humanoid:PlayEmote("Shrug")
Tags:
  • emote
  • avatar
  • emotion
  • expression