Setup con cuidado
.vanity quick activa el detector y el tracker, puede cambiar log a delete y selecciona un canal de avisos. No es un modo de prueba.Tracker independiente
El tracker atribuye joins cuando puede comparar el uso de invites en caché. Desactivar sus avisos no detiene la actualización de estadísticas.
Acciones y límites
El runtime actual intenta borrar cada mensaje detectado por Link Guard antes de aplicar la acción seleccionada, incluso con
log.Acceso y alcance
Los comandos de configuración se ejecutan dentro de un servidor y requierenAdministrator nativo o la autorización virtual compatible que Headless aplique a esa comprobación. El comando slash /vanity solo cambia el estado del detector; los demás grupos de configuración descritos aquí son de prefijo. La configuración de detector, allowlists, tracker y rewards está separada por servidor.
Link Guard
El detector revisa invitaciones de Discord y enlaces en mensajes. El código vanity oficial del servidor se considera permitido automáticamente; las allowlists añaden excepciones. Puedes permitir una invitación/código, una URL o dominio, un comodín de subdominio, una ruta o las categoríasdiscord, youtube y roblox. Las rutas permiten el prefijo de path configurado y una regla de dominio también coincide con sus subdominios. Se guardan hasta 120 reglas de enlace y 80 roles exentos. Un rol exento evita que sus miembros activen el detector; no les concede permisos de moderación.
Las acciones configurables son log, delete, warn, timeout, kick y ban. El timeout se limita a 1–10 080 minutos. Headless registra coincidencias y, en la ruta activa de detección, intenta borrar el mensaje bloqueado en todos los modos antes de ejecutar la respuesta. Por eso log no garantiza conservar el mensaje: el código también publica un aviso después del intento de borrado. Si Discord rechaza el borrado o una sanción, la operación puede quedar parcialmente aplicada; los fallos de sanción se envían a Logs.
Comandos del detector
Comandos del detector
- Estado — Comando:
.vanity· Efecto: Muestra estado, acción, timeout, invites/enlaces permitidos y estado del tracker. - Activar / pausar — Comando:
.vanity on·.vanity off·/vanity enabled:true|false· Efecto: Cambia el flag del detector; no activa ni apaga el tracker. - Setup rápido — Comando:
.vanity quick [#canal]· Efecto: Activa el módulo, el detector y el tracker, selecciona el canal, intenta sincronizar invites y cambialogadeletesilogera la acción configurada. - Respuesta — Comando:
.vanity action ACTION· Efecto:ACTIONdebe serlog,delete,warn,timeout,kickoban. - Duración — Comando:
.vanity timeout <minutos>· Efecto: Guarda un timeout entre 1 y 10 080 minutos; el valor predeterminado es 10. - Invitaciones — Comando:
.vanity allow <invite>·.vanity disallow <invite>· Efecto: Añade o quita un código/URL de la allowlist. - Enlaces — Comando:
.vanity allowlink <dominio o URL>·.vanity disallowlink <dominio o URL>· Efecto: Añade o quita reglas; máximo 120 entradas guardadas. - Bypass por rol — Comando:
.vanity role @Rol·.vanity unrole @Rol· Efecto: Añade o quita roles exentos; máximo 80.
.vn, .v, .van y .inviteguard. quick activa directamente los controles; no pide confirmación ni prueba el disparador. La acción de borrado del runtime puede ejecutarse antes de que falle una acción de timeout, kick o ban.Qué se comprueba al publicar un mensaje
Qué se comprueba al publicar un mensaje
Headless detecta invitaciones y enlaces, normaliza cada coincidencia y compara códigos, dominios/rutas y roles exentos con la configuración del servidor. Si no hay coincidencias bloqueadas, no responde. Si las hay, crea un evento
vanity_detected con parte del mensaje y la acción elegida, intenta entregarlo a Logs, intenta borrar el mensaje y luego aplica la respuesta. La allowlist no hace que un enlace permita cualquier otro enlace del mismo mensaje; cada coincidencia debe pasar la regla.Invite Tracker
El tracker es independiente del filtro de enlaces. Cuando un miembro entra, Headless compara el contador de usos de invitaciones disponible con la caché anterior. Si puede identificar el código y su invitador, actualiza estadísticas por servidor, invitador y código; si no puede atribuir el join, el dato queda desconocido o no se añade a un invitador. No reconstruye actividad anterior al periodo observado..vanity tracker sync vuelve a leer y cachear las invitaciones actuales; requiere que el bot tenga Manage Server para consultar invites. No importa joins históricos. announce off solo detiene los mensajes de bienvenida del tracker: las estadísticas pueden seguir actualizándose. Si el canal configurado no está disponible, el runtime puede recurrir al canal general de Logs.
Configurar y consultar el tracker
Configurar y consultar el tracker
- Ver estado — Comando:
.vanity tracker· Nota: Muestra el destino, formato y estadísticas resumidas. - Activar / pausar — Comando:
.vanity tracker on·.vanity tracker off· Nota:ontambién habilita el módulo Vanity;offno apaga el Link Guard. - Elegir destino — Comando:
.vanity tracker channel [#canal]· Nota: Sin canal usa el canal actual, si es de texto. - Avisos — Comando:
.vanity tracker announce STATE· Nota:STATEaceptaonuoff; desactiva solo la publicación, no la atribución. - Formato — Comando:
.vanity tracker format FORMAT· Nota:FORMATaceptaembedotexty selecciona el mensaje de entrada. - Plantilla — Comando:
.vanity tracker template [texto]· Nota: Variables disponibles:{member},{member_name},{inviter},{inviter_name},{invite},{joins}y{server}. La plantilla se limita a 450 caracteres. - Sincronizar — Comando:
.vanity tracker sync· Nota: RequiereManage Serverdel bot para leer invitaciones actuales. - Estadísticas — Comando:
.vanity tracker stats [@miembro]· Nota: Sin miembro muestra hasta 10 invitadores; con miembro, sus joins y hasta ocho códigos.
.vanity.Reward de Vanity Status
Este reward observa el estado personalizado de presencia, no los mensajes con invitaciones. Se controla con.vanity promo status on|off; statuscode <código> y removestatuscode <código> mantienen hasta 20 códigos. Headless puede asignar hasta 20 roles configurados mediante .vanity promo role @Rol. El bot necesita el intent privilegiado de presencias habilitado en la aplicación Discord, un miembro disponible en el gateway, Manage Roles y una posición de rol que permita la asignación. .vanity promo statuschannel #canal elige el panel; .vanity promo scan revisa solo los miembros que están en la caché del servidor.
.vanity promo statusremove on|off controla la retirada al desaparecer el código del estado; el retraso acepta 0–604 800 segundos. La retirada es de mejor esfuerzo: si Discord rechaza quitar un rol, el registro puede dejar de reflejarlo y el rol permanecer asignado. Verifica periódicamente la jerarquía y los roles existentes.
Nota:
.vanity promo on|off controla el panel/avisos del estado, mientras que .vanity promo status on|off controla el reward de roles. Son toggles distintos. La personalización admite plantilla, título, ping (sin menciones activas), thumbnail, banner y GIF.
La promoción automática cuando una persona publica un invite está configurada en el grupo
.vanity promo, pero su callback de mensaje no está conectado en el runtime revisado. No la trates como una función activa. El reward implementado es el de Vanity Status.Pasos
1
Revisa la acción y los permisos
Consulta
.vanity y comprueba los permisos del bot. No uses quick como prueba: habilita el detector y el tracker, y puede cambiar log a delete.2
Configura excepciones pequeñas
Añade únicamente invites, dominios/rutas y roles que deban quedar exentos. Comprueba cada URL permitida con un caso de prueba del servidor.
3
Decide si activar el detector
Como el callback intenta borrar el mensaje incluso con
log, habilítalo solo cuando esa conducta esté aprobada. Selecciona una acción explícita y observa Logs.4
Configura por separado el tracker o reward
Sincroniza invites para el tracker. Para rewards de estado, habilita presencia, valida jerarquía y configura los roles y el canal de estado por separado.
