Emoções são um componente essencial de qualquer experiência social. O EmoteBar módulo para desenvolvedores tem como objetivo fornecer aos jogadores uma maneira acessível e personalizável de facilitar interações sociais significativas.
Uso do módulo
Instalação
Para usar o módulo EmoteBar em uma experiência:
No menu Janela do Studio ou na barra de ferramentas do guia Início, abra o Caixa de Ferramentas e selecione a guia Loja do Criador.

Certifique-se de que a ordenação Modelos está selecionada e clique no botão Ver Todos para Categorias.

Localize e clique no tile Pacotes.
Encontre o módulo Emote Bar e clique nele, ou arraste e solte-o na visualização 3D.

Na janela Explorer, mova o modelo inteiro EmoteBar para ReplicatedStorage. Ao executar a experiência, o módulo começará a rodar.
Configuração
O módulo vem pré-configurado com 7 emoções e pode ser facilmente personalizado com suas próprias emoções e opções de exibição. Além disso, se o jogador possuir quaisquer emoções de eventos anteriores do Roblox, como Lil Nas X, Royal Blood ou Twenty One Pilots, essas emoções serão automaticamente adicionadas à lista de emoções disponíveis.
No ServerScriptService, crie um novo Script e renomeie-o para ConfigurarEmotes.

Cole o seguinte código no novo script ConfigurarEmotes. A configuração useDefaultEmotes de false substitui as emoções padrão e permite que você defina emoções personalizadas através da função setEmotes.
Script - ConfigurarEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "Olá",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "Aplaudir",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
Emoções mega
Uma emoção mega é formada quando múltiplos jogadores na mesma área realizam a mesma emoção ao mesmo tempo. À medida que mais jogadores se juntam, a emoção mega cresce. Quando os jogadores param de realizar a emoção, a emoção mega diminui até eventualmente desaparecer.

Tempo
O tempo de uma emoção é a velocidade com que ela é executada quando seu botão é pressionado uma vez. A velocidade padrão de uma emoção é determinada pelo seu defaultTempo. A velocidade de uma emoção pode ser aumentada ou diminuída ao pressionar seu botão mais rápido ou mais devagar.
Referência da API
Tipos
Emoção
Cada emoção é representada por um dicionário com os seguintes pares chave-valor:
| Chave | Tipo | Descrição |
|---|---|---|
| name | string | Nome da emoção, por exemplo, "Shrug". |
| animation | string | ID do ativo para a animação da emoção. |
| image | string | ID do ativo para a imagem da emoção na interface. |
| defaultTempo | number | Fator de velocidade padrão para reproduzir a animação da emoção. Por exemplo, um tempo de 2 fará a animação ser executada duas vezes mais rápido que a normal. Deve ser maior que 0. |
| isLocked | bool | Se a emoção está "bloqueada" de ser ativada. |
Enums
EmoteBar.GuiType
| Nome | Resumo |
|---|---|
| EmoteBar | Forma padrão onde as emoções são exibidas em uma barra na parte inferior da tela, separadas em "páginas" individuais. |
| EmoteWheel | Variante onde as emoções são exibidas em um anel quando um jogador clica ou toca em seu personagem. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
Funções
configureServer
configureServer(config: table)
Substitui as opções de configuração do lado do servidor padrão através das seguintes chaves/valores na tabela config. Esta função só pode ser chamada a partir de um Script e as mudanças serão automaticamente replicadas para todos os clientes.
| Chave | Descrição | Padrão |
|---|---|---|
| useDefaultEmotes | Se as emoções padrão fornecidas estão incluídas ou não. | true |
| useMegaEmotes | Ativa ou desativa o recurso de emoções mega. | true |
| emoteMinPlayers | Número mínimo de jogadores realizando a mesma emoção para contribuir para uma emoção mega. | 3 |
| emoteMaxPlayers | Número máximo de jogadores realizando a mesma emoção para contribuir para uma emoção mega. | 50 |
| playParticles | Ativa ou desativa as emoções que os jogadores estão realizando como partículas flutuantes acima de suas cabeças. | true |
| sendContributingEmotes | Ativa ou desativa o envio de um pequeno ícone de emoção para contribuir para a emoção mega. | true |
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({emoteMinPlayers = 2,playParticles = false,})
configureClient
configureClient(config: table)
Substitui as opções de configuração do lado do cliente padrão através das seguintes chaves/valores na tabela config. Esta função só pode ser chamada a partir de um LocalScript. Dependendo do valor de guiType, opções nas guias mencionadas também se aplicam.
| Chave | Descrição | Padrão |
|---|---|---|
| guiType | Controla qual forma a interface tomará para exibir as emoções (EmoteBar.GuiType). | EmoteBar |
| useTempo | Ativa ou desativa o recurso de tempo onde os usuários podem controlar quão rápido ou devagar suas emoções são tocadas ao ativar repetidamente a mesma emoção ritmicamente. | true |
| tempoActivationWindow | Quantidade de tempo, em segundos, que o usuário tem entre ativações sequenciais de uma emoção para contar como parte do tempo. | 3 |
| lockedImage | Imagem a ser exibida sobre emoções bloqueadas. | "rbxassetid://6905802778" |
LocalScript - Barra de Emoçõeslocal 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 - Roda de Emoçõeslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
setEmotes
setEmotes(emotes: table)
Define as emoções personalizadas a serem usadas. Estas serão adicionadas aos padrões se useDefaultEmotes for true, ou substituirão os padrões se useDefaultEmotes for false. Esta função só pode ser chamada a partir de um Script e as mudanças serão automaticamente replicadas para todos os clientes.
Veja Emote para a estrutura de cada emoção passada para esta função.
Script - ConfigurarEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "Olá",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "Aplaudir",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
setGuiVisibility
setGuiVisibility(visible: boolean)
Mostra ou oculta a interface de emoções. Esta função só pode ser chamada a partir de um LocalScript em um cliente específico.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.setGuiVisibility(false)
getEmote
Obtém uma Emote pelo nome. Retorna nil se a emoção não puder ser encontrada. Esta função só pode ser chamada a partir de um LocalScript em um cliente específico.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")
playEmote
playEmote(emote: Emote)
Reproduz a Emote dada e dispara o evento emotePlayed no servidor, se conectado. Esta função só pode ser chamada a partir de um LocalScript em um cliente específico.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")EmoteBar.playEmote(shrug)
lockEmote
lockEmote(emoteName: string)
Bloqueia a Emote com o nome dado. Esta função só pode ser chamada a partir de um LocalScript no cliente.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.lockEmote("Aplaudir")
unlockEmote
unlockEmote(emoteName: string)
Desbloqueia a Emote com o nome dado. Esta função só pode ser chamada a partir de um LocalScript no cliente.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.unlockEmote("Aplaudir")
Eventos
emotePlayed
Dispara quando qualquer cliente toca uma emoção. Este evento só pode ser conectado em um LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "tocou", emote.name)
end)
lockedEmoteActivated
Dispara quando um cliente clica em uma emoção bloqueada. Este evento só pode ser conectado em um LocalScript.
| Parâmetros | |
|---|---|
| emote: Emote | Emoção bloqueada que foi ativada. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.lockedEmoteActivated:Connect(function(emote)
print(Players.LocalPlayer, "clicou", emote.name)
end)