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

# Comandos de roles y roles en masa

> Da, quita y gestiona roles con /role, da un rol a muchos miembros a la vez con vista previa, tarjeta de progreso, pausa y cancelación, y haz lo mismo desde la página Roles del dashboard.

## Resumen

`/role` (y `!role`) gestiona roles de uno en uno y en masa. Necesita **Gestionar roles**, los subcomandos en masa necesitan **Administrador**, y el rol de Petto debe estar por encima de cada rol que da o quita ([permisos y jerarquía](https://wiki.petto.sbs/es/concepts/permissions-and-hierarchy.md)). Nadie puede dar los roles que gestiona una integración ni `@everyone`.

```javascript Sintaxis theme={null}
!role add <usuario> <roles> [motivo]
!role remove <usuario> <roles> [motivo]
!role temp <usuario> <rol> <duración>
!role temp-list
!role all <rol> [remove] [preview] [without] [motivo]
!role humans <rol> [remove] [preview] [motivo]
!role has <rol_filtro> <rol_destino> [remove] [without] [preview] [motivo]
!role bots <rol> [preview] [motivo]
!role bots-remove <rol> [preview] [motivo]
!role job [status|pause|resume|cancel]
!role cancel
```

```javascript Ejemplo theme={null}
!role @Mia Miembro
!role temp @Mia VIP 3d
!role all @Miembro
!role humans @Novato preview
!role has @Veterano @Elder --joined_before 365d
!role all @Viejo remove --max_roles 1 limpiando el servidor
!role job pause
```

Los mismos comandos existen como comandos slash (`/role all`, `/role job`, etc.). Todo lo que hace `!role` también está en `/role`.

## Un rol a la vez

* `add` y `remove` aceptan uno o más roles (menciones, IDs o nombres). Petto dice cuáles no pudo dar y por qué, en tu idioma: el rol está por encima de Petto, por encima de ti o lo gestiona una integración.
* `temp` da un rol por un tiempo (hasta un año) y Petto lo quita cuando se acaba. Si el miembro ya tenía el rol, Petto lo avisa: igualmente se le quitará. `temp-list` muestra quién tiene un rol temporal y cuándo termina.
* Un rol temporal que quitas a mano, o que das para siempre con `add`, se olvida, así que el temporizador nunca lo quita después.
* `group create|delete|view|list|give|take` guarda conjuntos de roles con nombre para dar o quitar de una vez.
* `create`, `delete`, `edit`, `color`, `icon`, `mentionable`, `hoist`, `topcolor`, `list` e `in` gestionan los roles en sí.

## Roles en masa

`all`, `humans`, `has`, `bots` y `bots-remove` dan o quitan un rol a muchos miembros. Se ejecutan como una **tarea**: el mismo motor que usa la página Roles del dashboard.

* **Una tarea por servidor a la vez.** Una nueva espera a que termine la que corre.
* **Segura en servidores grandes.** Los miembros se leen en páginas de 1000, nunca todos de golpe, y el propio límite de Discord marca el ritmo.
* **Sobrevive a un reinicio.** Si Petto se reinicia mientras corre una tarea, esta sigue desde el miembro donde iba.
* **Una tarjeta la sigue** en el canal: miembros revisados, cambiados, que ya estaban bien y fallidos, el tiempo restante y qué hacer para pausarla o cancelarla. Al terminar muestra el resultado y cuánto tardó.
* **Se detiene sola** si Discord rechaza a 15 miembros seguidos, lo que significa que Petto perdió el permiso o que el rol quedó por encima del suyo.
* Un miembro que se fue mientras corría la tarea cuenta como que ya estaba bien, no como un fallo.

### Opciones

| Opción | Qué hace |
| - | - |
| `remove` | Quita el rol en vez de darlo. |
| `preview` | Solo cuenta a quién cambiaría. No se toca a nadie. |
| `without` | (solo `has`) los miembros que **no** tienen el rol del filtro. |
| `joined_after`, `joined_before` | Un día como `2025-03-01` (desde la medianoche UTC) o un tiempo atrás como `30d`. Con el prefijo se escriben como `--joined_after 30d`. |
| `min_roles`, `max_roles` | Solo miembros con al menos o como mucho este número de roles, sin contar `@everyone`. `--max_roles 0` elige a los miembros sin roles. |
| `reason` | Se ve en el registro de auditoría con el número de la tarea. Con el prefijo es el resto del mensaje. |

Con el prefijo, el nombre de una opción solo la activa: `!role all @Miembro remove preview`. `!role humans @Miembro true` sigue funcionando.

### Vista previa, estado, pausa y cancelación

Ejecuta primero el comando con `preview` para ver cuántos miembros cambiarían y luego sin él. `!role job` muestra la tarea en curso, o la última, y las anteriores. `!role job pause` y `!role job resume` la detienen y la reanudan, y `!role job cancel` (o `!role cancel`) la detiene del todo: el miembro en curso termina y no se cambia nada más. Cualquiera con Administrador puede controlar una tarea, también una iniciada desde el dashboard.

> [!WARNING]
>
> Ten cuidado con los roles que dan **Administrador**, Gestionar servidor, Gestionar roles, Expulsar o Banear miembros o permisos parecidos: darlos a muchos miembros a la vez es difícil de deshacer. La tarjeta te avisa y el dashboard te pide confirmar.

## Roles al entrar y roles persistentes

Los dos viven bajo `/role`:

* `/role join add|remove|list|clear|apply` es [`!joinrole`](https://wiki.petto.sbs/es/onboarding/join-roles): roles que se dan cuando un miembro entra. `apply` da un rol de entrada ahora a los miembros que ya están en el servidor.
* `/role sticky enable|disable|status` es [`!stickyroles`](https://wiki.petto.sbs/es/automation/sticky-roles): Petto devuelve los roles de un miembro cuando vuelve.

Siguen funcionando `!joinrole`, `!jr`, `!stickyroles`, `!sr` y `!greet joinrole`.

## La página Roles del dashboard

**Dashboard → Automatización → Roles** hace lo mismo desde el navegador y se usa bien en el móvil.

1. Elige el **rol** y si quieres **asignarlo** o **quitarlo**. Los roles que Petto no puede dar salen en gris con el motivo. Un rol con permisos poderosos muestra un aviso y una casilla para confirmar.
2. Elige **a quién**: todos los miembros, humanos o bots, un rango de fechas de entrada (selectores de fecha reales, más botones para los últimos 7, 30 o 90 días y para más de 30 días, 90 días o un año), cuántos roles tienen, los roles que deben tener o no tener (alguno o todos) y si se saltan los miembros que aún no han aceptado las reglas.
3. Añade un **motivo** para el registro de auditoría y, si quieres, un canal donde avisar cuando termine.
4. Pulsa **Vista previa** para ver cuántos miembros cambiarían, o **Empezar**. Tras una vista previa, **Ejecutar de verdad** inicia la misma tarea.
5. Sigue la tarea: una barra de progreso, miembros revisados, cambiados, que ya estaban bien y fallidos, el tiempo restante, y **Pausar**, **Reanudar** y **Cancelar**. La página se actualiza sola.
6. **Trabajos recientes** lista los últimos con su resultado y, si uno falló, por qué: a Petto le falta Gestionar roles, el rol se borró, lo gestiona una integración, está por encima de Petto, etc.

La página y Discord comparten la misma tarea, así que puedes empezar en una y pausar o cancelar en la otra.


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