Los emotes son un componente esencial de cualquier experiencia social. El módulo EmoteBar desarrollador tiene como objetivo proporcionar a los jugadores una forma accesible y personalizable de facilitar una interacción social significativa.
Uso del módulo
Instalación
Para usar el módulo EmoteBar en una experiencia:
Desde el menú Ventana de Studio o la barra de herramientas de la pestaña Inicio, abre el Caja de Herramientas y selecciona la pestaña Tienda de Creadores.

Asegúrate de que la clasificación Modelos esté seleccionada, luego haz clic en el botón Ver Todos para Categorías.

Localiza y haz clic en el mosaico Paquetes.
Localiza el módulo Emote Bar y haz clic en él, o arrástralo y suéltalo en la vista 3D.

En la ventana Explorador, mueve todo el modelo EmoteBar a ReplicatedStorage. Al ejecutar la experiencia, el módulo comenzará a ejecutarse.
Configuración
El módulo está preconfigurado con 7 emotes y se puede personalizar fácilmente con tus propios emotes y opciones de visualización. Además, si el jugador posee emotes de eventos anteriores de Roblox, como Lil Nas X, Royal Blood o Twenty One Pilots, esos emotes se agregarán automáticamente a la lista de emotes disponibles.
En ServerScriptService, crea un nuevo Script y renómbralo como ConfigureEmotes.

Pega el siguiente código en el nuevo script ConfigureEmotes. La configuración useDefaultEmotes de false anula los emotes predeterminados y te permite definir emotes personalizados a través de la función setEmotes.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "Hola",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "Aplausos",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
Mega emotes
Un mega emote se forma cuando varios jugadores en la misma área realizan el mismo emote al mismo tiempo. A medida que más jugadores se unen, el mega emote crece más grande. Cuando los jugadores dejan de realizar el emote, el mega emote se vuelve más pequeño hasta que eventualmente desaparece.

Tempo
El tempo de un emote es la velocidad a la que se reproduce cuando se toca su botón una vez. La velocidad predeterminada de un emote se determina por su defaultTempo. La velocidad de un emote puede aumentar o disminuir tocando su botón más rápido o más lento.
Referencia de la API
Tipos
Emote
Cada emote está representado por un diccionario con los siguientes pares clave-valor:
| Clave | Tipo | Descripción |
|---|---|---|
| name | string | Nombre del emote, por ejemplo, "Encogerse de Hombros". |
| animation | string | ID de activo para la animación del emote. |
| image | string | ID de activo para la imagen del emote en la GUI. |
| defaultTempo | number | Factor de velocidad predeterminado para reproducir la animación del emote. Por ejemplo, un tempo de 2 reproducirá la animación a el doble de su velocidad normal. Debe ser mayor que 0. |
| isLocked | bool | Si el emote está "bloqueado" para ser activado. |
Enums
EmoteBar.GuiType
| Nombre | Resumen |
|---|---|
| EmoteBar | Forma predeterminada donde los emotes se muestran en una barra en la parte inferior de la pantalla, separados en "páginas" individuales. |
| EmoteWheel | Variante donde los emotes se muestran en un anillo cuando un jugador hace clic o toca su personaje. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
Funciones
configureServer
configureServer(config: table)
Anula las opciones de configuración predeterminadas del servidor a través de las siguientes claves/valores en la tabla config. Esta función solo se puede llamar desde un Script y los cambios se replicarán automáticamente a todos los clientes.
| Clave | Descripción | Predeterminado |
|---|---|---|
| useDefaultEmotes | Si se incluyen o no los emotes predeterminados proporcionados. | true |
| useMegaEmotes | Habilita o deshabilita la función de mega emotes. | true |
| emoteMinPlayers | Número mínimo de jugadores realizando el mismo emote para contribuir a un mega emote. | 3 |
| emoteMaxPlayers | Número máximo de jugadores realizando el mismo emote para contribuir a un mega emote. | 50 |
| playParticles | Habilita o deshabilita los emotes que los jugadores realizan como partículas flotantes sobre sus cabezas. | true |
| sendContributingEmotes | Habilita o deshabilita el envío de un pequeño icono de emote para contribuir al mega emote. | true |
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({emoteMinPlayers = 2,playParticles = false,})
configureClient
configureClient(config: table)
Anula las opciones de configuración predeterminadas del lado del cliente a través de las siguientes claves/valores en la tabla config. Esta función solo se puede llamar desde un LocalScript. Dependiendo del valor de guiType, las opciones en las pestañas mencionadas también se aplican.
| Clave | Descripción | Predeterminado |
|---|---|---|
| guiType | Controla qué forma tomará la GUI para mostrar los emotes (EmoteBar.GuiType). | EmoteBar |
| useTempo | Habilita o deshabilita la función de tempo donde los usuarios pueden controlar qué tan rápido o lento se reproducen sus emotes activando repetidamente el mismo emote rítmicamente. | true |
| tempoActivationWindow | Cantidad de tiempo, en segundos, que el usuario tiene entre activaciones secuenciales de un emote para que cuente como parte del tempo. | 3 |
| lockedImage | Imagen para mostrar sobre emotes bloqueados. | "rbxassetid://6905802778" |
LocalScript - Barra de Emoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteBar,maxEmotesPerPage = 6,nextPageKey = Enum.KeyCode.Z,prevPageKey = Enum.KeyCode.C,})
LocalScript - Rueda de Emoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
setEmotes
setEmotes(emotes: table)
Establece los emotes personalizados a usar. Estos se agregarán a los predeterminados si useDefaultEmotes es true, o reemplazarán los predeterminados si useDefaultEmotes es false. Esta función solo se puede llamar desde un Script y los cambios se replicarán automáticamente a todos los clientes.
Consulta Emote para la estructura de cada emote pasado a esta función.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "Hola",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "Aplausos",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
setGuiVisibility
setGuiVisibility(visible: boolean)
Muestra u oculta la GUI de emotes. Esta función solo se puede llamar desde un LocalScript en un cliente específico.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.setGuiVisibility(false)
getEmote
Obtiene un Emote por nombre. Devuelve nil si no se puede encontrar el emote. Esta función solo se puede llamar desde un LocalScript en un cliente específico.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Encogerse de Hombros")
playEmote
playEmote(emote: Emote)
Reproduce el Emote dado y activa el evento emotePlayed en el servidor, si está conectado. Esta función solo se puede llamar desde un LocalScript en un cliente específico.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Encogerse de Hombros")EmoteBar.playEmote(shrug)
lockEmote
lockEmote(emoteName: string)
Bloquea el Emote con el nombre dado. Esta función solo se puede llamar desde un LocalScript en el cliente.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.lockEmote("Aplausos")
unlockEmote
unlockEmote(emoteName: string)
Desbloquea el Emote con el nombre dado. Esta función solo se puede llamar desde un LocalScript en el cliente.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.unlockEmote("Aplausos")
Eventos
emotePlayed
Se activa cuando cualquier cliente reproduce un emote. Este evento solo se puede conectar en un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "reprodujo", emote.name)
end)
lockedEmoteActivated
Se activa cuando un cliente hace clic en un emote bloqueado. Este evento solo se puede conectar en un LocalScript.
| Parámetros | |
|---|---|
| emote: Emote | Emote bloqueado que fue activado. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.lockedEmoteActivated:Connect(function(emote)
print(Players.LocalPlayer, "hizo clic en", emote.name)
end)