Filtro de chat (Veritédoux)

Veritédoux es el filtro de chat de Verité. Lee cada mensaje que envía un jugador y decide si ese mensaje debe llegar al resto del servidor. Cuando un mensaje infringe una regla, Verité lo detiene antes de que nadie más lo vea y le dice al remitente que su mensaje no fue entregado.

El filtro funciona automáticamente una vez que Verité está instalado. En el chat estándar de Minecraft no hay nada que configurar. Si tu servidor usa un plugin que intercepta o reestiliza el chat por sí mismo, consulta Integración de chat personalizado para que los mensajes sigan pasando por el filtro.

Esta página explica qué captura el filtro y cómo funcionan sus partes principales. Para las claves de configuración exactas y sus valores por defecto, consulta la Referencia de configuración.

Qué captura el filtro

Cada mensaje se clasifica en uno de estos resultados:

Resultado Significado
Limpio El mensaje se permite y se entrega con normalidad.
Bloqueado Contenido normal que infringe las reglas. El mensaje se descarta y el remitente ve el aviso de bloqueo.
Profanidad Palabrotas, juzgadas por idioma y dialecto. Desactivado por defecto para que los servidores que permiten palabrotas informales no se vean afectados.
Abuso Contenido dirigido a dañar o atacar a otra persona.
Autolesión Contenido que puede relacionarse con el suicidio o la autolesión. Se gestiona con cuidado, no como una infracción sancionable. Consulta Contenido de autolesión.

Cuando un mensaje se detiene, solo se notifica al remitente. El mensaje simplemente no se entrega a nadie más. Verité nunca mutea, expulsa ni banea a un jugador por su cuenta por un mensaje filtrado. Decidir qué hacer con un jugador marcado se deja a tu personal y a tus reglas de moderación.

El aviso de bloqueo y el aviso de repetición son configurables. Consulta chat.filter.block.message y chat.filter.repeat.message en la Referencia de configuración.

Idiomas admitidos

Verité comprueba el contenido en seis idiomas:

  • Inglés
  • Español
  • Francés
  • Portugués
  • Alemán
  • Italiano

Cada idioma puede activarse o desactivarse de forma independiente, y dentro de cada idioma eliges qué categorías se ejecutan: detección de autolesión, detección de abuso, detección de insultos y profanidad. La profanidad está desactivada por defecto para cada idioma.

El español, el francés y el portugués también admiten dialectos regionales, así que la profanidad se juzga contra la lista de palabras regional correcta en lugar de una sola lista genérica. El español cubre variedades como España, mexicano, argentino, chileno, colombiano y más; el francés cubre Francia y canadiense; el portugués cubre el europeo y el brasileño. Estos interruptores regionales viven bajo cada idioma en la configuración.

Verité averigua en qué idioma está escrita cada parte de un mensaje, así que un insulto se juzga por el idioma de las palabras que lo rodean. Esto importa en servidores multilingües donde un solo mensaje puede cambiar de idioma a mitad de camino.

Cobertura de idiomas hoy

La detección es más fuerte en inglés. Los demás idiomas están admitidos y pueden activarse, pero el inglés recibe la cobertura más completa.

Mensajes en otros idiomas

Dos ajustes especiales deciden qué ocurre con el texto fuera del conjunto admitido:

  • unknown.lang: un mensaje escrito en un idioma que Verité reconoce como no admitido.
  • undeterminable: un mensaje cuyo idioma no se puede averiguar (por ejemplo, mensajes muy cortos o símbolos puros).

Ambos se permiten por defecto. Si prefieres bloquear cualquier cosa que el filtro no pueda comprobar por contenido, puedes activar block.unsupported.languages en la sección avanzada. Con esto activado, los mensajes en un idioma que Verité aún no admite se bloquean.

Burlar la evasión

Los jugadores que quieren colar contenido prohibido por delante de un filtro a menudo lo disfrazan. Veritédoux normaliza un mensaje antes de la coincidencia para que los trucos comunes no funcionen. Cada una de estas pasadas puede alternarse en la configuración, y todas están activadas por defecto.

Truco Qué aspecto tiene Cómo lo gestiona Verité
Homóglifos Letras cirílicas, fullwidth o math-bold que parecen normales Plegadas de vuelta a letras planas antes de la coincidencia
Entidades Códigos de caracteres tipo HTML que sustituyen a letras Decodificados a las letras que representan
Ofuscación e!v!i!l o letras espaciadas Reparadas de vuelta a la palabra real
Segmentación Palabras pegadas sin espacios Divididas de vuelta en palabras reales
Fingerprinting Letras transpuestas, como intercambiar dos letras en un insulto Coincidido por huella de letras

La pasada de huella de letras solo se aplica a palabras de al menos seis letras, y se aparta para las palabras que un idioma permite legítimamente, así que las palabras ordinarias que resultan reordenarse en algo distinto no se capturan.

Las fuentes unicode decorativas se gestionan por separado. Activar keep.chat.readable bloquea los mensajes escritos mayormente en fuentes elegantes que se renderizan pero hacen el chat difícil de leer. Los emojis no se ven afectados por este ajuste.

Símbolos y emoji

Algún contenido no son palabras en absoluto: símbolos prohibidos, o emojis dispuestos para deletrear algo. Verité ejecuta una segunda pasada sobre los símbolos y emojis de un mensaje, comprobando símbolos sueltos, símbolos repetidos y combinaciones de emoji ordenadas o reflejadas. Esto captura el contenido de símbolos que una comprobación basada en palabras pasaría por alto. El texto plano se deja a las comprobaciones de idioma.

Detección de repeticiones y spam

Mensajes repetidos

La detección de repeticiones impide que un jugador inunde el chat con el mismo mensaje o uno casi igual. Está desactivada por defecto y se activa con block.repeat.messages.

Cuando está activada, Verité recuerda los mensajes recientes de un jugador y compara cada mensaje nuevo con ellos:

  • Las repeticiones exactas se capturan incluso cuando están disfrazadas. La comparación ignora las mayúsculas, los acentos y las letras repetidas, así que HELLO, hello y helllo cuentan todos como el mismo mensaje.
  • Las casi-repeticiones se capturan cuando un mensaje nuevo es lo suficientemente similar a uno reciente, aunque no sea idéntico. El grado de cercanía que cuenta como coincidencia lo establece block.repeat.similarity.threshold (un valor de 0 a 1, donde 1 significa idéntico).

Tú controlas cuántos mensajes recientes se recuerdan (block.repeat.history.size) y cuánto tiempo atrás un mensaje sigue contando como repetición (block.repeat.window.ms). Una repetición bloqueada muestra el aviso de repetición en lugar del aviso de bloqueo ordinario. Consulta la Referencia de configuración para cada clave de repetición.

Historial y servidores concurridos

Establecer tanto el tamaño del historial como la ventana de tiempo en ilimitados significa que el historial recordado de un jugador sigue creciendo. En un servidor concurrido, mantén al menos uno de los dos acotado.

Spam y anuncios

La detección de spam usa el tokenizador de Verité para detectar mensajes que se leen como estafas o anuncios y bloquearlos antes de que los jugadores los vean. Está desactivada por defecto y se activa con block.possible.spam.

Esta comprobación es opt-in porque ningún detector de spam es perfecto. Puede pasar por alto una estafa nueva, y ocasionalmente puede marcar un mensaje legítimo que resulta sonar muy promocional. Cuando está activada usa un modelo de estafa dedicado donde esté disponible, y recurre a una comprobación más ligera en caso contrario.

Contenido de autolesión

La detección de autolesión existe para proteger a las personas, no para castigarlas. Cuando un mensaje se captura como contenido de autolesión, Verité hace dos cosas:

  1. El mensaje no se entrega al resto del servidor.
  2. El remitente recibe un aviso de apoyo fijo en inglés.

El aviso de apoyo le dice al remitente que su mensaje no se envió, señala que puede reformularlo y volver a intentarlo si fue un error, ofrece un ánimo sin juicios para acudir a alguien de confianza o a un servicio local de crisis, aconseja contactar con los servicios de emergencia si hay un riesgo inmediato, y enlaza un directorio internacional de recursos de crisis en findahelpline.com.

Esto es una función de seguridad, no una infracción de moderación

La autolesión y el abuso se reportan por separado de las infracciones normales de las reglas precisamente para que puedan gestionarse de forma diferente. Recomendamos encarecidamente no castigar automáticamente a un jugador por un mensaje de autolesión. Trátalo como una señal de bienestar, no como una infracción del chat.

El aviso de autolesión no se puede cambiar

A diferencia del aviso de bloqueo ordinario, el mensaje de apoyo de autolesión es fijo y no configurable. Esto mantiene la orientación de crisis exacta y completa. El aviso se entrega siempre en inglés para que la redacción siga siendo fiable para todos.

La detección de autolesión se activa por idioma a través de self.harm.detection, que está activada por defecto para cada idioma admitido.

Configurar el filtro

Cada ajuste descrito aquí vive en la sección chat.filter de config.yml. Todas las claves de verdadero o falso y numéricas de aquí pueden leerse y cambiarse desde el juego con /verite config. Para la lista completa de claves y valores por defecto, consulta la Referencia de configuración.

Para desarrolladores

Si estás construyendo una integración, un sistema de chat personalizado o un Skript que necesita pasar texto por el filtro, consulta: