Filtrado de texto

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

Aplicado a diversas fuentes y entradas, el filtrado de texto evita que los usuarios vean lenguaje inapropiado e información personal identificable como números de teléfono. Roblox filtra automáticamente las salidas de texto comunes, como los mensajes que han pasado por el chat de texto en el juego, pero tú eres responsable de filtrar cualquier texto mostrado que no controles explícitamente.

Escenarios de filtrado

El texto puede ser recopilado y/o mostrado a los usuarios en una variedad de escenarios, incluyendo:

  • Un juego que recopila la entrada de texto de los usuarios a través de entradas de TextBox, una GUI personalizada con botones como una interfaz de teclado/pad, o un modelo de teclado interactivo en el espacio 3D.

  • Un juego que genera palabras a partir de caracteres aleatorios y las muestra a los usuarios, ya que existe la posibilidad de que cree palabras inapropiadas.

  • Un juego que se conecta a un servidor web externo para obtener contenido que se muestra en el juego. A menudo no tendrás control sobre el contenido del sitio externo y un tercero puede editar la información.

  • Un juego que almacena texto como los nombres de las mascotas de los usuarios utilizando almacenamientos de datos, donde el texto almacenado podría incluir palabras inapropiadas que deberían ser filtradas al recuperarlas.

Proceso de filtrado

TextService:FilterStringAsync() filtra el texto en el juego tomando una cadena de texto y el UserId del usuario que creó el texto como entrada. Devuelve un objeto TextFilterResult que tiene dos métodos adicionales que puedes llamar en diferentes escenarios:

En el contexto de la entrada de TextBox, el siguiente ejemplo recopila la entrada en el evento FocusLost y la envía al servidor a través de un RemoteEvent. En el servidor, se filtra primero a través de FilterStringAsync() y luego GetNonChatStringForBroadcastAsync() con la intención de que el texto se muestre a todos los usuarios en un objeto del lado del servidor como un SurfaceGui en el mundo 3D.

Filtrado de entrada de texto - Script del cliente
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local textBox = script.Parent
textBox.ClearTextOnFocus = false
textBox.PlaceholderText = "..."
textBox.TextXAlignment = Enum.TextXAlignment.Left
textBox.TextScaled = true
-- RemoteEvent para enviar la entrada de texto al servidor para filtrado
local inputRemoteEvent = ReplicatedStorage:FindFirstChild("InputRemoteEvent")
-- Manejador de eventos para la pérdida de enfoque y la tecla enter presionada
local function onFocusLost(enterPressed, inputObject)
if enterPressed then
print("ENVIADO:", textBox.Text)
if inputRemoteEvent then
inputRemoteEvent:FireServer(textBox.Text)
end
end
end
textBox.FocusLost:Connect(onFocusLost)
Filtrado de entrada de texto - Script del servidor
local TextService = game:GetService("TextService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- RemoteEvent para recibir la entrada de texto del cliente para filtrado
local inputRemoteEvent = ReplicatedStorage:FindFirstChild("InputRemoteEvent")
local function getFilterResult(text, fromUserId)
local filterResult
local success, errorMessage = pcall(function()
filterResult = TextService:FilterStringAsync(text, fromUserId)
end)
if success then
return filterResult
else
warn("Error generando TextFilterResult:", errorMessage)
end
end
-- Se activa cuando el cliente envía la entrada desde el TextBox
local function onInputReceived(player, text)
if text ~= "" then
local filterResult = getFilterResult(text, player.UserId)
if filterResult then
local success, filteredText = pcall(function()
return filterResult:GetNonChatStringForBroadcastAsync()
end)
if success then
print("FILTRADO:", filteredText)
else
warn("¡Error al filtrar el texto!")
end
end
end
end
inputRemoteEvent.OnServerEvent:Connect(onInputReceived)
©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.