Нажимает кнопку в центре контрактов, выбирает работу, вводит Static ID, количество, дату или время скрина, если это включено, и прикладывает доказательство.
Центр контрактов
Модуль принимает выполненные RP-контракты от игроков, отправляет доказательства на проверку staff, считает сумму по тарифам, складывает одобренные заявки в очередь выплат и формирует TXT-файл для массовой загрузки в Majestic.
contracts_main.
Что создаёт setup
При полном сетапе HELPER собирает отдельную категорию под контракты. Это удобно для покупателей: им не нужно вручную вспоминать, какие каналы нужны модулю.
Как заявка проходит модуль
Игрок видит только простую форму сдачи. Внутри модуль ведёт заявку по статусам, проверяет похожие сдачи и не теряет очередь выплат при перезапуске сайта или бота.
В канал проверки приходит embed с суммой, скриншотом, риском дубля и кнопками действий: одобрить, отклонить или отметить как дубль.
После approve заявка получает статус ожидания выплаты. Публичная очередь в канале выплат обновляется автоматически.
HELPER собирает строки staticId;amount;comment, создаёт batch и исключает эти
заявки из следующего TXT, пока пакет не будет оплачен или отменён.
Каталог работ
Каждая работа — это шаблон, который игрок выбирает в Discord-меню. По нему бот понимает цену, единицу измерения, лимиты количества и комментарий для TXT.
Например: “Металлургия II”, “Другая работа”, “Сдача руды”. Это название попадает в карточку проверки.
Формула простая: количество × цена за единицу. Лимиты защищают от случайных огромных чисел.
Короткий комментарий попадает в файл выплат. Длинные списки модуль умеет сжимать до общего текста.
Можно добавить слова “метал”, “руда”, “металлургия”, чтобы staff и игрокам было проще найти работу.
Очередь, TXT и история
Одобренные заявки не оплачиваются автоматически. Модуль готовит аккуратный файл и фиксирует, что именно попало в пакет выплат.
Все approved-заявки остаются в базе contracts.db до создания TXT-пакета.
Заявки из batch уже не попадут в новый файл. Если ошиблись, пакет можно отменить.
После реальной оплаты админ отмечает batch выплаченным, а итог уходит в канал истории.
Главные настройки
В dashboard модуль разделён на понятные блоки: Discord-панель, форма сдачи, анти-дубли, роли доступа, выплаты и предпросмотр.
Выбираются канал панели, проверки, выплат и истории. После сохранения бот обновляет постоянную плашку.
- 1Если панель не опубликована, проверьте
panel_channel_id. - 2Если карточки не приходят, проверьте
review_channel_id.
Staff-роли проверяют обычные заявки. Senior-роли нужны для заявок с высоким риском дубля.
- ✓Можно выбрать несколько ролей.
- !Админ сервера всё равно может управлять модулем.
Модуль принимает ссылку, файл или оба способа. Скрин можно показывать прямо в карточке проверки.
- 📎Локальные файлы хранятся в
data/contracts_proofs. - 🧹После выплаты скрины можно очищать автоматически.
HELPER сравнивает Static ID, работу, количество, дату и время скрина в заданном окне часов.
- 45Порог предупреждения показывает staff похожие заявки.
- 80Высокий риск можно отправлять на senior-проверку.
Главная панель может брать изображение из Центра баннеров, использовать свою ссылку или работать без картинки.
- 🌌Центральный ключ:
contracts_main. - ↻После обновления баннера панель контрактов переобновляется.
Доступны три режима: одна выплата на игрока, группировка по контракту или каждая заявка отдельно.
- A
per_player— чаще всего самый удобный режим. - B
by_contract— если бухгалтерии нужны группы по работам.
Что делать проверяющему
Staff не работает с базой вручную. Все решения фиксируются кнопками в карточке заявки, а игрок получает уведомление в личные сообщения, если Discord позволяет отправить DM.
Сумма уходит в очередь выплат, карточка меняет статус, а игрок получает сообщение об одобрении.
Используется, если скрин не подходит, неверный Static ID, неправильное количество или работа не выполнена.
Если заявка повторяет уже проверенную работу, она не попадает в выплаты и остаётся в истории проверки.
Если модуль не ведёт себя как надо
Самые частые причины обычно связаны с каналами, ролями или правами бота в Discord.
Проверьте, включён ли модуль, выбран ли канал панели и есть ли у бота право отправлять embed-сообщения в этот канал.
Проверьте канал проверки. Если он не задан, бот пытается использовать канал панели, но лучше указать отдельный staff-канал.
Команды изменения выплат разрешены только в канале выплат. Это защита от случайного создания TXT не там.
В настройках контрактов должен стоять режим “Центр баннеров”, а в центре баннеров должна быть заполнена картинка contracts_main.
Увеличьте порог предупреждения или отключите дату/время в проверке дублей, если игроки часто сдают одинаковые работы.
Это нормальное поведение: очередь живёт в data/contracts.db, а бот восстанавливает плашку выплат после запуска.