Античит RedM и античит FiveM: это не одна и та же задача
Античит FiveM на RedM молчит там, где должен срабатывать, и кричит там, где не должен. В чём отличия двух игр и что проверить в первую очередь.
Вопрос приходит каждую неделю в одной и той же форме: у меня на сервере FiveM уже стоит античит, можно ли направить его на RedM-сервер? Он запустится. Он сообщит, что здоров. И будет ошибаться сразу в двух направлениях: молчать там, где должен срабатывать, и кричать там, где не должен. Речь не о том, что какой-то конкретный продукт плохо написан. Две игры отдают детектору разные данные, и большая часть того, что верно для GTA V, неверна для RDR3. Так выглядит разница между античитом RedM и античитом FiveM.
Две игры, две поверхности для читов
Что на самом деле делает читер на FiveM
GTA V уже больше десяти лет остаётся мишенью для модификаций, а рынок читов для FiveM полностью превратился в товар: подписки, каналы обновлений, поддержка клиентов. Списки функций сошлись, потому что сошлись цели: спавн транспорта, выдача денег, ручной вызов серверных событий, инжект предметов фреймворка, выдача себя за админа. Центр тяжести - экономика, потому что именно там лежит ценность на ролевом сервере GTA.
Что на самом деле делает читер на RedM
RDR3 - цель поменьше, и меню меньше, но те, что есть, вышли из тех же кодовых баз и продаются в тех же местах. Меняется цель. Суперкара, который можно заспавнить, нет. Ценное злоупотребление на RedM - это бой: перестрелка длится три выстрела, оружие медленное и тяжёлое, и всё решает одна исправленная пуля. Аимбот и silent aim здесь стоят больше, чем на сервере, где все возрождаются за девяносто секунд, а годмод следует по той же причине. Затем идут физика верховых животных и фургонов и события фреймворков VORP или RSG.
Что одинаково и почему это ничего не меняет
Архитектура лжи в обеих играх одна: клиент запускает мир, сам решает, что произошло, и может править рассказ перед отправкой. Всё из статьи как на самом деле работает античит RedM без изменений верно и для FiveM. Именно эта общая основа заставляет думать, что детектор тоже переносим. Не переносится не *метод*. Не переносятся все входные данные, которыми метод питается.
Где перенесённый античит замолкает
Нативы, которые ведут себя иначе и ничего об этом не сообщают
Начнём с того, что подводит всех, причём оно даже не специфично для RedM: просто при переносе оно и кусается. Нативы CitizenFX с возвращаемым типом BOOL возвращают число 1, а не булево значение Lua true. Защита, написанная как if IsPedInAnyVehicle(ped) == true then, - мёртвый код. Она никогда не выдаёт ошибку, ничего не пишет в лог, не срабатывает. В языке, где ничего не падает, детектор может месяцами стоять выключенным, пока панель бодро сообщает, что он включён.
Затем собственно «RedM-половина»: нативы, которые есть в GTA V и просто отсутствуют в RDR3, и нативы с тем же именем, но другим поведением. Ни то ни другое не вызывает ошибки. И то и другое даёт модуль, который загружается, крутит свой цикл, тратит свой бюджет тика и не детектирует вообще ничего, навсегда.
Событие урона, на котором всё было построено
Большая часть подсчёта попаданий на FiveM держится на одном событии урона. В RDR2 это событие в заметной доле случаев молчит на стороне жертвы. Перенесите детектор как есть, и он ничего не считает, при этом сообщая об идеальном здоровье. Это хуже падения, потому что падение чинят. Починка - не смена порога, а другой путь доказательства: прочитать собственные показатели жизни жертвы на сервере и сопоставить их с заявленным выстрелом.
События фреймворков вообще не совпадают
Детектор злоупотребления событиями на практике - это список имён событий. Написанный под FiveM, этот список состоит из ESX и QBCore. На RedM это VORP Core, RSG, redemrp или самописный стек, и названия не имеют ничего общего. Перенесённый список - это набор строк, которых нет нигде на вашем сервере. Он совпадает с нулём событий и поднимает ноль оповещений, что выглядит в точности как чистый сервер.
Где перенесённый античит впадает в истерику
Один потолок скорости в GTA V, четыре в RDR3
Лошадь в полном галопе проходит дистанцию в несколько раз быстрее бегущего человека и приземляется точно в диапазон, который любой выбрал бы потолком для человека пешком. Один порог скорости поэтому либо отметит каждого всадника на карте, либо будет настолько свободным, что полностью пропустит спидхак. Добавьте фургон: игрок, стоящий в движущемся фургоне или на поезде, едет со скоростью транспорта, пока движок сообщает его собственную скорость движения как нулевую. Для проверки «расстояние за время» это хрестоматийная запись координат.
Поэтому в модуле свой потолок на каждый способ передвижения (пешком, верхом, в транспорте, вплавь), у каждого свой допуск, и ни один из них не применяется, пока не проверен контекст перемещения. Сами значения остаются внутри компании по той же причине, что и пороги прицеливания: разработчик чита, знающий потолок, настраивает свой софт так, чтобы держаться чуть ниже. Покупателю нужна форма, а не числа. Продукт, у которого одна настройка скорости, написан под GTA V.
Плавание и реки, о которых никто не подумал
Потолок плавания, выставленный в несколько раз выше скорости плывущего игрока, кажется щедрым. Это не так: карта RDR2 полна рек и порогов, и течение уносит совершенно честного игрока далеко за него. Рабочий потолок получается намеренно широким: незаметным для того, кого подхватило течение, и всё ещё далёким от того, что даёт спидхак в воде. В GTA V вы плаваете в ровном океане, и вопрос вообще не возникает.
В RDR2 три легитимные камеры, которые улетают от педа
Детекция фрикама в GTA V почти бесплатна: измерить расстояние между камерой и педом и поднять тревогу за порогом. В RDR2 то же самое измерение само по себе бессмысленно, потому что кинематографическая камера на клавише, камера повалённого и погибшего игрока и каждая скриптовая камера магазина или кат-сцены по замыслу находятся в десятках метров от игрока.
Однажды мы выпустили наивную версию. За первую неделю она обвинила длинный список совершенно честных игроков, а проверки, призванные подтвердить настоящий фрикам, не сработали ни разу. Только мод-меню двигает камеру пока пед стоит на месте, поэтому расстояние должно приходить вместе с неподвижным педом и камерой, которая продолжает перемещаться. Три условия одновременно, а не одно измерение. Перенесённая версия этого детектора не просто слегка шумит: она обвиняет ваших завсегдатаев и никого не находит.
Перемещение здесь - основная механика, а не исключение
Поездки в дилижансе, быстрое перемещение из лагеря, переводы в тюрьму, интерьеры недвижимости и магазинов: ролевая игра на RedM постоянно перемещает игроков скриптом, и каждый такой скачок выглядит как телепорт для детектора, у которого есть только порог расстояния. Повышение порога это не лечит, оно лишь слепит вас к настоящим телепортам. Лечит список допустимых контекстов перемещения, который объявляет сервер (спавн, быстрое перемещение, действие админа), чтобы детектор мог отличить скриптовое перемещение от необъяснённого.
Проблема ложных срабатываний на RedM структурно хуже
Здесь действует жестокий эффект отбора. Самое слабое семейство детекций (прочитать состояние и поднять по нему тревогу) легче всего переносится, потому что флаг в обеих играх остаётся флагом. Поэтому именно оно переживает переезд целым, а сильные семейства тихо ломаются. И именно его ваш собственный сервер вызывает весь день: при реанимации, во время кат-сцены, в безопасной зоне, при спавне, пока работает скрипт медика, каждый раз, когда админ использует выданный вами инструмент.
Единственное, что отличает чит от вашего собственного скрипта, ставящего тот же флаг, - кто его вызвал. Эту атрибуцию нужно строить намеренно, и она не пересекает границы ресурсов сама собой: хук, установленный внутри одного ресурса, не видит вызов из другого. Любой вендор, продающий детекцию годмода без прямого ответа про атрибуцию вызывающего, продаёт вам канал оповещений, который ваш персонал заглушит за две недели. У этого сбоя есть своя статья: почему ваш античит обвиняет честных игроков.
Что проверить перед покупкой античита для RedM
Решение принимается на стороне сервера? Это не специфика RedM, а просто непреложное условие: всё, что находится на машине игрока, игрок может отключить.
Попросите потолки скорости по отдельности: пешком, верхом, в фургоне, вплавь. Одно число было написано под GTA V и больше не пересматривалось.
Спросите, как распознаётся скриптовое перемещение. Больший порог вместо объявленного контекста означает, что быстрое перемещение похоронит ваш персонал.
Спросите, как атрибутируется вызывающий смену состояния. Без этого детекция годмода, невидимости, ноуклипа и лечения ничего не стоит.
Спросите, какие именно фреймворки. VORP Core, RSG, redemrp, самописные. «Совместим со всеми фреймворками» значит, что список событий никогда не писался.
Спросите, что происходит, когда натива нет в RDR3, и чего продукт не видит вообще. Отказ загружаться с сообщением лучше, чем работа вхолостую.
Коротко
- 1
Метод переносится. Входные данные нет: нативы, события урона и названия событий фреймворков в RDR3 другие.
- 2
Перенесённый детектор молча ломается намного чаще, чем ломается громко, поэтому «нет оповещений» не доказывает, что сервер чист.
- 3
Один порог скорости не может одновременно покрыть человека, лошадь, фургон и реку.
- 4
RDR2 на законных основаниях уносит камеру от педа и весь день перемещает игроков скриптом, поэтому перенесённые детекторы состояния заваливают оповещениями.
- 5
Детекция, переживающая перенос, - самая слабая, и именно она порождает ложные срабатывания.
Полный список детекций есть на странице функций, демо-панель открыта с реальными материалами дел и не требует аккаунта, а тарифы публичны. Обзор античита RedM собирает всё это на одной странице. Если вам нужен не сравнительный разбор, а сам метод, начните со статьи как на самом деле работает античит RedM.