O Menu de Contexto do Avatar (MCA) facilita a interação entre os usuários. Quando o MCA é habilitado em seu jogo, um usuário pode se aproximar do personagem de outro usuário e clicar nele para abrir um pequeno menu com várias opções padrão. O jogador pode enviar um pedido de amizade, iniciar um chat privado, visualizar o perfil do usuário ou acenar.
Após habilitar o MCA em seu jogo, você pode personalizá-lo das seguintes maneiras:
- Programaticamente abrir e fechar o MCA para usuários específicos.
- Personalizar a aparência do MCA para criar uma interface de usuário única.
Habilitar o Menu de Contexto do Avatar
O Menu de Contexto do Avatar deve ser habilitado usando a opção StarterGui:SetCore() "AvatarContextMenuEnabled" em um LocalScript. O MCA é melhor utilizado em jogos onde não há um comportamento predefinido para clicar em outros usuários.
Use o seguinte exemplo de código para habilitar o MCA em um LocalScript:
-- Execute em um LocalScript, idealmente dentro de "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
Se você precisar detectar se o MCA está habilitado, você pode usar o seguinte código para retornar um booleano sobre o status atual do MCA:
---Retorna um booleano indicando se o MCA está atualmente habilitado.StarterGui:GetCore(AvatarContextMenuEnabled)
Abrir e fechar o MCA
Uma vez habilitado, você pode abrir e fechar o MCA programaticamente com StarterGui.
Para abrir programaticamente o MCA, use o seguinte código:
-- Use StarterGui:SetCore onde targetPlayer é um objeto Player válidoStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Para fechar programaticamente o MCA, use o seguinte código:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Opções do menu
Você pode adicionar e remover ações através da programação. Por padrão, o menu tem as seguintes opções:
| Opção do menu | Descrição |
|---|---|
| Amigo | Envia um pedido de amizade para o usuário selecionado. |
| Chat | Abre uma conversa privada com o usuário selecionado no chat do jogo. |
| Visualizar | Abre uma janela para inspecionar a aparência do usuário selecionado. |
| Acenar | Inicia uma animação de aceno para o usuário selecionado. |
Uma vez que o MCA esteja aberto, o usuário pode rolar e selecionar outros usuários no carrossel de seleção de personagens. Os personagens são ordenados com base na distância do personagem selecionado. O menu só é atualizado quando aberto e a lista de usuários disponíveis irá repetir ao rolar.

Adicionar opções ao menu
Uma vez habilitado, ações específicas do jogo podem ser adicionadas ao MCA. Por exemplo, um jogo pode permitir pedidos de troca, opções de adicionar a festa ou outras interações especiais.
O seguinte exemplo mostra como adicionar uma ação personalizada ao Menu de Contexto do Avatar:
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Conectar uma função a um "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- Neste ponto, você poderia chamar InvokeServer() em um RemoteFunction para alertar o servidor sobre a seleção
print("Evento MCA selecionado por " .. player.Name .. " em " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Adicione a opção MCA usando SetCore() com "AddAvatarContextMenuOption"
local options = {"Ação MCA Personalizada", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
Remover opções do menu
Você pode remover opções personalizadas e as opções padrão Adicionar Amigo, Chat, Visualizar e Acenar do MCA referenciando o nome da Ação personalizada ou o enum padrão Enum.AvatarContextMenuOption.
Use o seguinte código para remover uma opção do menu padrão e personalizada:
-- Remover a opção "Ação MCA Personalizada"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Ação MCA Personalizada")-- Remover a opção padrão "Amigo" referenciando o Enum AvatarContextMenuOption.FriendStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Personalizar a aparência do menu
Para mudar a aparência do Menu de Contexto do Avatar, chame StarterGui:SetCore() com a opção "AvatarContextMenuTheme", fornecendo uma tabela de parâmetros e valores para ajustar a aparência do menu.
A interface do usuário do MCA inclui as seguintes seções:

A. Etiqueta de Nome: O nome do usuário do personagem com o qual está interagindo.
B. Quadro de Botão: Contém todos os botões do MCA.
C. Botões: Botões individuais para as ações padrão ou personalizadas do MCA.
Parâmetros de aparência
Estes são os parâmetros de personalização do MCA:
Fundo
| BackgroundColor | Um Color3 para o fundo geral do MCA (mais útil quando não se usa uma imagem de fundo). |
| BackgroundTransparency | Valor de transparência (0–1) para o fundo geral do MCA (mais útil quando não se usa uma imagem de fundo). |
| BackgroundImage | Um ID de ativo válido de uma imagem para o fundo do MCA. |
| BackgroundImageTransparency | Valor de transparência (0–1) para a imagem de fundo. |
| BackgroundImageScaleType | Um enum Enum.ScaleType para escala de imagens de fundo. |
| BackgroundImageSliceCenter | Um Rect especificando o centro de uma imagem dividida em nove quando BackgroundImageScaleType é definido como Enum.ScaleType.Slice. |
Etiqueta de nome
| NameTagColor | Um Color3 para a barra mostrando qual jogador está sendo interagido. |
| NameUnderlineColor | Um Color3 para a linha fina entre a etiqueta de nome e os botões de ação. |
Quadro de botão
| ButtonFrameColor | Um Color3 para a seção (quadro) contendo os botões de ação. |
| ButtonFrameTransparency | Valor de transparência (0–1) para a seção do quadro de botões. |
Botão
| ButtonColor | Um Color3 para o fundo dos botões de ação do MCA. |
| ButtonTransparency | Valor de transparência (0–1) para a cor de fundo dos botões de ação. |
| ButtonHoverColor | Um Color3 para o estado "hover" dos botões de ação. |
| ButtonHoverTransparency | Valor de transparência (0–1) para a cor "hover" dos botões de ação. |
| ButtonUnderlineColor | Um Color3 para a linha fina que separa cada botão de ação. |
| ButtonImage | Um ID de ativo válido de uma imagem para o fundo dos botões. |
| ButtonImageScaleType | Um enum Enum.ScaleType para escala de imagens dos botões. |
| ButtonImageSliceCenter | Um Rect especificando o centro de uma imagem dividida em nove quando ButtonImageScaleType é definido como Enum.ScaleType.Slice. |
Texto
| Font | Um valor enum Enum.Font para a etiqueta de nome e texto dos botões. |
| TextColor | Um Color3 para todo o texto dentro do MCA. |
| TextScale | Um valor float para escalar os tamanhos de texto padrão de cada elemento. |
Várias imagens
| LeaveMenuImage | Um ID de ativo de uma imagem para o botão de fechar do MCA. |
| ScrollLeftImage | Um ID de ativo de uma imagem para o botão de "rolar para a esquerda" do carrossel. |
| ScrollRightImage | Um ID de ativo válido de uma imagem para o botão de "rolar para a direita" do carrossel. |
Personagem selecionado
| SelectedCharacterIndicator | O MeshPart que flutua acima da cabeça de um personagem para indicar que ele está selecionado. |
Tamanho e posição
| Size | Um UDim2 para o tamanho geral do MCA. |
| MinSize | Um Vector2 especificando o tamanho mínimo do MCA. |
| MaxSize | Um Vector2 especificando o tamanho máximo do MCA. |
| AspectRatio | Um valor float especificando a largura e altura relativa do MCA. |
| AnchorPoint | O AnchorPoint do MCA. |
| OnScreenPosition | Um UDim2 especificando a posição na tela do MCA (a posição onde ele se anima quando aberto). |
| OffScreenPosition | Um UDim2 especificando a posição fora da tela do MCA (a posição de onde ele se anima para/de quando aberto/fechado). |
Exemplo de personalização
O seguinte exemplo de código personaliza o tema do MCA usando alguns parâmetros básicos:
local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuTheme", {BackgroundImage = "",BackgroundTransparency = 0.5,BackgroundColor = Color3.fromRGB(111, 145, 242),NameTagColor = Color3.fromRGB(0, 0, 200),NameUnderlineColor = Color3.fromRGB(213, 233, 255),ButtonFrameColor = Color3.fromRGB(15, 24, 65),ButtonFrameTransparency = 0.2,ButtonUnderlineColor = Color3.fromRGB(213, 233, 255),Font = Enum.Font.SciFi})
