К руководству

Документация 9.6.24

Пошаговая установка

От пустого сервера до работающей защиты, подключённой к панели, уходит около 20 минут. В конце каждого шага указано, что нужно проверить. Если проверка не прошла, исправьте проблему, прежде чем идти дальше.

Перед началом#

Перед началом убедитесь, что всё перечисленное ниже готово.

  • Актуальная сборка сервера FiveM (artifact) с включённым OneSync (set onesync on). Без OneSync большинство серверных проверок не работает, и античит предупреждает об этом при запуске.
  • Установленный и запущенный oxmysql. Античит обращается к базе данных только через oxmysql и никогда не запрашивает отдельный пароль MySQL.
  • Аккаунт в панели с тарифом, который включает загрузки.
  • Резервная копия базы данных и папки resources. При обновлении также сохраните отдельно папки configs, admins, editable, locales и bridge.
  • Способ загрузить файлы на сервер (FTP, файловый менеджер txAdmin или удалённый рабочий стол) и программа для выполнения SQL (HeidiSQL или phpMyAdmin).

1. Добавьте сервер в панели#

Лицензионный ключ привязан к одному серверу, поэтому установка начинается с добавления этого сервера в панель.

  1. Откройте в клиентской панели страницу «Серверы» и выберите «Добавить сервер».
  2. Введите название сервера, выберите фреймворк (QBCore, Qbox или ESX) и скрипт инвентаря.
  3. В разделе «Подключение к базе данных» оставьте выбранным вариант «Подключение через скрипт». В этом режиме не нужен ни пароль MySQL, ни открытый порт базы данных.
  4. Сохраните, откройте сервер и скопируйте значение с карточки «Лицензионный ключ». Если у вас несколько серверов, используйте для каждого его собственный ключ.
  5. Проверка: сервер появился в списке, и вы скопировали его лицензионный ключ.

2. Скачайте серверный пакет#

Пакет собирается для выбранного сервера в момент скачивания, поэтому это может занять несколько секунд.

В пакете есть tosun-ac (основной ресурс, обязателен), tosun-ac-guardian (небольшой ресурс, который не даёт остановить античит, рекомендуется) и, если входит в пакет, tosun_render (компонент для видеодоказательств). В папке tosun-ac также лежат INSTALL.sql (один SQL-файл, который создаёт все таблицы), KURULUM.txt (краткая инструкция по установке) и INTEGRATION.md (руководство для других скриптов).

Скачивание нового пакета не обновляет работающий сервер. Ничего не изменится, пока вы не разместите файлы и не перезапустите ресурс.

  1. Перейдите в панели на страницу «Загрузки».
  2. Выберите сервер и нажмите «Скачать».
  3. Распакуйте ZIP-архив в папку на своём компьютере.

3. Разместите файлы#

Создайте в папке resources сервера папку с именем [tosun]. Папки в квадратных скобках в FiveM только группируют ресурсы. Скопируйте в неё папки tosun-ac, tosun-ac-guardian и, если есть в пакете, tosun_render.

Не переименовывайте папки. Другие скрипты обращаются к античиту как exports['tosun-ac'], а Guardian следит за именем tosun-ac. Переименование ломает интеграции и защиту.

Не удаляйте файлы внутри папок. Проверка целостности пакета замечает отсутствующие или изменённые файлы.

resources/
  [tosun]/
    tosun-ac/
    tosun-ac-guardian/
    tosun_render/

4. Создайте таблицы в базе данных#

Античит хранит баны, обнаружения, логи и настройки в игровой базе данных. Создайте таблицы в той базе, к которой подключается oxmysql, то есть в той же, где лежат таблицы вашего фреймворка.

INSTALL.sql не удаляет ваши данные. Таблицы создаются через CREATE TABLE IF NOT EXISTS, поэтому существующие таблицы остаются без изменений.

Пользователю базы данных, под которым работает oxmysql, нужны права CREATE и ALTER на эту базу. Если ваш хостинг их не даёт, выполните SQL сами через панель управления хостингом.

  1. Сделайте резервную копию базы данных.
  2. В HeidiSQL выберите игровую базу, откройте tosun-ac/INSTALL.sql через «Файл» → «Загрузить SQL-файл» и выполните его (F9). В phpMyAdmin используйте вкладку «Импорт».
  3. Если вам удобнее командная строка, используйте команду ниже.
  4. Убедитесь, что появились таблицы ts_anticheat, ac_detections и admin_logs.
mysql -u USER -p DATABASE_NAME < INSTALL.sql

5. Добавьте недостающие столбцы в старых установках#

Если вы переходите со старой версии, таблицы у вас уже есть, но в них может не хватать новых столбцов. Если в консоли появляется ошибка вроде Unknown column 'log_message' in 'field list', сделайте резервную копию базы и выполните команды ниже. Они только добавляют недостающие столбцы и не трогают существующие данные.

Этот синтаксис предназначен для MariaDB. В MySQL 8 здесь нет IF NOT EXISTS: сначала выведите список столбцов командой SHOW COLUMNS FROM admin_logs; и добавьте через ADD COLUMN только недостающие.

Если ошибка не исчезает, таблица admin_logs может принадлежать другому скрипту. Отправьте в поддержку вывод команды SHOW CREATE TABLE admin_logs;.

ALTER TABLE admin_logs
  ADD COLUMN IF NOT EXISTS log_message LONGTEXT NULL,
  ADD COLUMN IF NOT EXISTS log_playerid LONGTEXT NULL,
  ADD COLUMN IF NOT EXISTS log_playername LONGTEXT NULL,
  ADD COLUMN IF NOT EXISTS log_type VARCHAR(20) NOT NULL DEFAULT 'LOG',
  ADD COLUMN IF NOT EXISTS log_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  ADD COLUMN IF NOT EXISTS created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

ALTER TABLE ac_detections
  ADD COLUMN IF NOT EXISTS player_id INT NULL,
  ADD COLUMN IF NOT EXISTS player_name VARCHAR(100) NOT NULL DEFAULT '',
  ADD COLUMN IF NOT EXISTS license VARCHAR(100) NULL,
  ADD COLUMN IF NOT EXISTS steam VARCHAR(50) NULL,
  ADD COLUMN IF NOT EXISTS discord VARCHAR(50) NULL,
  ADD COLUMN IF NOT EXISTS ip VARCHAR(40) NULL,
  ADD COLUMN IF NOT EXISTS detection_type VARCHAR(60) NOT NULL DEFAULT '',
  ADD COLUMN IF NOT EXISTS detail TEXT NULL,
  ADD COLUMN IF NOT EXISTS reason VARCHAR(512) NOT NULL DEFAULT '',
  ADD COLUMN IF NOT EXISTS punishment VARCHAR(10) NOT NULL DEFAULT 'LOG',
  ADD COLUMN IF NOT EXISTS ban_id VARCHAR(20) NULL,
  ADD COLUMN IF NOT EXISTS screenshot VARCHAR(512) NULL,
  ADD COLUMN IF NOT EXISTS config VARCHAR(100) NULL,
  ADD COLUMN IF NOT EXISTS config_key VARCHAR(100) NULL,
  ADD COLUMN IF NOT EXISTS server_id INT NULL,
  ADD COLUMN IF NOT EXISTS created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

6. Настройте server.cfg и основные параметры#

Добавьте строки ниже в server.cfg. Строки set должны идти перед строками ensure, потому что ресурс читает эти значения при запуске. oxmysql и ваш фреймворк должны запускаться раньше античита.

Замените qb-core на ресурс своего фреймворка (qbx_core или es_extended). Строку tosun_render добавляйте, только если она есть в вашем пакете.

tosun_ac_license — единственный обязательный параметр. Подключение данных к панели и изменение баланса персонажей в сети включены по умолчанию, добавлять для них строки не нужно. Старые строки set tosun_db_bridge_enabled и set tosun_db_bridge_money_write в пакете 9.6.14 и новее игнорируются, их можно удалить. Более старым пакетам эти строки по-прежнему нужны, чтобы включить подключение, поэтому скачайте актуальный пакет из панели.

Необязательные параметры: tosun_ac_panel_key («Настройки сайта» → «API-ключ античита»; если он пуст, античит сам находит этот ключ в базе данных) и tosun_ac_central_token (токен с компонентом fivem со страницы «API-токены AC»; если он пуст, используется ключ панели).

Для лицензии и ключей используйте только set. setr передаёт значение игрокам, а sets публикует его в общем списке серверов. Не храните ключи в configs/anticheat_config.lua: этот файл тоже передаётся игрокам. Вместо server.cfg можно использовать таблицу credentials в configs/anticheat_server.lua, которая загружается только на сервере. Если заполнены оба варианта, приоритет у server.cfg.

  • ts.Framework.framework: оставьте "auto". QBCore, Qbox и ESX определяются автоматически. Если определить не удалось, укажите "qb", "qbox", "esx" или "standalone".
  • ts.punishType: в первый день используйте 'LOG', чтобы только записывать обнаружения. Когда проверите их в панели, переключите на 'BAN'.
  • ts.Debug: оставьте false. Если включить его, обнаруживаются все, включая персонал.
  • Оставьте пустыми поля webPanelKey, Central.token и licenseLock.licenseKey.
set onesync on

set tosun_ac_license "YOUR_LICENSE_KEY"

ensure oxmysql
ensure qb-core
# ... другие ресурсы фреймворка и инвентаря ...
ensure tosun_render
ensure tosun-ac
ensure tosun-ac-guardian

7. Выдайте права персоналу#

Персонал освобождён от обнаружений и может открывать внутриигровое меню администратора. Рекомендуемый способ — ACE-права в server.cfg.

tosun.admin даёт доступ к меню администратора и освобождение от обнаружений. tosunac.admin позволяет запускать tosunac_setup из игры. Замените значение license на своё.

Можно также добавить идентификаторы license:, steam: или discord: в список Admins в tosun-ac/admins/anticheat_admins.lua или выдать право из панели.

Тот, кто является только администратором txAdmin, освобождён от обнаружений, но не может открыть меню в игре. Для меню нужен один из способов выше.

Меню в игре открывается командой /ts или /tsmenu либо клавишей F7. Клавишу можно изменить в ts.AdminMenu.openKeyControl.

add_ace group.admin tosun.admin allow
add_ace group.admin tosunac.admin allow
add_principal identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx group.admin

8. Первый запуск и проверка#

При первой установке перезапустите весь сервер, а не только ресурс. Так проблемы с порядком запуска сразу станут видны.

  1. Перезапустите сервер и проверьте консоль на красные ошибки tosun-ac.
  2. Выполните tosunac_doctor в консоли сервера. Команда покажет рискованные или конфликтующие настройки.
  3. Выполните tosunac_db_status, чтобы проверить подключение данных к панели, и tosunac_integration, чтобы проверить связи с другими скриптами.
  4. Найдите в консоли строку [AC-Guardian] Aktif.
  5. Если вы уверены, что сервер чистый, выполните tosunac_setup. Команда сначала ищет бэкдоры, затем добавляет чистые ресурсы и события сервера в список разрешённых. Не запускайте её, если подозреваете заражённый ресурс: текущее состояние будет считаться доверенным.
  • Сервер отображается в панели как онлайн, и число игроков обновляется.
  • При входе с аккаунта персонала команда /ts открывает меню.
  • В разделе логов панели появляются новые записи.
  • После 10–15 минут игры с обычного аккаунта в панели нет неожиданных обнаружений.
tosunac_doctor
tosunac_db_status
tosunac_integration
tosunac_setup

9. Проверьте подключение данных к панели#

Это подключение включено по умолчанию. Добавлять строки в server.cfg или включать его в панели не нужно. Авторизованные пользователи панели могут при необходимости просматривать данные игроков, персонажей, инвентаря, транспорта, банов и обнаружений. База данных не копируется, а пароль MySQL остаётся на вашем сервере. Подключение только читает данные; единственное исключение — изменение баланса персонажей в сети, описанное ниже.

Каждая страница возвращает 25 записей, одновременно выполняется один запрос, а ответ занимает не больше 64 КБ. В режиме простоя подключение не выполняет запросов к игровой базе. Поддерживаются стандартные таблицы QBCore, Qbox и ESX. Собственные таблицы автоматически не сопоставляются.

Изменение баланса тоже включено по умолчанию. Им могут пользоваться только пользователи панели с ролью администратора или владельца (право на экономику). Сумма не прибавляется: наличные или банковский счёт устанавливаются равными введённому значению. Персонаж должен быть в сети. Если ожидаемый текущий баланс не совпадает, запрос отклоняется с ошибкой stale_balance и ничего не меняется. Перед отправкой панель показывает сводку для подтверждения, а каждый запрос записывается в журнал аудита. Запрос с неясным результатом никогда не повторяется автоматически; прежде чем пробовать снова, проверьте баланс в игре.

Для расширенного ручного управления добавьте в server.cfg строку set tosun_db_bridge_manual "1". Тогда tosun_db_bridge_enabled и tosun_db_bridge_money_write читаются из server.cfg, как раньше, и каждый из них выключен, пока не задано значение "1". Если вы намеренно включили старое полное зеркало (ts.panelMirror.enabled = true в configs/anticheat_config.lua), подключение автоматически остаётся выключенным, чтобы зеркало продолжало работать.

Сайт сообщества использует то же подключение. Без настроек игровой базы данных страницы «Игроки», «Баны» и «Срабатывания» читают данные с игрового сервера; пользователь MySQL и открытый порт базы данных не нужны. В разделе База данных и мост → «Сайт сообщества только с лицензией» описано, что показывает этот режим и когда стоит добавить необязательное прямое SQL-подключение.

  1. В панели откройте «Серверы» → ваш сервер → карточку Tosun Connect. Пока ресурс работает, на карточке должно быть «Connection ready» (подключение готово).
  2. Подключение также можно проверить командой tosunac_db_status в консоли сервера.
  3. Чтобы отключить подключение для одного сервера, нажмите на той же карточке «Disable connection» (отключить подключение). Это останавливает все чтения и изменения баланса для этого сервера. Включить подключение снова можно на той же карточке.

10. Сделайте другие скрипты совместимыми#

Скрипты, которые телепортируют игроков, выдают оружие или замораживают игроков, могут выглядеть как читы, если не сообщают об этом античиту. Самые частые случаи и их решения:

MarkTeleport может вызывать любой скрипт. AllowWeapon и SetExempt дают широкие исключения, поэтому принимаются только от ресурсов, которым вы доверяете. Добавьте через запятую имена скриптов, которые их используют, и сохраните имена, которые уже есть в списке.

  • Скрипт телепортирует игрока (дом, гараж, тюрьма, больница): вызовите exports['tosun-ac']:MarkTeleport(src) прямо перед перемещением игрока.
  • Скрипт открывает короткое меню, которое замораживает игрока (одежда, парикмахерская): exports['tosun-ac']:MarkTeleport(src, 15000).
  • Скрипт выдаёт оружие, не добавляя его в инвентарь (арена, пейнтбол): exports['tosun-ac']:AllowWeapon(src, "WEAPON_PISTOL", ms). Нужен доверенный ресурс.
  • Игрока нужно полностью освободить от проверок на время (катсцена, своё возрождение): exports['tosun-ac']:SetExempt(src, ms, "reason"). Нужен доверенный ресурс.
set tosun_ac_trusted_resources "my-clothing,my-housing,my-arena"

11. Обновление#

Обновляйте во время технических работ и сохраняйте свои настройки.

Если ваш ключ панели раньше хранился в anticheat_config.lua, он мог передаваться игрокам. Создайте в панели новый ключ и обновите также server.cfg. Обновление не отзывает старые ключи.

  1. Скачайте новый пакет из панели.
  2. Сделайте резервную копию папки tosun-ac на сервере и отдельно сохраните свои изменения в папках configs, admins, editable, locales и bridge.
  3. Удалите старые папки tosun-ac, tosun-ac-guardian и tosun_render и поставьте на их место новые. Если копировать поверх старых папок, удалённые файлы останутся.
  4. Верните свои настройки. Чтобы сохранить строки, добавленные в новой версии, переносите только изменённые вами значения, а не заменяйте файл целиком.
  5. Если в примечаниях к выпуску упомянуты изменения в базе данных, повторите шаги 4 и 5.
  6. Перезапустите сервер и повторите проверки из шага 8.

12. Устранение неполадок#

Самые частые симптомы и способы их устранить:

Обращаясь в поддержку, укажите номер версии (version в fxmanifest.lua), полный текст ошибки из консоли и вывод tosunac_doctor. Никогда не передавайте лицензию или API-ключи. Поддержка их не запрашивает.

  • Unknown column '…' in 'field list': таблицы остались от старой версии. Выполните SQL из шага 5.
  • Table '…' doesn't exist: INSTALL.sql не импортирован или импортирован не в ту базу. Импортируйте его в базу, к которой подключается oxmysql.
  • Ошибки oxmysql и остановка античита в первую секунду: переместите ensure oxmysql выше ensure tosun-ac.
  • Предупреждение о недействительной лицензии: введена лицензия другого сервера, строка set стоит после ensure или использован setr. Скопируйте лицензию заново с карточки нужного сервера.
  • Меню администратора не открывается: человек является только администратором txAdmin. Добавьте строки ACE из шага 7 и перезайдите.
  • Обнаружен невиновный игрок: откройте обнаружение в панели, чтобы увидеть, какая проверка сработала, затем добавьте вызов из шага 10 в соответствующий скрипт. Пока что установите для этой проверки наказание LOG в панели.
  • Сервер отображается в панели как офлайн: изучите вывод tosunac_doctor. Если задан tosun_ac_panel_key, убедитесь, что он совпадает с ключом в панели.
  • Пакет не скачивается: прочитайте уведомление на странице «Загрузки». Возможно, ваш тариф не включает загрузки или сервер не добавлен.

Первый вход владельца арендованного сайта#

Выберите свой сайт в TosunDev и откройте управление. Без сессии сначала откроется вход, после него — управление сайтом. При регистрации по e-mail используйте адрес и пароль, действовавшие при создании сайта; поздние изменения пароля не обязательно синхронизируются.

  1. Сверьте адрес сайта с выбранной арендой.
  2. В приватном окне проверьте вход и возврат в управление нужным сайтом.
  3. Привяжите свой FiveM-сервер; пароль сайта, лицензия Tosun и пароль MySQL различаются.
  4. Используйте восстановление аккаунта и проверку владения; общего пароля администратора нет.

Скопируйте лицензию Tosun нужного сервера#

Откройте раздел серверов TosunDev, выберите свой FiveM-сервер и скопируйте его лицензию Tosun AC. tac_live_ — не лицензия Cfx.re, не sv_licenseKey, не токен Discord и не API-ключ панели.

  1. Замените YOUR_SERVER_LICENSE внутри кавычек в server.cfg.
  2. Поместите tosun_ac_license перед ensure tosun-ac; используйте set, не setr и не sets.
  3. Другой вариант — credentials.licenseKey в configs/anticheat_server.lua. Непустой convar имеет приоритет.
  4. Не публикуйте лицензию в скриншотах, чате, shared config или клиентских файлах.
set tosun_ac_license "YOUR_SERVER_LICENSE"
# Alternative: configs/anticheat_server.lua
# credentials.licenseKey = "YOUR_SERVER_LICENSE"

Один SQL-файл в правильную базу#

Единственный SQL для импорта в новом ZIP — tosun-ac/INSTALL.sql. Не импортируйте вторую старую копию схемы. Нужна игровая база FiveM/oxmysql, а не база учётных записей и темы арендованного сайта. Недостающие старые столбцы исправляются до добавления стандартных значений; баны и пользовательские настройки сохраняются.

  1. Сделайте резервную копию игровой базы и проверьте её имя.
  2. Импортируйте только INSTALL.sql в HeidiSQL/phpMyAdmin либо явно укажите базу в mysql.
  3. tosunac_db_check проверяет запрос, tosunac_db_status — мост. Мост включён по умолчанию и не требует строки в server.cfg. enabled=false ожидается в ручном режиме (set tosun_db_bridge_manual "1") без tosun_db_bridge_enabled "1" или если старое полное зеркало (ts.panelMirror.enabled = true в configs/anticheat_config.lua) включено намеренно; лицензия не создаёт MySQL-подключение.
  4. Подключение панели (Tosun Connect) и изменение баланса онлайн-персонажей включены по умолчанию. Не добавляйте tosun_db_bridge_enabled и tosun_db_bridge_money_write в server.cfg; начиная с пакета 9.6.14 старые строки игнорируются, их можно удалить (более старым пакетам они нужны, пока не установлен актуальный пакет). Баланс задают только пользователи панели с ролью admin или owner: персонаж должен быть онлайн, ожидаемый баланс должен совпасть (иначе stale_balance и ничего не меняется), перед отправкой панель показывает сводку для подтверждения, каждый запрос пишется в журнал аудита, неясный результат не повторяется автоматически; сначала проверьте баланс в игре. Задаётся итоговая сумма, а не прибавка. Отключить всё подключение для одного сервера (останавливаются все запросы панели на чтение и все изменения баланса): Панель → Серверы → сервер → карточка Tosun Connect → Disable connection; снова включить его можно на той же карточке. Пароль базы храните на игровом сервере.
mysql -u YOUR_DB_USER -p YOUR_GAME_DATABASE < tosun-ac/INSTALL.sql

# txAdmin console:
tosunac_db_check
tosunac_db_status

От ZIP до запуска в txAdmin#

Разместите tosun-ac, tosun-ac-guardian и tosun_render на одном уровне в resources; в корне каждого нужен fxmanifest.lua. discord-bot — приложение Node.js. Новый манифест Render указывает только gta5, без common.

  1. Сохраните рабочий mysql_connection_string; oxmysql и существующий framework/инвентарь запускаются первыми.
  2. Выполните refresh в txAdmin и соблюдайте порядок ниже. Псевдоним tosun-render поддерживается, папка называется tosun_render.
  3. tosun_render_status должен показать started и наличие файлов. Затем отдельно проверьте захват с игроком.
  4. Читайте первую ошибку и проверяйте зависимость, папку или лицензию выбранного сервера.
set tosun_ac_license "YOUR_SERVER_LICENSE"

ensure oxmysql
# Start your existing framework/inventory here.
ensure tosun_render
ensure tosun-ac
ensure tosun-ac-guardian

# txAdmin console:
tosun_render_status
tosunac_doctor
tosunac_db_check
tosunac_db_status

Проверка прав и их отзыва#

ACE, идентификаторы администраторов и разрешения панели проверяются сервером. all — не идентификатор и не разрешение. В allowedIds нужны полные license:..., discord:... или fivem:... из серверного списка идентификаторов игрока.

  1. Выдайте тестовому администратору только нужные права.
  2. Отзовите разрешение панели и повторите проверку тем же игроком; новый интервал опроса по умолчанию около пяти секунд.
  3. Проверьте также независимые ACE/admins.lua. Телеметрия игроков онлайн не даёт прав.
  4. Обычный тестовый игрок должен остаться без доступа; чувствительные действия проверяйте на тестовых данных.
ts.AdminMenu.allowedIds = {
    "license:YOUR_EXACT_PLAYER_IDENTIFIER",
    "discord:YOUR_DISCORD_USER_ID"
}
# Examples are placeholders, not grants.

Отдельная установка Discord-бота из пакета#

discord-bot работает на Node.js, а не через ensure. Создайте своё приложение в Discord Developer Portal; Application ID, Guild ID, роли и каналы берите из своего Discord. Токен храните в закрытом файле окружения.

Учётная запись базы сайта по умолчанию ограничена localhost провайдера. Бот на другой машине FiveM не получает доступ автоматически. Нужен управляемый сервис на хосте сайта либо одобренное закрытое подключение только вашей базы. Не используйте root провайдера и не открывайте MySQL всем. Старые команды с прямыми запросами к игровым таблицам проверяйте отдельно.

Владелец сайта сохраняет токен, Client ID и Guild ID в Управление сайтом → Discord-бот. Через Download private bot setup скачайте приватный файл и сохраните как .env в своей папке бота. Он содержит только ключи выбранного сайта, в отличие от пустого примера ZIP. Не публикуйте файл и не добавляйте его в репозиторий.

  1. Установите поддерживаемую LTS-версию Node.js не ниже 22 и подготовьте примеры скриптом установки.
  2. Добавьте бота со scope bot и applications.commands и нужными правами.
  3. Настройте базу сайта и HTTPS API. Закрытый ключ команд относится только к этому боту и сайту; это не лицензия и не главный SaaS-ключ.
  4. До запуска выполните npm run doctor. Затем отдельно проверьте онлайн-статус и роли; doctor не входит в Discord.
cd discord-bot
sh setup.sh
# Configure the private .env and site bot settings first.
npm run doctor
npm start

Не повторять лишний анализ после перезапуска#

При каждом запуске проверяются SHA256-отпечатки содержимого ресурсов. Неизменённые файлы и правила используют аутентифицированные результаты KVP сервера вместо повторного дорогостоящего анализа сигнатур и событий. Изменение файлов, исключений или правил запускает новый анализ. Проверка отпечатков по-прежнему читает файлы; фиксированное значение resmon не гарантируется.

  1. При обычном обновлении сохраняйте KVP-кэш; повреждённые или непроверяемые записи анализируются заново.
  2. Начальный каталог собирает явно заданные имена событий Lua/JS. Динамические имена, нечитаемые или escrow-файлы и DLL не считаются полностью проверенными.
  3. Ручная автоматическая настройка ждёт завершения анализа. Неполные, подозрительные, изменённые ресурсы и тайм-ауты не получают автоматического разрешения.
  4. На тестовом сервере проверьте вход игроков, обычную игру и действия администратора; оценивайте resmon вместе с числом игроков и нагрузкой framework.