> ## Documentation Index
> Fetch the complete documentation index at: https://docs.headlesslabs.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Anti-Raid / Join Gate

> Join Gate evalúa cada ingreso con reglas independientes para oleadas, cuentas sin avatar personalizado y antigüedad de la cuenta. Su configuración es por servidor e independiente del interruptor de Anti-Nuke.

## Acceso y configuración

Los comandos requieren ser owner del servidor, owner de Headless o Anti-Nuke Admin autorizado. `.antiraid config` resume reglas y estado. Las tres reglas empiezan desactivadas; configura y prueba una por una antes de activar sanciones.

```headless-command Syntax theme={null}
.antiraid config
```

```headless-command Example theme={null}
.antiraid config
```

## Oleadas de ingreso

`massjoin` activa el estado de raid cuando alcanza el umbral configurado dentro de la ventana técnica fija de 30 segundos. El umbral válido es 1–50 y el castigo es `kick` o `ban`. `--lock true` deniega temporalmente enviar mensajes y conectarse para `@everyone` en canales donde esas capacidades estaban permitidas; `--punish true` permite aplicar la regla de oleadas a cuentas nuevas mientras el estado está activo.

```headless-command Syntax theme={null}
.antiraid massjoin [on|off|status] [--threshold <1-50>] [--do <kick|ban>] [--lock <true|false>] [--punish <true|false>]
```

```headless-command Example theme={null}
.antiraid massjoin on --threshold 5 --do kick --lock true --punish true
```

## Avatar y antigüedad

La regla `avatar` detecta cuentas sin avatar personalizado (ni avatar de servidor). La regla `age` compara la antigüedad de la cuenta con un umbral de 1–3650 días. Cada regla puede configurarse con `kick` o `ban`; sus umbrales y acciones se guardan por servidor.

```headless-command Syntax theme={null}
.antiraid avatar [on|off|status] [--do <kick|ban>]
```

```headless-command Example theme={null}
.antiraid avatar on --do kick
```

```headless-command Syntax theme={null}
.antiraid age [on|off|status] [--threshold <1-3650>] [--do <kick|ban>]
```

```headless-command Example theme={null}
.antiraid age on --threshold 7 --do kick
```

## Exenciones de ingreso

`.antiraid whitelist @Member` añade una excepción para el próximo ingreso y se consume en esa entrada. `.antiraid whitelist view` muestra las excepciones pendientes y las exenciones permanentes heredadas; repetir el comando sobre una excepción existente la retira. Esta lista es independiente de la whitelist de Anti-Nuke.

```headless-command Syntax theme={null}
.antiraid whitelist [<@member|user_id|view>]
```

```headless-command Example theme={null}
.antiraid whitelist @Member
```

También funciona: `.antiraid whitelist view`

## Finalizar un raid y restaurar canales

`.antiraid state` finaliza el estado activo. Headless guarda los overwrites que cambió al bloquear canales y restaura únicamente los valores que todavía reflejan su bloqueo; si alguien modificó luego un canal, lo omite para no sobrescribir el cambio más reciente.

```headless-command Syntax theme={null}
.antiraid state
```

```headless-command Example theme={null}
.antiraid state
```

## Limpieza posterior

`.recentban <1-200> [razón]` (alias `.recent-ban`) selecciona hasta 200 de las cuentas incorporadas más recientemente y siempre las prepara para `ban`. `.raid <duración> kick|ban [razón]` (alias `.raidcleanup`) selecciona cuentas que ingresaron durante un período de hasta 30 días. La duración admite unidades `s`, `m`, `h`, `d` y `w`, incluso combinadas (por ejemplo, `1w2d`). Si omites la razón, el registro usa `Post-raid cleanup`. La lista completa requiere el intent privilegiado Members; sin él no se ejecuta ninguna acción. La persona que inicia la vista previa debe tener `Ban Members` o `Kick Members` según la acción elegida; Headless también necesita el permiso correspondiente y vuelve a comprobar permisos y jerarquía antes de actuar.

La confirmación expira a los 120 segundos y solo quien la inició puede confirmarla o cancelarla. Antes de aplicar cada sanción, Headless vuelve a comprobar el servidor, el miembro objetivo y su fecha de ingreso para no aplicar una vista previa obsoleta.

```headless-command Syntax theme={null}
.recentban <1-200> [reason]
```

```headless-command Example theme={null}
.recentban 10 cuentas del raid
```

```headless-command Syntax theme={null}
.raid <duration> <kick|ban> [reason]
```

```headless-command Example theme={null}
.raid 2h ban cuentas del raid
```

## Valores iniciales

Al instalar Join Gate, `massjoin`, `avatar` y `age` están desactivados. El umbral inicial de oleadas es 5 en una ventana técnica fija de 30 segundos; `kick` es el castigo inicial. El bloqueo de canales y el castigo de cuentas nuevas empiezan desactivados. La regla de antigüedad comienza en 7 días con `kick`; la regla de avatar también empieza con `kick`. Las excepciones permanentes existentes y las de un solo ingreso se guardan por separado.

> **Umbrales y castigos**
>
> `massjoin` acepta un umbral de 1–50; `age` acepta de 1–3650 días. Las reglas solo permiten `kick` o `ban`. Si varias reglas coinciden y piden castigos distintos, Join Gate no sanciona ese ingreso.

> **Limpieza posterior al raid**
>
> `.recentban` y `.raid` necesitan enumerar la lista completa de miembros y están limitados a 200 objetivos por operación. `.raid` admite duraciones de hasta 30 días. Si la vista previa supera el límite o no está habilitado el intent Members, no se aplica ninguna acción.

## Reglas que coinciden a la vez

Si un ingreso activa varias reglas y estas piden castigos distintos, Headless no aplica ninguna sanción para ese evento y lo registra. Mantén acciones compatibles entre las reglas que puedan coincidir.

## Pasos

**1. Revisa estado y permisos**

Ejecuta `.antiraid config`; confirma el servidor, el acceso del staff y que Headless pueda aplicar el castigo elegido.

**2. Configura una regla**

Define el módulo, umbral, castigo, bloqueo y tratamiento de cuentas nuevas. Usa `status` para consultar sin cambiar valores.

**3. Valida la exención**

Si debes permitir una cuenta legítima, añádela a la whitelist de Join Gate y comprueba que se consuma en su siguiente ingreso.

**4. Cierra el incidente con cuidado**

Ejecuta `.antiraid state` para finalizar el raid. Para una limpieza, revisa la vista previa y confirma solo si reconoces el período, objetivo y motivo.

![Headless confirma la activación de la regla avatar de Anti-Raid y el castigo kick; la mención del usuario está oculta.](https://mintcdn.com/headless-labs/ZF85v3KoGVX7saRn/images/headless-replies/anti-raid-avatar-reply-redacted.png?fit=max\&auto=format\&n=ZF85v3KoGVX7saRn\&q=85\&s=21f4ade3b9eedcb2cadace7f0f287ad6)

Respuesta real (en inglés) de Headless a `.antiraid avatar on --do kick`; se ocultó la mención del usuario.

> [!WARNING]
>
> Banear, expulsar y bloquear canales afecta a miembros reales. El bloqueo temporal cambia overwrites de `@everyone`; Headless solo restaura los valores que siguen coincidiendo con el bloqueo que aplicó. `.recentban` y `.raid` no sancionan hasta que se confirma su vista previa.

**Nota:**

Anti-Raid y Join Gate son nombres del mismo grupo de comandos: `.antiraid` es el nombre canónico y también se aceptan `.anti-raid` y `.join-gate`. No son módulos separados. La configuración se almacena por servidor; no depende de activar Anti-Nuke y sus exenciones no afectan la whitelist Anti-Nuke. Las respuestas de estado, configuración, whitelist y limpieza de Join Gate se muestran en inglés; los nombres de comandos y los valores de permisos conservan su forma registrada.

## Páginas relacionadas

* [Anti-Nuke](/docs/security/anti-nuke.md)
* [Moderación](/docs/security/moderation.md)
* [Permisos](/docs/permissions.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.