Какую проблему решает heartbeat
Самый сложный чит для детекта — тот, который тихо отключает клиент античита и дальше работает незамеченным. Проверки сигнатур можно перехватить. Инспекцию NUI можно заблокировать. Функции проверки целостности можно занулить патчем. Как только клиентский слой замолкает, однослойный античит слепнет. Heartbeat-защита существует ровно для того, чтобы «тишина» стоила дорого: отсутствие heartbeat само по себе является детектом.
Как работает цикл heartbeat
Клиент Raven отправляет подписанный пакет с фиксированной частотой (адаптивной для каждого сервера, см. запись в changelog от 2026-02-17; раньше было фиксированные 1500 мс). В пакет входит криптографический хеш критического состояния (целостность ресурса, отпечатки таблицы хуков, адреса обработчиков событий), метка времени и одноразовый номер сессии. Сервер проверяет подпись, сверяет хеш с ожидаемой базой и замеряет интервал прихода. Детектируются три типа отказа: heartbeat не приходит (молчащий клиент), heartbeat приходит, но его содержимое больше не совпадает с ожидаемым (изменённый клиент), либо heartbeat приходит не с той частотой (повторённый или устаревший клиент).
Почему важна частота
Фиксированное окно heartbeat обойти проще. Чит, который ненадолго отключает клиент между двумя heartbeat, может держать цикл живым и всё это время работать незамеченным. Адаптивная частота для каждого сервера (калибруется по средней задержке тика за первые 24 часа) делает это окно непредсказуемым для чита и при этом не мешает обычным игрокам на маршрутах с высоким пингом. Релиз 2026-03 пересобрал окно по умолчанию с фиксированных 1500 мс на адаптивный диапазон 800-1500 мс, что снизило ложные срабатывания на маршрутах EU/AS примерно на 38%.
Что происходит при отказе heartbeat
Реакция настраивается для каждого сервера в трёх уровнях. Уровень 1 (предупреждение) помечает игрока на живой карте и уведомляет админов через настроенный вебхук Discord. Уровень 2 (кик) выкидывает игрока с сервера с общей причиной отключения и записывает событие со всеми доказательствами (последний валидный heartbeat, текущая метка времени, разница в пакете). Уровень 3 (автобан) банит игрока на локальном сервере и ставит его в очередь на добавление в глобальную базу банов после проверки админом. Конфигурация по умолчанию консервативна (сначала предупреждение, эскалация только при повторах), потому что слой heartbeat может давать ложные срабатывания при обычных проблемах с сетью.
Как heartbeat связан с рейтингом доверия
Каждая аномалия heartbeat добавляется к персональному рейтингу доверия игрока (появился в версии 2026.4.0, см. /changelog). Один опоздавший heartbeat — это шум. Несколько опозданий у одного игрока в разных сессиях, heartbeat, который отстаёт именно тогда, когда игрок входит в определённые состояния игры, или heartbeat, который упорно возвращает один и тот же хеш, хотя пак ресурсов обновился, — всё это сигналы, которые выводят игрока на живую карту для проверки админом задолго до любого бана третьего уровня.