Skip to the content.

VTRegister — полное руководство

Русский · English · Все настройки · Безопасность · GitHub

Название плагина — VTRegister. «RegisterPlugin» — его старое, больше не используемое имя (так он назывался до версии 1.1.0 включительно). С версии 1.1.5 это один и тот же плагин под новым именем: jar VTRegister-vX.jar, папка plugins/VTRegister/, в /plugins он виден как VTRegister. Внутренний Java-пакет me.vorchun.registerplugin, главный класс RegisterPlugin и право registerplugin.admin сохранили старое имя только ради совместимости с настройками серверов и API других плагинов.


Содержание

  1. Коротко
  2. Кому подходит
  3. Как проходит вход игрока
  4. Установка
  5. Главные настройки по умолчанию
  6. Антибот подробно
  7. Пароли, 2FA, почта, сессии
  8. Прокси: Velocity и BungeeCord
  9. Команды, права, плейсхолдеры
  10. Файлы и папки
  11. Обновление с RegisterPlugin 1.1.0 и переход с других плагинов
  12. Нагрузка и оптимизация
  13. Совместимость с другими плагинами
  14. Частые проблемы
  15. Чем отличается от других плагинов входа

1. Коротко

   
Что это Плагин регистрации и авторизации (/register, /login) со встроенным антиботом
Название VTRegister (старое имя — RegisterPlugin, больше не используется)
Версия 1.1.7 (ветка 1.1.5+) — актуальная и самая продвинутая за всю историю плагина. 1.1.0 и ниже (в том числе под именем RegisterPlugin) устарели: без обновлений и исправлений безопасности
Автор Vorchun (на MineLeak.pro — vitaliy21)
Происхождение авторский плагин: с первой версии публикуется самим автором, код никогда не обфусцировался, исходники с историей изменений — на GitHub
Цена бесплатно
Исходный код открыт: https://github.com/Vitaliy222121/VTRegister
Лицензия GPL-3.0 с доп. условиями или VMIT (на выбор) — можно использовать, изучать и распространять с указанием автора
Серверы CraftBukkit, Spigot, Paper, Purpur, Pufferfish, Leaf, Leaves, Folia и другие форки; гибридные Mohist, Arclight, CatServer, Magma
Прокси Velocity 3.x–4.x, BungeeCord — тот же jar (Waterfall закрыт и отдельно не проверялся)
Minecraft ядро 1.13 → 1.21.x → 26.x; клиенты 1.7 → новейшие через ViaVersion/ViaBackwards/ViaRewind
Java 8 → 25
Bedrock Geyser + Floodgate
Хранилище YAML, SQLite, MySQL, MariaDB, PostgreSQL
Языки русский и английский, выбор по языку клиента
Где скачать Releases на GitHub — новые версии выходят там первыми; вторая официальная страница — SpigotMC

2. Кому подходит

Почему именно 1.1.5. Это технологический рубеж проекта: антибот перешёл от простых проверок к поведенческому анализу — физика клиента по пакетам, задания в мире, темп ответов, контроль пакетов с первой секунды. Защита построена по принципу «безопасно по умолчанию», вход оптимизирован (игрок сразу появляется на платформе, без лишних перелётов между мирами), а один jar обслуживает и сервер, и прокси. Версии 1.1.0 и ниже устарели и не поддерживаются.

Нужна только простая авторизация без антибота? Поставь 1.1.7 и выключи антибот строкой antibot.enabled: false в config.yml (подробнее — в README, раздел «Нужна только простая регистрация и вход?»). Останутся /reg и /login с защищённым вводом пароля, Argon2id и защитой от подбора. Устаревшую 1.0.3 из архива ставить ради простоты не нужно: она не получает исправлений безопасности.

3. Как проходит вход игрока

Новый игрок (аккаунта ещё нет), настройки по умолчанию:

  1. Игрок сразу появляется на платформе входа в отдельном пустом мире проверки (security.spawn_on_platform: true). Основной мир ему не загружается, другие неавторизованные игроки его не видят.
  2. Начинается проверка на бота на своей арене: падения с разной физикой (5 повторов), пазл «оставь только свинок», задание с сундуком и блоком. Вверху — боссбар с этапом и таймером.
  3. Проверка пройдена — игрок сразу переносится обратно на платформу входа и получает подсказку зарегистрироваться.
  4. /reg, затем пароль пишется следующим сообщением в чат (защищённый режим — пароль не попадает в консоль и логи), потом повтор пароля.
  5. После регистрации игрок возвращается в основной мир — туда, куда указывает after_auth: по умолчанию на спавн мира для новичков.

Зарегистрированный игрок: появляется на платформе входа → /l → пароль в чат → (код 2FA, если включена) → возвращается на точку, где вышел в прошлый раз. Антибот проверяет новичков всегда, а постоянных игроков — снова раз в 24 часа при входе (antibot.recheck_hours: 24; 0 — не перепроверять).

До входа игрок ничего не может: чат, команды (кроме разрешённых), ломать/ставить блоки, драться, получать урон, выкидывать и подбирать предметы, телепортироваться. Эффекты, голод и прочность вещей не тратятся. На вход даётся 60 секунд после проверки (auth.timeout_seconds).

4. Установка

Один сервер

  1. Скачай VTRegister-v1.1.7.jar из Releases, положи в plugins/.
  2. Запусти сервер. Появится plugins/VTRegister/ с config.yml, advanced.yml, lang/ru.yml, lang/en.yml, easy-passwords.yml.
  3. Всё уже работает с безопасными настройками. Если в консоли видишь просьбу перезапустить сервер из-за commands.log — перезапусти один раз (так пароли из команд точно не попадут в лог ядра).

Сеть на Velocity

  1. Тот же jar — в plugins/ Velocity. Появится plugins/vtregister/config.yml (настройки прокси-модуля).
  2. На всех Paper-серверах за прокси — VTRegister и переадресация: Paper 1.19+ — config/paper-global.yml → proxies.velocity.enabled: true, online-mode: true, secret из forwarding.secret; Paper ≤1.18.2 — paper.yml → settings.velocity-support. В server.properties — online-mode=false.
  3. В конфиге прокси-модуля укажи auth_servers (имя сервера из velocity.toml, где вводят пароль) и при желании after_login_server.
  4. Чтобы вход на одном сервере засчитывался на других, задай одинаковую длинную строку в secret (прокси) и в security.proxy_bridge.secret (каждый сервер).

Сеть на BungeeCord

Так же, но переадресация — spigot.yml → settings.bungeecord: true, и обязательно BungeeGuard или proxy.firewall (иначе можно зайти мимо прокси с чужим UUID). Подробно — PROXY_SETUP.txt внутри jar.

Bedrock (Geyser/Floodgate)

Работает без настройки: физика антибота для Bedrock мягче, этап slots пропускается. Вход Bedrock-игроков без пароля — bedrock.trust_floodgate_players: true (по умолчанию выкл).

5. Главные настройки по умолчанию

Все 472 параметра с описаниями — в CONFIG.ru.md. Самое важное:

Параметр По умолчанию Смысл
language auto язык по клиенту (ru/en): сообщения, задания антибота, боссбары, лобби
security.secure_password_input true пароль — следующим сообщением в чат, не в команде
security.command_logging fix ставит commands.log: false в spigot.yml, чтобы ядро не писало пароли
security.hash_algorithm argon2id хеш паролей (19 МБ, 2 прохода, 1 поток — рекомендация OWASP)
security.max_login_attempts / lock_seconds 5 / 300 неверных паролей до блокировки и её длительность
security.single_session true вторая сессия под тем же ником не выбивает играющего
security.hide_during_auth true неавторизованные невидимы друг для друга
security.spawn_on_platform true появление сразу на платформе входа
auth.timeout_seconds 60 время на вход после проверки
password.min_length / max_length 8 / 64 длина пароля
ip_limit.enabled / max_accounts true / 3 не больше 3 аккаунтов с одного IP
ip_limit.exempt_ips [] IP без лимита аккаунтов (клубы, общежития, общий NAT)
session.duration_seconds 7200 время жизни сессии
session.auto_login_by_ip false вход по IP без пароля выключен
antibot.enabled true антибот включён
antibot.fast_mode / fast_stages true / [fall, puzzle] быстрая проверка сразу при входе: физика + пазл
antibot.only_new_players true при каждом входе проверяются только новички
antibot.recheck_hours 24 постоянные игроки — снова раз в 24 часа
antibot.bypass.names / ips [] белый список: без проверки и лимитов подключений
antibot.stages fall, puzzle этапы обычного режима (fast_mode: false)
antibot.physics_repetitions 5 повторов физики
antibot.queue_mode bossbar лишние ждут на месте с боссбаром
antibot.bans.free_fails 2 первые 2 доказанных провала — только кик
antibot.bans.tiers_minutes [1, 5, 15] ступени бана по IP
antibot.bans.permanent false вечный бан выключен
antibot.connection_limit вкл лимиты подключений в секунду/минуту
antibot.surge.enabled true режим наплыва
antibot.packet_watch.enabled true контроль пакетов с первой секунды
antibot.ping_check.mode attack проверка пинга только во время атаки
antibot.guard.attack_admit_per_second 2 во время атаки — сколько незнакомых новичков пускать в секунду
antibot.guard.max_mspt 45 сервер не успевает за тиком — новички ждут, свои входят
antibot.guard.verified_ip_hours 72 сколько часов IP, прошедший проверку, входит при атаке без очереди
antibot.queue_hide_above 60 в лобби-очереди больше 60 ждущих — они не видят друг друга
antibot.datacenter_block.enabled false блок хостингов/VPN выключен
twofactor.enabled true игроки могут включить 2FA сами
twofactor.force_admins false обязательная 2FA для админов выключена
email.enabled false почта выключена, пока не настроишь SMTP
premium.enabled false премиум-автовход выключен
afk.kick_after_login false после входа за AFK не кикает
global_blacklist.enabled false общий чёрный список выключен
selfdefense.enabled false остановка сервера при атаке на плагин выключена
advanced.yml → storage.type yaml аккаунты в data/accounts.yml
advanced.yml → auto_restart.enabled true перезапуск раз в 48 ч в 00:00 МСК с предупреждениями

6. Антибот подробно

Этапы (antibot.stages)

| Этап | По умолчанию | Как проверяет | Почему бот не проходит | |—|—|—|—| | fall | вкл | 5 падений по случайному плану: обычное, высокое с разгоном, в паутину, подброс вверх. Траектория сверяется с физикой ванили по пакетам | бот не рассчитывает гравитацию и сопротивление; заточенный под один сценарий ломается на другом | | puzzle | вкл | стена 3×3 из рамок с картинками: «оставь только свинок — остальное ударь». Картинки случайные, у каждого свои | нужно видеть и понимать картинку; 1 ошибка — кик | | block | выкл | пройти случайный путь, открыть и закрыть сундук, взять инструмент, сломать нужный блок, подобрать его | много последовательных действий в мире | | camera | выкл | накрутить обороты камерой | робот крутит с одинаковой дельтой — такие пакеты не засчитываются | | slots | выкл | переключить слоты; сервер сам дёргает камеру и слот | живой клиент отвечает пакетами, бот молчит | | captcha | выкл | код в чате или на карте в руке (map_captcha); «зачёркнутый» вариант — captcha_strike | карту и зачёркнутый код не прочитать из чата | | click | выкл | нажать «Я НЕ БОТ» среди кнопок-обманок, порядок и цвета меняются | бот, жмущий любую ссылку, попадает в обманку | | math | выкл | пример на сложение (умножение — math_operations) | — | | secret | выкл | написать в чат строку вроде .bind | чит-клиенты перехватывают такие команды и не отправляют | | air_captcha | выкл | игрок в воздухе крутит камерой — появляется код из огромных разноцветных блоков по диагонали | код существует только блоками в мире |

Быстрый режим (по умолчанию): antibot.fast_mode: true — проверка сразу при входе, без очередей, этапы из fast_stages (по умолчанию [fall, puzzle]). fast_mode: false — обычный режим с очередью и этапами из stages.

Простая и расширенная защита. По умолчанию — простая и лёгкая: быстрый режим, физика + пазл, остальные этапы выключены. Для расширенной защиты (крупный сервер, частые атаки): antibot.fast_mode: false — очередь (боссбар или лобби, queue_mode) и шаг «сдвинься с места»; включи нужные этапы в antibot.stages (например block, click, air_captcha); при атаках «спящими» аккаунтами — antibot.recheck_on_restart: true; для сетей — блок хостингов/VPN (antibot.datacenter_block) и общий чёрный список.

Подсказки на экране (screen_hints): крупная надпись по центру — что делать прямо сейчас. Отдельно включаются для входа (auth), этапов проверки (antibot), отсчёта «Готовься!» (prepare) и «Готово!» (done). Время на экране — stay_seconds, повтор — refresh_seconds (0 — один раз), сколько раз показать — max_repeats, плавность — fade_in_ticks/fade_out_ticks. Тексты — ключи hint_* в lang/ru.yml и lang/en.yml.

Защита до входа

Баны только по фактам

Очередь

Если проверок больше, чем max_concurrent_checks (8), остальные ждут: bossbar (по умолчанию) — на месте с боссбаром; lobby — общее лобби с паркуром и PvP-зоной; none — только сообщение. Всего мест (проверки + очередь) — antibot.influx.burst (64), лишним — вежливый отказ «сервер перегружен».

Лобби-очередь (fast_mode: false, queue_mode: lobby) — платформа 55×55 в мире проверки: паркур (6 полос), PvP-арена с сундуком-набором (у каждого своё окно, раз в 30 секунд), кнопка «Скорость II на 30 секунд», голограммы и боссбар с позицией. Убийство в PvP-зоне двигает очередь: убийца +1 место, погибший −1 (одна и та же пара — не чаще раза в минуту). Нельзя: команды, драться вне PvP-зоны, ломать, летать без разрешения; упал в пустоту — возврат на спавн. Сначала все ждут в лобби lobby_first_seconds (8, максимум 60). Если ждущих больше queue_hide_above (60), они перестают видеть друг друга (кроме PvP-зоны) — иначе трафик растёт как квадрат числа игроков. Замер: 50 ждущих — средний тик 6 мс; 156 ждущих — пик 140 мс, TPS не ниже 19,7.

7. Пароли, 2FA, почта, сессии

8. Прокси: Velocity и BungeeCord

Прокси-модуль (plugins/vtregister/config.yml на Velocity, plugins/VTRegister/config.yml на BungeeCord):

Параметр Смысл
auth_servers серверы, где вводят пароль; неавторизованный всегда попадает на первый доступный
after_login_server куда отправить после входа ([] — остаться)
allowed_proxy_commands прокси-команды, разрешённые до входа
secret общий секрет с серверами — единый вход по сети
connection_limit.* лимиты по IP и режим атаки на прокси
connection_limit.attack_admit_per_second во время атаки — сколько незнакомых новичков в секунду пускать (2); свои и проверенные IP — без очереди
ping_check проверка пинга на прокси

Задай одинаковый secret на прокси и серверах — тогда прокси знает своих игроков и пускает их без очереди даже во время атаки. Единый вход работает и при отдельной базе на каждом сервере.

До входа запрещены /server и смена сервера. Если имени из auth_servers нет среди серверов прокси, игроков не кикает, а консоль раз в минуту напоминает. Для фильтрации флуда подключений прямо на прокси можно поставить рядом Sonar.

9. Команды, права, плейсхолдеры

Игроки

| Команда | Что делает | |—|—| | /register, /reg | регистрация (дальше пароль в чат) | | /login, /l | вход | | /changepassword (/changepw, /cp, /passwd) | смена пароля (старый и новый — в чат) | | /2fa on \| off \| cancel \| <код> | двухфакторная защита | | /email <адрес> \| <код> | привязать почту | | /recover, затем /recover <код> <пароль> | восстановить пароль | | /vtregister (/vtr, /vreg) help \| status \| cmds | справка |

Админы (registerplugin.admin, по умолчанию OP)

| Команда | Что делает | |—|—| | /vtregister reload | перечитать настройки | | /vtregister reset <config\|advanced\|lang\|all> | вернуть настройки по умолчанию (config.yml, advanced.yml, тексты или всё). Сначала просит подтвердить, старые файлы копирует в backups/reset-<время>/; «перец» паролей и подключение к базе не трогает | | /authadmin reload | то же | | /authadmin status | состояние плагина и хранилища | | /authadmin info <ник> | данные аккаунта | | /authadmin list [страница] | список аккаунтов | | /authadmin reset <ник> | удалить аккаунт и заставить зарегистрироваться заново | | /authadmin unregister <ник> | удалить аккаунт | | /authadmin setpw <ник> | задать пароль (вводится в чат) | | /authadmin logout <ник> | разлогинить | | /authadmin forcelogin <ник> | войти за игрока (онлайн) | | /authadmin setspawn <prelogin\|postlogin\|firstjoin> | точки спавна | | /authadmin import [--overwrite] | импорт из AuthMe (и форков), nLogin, OpeNLogin, LoginSecurity, LimboAuth | | /authadmin unban | снять все баны IP антибота | | /authadmin testmail <почта> | проверить отправку писем | | /authadmin pvpkit | набор PvP-зоны лобби | | /authadmin lobby | телепорт в лобби проверки |

Права

| Право | По умолчанию | Даёт | |—|—|—| | registerplugin.admin | OP | все админ-команды; признак админа для оповещений и обязательной 2FA | | vtregister.afk.bypass | нет | не кикает за AFK после входа |

PlaceholderAPI

%vtregister_authenticated%, %vtregister_registered%, %vtregister_storage%, %vtregister_totp%, %vtregister_email%, %vtregister_waiting%, %vtregister_mode%, %vtregister_antibot_queue%, %vtregister_accounts%

10. Файлы и папки

plugins/VTRegister/
├── config.yml              основные настройки (472 параметра с описаниями)
├── advanced.yml            база данных, лимиты, автоперезапуск
├── easy-passwords.yml      разрешённые «лёгкие» пароли
├── lang/ru.yml, en.yml     все тексты игрокам (HEX-цвета &#RRGGBB)
├── puzzles/tiles/          картинки пазла (можно свои PNG 128×128)
├── logs/logins/            журнал входов по дням
├── stash/                  копия вещей игрока на время проверки (на случай краша)
└── data/
    ├── accounts.yml | accounts.db   аккаунты (yaml/sqlite)
    ├── spawns.yml                    точки спавна
    ├── ip-bans.txt                   баны антибота
    ├── backups/                      резервные копии базы при запуске
    └── lib/                          драйвер PostgreSQL (скачивается и проверяется по SHA-256)

Внутри jar: INSTRUCTION_RU.txt, INSTRUCTION_EN.txt, PROXY_SETUP.txt.

11. Обновление с RegisterPlugin 1.1.0 и переход с других плагинов

12. Нагрузка и оптимизация

13. Совместимость с другими плагинами

14. Частые проблемы

Симптом Причина и решение
За прокси у всех IP 127.0.0.1 не включена переадресация (Velocity modern / BungeeCord + BungeeGuard) — раздел 4
Velocity не пускает на сервер в auth_servers имя не как в velocity.toml — консоль прокси подскажет
Письма не приходят нужен пароль приложения, а не обычный; /authadmin testmail покажет причину
В консоли «сборка повреждена» jar изменён или скачан не с официальной страницы — скачай из Releases и сверь SHA-256
Пароль виден в логе включён обычный режим или не перезапущен сервер после command_logging: fix
Folia проверка на бота с этапами и платформа входа отключены (ограничение Folia); вход, регистрация, 2FA, лимиты подключений, пинг, баны и AFK работают

15. Чем отличается от других плагинов входа