Caso de uso

Moderación con IA del chat de juegos, en todos los idiomas de tus jugadores

Los juegos online juntan en la misma sala a jugadores de muchos países, y el pique puede volverse acoso en segundos. VigiMod revisa cada mensaje en tu servidor de juego, leyendo los anteriores, en 26 idiomas, con reglas escritas para tu juego.

Qué lo hace difícil

¿Pique o acoso?

«GG, demasiado fácil» tras una partida es normal; el mismo jugador atacando a alguien por quién es, no. El contexto y las categorías separadas marcan la diferencia.

Salas globales

Una partida puede mezclar español, portugués, alemán e italiano. El modelo se entrenó con 26 idiomas.

Reglas de tu juego

Vender trampas, intercambiar cuentas o hacer spoilers de la nueva temporada son reglas de tu juego, no categorías genéricas.

Cómo funciona con VigiMod

  1. 1

    Tu servidor de juego recibe el mensaje y guarda los últimos mensajes de la sala o la partida.

  2. 2

    Los envía a VigiMod con el id del jugador, la sala como scope y tus reglas.

  3. 3

    Si el mensaje está marcado no se difunde; tu servidor puede avisar, silenciar o reportar al jugador.

Reglas para copiar

Envíalas en el campo rules: cada una vuelve con su propia puntuación, como una categoría integrada.

{
  "rules": {
    "no-cheats": "Nada de vender o compartir trampas, hacks o exploits",
    "no-trading": "Nada de intercambiar cuentas u objetos por dinero real",
    "no-spoilers": "Nada de spoilers de la historia de la nueva temporada",
    "no-boosting": "Nada de ofrecer boosting o venta de rangos"
  }
}

Ejemplo

Un servidor de chat en Node.js con WebSockets: cada mensaje se revisa antes de enviarlo a los demás jugadores.

JavaScript (Node.js)

// npm install ws  (Node 18+)
// A game chat server: each message is checked before it is sent to the room
import { WebSocketServer } from "ws";

const RULES = { "no-cheats": "No selling or sharing cheats, hacks or exploits" };
const recent = [];                       // the last messages of the room, sent as context
const wss = new WebSocketServer({ port: 8080 });

async function moderate(text, playerId) {
  const res = await fetch("https://api.vigimod.com/moderate", {
    method: "POST",
    headers: { "X-API-Key": process.env.VIGIMOD_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ text, context: [...recent], rules: RULES, user_id: playerId, scope: "room-1" }),
    signal: AbortSignal.timeout(2000),
  }).catch(() => null);
  return res?.ok ? res.json() : { flagged: false };   // slow or down: let the message through
}

wss.on("connection", (socket, req) => {
  const playerId = req.headers["x-player-id"] ?? "guest";   // use your own authenticated player id
  socket.on("message", async (data) => {
    const text = data.toString().slice(0, 2000);
    const result = await moderate(text, playerId);
    if (result.flagged) {
      socket.send(JSON.stringify({ type: "blocked", reason: "This message breaks the chat rules." }));
      return;
    }
    recent.push(text);
    if (recent.length > 10) recent.shift();
    for (const client of wss.clients) client.send(JSON.stringify({ type: "chat", playerId, text }));
  });
});

Consejos

  • Revisa los mensajes en tu servidor, nunca desde el cliente del juego: la clave API no debe ir dentro del juego.
  • Usa umbrales más altos para toxic en modos competitivos y más bajos en modos familiares: los umbrales cambian por petición.
  • Si la revisión falla o tarda, deja pasar el mensaje y regístralo, para que el chat no se detenga.

Preguntas

¿Puedo llamar a VigiMod directamente desde Unity o Unreal?
No pongas la clave API en la build del juego: llama a VigiMod desde tu servidor o backend, que luego decide qué difundir.
¿Modera el chat de voz?
No, solo texto. Si transcribes la voz a texto puedes revisar la transcripción como cualquier mensaje.
¿Qué tan rápido es?
Una llamada HTTP por mensaje. Ponle un timeout corto y deja pasar el mensaje si tarda; el endpoint batch revisa hasta 20 mensajes en una llamada.
¿Sirve para juegos con niños?
Añade la categoría opcional child_safety (beta), que marca intentos de captar a un menor, y envía esas marcas a una persona de tu equipo.

Pruébalo en tu comunidad

Crea una clave API gratuita en dos minutos. Sin tarjeta y sin periodo de prueba.