Asignar etiquetas de chat

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Este ejemplo demuestra cómo asignar etiquetas de chat a los jugadores en función de su membresía en un grupo. Las etiquetas de chat son una forma de identificar visualmente a un jugador en la ventana de chat y son útiles para indicar el rol o estado de un jugador.

Etiqueta de chat VIP añadida al nombre de usuario en la ventana de chat.

Debido a que los callbacks de chat de texto esperan un callback que no se detenga, intentar consultar el estado de membresía de un jugador en el callback TextChatService.OnIncomingMessage no se recomienda, ya que puede hacer que el sistema de chat se cuelgue o vuelva inresponsive.

En su lugar, establece un atributo para un jugador cuando se una al servidor. Establecer un atributo te permite reutilizar el estado del jugador en otras partes de tu juego, como permitir acceso a áreas particulares o proporcionar experiencias de bonificación.

  1. Crea un Script en ServerScriptService y añade el siguiente código:

    Server

    local Players = game:GetService("Players")
    -- Reemplaza 123456 con el ID del grupo que deseas verificar
    local groupID = 123456
    Players.PlayerAdded:Connect(function(player)
    local success, isInGroup = pcall(function()
    return player:IsInGroupAsync(groupID)
    end)
    if success and isInGroup then
    player:SetAttribute("IsVIP", true)
    else
    player:SetAttribute("IsVIP", false)
    end
    end)
  2. Crea un LocalScript en StarterPlayerStarterCharacterScripts y añade el siguiente código para mostrar una etiqueta [VIP] en la ventana de chat:

    Client

    local Players = game:GetService("Players")
    local TextChatService = game:GetService("TextChatService")
    TextChatService.OnIncomingMessage = function(message: TextChatMessage)
    local textSource = message.TextSource
    if textSource then
    local player = Players:GetPlayerByUserId(textSource.UserId)
    if player then
    if player:GetAttribute("IsVIP") == true then
    local overrideProperties = Instance.new("TextChatMessageProperties")
    overrideProperties.PrefixText = "[VIP] " .. message.PrefixText
    return overrideProperties
    end
    end
    end
    return nil
    end
©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.