> ## Documentation Index
> Fetch the complete documentation index at: https://rust-co.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Slots de personaje

> Da más personajes — roles de Discord, lista VIP o tus propias reglas.

Por defecto todos tienen unos pocos slots (`Config.DefaultCharacterSlots`, limitado por `Config.MaxCharacters`). Si te basta, salta esta página.

¿Quieres que supporters, staff o jugadores concretos tengan más? Todo está en `rco-creator/config/server.lua` en el servidor — los jugadores nunca ven ese archivo.

## Cómo elige Creator el número (léelo primero)

Cuando alguien abre la selección, Creator pregunta **en este orden** y se detiene en la primera respuesta:

1. **Tu función personalizada** — si `ResolveCustomSlots` devuelve un número
2. **Roles de Discord** — solo con la integración de Discord activada
3. **Lista manual por license** — `PlayerSlots`, pero **solo con Discord desactivado**
4. **Límite del framework** — lo que reporta RSG/VORP
5. **Por defecto** — `Config.DefaultCharacterSlots`

Lo que gane queda entre **1** y **`Config.MaxCharacters`**.

<Warning>
  **Tres cosas que confunden:**

  1. Los números son **slots totales**, no "por defecto + bonus". VIP = 5 significa **cinco personajes en total**, no cuatro más uno.
  2. **Discord activado = `PlayerSlots` ignorado.** ¿Necesitas ambos? Hazlo en `ResolveCustomSlots`.
  3. **Varios roles de Discord no se suman.** Creator usa solo el rol **más alto** que coincida.
</Warning>

## Un jugador extra (sin Discord)

Mapea su license a un total de slots:

```lua theme={"dark"}
CreatorServerConfig.PlayerSlots = {
    ['license:1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b'] = 5,
}
```

Encuentra licenses en tus herramientas de admin o en la consola del servidor cuando se conectan.

## Roles de Discord

Vincula slots a roles en el Discord de tu comunidad. Necesitas bot e IDs en `server.lua`.

**¿Primera vez?** Paso a paso: [Configuración de roles Discord](/es/rco-creator/discord-roles-setup).

```lua theme={"dark"}
CreatorServerConfig.Discord = {
    enabled = true,
    guildId = '123456789012345678',
    botToken = 'YOUR_BOT_TOKEN',
    defaultSlots = 1,
    cacheSeconds = 600,
    timeoutMs = 8000,
    roleSlots = {
        ['ROLE_ID_SUPPORTER'] = 3,
        ['ROLE_ID_VIP'] = 5,
    },
}
```

Supporter (3) + VIP (5) juntos = **5**, no 8. Sin Discord vinculado = `defaultSlots`.

<Warning>
  El token del bot = contraseña. Nunca en chat de Discord, tickets o repos públicos. `server.lua` solo en tu servidor de juego.
</Warning>

Discord activado con `guildId` o `botToken` vacíos → Creator **no arranca**.

## Tus propias reglas (Tebex, base de datos, whitelist)

Usa el paso 1 — devuelve un número o `nil` para seguir la cadena:

```lua theme={"dark"}
CreatorServerConfig.ResolveCustomSlots = function(source, identifiers)
    -- identifiers.license, identifiers.discord disponibles
    if identifiers.license == 'license:...' then
        return 5
    end
    return nil
end
```

Si la función falla, la selección no abre para ese jugador — mantenla simple.

## Slots bloqueados en la pantalla de selección

Los slots extra que el jugador aún no desbloqueó aparecen como siluetas desvanecidas. Ocúltalos con `Config.Selection.hideLockedSlotGhosts = true`.
