Установка
Установка античита — пошагово
Это руководство проведёт вас от нуля до рабочей конфигурации. Здесь также объясняется, почему важен каждый шаг, чтобы вы знали, куда смотреть, если что-то пойдёт не так.
Перед началом — требования
| Требование | Зачем это нужно |
|---|---|
| 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
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
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. Усиление платформы — самый ценный шаг
# Клиенты не могут создавать сетевые сущности (транспорт/педы/объекты)
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.
Чек-лист установки
- ☐ В консоли есть
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. Педы, созданные скриптами, намеренно никогда не удаляются. |
Обновление
- Скачайте новый пакет в панели (тот же URL — он всегда отдаёт последнюю сборку для вашей лицензии)
- Сделайте резервную копию папок
configs/,admins/иeditable/ - Замените папку ресурса
- Восстановите свои файлы конфигурации — они не обфусцированы именно для того, чтобы вы могли их редактировать
- Перезапустите
При обращении в поддержку укажите свой Build ID (в server/core/anticheat_000_license.lua) — он определяет вашу точную сборку.