MAATRIX GAMES / Блог / Читеры на сервере DayZ — как бороться

Читеры на сервере DayZ — как бороться

MAATRIX GAMES

Заявка в Discord "у вас читеры, разберитесь" прилетает рано или поздно на любой живой сервер DayZ — вопрос только в том, готовы ли вы её разобрать за пять минут по логам или будете гадать по скриншоту с килфидом. BattlEye встроен в DayZ по умолчанию и уже неплохо режет паблик-читы, но одного его редко хватает — разберём, как читать его логи, где усилить фильтры, какие community-инструменты реально закрывают дыры, и как выстроить процесс банов без "показалось / не показалось".

Что вообще детектит BattlEye в DayZ, а что нет

BattlEye в DayZ работает в двух режимах одновременно. Первый — сигнатурный: клиентский модуль BE знает паттерны известных чит-программ и банит их сам, без участия сервера. Второй — скриптовый, специфичный именно для DayZ из-за движка Enfusion/Enforce Script, где часть игровой логики выполняется как скрипт: BE следит за вызовами скриптовых функций и может ловить читы, которые дёргают их напрямую (телепорт через SetPosition, спавн предметов, бесконечная стамина).

Чего BE не ловит сам по себе — это аим-ассист через эмуляцию ввода (чит не трогает память процесса, а просто двигает "мышь" программно) и внешний ESP через оверлей, который рисует поверх экрана, не вмешиваясь в игру. Тут нужен второй слой — статистика поведения и живое наблюдение админом, до этого дойдём ниже.

Честно: 100% детекта нет ни у одной системы, и DayZ не исключение. Задача — не "поставить и забыть", а держать процесс, который ловит основную массу и даёт инструменты разобрать спорные случаи.

Логи и фильтры BattlEye: где искать battleye/*.txt

При старте сервера с параметрами -adminlog -netlog (см. статью про поднятие сервера DayZ) BattlEye автоматически создаёт папку battleye внутри вашей папки профиля — обычно это ~/dayzserver/profiles/battleye/. Там лежит рабочий комплект:

  • BEServer_x64.log — главный журнал: сюда пишутся все кики и баны BE с причиной и BE GUID игрока. Первое место, куда смотреть при жалобе.
  • BEServer_x64.cfg — конфиг самого BE-модуля: RCon-пароль, порт, MaxPing, RConPassword и прочие серверные параметры подключения к BattlEye.
  • scripts.txt — фильтр скриптовых нарушений. Именно этот файл ловит попытки вызвать нелегальные игровые функции из чита — телепорты, дюп предметов, изменение параметров персонажа через скрипт.
  • publicvariable.txt — фильтр на подмену публичных сетевых переменных, ещё один частый вектор для читов, лезущих в синхронизацию клиент-сервер.
  • bans.txt — глобальный бан-лист BattlEye по BE GUID, применяется на уровне самого модуля, отдельно от игрового бан-листа DayZ.

По умолчанию файлы фильтров в DayZ либо пустые, либо содержат минимальный набор правил — усиливать их приходится вручную. Формат строки в фильтре такой: <номер> <паттерн_совпадения> <количество_срабатываний> <действие> ["сообщение"], например:

5 !="" kick

Это не готовый рабочий фильтр для копипаста — конкретные паттерны и пороги зависят от версии игры и набора модов на сервере, и BE периодически меняет форматы под новые версии DayZ. Разумный подход: не писать фильтры с нуля самостоятельно, а брать актуальные community-шаблоны фильтров под текущий патч DayZ и адаптировать пороги под свой сервер — слишком агрессивный фильтр банит честных игроков с плохим пингом, слишком мягкий пропускает читы.

После правки любого файла в battleye/ изменения подхватываются либо автоматически (BE периодически перечитывает фильтры), либо командой #reload через RCon-консоль без полного рестарта сервера.

Поднять сервер DayZ за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Подозрительные паттерны: на что смотреть в логах и статистике

Когда логов BE недостаточно для однозначного вывода, ищите паттерны руками или через плагин статистики (о них — в разделе про CFTools ниже).

  • Телепорты и резкие скачки позиции. Отличить теневой чит от лаг-компенсации на плохом соединении непросто: у легитимного игрока при скачке пинга клиент "дёргается", но быстро возвращается в согласованную с сервером позицию. Настоящий телепорт-чит выглядит как мгновенное перемещение на большую дистанцию без промежуточных кадров движения — такие вызовы и должен ловить фильтр scripts.txt, если он настроен под актуальный патч.
  • Аномальная точность стрельбы. Один эффектный флик-хедшот через кусты ничего не доказывает — у DayZ щедрая система прицеливания на близких дистанциях. Смотреть стоит на серию: стабильно высокий процент попаданий в голову через препятствия, стрельба без визуального контакта — это уже повод для расследования, а не единичное совпадение.
  • Мгновенная реакция на игрока из-за угла или из кустов — классический признак wallhack/ESP, проверяется наблюдением (спектейт) или демозаписью стрима игрока, если он есть — серверных логов для этого DayZ не пишет.
  • Дюп предметов и аномальный лут — резкий рост редких предметов у конкретного игрока в базе персистентности — повод проверить ADM-логи (-adminlog) на подозрительные транзакции инвентаря рядом по времени.

Без хотя бы двух совпадающих признаков плюс лог BE обвинение строится на "мне показалось" — плохая основа для бана.

VPPAdminTools: расследование прямо в игре

VPPAdminTools (Vanilla Plus Admin Tools) — один из самых распространённых community-модов для администрирования DayZ-сервера, ставится как обычный серверный мод через Steam Workshop и подключается параметром -serverMod= при запуске сервера:

./DayZServer -config=serverDZ.cfg -port=2302 -profiles=profiles -dologs -adminlog -netlog \
  -mod=@CF \
  -serverMod=@VPPAdminTools

Мод даёт админ-меню прямо в клиенте: телепорт к любому игроку или точке на карте, freecam-режим для скрытого наблюдения (полезно именно для того, чтобы понаблюдать за подозрительным игроком со стороны, не спалившись), спавн предметов для тестов, кик/бан из меню без RCon-консоли, просмотр инвентаря и статов игрока. Для разбора жалобы это ощутимо быстрее ручных RCon-команд: подлетели freecam'ом к точке боя, посмотрели траекторию и поведение — картина инцидента готова без стороннего софта.

Важный нюанс: права в VPPAdminTools завязаны на список SteamID64 в конфиге мода — держите этот список в приватности и раздавайте админку только доверенным людям, freecam и телепорт в чужих руках — это фактически легальный чит-инструмент.

CFTools Cloud: облачная статистика и бан-менеджмент

CFTools Cloud — сторонний облачный сервис (cftools.cloud) для администрирования серверов DayZ, работающий поверх RCon-подключения к вашему серверу без изменения игровых файлов. Регистрация сервера в панели CFTools даёт несколько практичных вещей для борьбы с читерами:

  • Централизованный бан-менеджмент — баны применяются через панель, синхронизируются с несколькими вашими серверами сразу, история хранится отдельно от логов BE и не теряется при ротации файлов.
  • Discord-вебхуки — кики и баны BattlEye, события подключения/отключения игроков летят в ваш Discord-канал в реальном времени, не нужно вручную мониторить BEServer_x64.log.
  • GameLabs-действия — часть функций, аналогичных VPPAdminTools (телепорт, спектейт, управление погодой/временем), доступна прямо из веб-панели без захода в игру — удобно для модерации со смартфона.
  • Статистика игроков — накопительные метрики по сессиям (килы, смерти, время на сервере) помогают заметить аномалии не по одному матчу, а по истории — резкий скачок K/D у ранее незаметного аккаунта виден сразу в профиле.

CFTools не заменяет BattlEye и не является полноценным античитом — это диспетчерская для админа поверх существующих логов и RCon, которая экономит время на рутине. Часть функций сервиса бесплатна, часть (расширенная аналитика, приоритетная очередь) — платная подписка; актуальные тарифы смотрите на сайте сервиса, здесь они меняются чаще, чем стоит фиксировать в статье.

Whitelist модов и проверка подписей

Отдельный источник читов на модовых серверах DayZ — не внешние программы, а сам клиент с подменённым или доработанным модом. Базовая защита уже встроена в конфиг serverDZ.cfg (см. статью про базовую конфигурацию сервера):

verifySignatures = 2;
forceSameBuild = 1;

verifySignatures = 2 заставляет сервер проверять подписи всех модов у подключающегося клиента и отклонять несовпадающие — отключать этот параметр даже "временно для теста" на публичном сервере не стоит. forceSameBuild требует от клиента точно ту же версию игры, что и на сервере, отсекая расхождения, которыми иногда пользуются для обхода проверок.

Дальше — дисциплина по составу модлиста: держите в -mod= и -serverMod= только моды из проверенных источников, периодически сверяйте, что версии на сервере совпадают с последними Workshop-обновлениями (устаревший мод — частая причина расхождения подписей и ложных отказов в подключении честным игрокам). Про сам процесс установки и порядок модов — в статье про установку модов на DayZ-сервер.

Если запускаете закрытый whitelist-сервер (только для своего комьюнити), дополнительно ограничьте доступ через password в serverDZ.cfg и список разрешённых SteamID64 через VPPAdminTools или средства панели хостинга — это резко снижает поток случайных читеров с паблика, но не избавляет от риска "своего" читера внутри закрытого круга.

Бан-лист, апелляции и процесс разбора инцидента

Баны в DayZ живут на двух независимых уровнях, и путать их — частая ошибка новых админов.

Баны BattlEye — хранятся в battleye/bans.txt, применяются автоматически при срабатывании сигнатур или скриптовых фильтров, снять такой бан вручную можно, отредактировав файл и выполнив #reload bans через RCon, но если бан выдан за реальное нарушение — снимать его без проверки логов не стоит.

Баны самого сервера DayZ — управляются через RCon-консоль (подключение по протоколу BE RCon, порт задаётся в BEServer_x64.cfg) командами вида #ban <BE GUID> [время] [причина] для временного бана или без времени — для перманентного, список хранится в ban.txt в папке профиля. Смотреть на конкретную причину бана в этом файле — первое, что стоит сделать, прежде чем отвечать на апелляцию.

Рабочий процесс на жалобу "забанили несправедливо":

  1. Спросите SteamID64 или BE GUID и примерное время инцидента — без этого искать в логах бессмысленно.
  2. Проверьте оба логаBEServer_x64.log на причину BE-бана и ADM-лог сервера на действия игрока незадолго до бана (резкие смены позиции, аномальные килы).
  3. Если основание слабое (единичное срабатывание фильтра при нестабильном пинге, ложное совпадение скриптового паттерна) — снимайте бан и коротко объясните причину в тикете.
  4. Если паттерн подтверждается несколькими независимыми признаками — оставляйте бан и зафиксируйте решение в отдельном админ-логе (кто, когда, почему), это экономит время при повторных апелляциях. Общие принципы работы с жалобами и встроенными античитами разных игр разобраны в статье про античит и ложные баны.

Держите короткий регламент апелляций (куда писать, какие данные приложить) в закреплённом сообщении Discord — это снижает поток однотипных жалоб и приучает игроков сразу давать нужные данные.

Поднять сервер DayZ за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

Достаточно ли одного BattlEye без сторонних инструментов?

Для небольшого приватного сервера — часто да, особенно если фильтры scripts.txt/publicvariable.txt настроены под актуальную версию игры. На крупном публичном сервере с большим потоком новых игроков разумно добавить CFTools Cloud или аналог хотя бы ради вебхуков и истории банов — вручную мониторить логи 24/7 нереально.

Можно ли снять бан BattlEye вручную, отредактировав bans.txt?

Технически да, но делайте это только после проверки причины бана в BEServer_x64.log — файл банов не хранит развёрнутое объяснение, только идентификатор и код нарушения.

VPPAdminTools конфликтует с другими админ-модами?

Возможны конфликты при одновременной установке нескольких модов, дающих похожее админ-меню (пересечение горячих клавиш или UI-элементов) — ставьте один основной инструмент администрирования, а не несколько сразу, и проверяйте порядок загрузки в -serverMod=.

Что делать, если фильтр scripts.txt начал банить честных игроков после обновления DayZ?

Отключите проблемное правило фильтра (закомментируйте строку) до выяснения причины, проверьте форум сообщества BattlEye/DayZ на предмет уже известной проблемы с текущим патчем — после крупных обновлений игры паттерны скриптовых вызовов иногда меняются, и старые фильтры временно ловят легитимный игровой код.

Нужен ли whitelist по SteamID на публичном сервере?

Обычно нет — это скорее инструмент для закрытых комьюнити-серверов. На публичном сервере полагайтесь на verifySignatures, BattlEye и процесс банов по факту нарушения, а не на предварительный отбор игроков.