Установка

Установка античита — пошагово

Это руководство проведёт вас от нуля до рабочей конфигурации. Здесь также объясняется, почему важен каждый шаг, чтобы вы знали, куда смотреть, если что-то пойдёт не так.

Перед началом — требования

ТребованиеЗачем это нужно
FiveM artifact 6121+Серверные net-события, на которые опирается античит (giveWeaponEvent, explosionEvent), надёжно работают только начиная с этой сборки.
OneSync включёнset onesync on. Владение сущностями и серверные детекты без него не работают.
oxmysqlЕдинственная обязательная зависимость. Баны, детекты и настройки читаются и пишутся через него.
MySQL / MariaDB 10.4+Базы данных ещё нет? Смотрите руководство по базе данных.
screenshot-basic (опционально)Делает скриншоты-доказательства в момент бана.

1. Скачать пакет

Когда подписка активна: Панель → Серверы → ваш сервер → «Скачать античит»

Или напрямую с лицензионным ключом:

curl -H "X-License-Key: YOUR_LICENSE_KEY" \
     -o tosun-ac.zip \
     https://admin.tosundev.com/api/ac_package_download.php
Каждая загрузка уникальна для вас. В пакете есть Build ID, привязанный к вашей лицензии и записанный в server/core/anticheat_000_license.lua. Если ваша копия всплывёт где-то ещё, её происхождение можно доказать. Не передавайте пакет и лицензионный ключ.

2. Распаковать в папку resources

resources/
└── [tosun]/
    ├── tosun-ac/
    └── tosun-ac-guardian/

Обе папки должны находиться на одном уровне. Guardian — отдельный ресурс, и сейчас вы поймёте почему.

3. Импортировать схему базы данных

Только при первой установке:

mysql -u USER -p DATABASE < tosun-ac/sql/ts_anticheat.sql

Либо задайте ts.autoSQL = true в configs/anticheat_config.lua, запустите сервер один раз и верните значение false.

ℹ️ При обновлениях различия схемы применяются автоматически (ADD COLUMN IF NOT EXISTS) — вручную ничего делать не нужно.

4. server.cfg — порядок важен

ensure oxmysql
ensure tosun-ac
ensure tosun-ac-guardian
Почему Guardian необходим? Самый частый способ обхода — просто остановить античит: выполнить stop tosun-ac и играть, ни разу не получив бан. Проблема в том, что при остановке tosun-ac его собственные защитные потоки умирают вместе с ним — он не может воскреснуть сам.

tosun-ac-guardianотдельный ресурс, поэтому он выживает: при несанкционированной остановке он перезапускает античит в течение секунды и останавливает ресурс, отдавший команду. Оба следят друг за другом — выключить их одновременно невозможно.

Guardian должен идти после tosun-ac.

5. Подключить панель

В configs/anticheat_config.lua:

ts.webPanelURL = "https://admin.tosundev.com"
ts.webPanelKey = "YOUR_API_KEY"

API-ключ находится в Панель → Серверы → ваш сервер → API-ключ.

Можно оставить оба поля пустыми — античит возьмёт их из таблицы panel_settings при запуске. Если настройка шла через панель, они уже там.

6. Запуск и проверка

Перезапустите сервер. Вы должны увидеть:

[Tosun AC v9.0] NetEventGuard aktif
[AC-Guardian] Aktif — tosun-ac harici gözetmen koruması altında.

Затем в игре:

/ts status     → статус модулей
/ts test       → самопроверка

Панель → AC → Live должна показать сервер онлайн в течение 30 секунд.

7. Усиление платформы — самый ценный шаг

Эти настройки блокируют значительную часть читов на уровне маршрутизации FiveM. Ни один клиентский чит не обойдёт их, потому что сервер просто не пересылает пакет. Античиту они ничего не стоят и обойти их нельзя.
# Клиенты не могут создавать сетевые сущности (транспорт/педы/объекты)
set sv_entityLockdown "relaxed"

# Только сервер может писать в state bags
set sv_stateBagStrictMode "true"

# Перехват контроля над сущностями (подбрасывание машин, игроков)
set sv_filterRequestControl "2"

# Сетевые события, пригодные для злоупотреблений
set sv_enableNetworkedSounds "false"
set sv_enableNetworkedPhoneExplosions "false"
set sv_enableNetworkedScriptEntityStates "false"

# Клиенты со ScriptHookV
set sv_scriptHookAllowed "false"

# Изменённые клиентские файлы (используются для silent aim)
set sv_pureLevel "1"

Античит проверяет эти значения при запуске и перечисляет отсутствующие. Чтобы безопасные применялись автоматически:

ts.hardening.autoApply = true
sv_entityLockdown strict может сломать старые скрипты, спавнящие транспорт с клиента (некоторые автосалоны). Начните с relaxed, протестируйте, затем ужесточайте. Эта настройка никогда не применяется автоматически.

8. Выдать права администратора

Подойдёт любой из способов; побеждает первое совпадение:

# 1) server.cfg — ACE
add_ace group.admin tosun.admin allow
add_principal identifier.license:YOUR_LICENSE group.admin

# 2) txAdmin — распознаётся автоматически (ts.txAdminAuth = true)

# 3) admins/anticheat_admins.lua
Admins = { "license:xxxxxxxxxxxxxxxxxxxxxxxx" }

# 4) Панель → AC → Admin Grants

Меню открывается командой /tsmenu, /ts menu или клавишей F7.

Изменение безопасности в v9.0: авторизация меню теперь идёт через обращение к серверу с nonce, сгенерированным на клиенте. В прежних версиях чит мог локально вызвать события и пометить себя администратором — получая и доступ к меню, и иммунитет от любого бана. Эта дыра закрыта.

Чек-лист установки

  • ☐ В консоли есть NetEventGuard aktif
  • ☐ В консоли есть [AC-Guardian] Aktif
  • ☐ Нет красного блока GUVENLIK UYARISI (или вы намеренно пропустили перечисленные convar'ы)
  • ☐ Сервер отображается онлайн в панели
  • /tsmenu открывается у администратора
  • /tsmenu ничего не делает у обычного игрока

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

СимптомПричина и решение
Кик с сообщением Anticheat failed to loadОт клиента так и не пришёл heartbeat. Обычно это медленная загрузка — увеличьте ts.HeartBeat.firstHeartbeatDeadline. Если затронуты все, убедитесь, что oxmysql стартует раньше tosun-ac.
Администратора банитПроверьте, что он распознан: /ts whoami. Идентификатор в admins.lua должен совпадать точно (включая префикс license:). Права из панели применяются до 20 секунд.
Обычные игроки открывают менюУ вас v8.x. Обновитесь до v9.0 — это была известная уязвимость.
Кнопки меню не реагируютNUI не смог загрузить SweetAlert2 с CDN. v9.0 переключается на резервный вариант автоматически; проверьте консоль NUI (F8 → nui_devtools).
Баны никогда не выдаютсяПроверьте ts.punishType и ts.DetectionPunishments — детект, назначенный на LOG, никогда не банит. ts.Debug должен быть false.
Фоновые NPC всё ещё спавнятсяЗадайте ts.NpcBlocker.enabled = true и blockPeds = true. Педы, созданные скриптами, намеренно никогда не удаляются.

Обновление

  1. Скачайте новый пакет в панели (тот же URL — он всегда отдаёт последнюю сборку для вашей лицензии)
  2. Сделайте резервную копию папок configs/, admins/ и editable/
  3. Замените папку ресурса
  4. Восстановите свои файлы конфигурации — они не обфусцированы именно для того, чтобы вы могли их редактировать
  5. Перезапустите

При обращении в поддержку укажите свой Build IDserver/core/anticheat_000_license.lua) — он определяет вашу точную сборку.

На главную Tosun Dev Docs