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

# Настройка ролей Discord

> Больше слотов персонажей по роли в Discord.

Дайте игрокам дополнительные слоты персонажей по роли в Discord — например, три персонажа для VIP и один для остальных. Создаёте бота в Discord, вставляете два ID и токен в config — Creator сам проверит роли при выборе персонажа.

<Info>
  Как считаются слоты (и что если у человека две роли) — на [Слоты персонажей](/ru/rco-creator/character-slots). Напоминание: каждая роль задаёт **общее** число слотов, а не "+1 сверху".
</Info>

## Что понадобится

* Discord-сервер, куда игроки реально заходят
* Право **Управление сервером** (чтобы пригласить бота)
* Доступ к файлам RedM (или панели хостинга)
* Пять минут и безопасное место для **токена бота** (как пароль)

Больше ничего. Без базы данных, без лишних ресурсов.

## Что происходит — простыми словами

1. Игрок подключается к RedM с привязанным Discord.
2. Открывает выбор персонажа.
3. Creator спрашивает Discord: "Какие роли у этого человека на нашем сервере?"
4. Creator берёт **лучшую** роль из вашего списка и открывает столько слотов (до максимума сервера).

Что-то пошло не так — Discord закрыт, человека нет на сервере, config неверный — получает **стандартное** число слотов. Никто не заблокирован; просто без бонуса.

***

## Шаг 1 — Режим разработчика

Discord скрывает ID, пока вы не включите переключатель.

1. Откройте Discord (десктоп или браузер).
2. **Настройки пользователя** (шестерёнка) → **Расширенные**.
3. Включите **Режим разработчика**.

Теперь: ПКМ по серверу → **Копировать ID сервера**; ПКМ по роли → **Копировать ID роли**.

***

## Шаг 2 — Создать бота

Всё на официальном сайте: [Discord Developer Portal](https://discord.com/developers/applications).

<Steps>
  <Step title="Новое приложение">
    **New Application** → понятное имя (напр. `RedM Character Slots`) → создать.
  </Step>

  <Step title="Скопировать токен">
    Вкладка **Bot** → **Reset Token** → подтвердите → **Скопируйте** сразу.

    Как пароль. Только в `rco-creator/config/server.lua` на **игровом сервере** — не в чат, тикеты, скриншоты или GitHub.
  </Step>

  <Step title="Пригласить бота на Discord">
    **OAuth2** → **URL Generator**.

    * Scopes: отметьте **`bot`**
    * Права: минимум — бот не читает каналы и не пишет. Ему нужно просто **быть на сервере**.

    Скопируйте ссылку, откройте, выберите **ваш Discord**, авторизуйте.

    Офлайн в списке участников? **Это нормально.** Creator проверяет при подключении; не нужно быть "online" 24/7.
  </Step>

  <Step title="Переключатели 'Intents'">
    На вкладке Bot есть вещи вроде "Server Members Intent".

    **Оставьте выключенными.** Creator ищет одного игрока за раз — не нужно право на весь список участников.
  </Step>
</Steps>

***

## Шаг 3 — Записать ID

Перед правкой config составьте таблицу:

| Роль (для вас) | ID роли     | Сколько персонажей? |
| -------------- | ----------- | ------------------- |
| По умолчанию   | —           | напр. 1             |
| Supporter      | вставьте ID | напр. 3             |
| VIP            | вставьте ID | напр. 5             |

**ID сервера** = ПКМ по иконке Discord → **Копировать ID сервера**.

**ID роли** = Настройки сервера → Роли → ПКМ по роли → **Копировать ID роли**.

***

## Шаг 4 — Вставить в config Creator

Правьте `rco-creator/config/server.lua` на **сервере RedM**:

```lua theme={"dark"}
CreatorServerConfig.Discord = {
    enabled = true,
    guildId = '123456789012345678',
    botToken = 'ВАШ_ТОКЕН',
    defaultSlots = 1,
    cacheSeconds = 600,
    timeoutMs = 8000,
    roleSlots = {
        ['987654321098765432'] = 3,
        ['876543210987654321'] = 5,
    },
}
```

Перезапустите **`rco-creator`**. Discord включён, а ID или токен пустые → resource **не запустится**. Специально, чтобы не работать наполовину.

<Warning>
  При включённом Discord ручные слоты по license (`PlayerSlots`) **не учитываются**. Нужны оба варианта? Смотрите `ResolveCustomSlots` на [Слоты персонажей](/ru/rco-creator/character-slots).
</Warning>

***

## Шаг 5 — Что сказать игрокам

Что-то вроде этого в правилах:

1. **Discord открыт** при запуске RedM (десктоп-приложение лучше).
2. **Разрешить RedM / Cfx.re** когда спросит — или **Настройки → Авторизованные приложения**.
3. **Вступить на наш Discord** и иметь нужную роль.

Игрок всегда получает стандарт? Смотрите консоль сервера при входе: должен быть `discord:` в identifiers. Без этого игра не получила Discord — обычно помогает переавторизация и перезапуск RedM.

<Note>
  Связка Discord + RedM у некоторых не работает (Discord закрыт, пропустили auth, лимиты). Это платформа, не баг Creator. Держите `defaultSlots` справедливым для тех, кто не может привязать.
</Note>

***

## Шаг 6 — Проверить

1. Тестовая роль в Discord.
2. Её ID в `roleSlots` с заметным числом (напр. 3).
3. Перезапуск resource, вход, выбор персонажа.
4. Посчитайте открытые слоты.

Всё ещё не работает? Временно `Config.Debug = true` в `config/config.lua`, воспроизведите, смотрите консоль **сервера**. Не публикуйте логи.

***

## Частые проблемы

| Что видите                      | Вероятная причина    | Что делать                                |
| ------------------------------- | -------------------- | ----------------------------------------- |
| Не стартует                     | Пустой ID или токен  | Заполнить оба в `server.lua`              |
| У всех стандарт                 | Бот не на Discord    | Снова ссылка приглашения (Шаг 2)          |
| У всех стандарт                 | Неверный ID сервера  | Скопировать заново                        |
| У одного всегда стандарт        | Discord не привязан  | Переавторизовать RedM, перезапустить игру |
| У одного всегда стандарт        | Нет на вашем Discord | Нужно вступить, или вручную               |
| Роль не меняет слоты            | Неверный ID роли     | Скопировать ID снова — строка в кавычках  |
| VIP + Supporter не складываются | Так не работает      | Creator берёт **большую** роль            |
| Сменил роль — без изменений     | Кэш \~10 мин         | Подождать или переподключиться            |
| "Неверный token" в debug        | Токен сброшен        | Reset в портале, обновить config          |

***

## Безопасность токена

* Только на игровом сервере, в `server.lua`.
* Никогда не коммитьте настоящий токен в GitHub.
* Утечка? Сразу **Reset Token** в портале.

Боту **не** нужен Administrator.

***

## См. также

* [Слоты персонажей](/ru/rco-creator/character-slots)
* [Discord Developer Portal](https://discord.com/developers/applications)
