ClientID
ClientID - связка Fabric-мода и серверного плагина, которая показывает админу список модов и ресурспаков каждого игрока и позволяет блокировать вход с читами. Работает на Paper, Spigot, Folia и Fabric.
ClientID - это не совсем мод и не совсем плагин, а связка из двух частей, которые работают в паре. Клиентский Fabric-мод ставится игроку, а серверный плагин - на сервер. Вместе они дают админу то, чего в ванильном Майнкрафте нет вообще: возможность видеть, какие моды и ресурспаки установлены у каждого заходящего игрока, и блокировать вход тем, у кого стоит что-то запрещённое.
Скачать ClientID стоит в первую очередь владельцам серверов, которые устали от игроков с XRay, чит-клиентами и прочими "улучшайзерами". По факту это один из немногих рабочих способов контролировать модифицированных клиентов без полноценного античита.
Как это работает
Схема простая. Плагин на сервере при входе игрока запрашивает у его клиента список установленных модов и ресурспаков. Клиентский мод ClientID этот список отдаёт. Дальше сервер сверяет его со своими правилами: если находит запрещённый мод - игрока кикает, если мода нет вообще - можно либо пустить, либо не пустить, в зависимости от настройки.
Важный момент: без клиентской части плагин ничего не увидит. Именно поэтому в конфиге есть опция requireMod, которая по умолчанию включена - она требует, чтобы у каждого игрока стоял ClientID. Пока сервер не подтвердит наличие мода, игрок не может ничего делать: ни двигаться, ни получать урон. Жёстко, но эффективно.
Настройка через конфиг
Все правила задаются в конфиге на стороне сервера. Разберём каждую опцию по-человечески.
| Опция | Что делает | По умолчанию |
|---|---|---|
| requireMod | Требовать наличие ClientID у всех игроков. Пока мод не подтверждён, игрок полностью заблокирован | true |
| keywordBans | Список ключевых слов. Если слово встречается в названии любого мода игрока - кик | - |
| blacklist | Список конкретных ID модов, которые запрещены | - |
| whitelist | ID модов, которые игнорируют keywordBans и blacklist | - |
| playerBypass | Игроки, которым можно заходить без ClientID или с запрещёнными модами | - |
| reversePlayerBypass | Переворачивает playerBypass: теперь только игроки из списка обязаны иметь мод, остальные - нет | false |
| disablePieChart | Запрещает клиентам открывать pie chart (диаграмму F3) | false |
| logModsOnJoin | Выводить в консоль список модов и ресурспаков игрока при входе | true |
Самая мощная опция тут - keywordBans. Не нужно знать точный ID каждого чит-клиента. Достаточно добавить в список слова вроде "xray", "hack", "cheat", "wurst", "meteor" - и сервер автоматически будет кикать всех, у кого в списке модов встречается что-то подобное. Правда, тут есть нюанс: иногда невинные моды могут попасть под фильтр случайно. Для таких случаев и существует whitelist - добавьте туда ID проверенных модов, и они будут пропускаться даже при совпадении по ключевому слову.
Опция disablePieChart появилась в версии 1.1.0 и закрывает доступ к внутриигровой диаграмме, которую некоторые игроки используют для поиска спавнеров и сундуков через данные о рендере. Мелочь, а приятно - ещё один способ читерства отрезан.
Совместимость и платформы
Серверная часть работает на Paper, Purpur, Spigot и Folia. Клиентская - на Fabric. Актуальные версии Minecraft: 1.20.1, 1.21.x, 26.1.x и 26.2. Проект набрал уже больше 58 тысяч загрузок, что для такого узкоспециализированного инструмента - показатель.
Если у вас сервер на Geyser, имейте в виду: Bedrock-игроки смогут зайти, но никакие проверки на них работать не будут. Плагин просто не имеет доступа к их клиенту, так что доверять придётся на слово.
А что насчёт Forge и NeoForge?
Напрямую ClientID на Forge не заведётся, но есть обходной путь через моды-конвертеры. Нужно поставить три дополнительных мода вместе с ClientID:
- Forgified Fabric API
- Connector
- Fabric Permissions API
Связка рабочая, но учтите - это всё же костыль, и стабильность будет зависеть от конкретной сборки.
Это не античит
Автор прямо говорит: ClientID защищает от большинства читеров, но не от всех. Умный игрок может подменить список модов, который отдаёт клиент, или использовать чит, замаскированный под легитимный мод. Поэтому настоятельно рекомендуется ставить ClientID в паре с нормальным античитом - так вы закроете и модифицированные клиенты, и тех, кто хитрит с пакетами и движением.
По факту ClientID - это первый рубеж обороны. Он отсеивает ленивых читеров, которые просто закинули Wurst или Meteor Client в папку mods и пошли на сервер. А вот от целенаправленных взломщиков уже должен работать античит.
Статус проекта
Новых фич больше не будет. Автор перевёл проект в режим поддержки: обновления под свежие версии Minecraft выходят, но новый функционал добавляться не будет. Исходный код открыт под лицензией GNU GPL 3.0, так что сообщество может форкать и развивать проект самостоятельно. Последняя версия 1.1.3 исправила работу playerBypass в Fabric-сборке и починила планировщики на Folia, а также добавила статистику bStats в Spigot-версию.
Кому нужен ClientID
Если вы держите приватный сервер для друзей - скорее всего, не нужен. А вот если у вас публичный или полупубличный проект, куда заходят незнакомые люди, и вы хотите хоть как-то контролировать, с чем они играют - это один из самых простых и рабочих инструментов. Настройка занимает минут десять: закинули плагин, прописали пару ключевых слов в keywordBans, и уже никто с XRay не зайдёт.
Для запуска сервера с ClientID и другими плагинами удобно использовать хостинг серверов Майнкрафт - например, BungeeHost (https://bungee.host), где плагин ставится в один клик и не нужно возиться с ручной настройкой. Арендовать сервер Майнкрафт там можно за пару минут, и сразу закинуть нужные плагины через панель.
Скриншоты ClientID
Часто задаваемые вопросы
Версии плагина ClientID
Доступно 56 версий. Сначала показаны самые популярные и самые свежие.