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

# Emplacements de personnage

> Donnez plus de personnages — rôles Discord, liste VIP ou vos propres règles.

Par défaut, tout le monde a quelques emplacements (`Config.DefaultCharacterSlots`, plafonné par `Config.MaxCharacters`). Si ça suffit, passez cette page.

Vous voulez en donner plus aux supporters, au staff ou à certains joueurs ? Tout est dans `rco-creator/config/server.lua` côté serveur — les joueurs ne voient jamais ce fichier.

## Comment Creator choisit un nombre (lisez d'abord)

Quand quelqu'un ouvre la sélection, Creator demande **dans cet ordre** et s'arrête à la première réponse :

1. **Votre fonction personnalisée** — si `ResolveCustomSlots` renvoie un nombre
2. **Rôles Discord** — seulement si l'intégration Discord est activée
3. **Liste manuelle par license** — `PlayerSlots`, mais **seulement si Discord est désactivé**
4. **Limite du framework** — ce que RSG/VORP rapporte
5. **Par défaut** — `Config.DefaultCharacterSlots`

Le résultat est borné entre **1** et **`Config.MaxCharacters`**.

<Warning>
  **Trois points qui prêtent à confusion :**

  1. Les nombres sont des **emplacements totaux**, pas « défaut + bonus ». VIP = 5 signifie **cinq personnages au total**, pas quatre plus un.
  2. **Discord activé = `PlayerSlots` ignoré.** Besoin des deux ? Gérez-le dans `ResolveCustomSlots`.
  3. **Plusieurs rôles Discord ne s'additionnent pas.** Creator utilise uniquement le rôle **le plus élevé** correspondant.
</Warning>

## Un joueur en plus (sans Discord)

Associez sa license à un total d'emplacements :

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

Trouvez les licenses dans vos outils admin ou la console serveur à la connexion.

## Rôles Discord

Liez les emplacements aux rôles de votre Discord communautaire. Il faut un bot et des IDs dans `server.lua`.

**Première fois ?** Pas à pas : [Configuration des rôles Discord](/fr/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) ensemble = **5**, pas 8. Sans Discord lié = `defaultSlots`.

<Warning>
  Le token du bot = mot de passe. Jamais dans le chat Discord, les tickets ou un repo public. `server.lua` reste uniquement sur votre serveur de jeu.
</Warning>

Discord activé avec `guildId` ou `botToken` vide → Creator **ne démarre pas**.

## Vos propres règles (Tebex, base de données, whitelist)

Utilisez l'étape 1 — renvoyez un nombre ou `nil` pour continuer la chaîne :

```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 fonction plante, la sélection ne s'ouvre pas pour ce joueur — gardez-la simple.

## Emplacements verrouillés sur l'écran de sélection

Les emplacements extra non débloqués apparaissent en silhouettes estompées. Masquez-les avec `Config.Selection.hideLockedSlotGhosts = true`.
