Comandos y permisos
El comando principal es /chatshield, y /cs es su alias corto: funciona en todos los comandos de esta página (/cs status es lo mismo que /chatshield status). Si otro plugin también registra /cs, escribí /chatshield. En el juego, escribí los comandos con barra (/chatshield status); en la consola del servidor, sin ella (chatshield status).
Escribir /chatshield sin nada más lista los subcomandos que podés usar. El autocompletado con Tab solo ofrece lo que tus permisos permiten, y nunca sugiere nada para una contraseña o una clave de licencia. Las respuestas llegan en tu propio idioma (mirá /chatshield lang); la consola usa el idioma del servidor.
Comandos de jugador #
/chatshield panel y /chatshield password necesitan chatshield.panel, /chatshield alerts necesita chatshield.alerts, y /chatshield help y /chatshield lang necesitan cualquier permiso chatshield.*. Funcionan en el juego; help y lang también responden en la consola.
| Comando | Qué hace |
|---|---|
/chatshield help | Lista los subcomandos que podés usar, con su uso y una descripción de una línea. Igual que /chatshield sin nada más. También funciona desde la consola. |
/chatshield panel | Te manda un enlace de acceso clickeable al panel web, que vale 10 minutos y se puede usar una sola vez. La primera vez también crea tu cuenta del panel, siempre que tus grupos o permisos te den algo para ver. Funciona incluso mientras tu cuenta está bloqueada por intentos fallidos de contraseña. |
/chatshield password <password> | Define o cambia tu propia contraseña del panel: al menos 8 caracteres, con espacios permitidos. Crea tu cuenta igual que /chatshield panel, cierra todas las sesiones abiertas del panel de tu cuenta y funciona incluso con el panel apagado. |
/chatshield alerts on|off | Prende o apaga para vos las alertas de casos en el juego. Necesita chatshield.alerts. La elección se recuerda entre reinicios. |
/chatshield lang en|es|es_AR | Cambia el idioma de todos los mensajes que te manda el plugin. Desde la consola no cambia nada y muestra el idioma del servidor. |
Comandos del staff #
Estos necesitan chatshield.admin (salvo /chatshield case, mirá más abajo) y también funcionan desde la consola.
| Comando | Qué hace |
|---|---|
/chatshield user list | Lista las cuentas del panel y lo que puede ver cada una. Se marcan las cuentas que pasan el límite de Free, las cuentas desactivadas y las cuentas sin contraseña. |
/chatshield user add <name> [password] | Crea una cuenta del panel para un jugador que entró al servidor al menos una vez (puede estar desconectado). La cuenta no da nada por sí sola: lo que puede ver siempre sale de los grupos y permisos del jugador. |
/chatshield user remove <name> | Borra la cuenta del panel y cierra sus sesiones abiertas en el acto. |
/chatshield user setpassword <name> <password> | Define la contraseña de otra cuenta (al menos 8 caracteres) y cierra todas sus sesiones. También es la forma de cortar una sesión que creés que fue robada. |
/chatshield user groups <name> | Muestra los grupos del jugador tal como los informa el plugin de permisos, el acceso al panel que resulta de ellos y qué entradas de access.groups coincidieron. |
/chatshield case <id> | Muestra un caso (jugador, tipo, gravedad, estado, cantidad de eventos, cuándo se abrió), sus últimos 3 eventos y un enlace al caso en el panel. |
/chatshield case list [player] | Muestra los últimos 10 casos abiertos, opcionalmente de un jugador. |
/chatshield exempt add <name|uuid> | Agrega un jugador a exempt.players en config.yml (se conservan los comentarios) y recarga. |
/chatshield exempt remove <name|uuid> | Saca a un jugador de exempt.players y recarga. |
/chatshield exempt list | Lista los jugadores exentos, y exempt.groups. |
/chatshield reload | Recarga config.yml, las reglas y los archivos de idioma, e informa cada advertencia. Reinicia el servidor web del panel si cambiaron su dirección o su puerto. Si config.yml no se puede leer, se sigue usando la configuración anterior. |
/chatshield status | Una pantalla con la versión, la plataforma y el plan, la dirección del panel y los navegadores conectados, el ingreso al panel con la contraseña del juego, el tamaño de la base de datos, las colas, la velocidad de detección, el estado del email, la IA, la licencia y las actualizaciones, y qué fuentes de sanciones se registran. |
/chatshield license activate <key> | Activa una clave Pro. La clave se guarda en config.yml (salvo que venga de la variable de entorno CS_LICENSE_KEY) y nunca se muestra en el log del servidor. |
/chatshield license deactivate | Libera la clave para que se pueda activar en otro servidor. Este servidor vuelve a Free. |
/chatshield license status | Muestra el plan, el estado, el proveedor, el vencimiento y el último chequeo, y en una segunda línea el nombre de instancia de esta instalación. |
/chatshield email test <address> | Pone en cola un email de prueba con los ajustes SMTP actuales y muestra su número en la cola. Necesita email.enabled: true, un email.smtp.host y un email.smtp.from válido. |
/chatshield update check | Le pregunta a Modrinth o a GitHub si hay una versión más nueva. |
/chatshield update download | Descarga la versión nueva, verifica su firma y la deja en la carpeta de actualizaciones del servidor, para que se aplique en el próximo reinicio. Funciona en Free y en Pro. |
/chatshield telemetry | Muestra si el informe de uso anónimo está activo, adónde va, el id del informe, cuándo se mandó el último informe y los datos exactos que llevaba. Apagalo con telemetry.enabled: false. |
/chatshield ai test | Manda un pedido mínimo al proveedor de IA configurado y muestra el modelo y cuánto tardó, o por qué falló. Necesita ai.enabled: true. |
/chatshield export <from> <to> | Pro. Escribe en plugins/ChatShield/logs/ tres archivos CSV con los casos, las sanciones y los eventos entre dos fechas (yyyy-MM-dd, las dos incluidas, en la zona horaria del servidor, 366 días como máximo). |
/chatshield debug [on|off|dump] | Prende o apaga el registro de depuración hasta el próximo reinicio o recarga; sin argumento, alterna. dump escribe logs/debug-<date>-<time>.txt con el estado, los ajustes (cada contraseña y clave reemplazada por (set) o (empty)) y estadísticas de las colas, listo para adjuntar a un pedido de soporte. |
/chatshield case también lo puede usar cualquiera que tenga al menos un permiso chatshield.panel.violations.*; solo ve los tipos de infracción que le dan sus permisos.
chatshield status
chatshield license activate CSPRO-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
chatshield case list Steve
chatshield export 2026-09-01 2026-09-30
/cs alerts off
Por RCON #
Los comandos de consola también funcionan por RCON (desde un cliente RCON o desde la consola web del panel de un hosting). RCON solo devuelve lo que un comando muestra mientras corre, así que los comandos que necesitan la base de datos, la red o un archivo (chatshield case, chatshield user, chatshield exempt add|remove, chatshield email test, chatshield ai test, chatshield update, chatshield license activate|deactivate, chatshield debug dump, chatshield export) responden en el acto que el resultado se va a escribir en la consola del servidor. Después, la respuesta completa aparece en la consola y en logs/latest.log.
Las contraseñas y las claves no quedan en el log #
Normalmente el servidor guarda en el log cada comando que escribe un jugador. Para /chatshield password, /chatshield user add, /chatshield user setpassword y /chatshield license activate, el plugin saca esa línea de logs/latest.log, de la consola y de todo lo que reenvía la consola (como un canal de consola de DiscordSRV), y marca el comando como cancelado para que los loggers de comandos que ignoran los comandos cancelados tampoco lo registren. Otros plugins igual pueden ver lo que escribís (un espía de comandos, por ejemplo), así que /chatshield panel, sin escribir ninguna contraseña, es la forma más segura de entrar al panel.
Permisos #
chatshield.admin incluye todos los permisos de abajo salvo chatshield.exempt, así que los operadores los tienen todos. En la columna Por defecto, "op" significa que lo tienen los operadores y "–" significa que no lo tiene nadie hasta que lo des.
| Permiso | Qué permite | Por defecto |
|---|---|---|
chatshield.admin | Todos los subcomandos de /chatshield y todas las secciones del panel. | op |
chatshield.panel | /chatshield panel y /chatshield password (ingreso al panel). Lo que muestra el panel sale de access.groups o de los permisos de abajo. | – |
chatshield.alerts | Las alertas de casos en el juego y /chatshield alerts on|off. | – |
chatshield.exempt | Nunca genera casos (las líneas del jugador igual se guardan como contexto). | – |
chatshield.update.notify | Recibe un aviso al entrar cuando hay una actualización disponible o descargada. | op |
chatshield.panel.violations.all | Todos los tipos de infracción en el panel, y /chatshield case. Incluye los doce permisos de abajo. | – |
chatshield.panel.violations.advertising | Casos de publicidad (panel y /chatshield case). | – |
chatshield.panel.violations.insult | Casos de insulto. | – |
chatshield.panel.violations.harassment | Casos de acoso. | – |
chatshield.panel.violations.discrimination | Casos de discriminación. | – |
chatshield.panel.violations.sexual | Casos de contenido sexual. | – |
chatshield.panel.violations.threat | Casos de amenaza. | – |
chatshield.panel.violations.spam | Casos de spam. | – |
chatshield.panel.violations.caps | Casos de mayúsculas. | – |
chatshield.panel.violations.personal_data | Casos de datos personales. | – |
chatshield.panel.violations.filter_evasion | Casos de evasión del filtro. | – |
chatshield.panel.violations.rank_abuse | Casos de abuso de rango. | – |
chatshield.panel.violations.custom | Casos de reglas personalizadas. | – |
chatshield.panel.punishments | La sección de sanciones del panel. | – |
chatshield.panel.logs | Explorar los registros de chat. | – |
chatshield.panel.analytics | Estadísticas. | – |
chatshield.panel.settings | Editar los ajustes, la licencia y las actualizaciones desde el panel. Tratalo como acceso a la consola. | – |
chatshield.panel.users | Administrar las cuentas del panel desde el panel. | – |
chatshield.panel.ai | Usar las explicaciones con IA. | – |
Los permisos chatshield.panel.* suman acceso al panel por encima de access.groups en Pro (access.permissions-override), y son la única fuente de acceso al panel, en todos los planes, cuando no están instalados ni LuckPerms ni Vault. A la mayoría de los servidores le alcanza con el mapeo de grupos de config.yml, más chatshield.panel para quien tenga que ingresar.
Con LuckPerms #
Desde la consola:
lp group owner permission set chatshield.admin true
lp group mod permission set chatshield.panel true
lp group mod permission set chatshield.alerts true
lp group helper permission set chatshield.panel true
lp group helper permission set chatshield.panel.violations.spam true
lp group helper permission set chatshield.panel.violations.caps true
lp group builder permission set chatshield.exempt true
lp user Steve permission set chatshield.update.notify true
Las dos líneas chatshield.panel.violations.* de helper le dan a ese grupo los casos de spam y de mayúsculas por permisos, lo que cuenta en Pro. En Free, en cambio, hacé que el grupo sea una de las dos primeras entradas de access.groups.
El panel lee de LuckPerms los grupos principal y heredados de un jugador. Para ver qué va a encontrar para alguien, compará lp user Steve info y lp user Steve parent info con /chatshield user groups Steve.
PlaceholderAPI #
Cuando PlaceholderAPI está instalado, el plugin registra la expansión chatshield por su cuenta (sobrevive a /papi reload). Los números se actualizan cada 30 segundos.
| Placeholder | Valor |
|---|---|
%chatshield_cases_open% | Casos abiertos en este momento. |
%chatshield_cases_today% | Casos abiertos hoy (zona horaria del servidor). |
%chatshield_punishments_today% | Sanciones registradas hoy. |
%chatshield_tier% | Free, Pro o Pro Lifetime, en el idioma del servidor. |
%chatshield_alerts% | on u off: el ajuste de alertas en el juego del jugador. |