> ## 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.

# Niveles

> Configura el XP por mensajes y voz, las tarjetas de rango y las recompensas de nivel de Headless.

Levels guarda el progreso por servidor. Los miembros consultan su tarjeta de rango o el leaderboard; el equipo puede activar el módulo, ajustar la experiencia desde el Dashboard y asignar roles al alcanzar hitos.

> [!NOTE]
>
> Niveles empieza desactivado. Los valores iniciales de XP descritos aquí corresponden a una configuración nueva o normalizada; Headless puede conservar valores personalizados de perfiles ya existentes.

## Cómo se gana XP

### Mensajes

En una configuración inicial, un mensaje elegible concede un valor aleatorio de **20–38 XP**. Headless añade hasta **8 XP** por longitud (un punto por cada 120 caracteres), y aplica un cooldown de **45 segundos por miembro y servidor**.

Un mensaje no cuenta si lo envía un bot, aparece en un canal o rol excluido, comienza con el prefijo del servidor, no alcanza el mínimo de caracteres después de quitar espacios en blanco, o repite demasiado contenido reciente. Los adjuntos permiten que un mensaje corto pase el mínimo de caracteres. El antispam inteligente está activado inicialmente y rechaza una nueva repetición cuando ya detectó dos hashes iguales en los últimos 180 segundos.

### Voz

La XP por voz también está activada inicialmente: el observador concede **18–32 XP aleatorios por cada 180 segundos elegibles**, siempre que haya al menos dos miembros elegibles en el canal. No cuentan bots, el canal AFK del servidor (si está habilitado), canales o roles excluidos, ni miembros silenciados o ensordecidos cuando está activa la opción de exigir audio sin mute. Si el canal baja del mínimo de miembros, la sesión elegible se pausa.

La frecuencia y los valores de XP por voz se pueden modificar en la sección de niveles del Dashboard. Si Headless no puede observar el canal, los miembros o los estados de voz, el ciclo puede no conceder XP.

## Consultar progreso

Usa `.level [@miembro]` o `/level [user]` para mostrar nivel, XP actual, progreso, XP total y posición. `.rank [@miembro]` es un alias del comando prefix; `/rank [user]` también está disponible. Si omites el miembro, ves tu propio rango. Estos comandos solo funcionan en un servidor y no tienen un permiso elevado explícito.

`.levels` y `/levels` abren el leaderboard del servidor, ordenado por nivel y después por XP total. Las vistas extensas usan controles de paginación. El rango refleja únicamente los datos que Headless ha guardado en ese servidor; no es un nivel de Discord ni recupera actividad anterior a la instalación o a la disponibilidad del bot.

### `.level — 1`

```headless-command Syntax theme={null}
.level [member]
```

```headless-command Example theme={null}
.level
```

También funciona: `.level @miembro` · `.rank @miembro`

### `/level`

```headless-command Syntax theme={null}
/level [user:<user>]
```

```headless-command Example theme={null}
/level user:@Member
```

### `.level — 2`

```headless-command Syntax theme={null}
/level [user:<user>]
```

```headless-command Example theme={null}
/level user:@Member
```

### `.level [member]`

```headless-command Syntax theme={null}
.level [member]
```

```headless-command Example theme={null}
.level @Rain
```

### `.levels`

```headless-command Syntax theme={null}
.levels
```

```headless-command Example theme={null}
.levels
```

### `/levels`

```headless-command Syntax theme={null}
/levels
```

```headless-command Example theme={null}
/levels
```

### `/rank`

```headless-command Syntax theme={null}
/rank [user:<user>]
```

```headless-command Example theme={null}
/rank user:@Member
```

## Configurar el módulo

### Inicio rápido

**1. Elige el canal de avisos**

Decide dónde debe aparecer el anuncio cuando alguien suba de nivel. Headless necesita acceso al canal y permiso para enviar mensajes.

**2. Activa Levels**

Ejecuta `.leveling setup #levels` o habilita el módulo en el Dashboard. El subcomando setup activa Levels; al incluir un canal, también lo guarda como destino de avisos.

**3. Ajusta la XP y los filtros**

En el Dashboard configura los rangos de XP, cooldown, requisitos de mensaje, exclusiones, opciones de antispam y valores de voz que se ajusten a tu comunidad.

**4. Prueba los comandos de consulta**

Comprueba una tarjeta con `.level @miembro` y el leaderboard con `.levels`. Confirma que el anuncio llegue al canal escogido.

### Valores disponibles en el Dashboard

La página de configuración de Levels permite editar el canal y el estado del módulo; XP mínima/máxima y cooldown de mensajes; mínimo de caracteres y antispam inteligente; canales y roles ignorados; XP mínima/máxima de voz, intervalo, miembros mínimos, exclusiones, canal AFK y requisito de no estar silenciado; curva de nivel; acumulación de recompensas; y el título, contenido, color y medios del anuncio.

Los servidores nuevos usan un título y mensaje de subida de nivel en inglés. Headless migra únicamente los valores predeterminados en español que coinciden exactamente; conserva las plantillas personalizadas.

La curva calcula el XP requerido para el siguiente nivel a partir de XP base y crecimiento, con un mínimo de 25 XP por nivel. La configuración inicial usa una base de 60 y crecimiento de 1.18. Los valores admitidos se limitan al normalizar la configuración; el Dashboard muestra los rangos editables.

> [!NOTE]
>
> Los comandos prefix de administración no exponen un subcomando para cada campo de XP o voz. Usa el Dashboard para esos controles; no inventes comandos como `.leveling xp` o `.leveling voice`.

### `.leveling`

```headless-command Syntax theme={null}
.leveling
```

```headless-command Example theme={null}
.leveling
```

### `/leveling`

```headless-command Syntax theme={null}
/leveling [argumentos:<argumentos>]
```

```headless-command Example theme={null}
/leveling
```

### `.leveling setup`

```headless-command Syntax theme={null}
.leveling setup [channel]
```

```headless-command Example theme={null}
.leveling setup #levels
```

### `.leveling on`

```headless-command Syntax theme={null}
.leveling on
```

```headless-command Example theme={null}
.leveling on
```

### `.leveling off`

```headless-command Syntax theme={null}
.leveling off
```

```headless-command Example theme={null}
.leveling off
```

### `.leveling channel`

```headless-command Syntax theme={null}
.leveling channel [channel]
```

```headless-command Example theme={null}
.leveling channel #levels
```

### `.leveling message`

```headless-command Syntax theme={null}
.leveling message <message>
```

```headless-command Example theme={null}
.leveling message ¡Nivel {level}!
```

### `.leveling color`

```headless-command Syntax theme={null}
.leveling color [color=#16191F]
```

```headless-command Example theme={null}
.leveling color #16191F
```

> [!NOTE]
>
> Si no hay un canal de avisos válido o accesible, Headless intenta usar el canal de texto donde se originó el evento. Si tampoco puede publicar, la XP y el nivel ya guardados no se revierten: solo falla el anuncio. Revisa acceso, permisos y jerarquía antes de lanzar recompensas a toda la comunidad.

## Recompensas por nivel

Una recompensa relaciona un nivel del 1 al 1.000 con un rol real del servidor. Por defecto, las recompensas se acumulan: al subir, Headless aplica todos los roles configurados hasta el nivel alcanzado. Si se desactiva la acumulación en el Dashboard, conserva el rol de mayor nivel ya alcanzado e intenta retirar los otros roles de recompensa configurados.

Para que el cambio funcione, Headless necesita el permiso nativo `Manage Roles` y debe tener su rol por encima de los roles de recompensa. Una regla guardada no garantiza que Discord permita asignar el rol; los roles eliminados o inaccesibles se omiten y un rechazo puede quedar registrado como último error.

### `.leveling reward`

```headless-command Syntax theme={null}
.leveling reward <level> <role>
```

```headless-command Example theme={null}
.leveling reward 10 @Level10
```

### `.leveling rewards`

```headless-command Syntax theme={null}
.leveling rewards
```

```headless-command Example theme={null}
.leveling rewards
```

### `.leveling reward-remove`

```headless-command Syntax theme={null}
.leveling reward-remove <level>
```

```headless-command Example theme={null}
.leveling reward-remove 10
```

## Comandos

> **Estado y activación**
>
> `.leveling` muestra estado, canal, rangos de XP, cooldown, antispam y cantidad de recompensas. `.leveling setup [#canal]` activa el módulo; `.leveling on` lo activa y `.leveling off` lo pausa. `.leveling channel [#canal]` fija el canal de avisos; si no se pasa canal, utiliza el canal actual.

> **Crear y retirar recompensas**
>
> `.leveling reward <nivel> @rol` asigna el rol a un hito. `.leveling rewards` lista las asociaciones guardadas y `.leveling reward-remove <nivel>` retira una. El runtime limita el nivel al rango 1–1.000. Gestionar el grupo exige `Manage Server`; editar una asociación también exige `Manage Roles`.

> **Personalizar el anuncio**
>
> `.leveling message <texto>` acepta texto o un embed script de hasta 8.000 caracteres. Las variables disponibles incluyen `{user}`, `{mention}`, `{username}`, `{server}`, `{level}`, `{xp}`, `{total_xp}` y `{gained}`. En la plantilla, `{mention}` se resuelve al nombre visible; la opción separada de mencionar al miembro controla la mención real. `.leveling color <#RRGGBB>` cambia el color de acento.

Los subcomandos administrativos son de prefijo y requieren `Manage Server`; editar roles requiere además `Manage Roles`. `/level`, `/rank` y `/levels` son consultas de servidor sin permiso elevado explícito. Headless también necesita los permisos de canal y roles de Discord que correspondan a cada acción.

> [!NOTE]
>
> `.leveling setup` sin canal habilita Levels, pero no guarda el canal actual como destino. Usa `.leveling channel #canal` para persistirlo.

#### `.level`

## Páginas relacionadas

* [Roles](/docs/server/roles.md)
* [Booster Roles](/docs/server/roles/booster.md)
* [Embed Scripting](/docs/resources/scripting.md)


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