По умолчанию у всех несколько слотов (Config.DefaultCharacterSlots, с потолком Config.MaxCharacters). Если хватает — эту страницу можно пропустить.
Хотите, чтобы у supporters, staff или конкретных игроков было больше? Всё настраивается в rco-creator/config/server.lua на сервере — игроки этот файл не видят.
Как Creator выбирает число (прочитайте сначала)
Когда кто-то открывает выбор персонажа, Creator спрашивает в таком порядке и останавливается на первом ответе:
Ваша функция — если ResolveCustomSlots вернула число
Роли Discord — только когда интеграция Discord включена
Ручной список по license — PlayerSlots, но только когда Discord выключен
Лимит фреймворка — что сообщает RSG/VORP
По умолчанию — Config.DefaultCharacterSlots
Что бы ни победило — зажимается между 1 и Config.MaxCharacters .
Три частые путаницы:
Числа — это всего слотов , а не «базовые + бонус». VIP = 5 значит пять персонажей всего , а не четыре плюс один.
Discord включён = PlayerSlots игнорируется. Нужны оба? Обрабатывайте в ResolveCustomSlots.
Несколько ролей Discord не складываются. Creator берёт только самую высокую подходящую роль.
Дополнительные слоты одному игроку (без Discord)
Сопоставьте license с общим числом слотов:
License смотрите в админ-инструментах или консоли сервера при подключении.
Роли Discord
Привяжите слоты к ролям в Discord-сервере сообщества. Нужны бот и ID в server.lua.
Первый раз? Пошагово: Настройка ролей Discord .
Supporter (3) + VIP (5) вместе = 5 , не 8. Без привязанного Discord = defaultSlots.
Токен бота = пароль. Никогда в Discord, тикетах или публичных репозиториях. server.lua только на игровом сервере.
Discord включён, но пустые guildId или botToken → Creator не запустится .
Свои правила (Tebex, база, whitelist)
Используйте шаг 1 — верните число или nil, чтобы передать дальше:
Если функция падает с ошибкой, выбор не откроется для этого игрока — держите её простой.
Заблокированные слоты на экране выбора
Дополнительные слоты, которые игрок ещё не открыл, показываются бледными силуэтами. Скрыть их: Config.Selection.hideLockedSlotGhosts = true.