VTRegister — все настройки и значения по умолчанию
Русский · English
Справочник собран автоматически из файлов настроек внутри jar, поэтому значения по умолчанию всегда совпадают с релизом. Файлы создаются в plugins/VTRegister/ при первом запуске; при обновлении недостающие параметры дописываются вместе с описаниями, твои значения сохраняются.
config.yml — основные настройки
| Параметр | По умолчанию | Что делает |
|---|---|---|
language |
auto |
Язык сообщений: auto (по языку клиента), ru, en |
session
Сессия (автовход без пароля)
| Параметр | По умолчанию | Что делает |
|---|---|---|
session.duration_seconds |
7200 |
Сколько секунд действует доверенная сессия после входа (7200 = 2 часа) |
session.auto_login_by_ip |
false |
Автовход, если IP игрока совпадает с доверенным. ⚠️ За прокси без IP-forwarding включать опасно — см. proxy.known_proxy_ips |
session.ip_prefix_octets |
0 |
Совпадение IP для автологина по префиксу: 0 = точное совпадение, 3 = /24 (динамические IP), 4 = точное. Значения 1-2 не поддерживаются и поднимаются до 3. IPv6 при префиксе — совпадение /64. Префикс сравнивается только с последним IP аккаунта. ⚠️ Ослабляет привязку: любой клиент той же подсети получит сессию! |
session.invalidate_on_restart |
true |
Рестарт сервера убивает IP-сессии: после перезагрузки все игроки обязаны войти заново (антиспам-реконнект ботами после рестарта). false — сессии переживают рестарт в пределах duration_seconds |
auth
Авторизация
| Параметр | По умолчанию | Что делает |
|---|---|---|
auth.timeout_seconds |
60 |
Сколько секунд даётся игроку на вход/регистрацию ПОСЛЕ проверки на бота |
auth.kick_on_timeout |
true |
Кикать, если игрок не успел авторизоваться |
auth.reminder |
— | Напоминания «введи /login» в чат, пока игрок не вошёл |
auth.reminder.enabled |
true |
напоминания (ActionBar) пока игрок не вошёл |
auth.reminder.interval_seconds |
2 |
как часто |
auth.reminder.send_chat |
true |
дублировать в чат |
auth.reminder.chat_interval_seconds |
10 |
как часто дублировать в чат (сек); 0 = как interval_seconds |
screen_hints
Подсказки по центру экрана Крупная надпись: что игроку делать прямо сейчас — зарегистрироваться, войти, ввести пароль, пройти этап проверки. Для тех, кто не читает чат. Тексты — lang/ru.yml и lang/en.yml (ключи hint_*).
| Параметр | По умолчанию | Что делает |
|---|---|---|
screen_hints.enabled |
true |
общий выключатель всех надписей |
screen_hints.auth |
true |
регистрация / вход / «введи пароль» |
screen_hints.antibot |
true |
этапы проверки на бота: «Проверка 1/2 — что делать» |
screen_hints.prepare |
true |
отсчёт «Готовься!» перед проверкой |
screen_hints.done |
true |
«Готово!» после входа |
screen_hints.stay_seconds |
3 |
сколько секунд надпись на экране (1–30) |
screen_hints.refresh_seconds |
3 |
как часто показывать снова, пока шаг не выполнен (0 — один раз) |
screen_hints.max_repeats |
0 |
сколько раз показать одну подсказку (0 — пока шаг не выполнен) |
screen_hints.fade_in_ticks |
8 |
плавное появление в тиках (20 = 1 сек); повторы — без мигания |
screen_hints.fade_out_ticks |
10 |
плавное исчезновение в тиках |
password
Пароли
| Параметр | По умолчанию | Что делает |
|---|---|---|
password.min_length |
8 |
минимальная длина |
password.max_length |
64 |
максимальная длина |
password.enforce_strength |
true |
проверять сложность (разные символы) |
password.allow_easy_passwords |
false |
Разрешить пароли из easy-passwords.yml (даже простые/короткие) |
password.require_confirm |
false |
Требовать повтор пароля при регистрации/смене (в защищённом режиме) |
ip_limit
Лимит аккаунтов с одного IP Защита от мультиаккаунтов и ботов: с одного IP можно завести не больше max_accounts аккаунтов (считаются аккаунты, созданные с этого IP или последний раз входившие с него). Новый ник сверх лимита получает отказ при входе и при /register; в уже созданные аккаунты входить можно всегда. За прокси без проброса реальных IP лимит не работает (у всех один адрес). Мобильный интернет часто даёт один IP многим людям — если новички жалуются на отказ, подними max_accounts.
| Параметр | По умолчанию | Что делает |
|---|---|---|
ip_limit.enabled |
true |
включить лимит |
ip_limit.max_accounts |
3 |
сколько аккаунтов можно на один IP |
ip_limit.exempt_ips |
[] |
IP без лимита: компьютерный клуб, общежитие, общий NAT провайдера |
security
Безопасность
| Параметр | По умолчанию | Что делает |
|---|---|---|
security.login_log |
— | Журнал входов: plugins/VTRegister/logs/logins/ГГГГ-ММ-ДД.log (успешные входы и неудачные попытки: ник, UUID, IP). |
security.login_log.enabled |
true |
вкл/выкл |
security.login_log.keep_days |
30 |
сколько дней хранить журналы |
security.admin_alerts |
— | Оповещение, когда админ входит с НОВОГО IP (Discord и/или Telegram). |
security.admin_alerts.enabled |
false |
вкл/выкл |
security.admin_alerts.permission |
"registerplugin.admin" |
кто админ (и все OP) |
security.admin_alerts.server_name |
"myserver" |
имя сервера в тексте оповещения |
security.admin_alerts.on_first_login |
false |
оповещать и о самом первом входе |
security.admin_alerts.discord_webhook |
"" |
URL вебхука Discord (Настройки канала → Интеграции) |
security.admin_alerts.telegram_bot_token |
"" |
токен бота от @BotFather |
security.admin_alerts.telegram_chat_id |
"" |
ID чата/канала, куда слать |
security.secure_password_input |
true |
★ ЗАЩИЩЁННЫЙ режим ввода пароля: true — пароль вводится СЛЕДУЮЩИМ СООБЩЕНИЕМ В ЧАТ (не попадает в логи) false — классический /reg пароль (пароль попадёт в консоль и логи!) Режим ВСЕГДА сообщается игроку при входе — скрыть его нельзя. |
security.command_logging |
"fix" |
Что делать с логированием команд ядром (spigot.yml → commands.log). Ядро пишет «ник issued server command: /reg пароль» ДО того, как плагин получит событие, поэтому выключить это можно только так: fix — плагин сам поставит commands.log: false (нужен перезапуск сервера) warn — только предупредить в консоли off — ничего не делать |
security.log4j_filter |
true |
Дополнительный log4j-фильтр: вырезает из логов строки с нашими командами |
security.confirm_password_in_command |
true |
Подтверждение опасного ввода: первая команда с паролем блокируется и игроку предлагается повторить её, если он согласен с риском |
security.confirm_timeout_seconds |
30 |
сколько секунд ждать повтор пароля при регистрации |
security.password_input_timeout_seconds |
25 |
Сколько секунд ждать ввод пароля/кода в чат (5–120) |
security.max_login_attempts |
5 |
Максимум неверных попыток входа до блокировки |
security.lock_seconds |
300 |
На сколько секунд блокировать после исчерпания попыток |
security.max_trusted_ips |
3 |
Сколько доверенных IP хранить на аккаунт |
security.pbkdf2_iterations |
200000 |
Итерации PBKDF2 (50000–2000000). Больше = надёжнее, но чуть медленнее вход |
security.hash_algorithm |
"argon2id" |
Алгоритм хеширования паролей: argon2id (рекомендуется) | pbkdf2 |
security.argon2_memory_kib |
19456 |
Параметры Argon2id: память в KiB, итерации, потоки. По умолчанию — рекомендация OWASP (19456 KiB = 19 МБ, 2 прохода): ~45 мс процессора на вход и мало мусора для сборщика памяти — сервер не подвисает, когда заходит много игроков сразу. Строже: 65536 и 3 (в ~5 раз тяжелее). Старые хеши с другими параметрами продолжают работать. |
security.argon2_iterations |
2 |
проходов Argon2id (больше = надёжнее и медленнее) |
security.argon2_parallelism |
1 |
потоков Argon2id на один хеш |
security.password_pepper |
"" |
Секретная добавка (pepper). ⚠️ Смена/удаление сломает старые пароли! |
security.admin_setpw_timeout_seconds |
30 |
Таймаут ожидания нового пароля для /authadmin setpw (сек) |
security.hide_during_auth |
true |
Скрывать неавторизованных: они не видят других и их не видят |
security.auth_darkness |
auth_only |
Темнота/blindness до входа: always = всегда (как раньше), auth_only = только во время reg/login (в лобби-очереди светло — рекомендуется), never = эффект не применяется вообще |
security.auth_platform |
true |
Платформа авторизации в мире проверки (только при включённом антиботе и без prelogin-точки): неавторизованные телепортируются на отдельную платформу (взаимно скрыты, заморожены). После входа игрок возвращается на точку входа. Мир недоступен — игрок остаётся на месте. |
security.spawn_on_platform |
true |
Появляться сразу на платформе входа (без телепорта после захода): сервер не грузит игроку основной мир, из которого его тут же увозят. Меньше нагрузки на каждом входе. false — старый способ (телепорт после входа). |
security.protect_inventory_on_death |
true |
Защита инвентаря: при смерти до входа вещи и опыт сохраняются |
security.single_session |
true |
Одна сессия на ник (offline-mode): если игрок с таким ником уже в игре и вошёл в аккаунт — новое подключение отклоняется, играющего НЕ выбивает |
security.proxy_bridge |
— | Мост с прокси-модулем VTRegister (тот же jar на Velocity/BungeeCord), см. PROXY_SETUP.txt раздел 6 |
security.proxy_bridge.enabled |
true |
AUTH/LOGOUT на прокси (работает только когда сервер за прокси) |
security.proxy_bridge.secret |
"" |
общий секрет = secret в config.yml прокси-модуля; пусто — вход не переносится между серверами |
security.proxy_bridge.trust_network_login |
true |
вход без пароля по подписанному TRUST с прокси (игрок уже вошёл на другом сервере сети) |
security.integrity |
— | Проверка целостности сборки jar (битые архивы, перепаковка). strict: true — повреждённая сборка не запускается. Не отключать. |
security.integrity.strict |
true |
true — повреждённая или изменённая сборка не запускается (защита от подделанных jar); false — только предупреждение в консоли |
security.integrity.interval_seconds |
300 |
как часто перепроверять целостность сборки (сек) |
antibot
Проверка на бота (многоэтапная) Игрок попадает в отдельный ПУСТОЙ мир (нулевая нагрузка) и проходит этапы. Во время проверки напоминания и таймаут авторизации не работают.
| Параметр | По умолчанию | Что делает |
|---|---|---|
antibot.enabled |
true |
вкл/выкл |
antibot.fast_mode |
true |
ПРОСТАЯ НАСТРОЙКА — обычно хватает этих строк Быстрый режим антибота: true (по умолчанию) — проверка СРАЗУ при входе: без очередей, без afk_first, лобби не строится; этапы — fast_stages. Минимум ожидания для игрока и минимум нагрузки на сервер. false — обычный режим: проверка по очереди (queue_mode), шаг «сдвинься с места» (afk_first), этапы из stages ниже. |
antibot.fast_stages |
[fall, puzzle] |
Этапы быстрого режима по порядку. На выбор: fall (физика падения), camera (поворот камеры), slots (слоты + рывки камеры), captcha (код), click (клик по сообщению), puzzle (убери лишние картинки), math (пример), secret (тест на чит-команды), block (путь + сундук + сломать блок), air_captcha (код из блоков в воздухе). По умолчанию физика + пазл ≈ 30–40 сек для человека. Пусто [] — берутся stages ниже. |
antibot.fast_max_concurrent |
50 |
Сколько игроков проверяются одновременно (у каждого своя арена в пустом мире). Остальные ждут на месте с таймером в боссбаре — без лобби. |
antibot.recheck_hours |
24 |
Повторная проверка постоянных игроков: уже зарегистрированный снова проходит проверку при входе, если с прошлой прошло столько часов (разумно 24–48). Защита от «спящих» бот-аккаунтов. Кто в игре дольше срока — не выкидывается, проверка будет при следующем входе. 0 — постоянных игроков не перепроверять. |
antibot.bypass |
— | ДАЛЬШЕ — РАСШИРЕННЫЕ НАСТРОЙКИ (для продвинутых) Белый список: эти ники и IP не проходят проверку на бота и не попадают под лимиты подключений (админы, тестеры, свои сервисы). Пример: names: [“Admin”] ips: [“203.0.113.7”] |
antibot.bypass.names |
[] |
|
antibot.bypass.ips |
[] |
|
antibot.only_new_players |
true |
Проверять только новых игроков (у кого нет аккаунта) — постоянные перепроверяются по сроку recheck_hours. false — всех при каждом входе |
antibot.world_name |
"auth_verify" |
Мир проверки (создаётся автоматически; на Folia проверка с этапами не работает) |
antibot.empty_inventory |
true |
На проверке И в лобби-очереди настоящие вещи прячутся в стэш (с копией в plugins/ |
antibot.restore_player_state |
true |
Вернуть игроку его режим игры/полёт после проверки |
antibot.max_concurrent_checks |
8 |
Лимит одновременных проверок — остальные ждут в очереди |
antibot.arena_spacing |
32 |
Расстояние между аренами (у каждого игрока своя площадка) |
antibot.queue_mode |
"bossbar" |
Очередь на проверку Режим очереди, когда проверок больше max_concurrent_checks: none — игрок стоит на месте, только сообщение с позицией bossbar — как none + боссбар сверху с позицией и прогрессом lobby — общая платформа-ожидание: игроки гуляют, есть паркур (лёгкий/средний/сложный), боссбар с позицией + голограмма. В лобби нельзя: команды, драться и умирать (кроме PvP-зоны), упасть в пустоту |
antibot.lobby_first_seconds |
8 |
Все заходящие сначала N секунд ждут в лобби (паркур, PvP-арена), потом идут на проверку — даже когда слоты свободны. 0 = как раньше, максимум 60. |
antibot.queue_max_size |
0 |
Лимит людей в очереди (0 = без лимита). Переполнение — вежливый кик |
antibot.queue_chat_allowed |
false |
Разрешить чат в очереди (видят только другие ждущие). false — чат закрыт |
antibot.queue_chat_filter |
— | Фильтр чата лобби-очереди: анти-реклама, КД, лимит слов |
antibot.queue_chat_filter.enabled |
true |
вкл/выкл фильтр целиком |
antibot.queue_chat_filter.cooldown_ms |
1500 |
мин. пауза между сообщениями игрока |
antibot.queue_chat_filter.max_words |
12 |
максимум слов в сообщении |
antibot.queue_chat_filter.block_links |
true |
блокировать ссылки/домены/IP (анти-реклама) |
antibot.queue_chat_filter.block_repeat |
true |
блокировать повтор того же сообщения |
antibot.queue_spam_seconds |
5 |
Раз в сколько секунд напоминать ждущим «отслеживай очередь на боссбаре» |
antibot.queue_hologram |
true |
Голограмма над платформой со счётчиком очереди |
antibot.queue_parkour |
true |
Строить в лобби паркур (лёгкий/средний/сложный) — безопасный, без смертей |
antibot.queue_hide_players |
false |
Скрывать игроков очереди друг от друга (не видят и не толкают) |
antibot.queue_hide_above |
60 |
Большое лобби: когда ждущих больше N, они перестают видеть друг друга (кроме PvP-зоны) — иначе трафик растёт как N² (128 ждущих ≈ 325 тыс. пакетов в секунду). Снова видны, когда их меньше N-10. 0 = не скрывать |
antibot.afk_first |
true |
AFK-первым: когда лобби-очередь ВЫКЛЮЧЕНА (queue_mode: none/bossbar), новый игрок сразу получает AFK-проверку (шаг с места), затем цепочку антибота. Бот без движения отлетает по afk.initial_timeout до арен. |
antibot.queue_flight |
false |
Разрешить полёт в очереди-лобби (ждущие могут летать и ждать) |
antibot.queue_kick_flyers |
true |
Кикать ждущих, которые летают БЕЗ разрешения сервера — чит (3 тика подряд) |
antibot.queue_build_lobby |
true |
Строить стандартную платформу лобби. false — вставь свою схематику в мире проверки по центру платформы (инструкция в INSTRUCTION_RU.txt) |
antibot.queue_pvp |
— | PvP-зона в очереди-лобби: сундук с лутом пополняется по таймеру, дерутся только внутри зоны (задаётся координатами углов) |
antibot.queue_pvp.enabled |
true |
арена 43x43 вплотную к южной стороне лобби (ворота в стене) |
antibot.queue_pvp.corner1_x |
21 |
первый угол зоны (координаты в мире проверки) |
antibot.queue_pvp.corner1_z |
-484 |
Z первого угла PvP-зоны |
antibot.queue_pvp.corner2_x |
-21 |
противоположный угол |
antibot.queue_pvp.corner2_z |
-442 |
Z второго угла PvP-зоны |
antibot.queue_pvp.chest_x |
0 |
где стоит сундук с лутом |
antibot.queue_pvp.chest_z |
-463 |
Z сундука с лутом PvP-зоны |
antibot.queue_pvp.chest_seconds |
15 |
как часто сундук пополняется |
antibot.queue_pvp.kit_enabled |
true |
Двойной сундук-набор: виртуальный инвентарь на игрока, раз в N сек. Содержимое правит админ в игре: /authadmin pvpkit |
antibot.queue_pvp.kit_cooldown_seconds |
30 |
пауза между выдачами набора (сек) |
antibot.queue_pvp.admin_modify |
true |
админ может менять PvP-набор (/authadmin pvpkit) |
antibot.queue_pvp.admin_lobby_tp |
true |
админ может телепортироваться в лобби |
antibot.queue_pvp.protect_functional |
true |
защита кнопок и сундуков лобби от ломания |
antibot.queue_pvp.items |
["NETHERITE_CHESTPLATE:PROTECTION:4", "DIAMOND_SWORD:SHARPNESS:1", "GOLDEN_APPLE:25"] |
Лут сундука PvP-зоны: “МАТЕРИАЛ[:ЗАЧАРОВАНИЕ:УРОВЕНЬ][:КОЛ-ВО]” |
antibot.queue_pvp.queue_steal |
true |
Убийство в PvP-зоне двигает очередь: убийца идёт ВПЕРЁД на gain_positions, погибший откатывается НАЗАД на lose_positions. false = просто драка |
antibot.queue_pvp.gain_positions |
1 |
на сколько мест вверх в очереди за убийство |
antibot.queue_pvp.lose_positions |
1 |
на сколько мест вниз в очереди за смерть |
antibot.queue_pvp.hologram |
true |
Парящая надпись у линии PvP с предупреждением о ставках |
antibot.queue_pvp.hologram_text |
"&c⚠ PvP-зона: смерть = -{lose} в очереди, убийство = +{gain}" |
текст голограммы над PvP-зоной |
antibot.queue_pvp.speed_button |
— | Кнопка в 4 блоках от сундука: нажал — получил эффект скорости |
antibot.queue_pvp.speed_button.enabled |
true |
вкл/выкл |
antibot.queue_pvp.speed_button.seconds |
30 |
длительность эффекта |
antibot.queue_pvp.speed_button.level |
2 |
уровень эффекта (2 = Speed II) |
antibot.influx |
— | Наплыв игроков (экстренная защита) Впускаем максимум burst мест суммарно (проверки + очередь). Остальных кикаем с вежливым сообщением — бот-волна не парализует вход реальным. |
antibot.influx.enabled |
true |
вкл/выкл |
antibot.influx.burst |
64 |
максимум мест суммарно (проверки + очередь) |
antibot.batch_size |
5 |
Батчи и подготовка Из очереди в проверку выпускаем ВОЛНАМИ по batch_size с паузой — арены строятся порциями, а не всем скопом (плавная нагрузка) |
antibot.batch_delay_seconds |
4 |
пауза между волнами выпуска (сек) |
antibot.prepare_seconds |
5 |
Отсчёт на экране перед первым этапом: тайтл + чат «готовься» (0 = сразу) |
antibot.entry_queue |
— | Очередь ВХОДА на сервер (после прохождения проверки) Если сервер полон — игроки, ПРОШЕДШИЕ проверку, ждут на лобби-платформе и выпускаются волнами по мере освобождения слотов. |
antibot.entry_queue.enabled |
false |
вкл/выкл |
antibot.entry_queue.max_online |
0 |
Сколько игроков пускать «на сервер» максимум. 0 = лимит сервера (max-players из server.properties минус reserve_slots) |
antibot.entry_queue.reserve_slots |
0 |
Сколько слотов держать в запасе (для админов/донатеров) |
antibot.entry_queue.release_batch |
3 |
Скольких выпускать за волну и пауза между волнами (секунды) |
antibot.entry_queue.release_seconds |
3 |
как часто выпускать следующего из очереди входа (сек) |
antibot.entry_queue.spam_seconds |
8 |
Напоминание в чат о позиции (секунды) |
antibot.entry_queue.bossbar |
true |
Боссбар «Вход на сервер: N/M» |
antibot.entry_queue.target_server |
"" |
ПРОКСИ: имя сервера-лобби, куда отправлять после выпуска через Velocity/BungeeCord Connect. Пусто = игрок остаётся на этом сервере |
antibot.puzzle_map |
true |
Пазл: картинки на стене. PNG из plugins/VTRegister/puzzles/ показываются на стене арены в рамках с картами (128×128). Папка пустая — картинки генерируются сами |
antibot.fallback_main_world |
true |
Если мир проверки НЕ удалось создать — проверять на запасной арене высоко в небе основного мира (а не пропускать ботов). true = безопаснее |
antibot.emergency |
— | Аварийный режим Плагин всегда пытается продолжить работу (запасная арена, запасные проверки), а о проблемах спамит в консоль: |
antibot.emergency.alert_times |
10 |
сколько раз повторять каждое предупреждение |
antibot.emergency.alert_interval_seconds |
300 |
интервал повторов (сек) |
antibot.stages |
— | Этапы (вкл/выкл каждый) |
antibot.stages.fall |
true |
физика: несколько падений на платформу |
antibot.stages.camera |
false |
вращение камерой (накопить N оборотов) — по умолчанию выкл |
antibot.stages.slots |
false |
переключение слотов + рывки камеры (проверка клиента) |
antibot.stages.captcha |
false |
код в чат |
antibot.stages.click |
false |
клик по сообщению |
antibot.stages.puzzle |
true |
пазл «убери лишних» + слово-старт в чат |
antibot.stages.math |
false |
пример на экране/в чате (по умолчанию выкл) |
antibot.stages.secret |
false |
тест на чит-команды (.bind/#help/…) — по умолчанию выкл |
antibot.stages.air_captcha |
false |
капча в воздухе: поверти камерой → появится код из блоков → введи в чат |
antibot.stages.block |
false |
путь + сундук + сломать блок и подобрать его — по умолчанию выкл |
antibot.lobby_item_clean_seconds |
60 |
Чистка дропнутых предметов в лобби-очереди раз в N секунд (0 = выкл) |
antibot.timeouts |
— | Таймауты этапов (секунды) |
antibot.timeouts.fall |
45 |
на весь этап падений (при 5 повторах — не меньше 45) |
antibot.timeouts.camera |
30 |
поворот камеры |
antibot.timeouts.slots |
35 |
слоты + рывки камеры |
antibot.timeouts.captcha |
60 |
← время на ввод капчи |
antibot.timeouts.click |
25 |
клик по сообщению |
antibot.timeouts.puzzle |
60 |
пазл |
antibot.timeouts.math |
40 |
пример |
antibot.timeouts.secret |
40 |
тест на чит-команды |
antibot.timeouts.block |
60 |
путь + сундук + блок |
antibot.timeouts.air_captcha |
60 |
капча в воздухе |
antibot.bossbar |
true |
Параметры этапов боссбар сверху с прогрессом и обратным отсчётом |
antibot.bossbar_color |
"auto" |
Цвет боссбара: auto — по этапу, или фиксированный: BLUE/GREEN/PINK/PURPLE/RED/WHITE/YELLOW |
antibot.bossbar_title |
"" |
Свой заголовок боссбара (пусто = из lang). Плейсхолдеры: {stage_num} {stage_total} {seconds} |
antibot.bossbar2_enabled |
false |
Второй (рекламный) боссбар поверх основного — текст и цвет свои |
antibot.bossbar2_title |
"&dДобро пожаловать на сервер!" |
текст второго (рекламного) боссбара |
antibot.bossbar2_color |
"PURPLE" |
цвет второго боссбара (PINK/BLUE/RED/GREEN/YELLOW/PURPLE/WHITE) |
antibot.physics_repetitions |
5 |
сколько повторов физики (1–8), по умолчанию 5 |
antibot.packet_watch |
— | Фоновая пакетная проверка с самого входа До входа в аккаунт следит за пакетами игрока: флуд пакетами и невозможные координаты = бот (кик + ступень бана). Если перехват пакетов на ядре не встаёт — просто молча не работает, ничего не ломает. |
antibot.packet_watch.enabled |
true |
вкл/выкл |
antibot.packet_watch.max_packets_per_second |
300 |
больше этого (ваниль шлёт 20–80) … |
antibot.packet_watch.flood_seconds |
3 |
… столько секунд подряд = флуд |
antibot.answer_timing |
— | Тайминг ответов (капча, пример, секрет, кнопка, слово пазла) Бот отвечает мгновенно и с одинаковой задержкой; человек печатает дольше и каждый раз по-разному. Нарушение = проверка провалена. |
antibot.answer_timing.enabled |
true |
вкл/выкл |
antibot.answer_timing.min_ms_per_char |
120 |
быстрее N мс на символ ответа = бот (0 = не проверять) |
antibot.answer_timing.min_samples |
3 |
сколько ответов нужно, чтобы оценить «ровность» |
antibot.answer_timing.max_stddev_ms |
40 |
разброс задержек меньше этого = робот (0 = не проверять) |
antibot.air_captcha |
— | Капча в воздухе (этап air_captcha, включается в stages) Игрок висит в воздухе, крутит камерой — впереди появляется код, выложенный разноцветными блоками (буквы прыгают/наклонены, вокруг шум). |
antibot.air_captcha.turn_degrees |
150 |
на сколько градусов покрутить камерой, чтобы появился код |
antibot.air_captcha.code_length |
4 |
длина кода (3–6) |
antibot.air_captcha.noise_blocks |
6 |
«мусорные» блоки вокруг букв (0 = без шума) |
antibot.air_captcha.tilt |
true |
прыжки букв и разные промежутки («кривая» капча); false — ровная |
antibot.air_captcha.scale |
2 |
размер букв: 1 — мелкие, 2 — крупные на весь экран, 3 — огромные (если не влезает между аренами — сам уменьшит) |
antibot.air_captcha.diagonal |
true |
строка кода по случайной диагонали (вверх/вниз); false — всегда горизонтально |
antibot.arena_restore_per_tick |
2 |
Сколько арен восстанавливать за тик после проверок (размазывает нагрузку при наплыве). 0 = восстанавливать сразу. |
antibot.surge |
— | Режим наплыва (волна входов) Когда на проверку заходит много игроков сразу, проверки стартуют дозированно: не больше max_starts_per_second в секунду, остальные ждут на месте с боссбаром. Нагрузка размазывается по времени, сервер не лагает. |
antibot.surge.enabled |
true |
включить режим наплыва |
antibot.surge.trigger_joins |
15 |
столько входов на проверку за 10 секунд = наплыв |
antibot.surge.max_starts_per_second |
3 |
сколько проверок запускать в секунду во время наплыва |
antibot.surge.calm_seconds |
30 |
через сколько секунд без волны режим выключается |
antibot.world_view_distance |
3 |
Дальность прорисовки в мире проверки (Paper). Мир пустой — дальше видеть нечего, а при телепорте сервер шлёт в 9 раз меньше чанков. 0 = как у сервера. |
antibot.tick_ticks |
10 |
Тонкая настройка (для продвинутых) как часто антибот проверяет игроков (в тиках, 5–40); меньше = точнее, но дороже |
antibot.jolt_interval_ticks |
8 |
пауза между рывками камеры на этапе slots (тики, 2–40) |
antibot.packet_window_ticks |
3 |
окно пакетной проверки падения (тики, 1–10) |
antibot.fall_smart_plan |
true |
true = умный план повторов: 1-й — обычное падение, остальные в случайном порядке — высокое падение (разгон), паутина (медленное погружение), подброс вверх (клиент обязан взлететь и приземлиться), обычные падения. Бот, заточенный под один сценарий, ломается на другом. Bedrock — мягче. |
antibot.fall_launch |
true |
включить повтор «подброс вверх» |
antibot.fall_min_height |
5 |
мин. высота подброса (блоков) |
antibot.fall_max_height |
9 |
макс. высота подброса (блоков) — каждый раз случайная |
antibot.min_fall_millis |
250 |
минимальное время падения (мс) — телепорт-чит отсекается |
antibot.physics_blocks |
true |
Платформы с ОСОБОЙ физикой: SLIME — клиент обязан реально отскочить вверх, COBWEB — медленное погружение, HONEY — мягкое приземление. Пакетные боты такую физику не воспроизводят. false — только обычные блоки |
antibot.camera_turns |
2.0 |
Камера: сколько ПОЛНЫХ оборотов накопить (суммарно yaw+pitch, с паузами — быстро или медленно, без требования непрерывности). 2.0 = два оборота |
antibot.camera_linearity |
true |
Анти-бот по «линейности» камеры: робот крутит с идеально одинаковой дельтой каждый пакет — человек никогда. На CAMERA ровная серия просто не засчитывается в обороты; на BLOCK длинная серия = кик. Bedrock не проверяется |
antibot.linearity_streak |
60 |
Линейность прицела на этапе BLOCK: сколько одинаковых нетривиальных (>=1°) дельт поворота подряд (и >=360° суммарно) считать спин-ботом. 30..500. Серия сбрасывается пакетом без поворота |
antibot.camera_seconds |
3 |
(устарело, оставлено для совместимости — см. camera_turns) |
antibot.slots_required |
2 |
сколько раз переключить слот |
antibot.slots_anti_cheat |
true |
проверка на чит NoSlotChange (сервер сам меняет слот) |
antibot.slot_grace_millis |
300 |
Grace-период после принудительной смены слота (мс): пакеты раньше него — «старые» (клиент ещё не видел смену) и НЕ караются. Убери ложные кики! |
antibot.slot_max_attempts |
3 |
Сколько раз повторять принудительную смену слота перед фейлом (1–6) |
antibot.slot_camera_test |
true |
Рывки камеры на этапе SLOTS: сервер резко вращает камеру N раз, живой клиент отвечает Look-пакетами. Бот без ответов → кик. |
antibot.slot_camera_jolts |
5 |
сколько рывков (2–10) |
antibot.slot_camera_min_acks |
2 |
минимум ответов клиента, иначе фейл |
antibot.packet_check |
true |
Фоновая проверка пакетов: боты шлют аномально много move-пакетов |
antibot.packet_max_per_tick |
60 |
лимит move-событий за тик (~0.5 сек) |
antibot.kick_flyers |
true |
Игрок летает БЕЗ разрешения сервера (allowFlight) 3 тика подряд → кик. Полёт, выданный другими плагинами или правами, не карается |
antibot.block_distance |
5 |
BLOCK: случайный путь, падения, сундук с инструментом (устарело — см. block_path_length) |
antibot.block_path_length |
14 |
длина СЛУЧАЙНОГО пути зигзагом (6–40) |
antibot.block_max_falls |
5 |
падений с пути до кика (1–20) |
antibot.block_max_mistakes |
1 |
Ошибок на этапе блока до кика: сломал не тот блок или ударил не тем инструментом. 1 = первая же ошибка — кик; 0 = не считать ошибки |
antibot.click_buttons |
— | Кнопки этапа click («Я НЕ БОТ» + кнопки-обманки). При каждой отправке они встают в НОВОМ случайном порядке |
antibot.click_buttons.color_mode |
lang |
lang — цвета как в lang-файле (у каждой кнопки свой) custom — button_color для «Я НЕ БОТ», decoy_color для остальных single — все кнопки одним цветом single_color (сложнее угадать глазом) off — без цвета (белые) |
antibot.click_buttons.button_color |
"&a" |
цвет «Я НЕ БОТ» (&-код или HEX: “7FF55”) |
antibot.click_buttons.decoy_color |
"&c" |
цвет кнопок-обманок |
antibot.click_buttons.single_color |
"&f" |
цвет всех кнопок в режиме single |
antibot.click_buttons.bold |
true |
жирный шрифт кнопок (для custom/single/off) |
antibot.block_tool_chest |
true |
Сундук со спец-инструментом у старта пути — открывается только на этапе. Без инструмента целевой блок не сломать |
antibot.block_chest_required |
true |
true = целевой блок можно сломать только после того, как игрок ОТКРОЕТ и ЗАКРОЕТ сундук с инструментами у старта пути (лишний шаг для бота). |
antibot.block_tool_material |
"GOLDEN_PICKAXE" |
предмет-инструмент по умолчанию (Material) |
antibot.block_tool_name |
"&eКлюч арены" |
название инструмента этапа BLOCK |
antibot.puzzle_auto_pass |
true |
PUZZLE: «убери лишних» Авто-проход: как только все лишние убраны — этап засчитан. false — нужно ещё написать слово-старт в чат (старая схема) |
antibot.puzzle_unclosable |
true |
GUI пазла нельзя закрыть, пока этап не пройден (E/Esc переоткрывают) |
antibot.puzzle_confirm_word |
"vse" |
Слово, которое игрок пишет в чат для запуска проверки пазла (только при auto_pass: false) |
antibot.puzzle_remove |
["OCELOT_SPAWN_EGG", "CAT_SPAWN_EGG"] |
Каких животных надо убрать (любые материалы/яйца призыва) |
antibot.puzzle_keep |
["WOLF_SPAWN_EGG", "LLAMA_SPAWN_EGG", "RABBIT_SPAWN_EGG", "PARROT_SPAWN_EGG", "FOX_SPAWN_EGG"] |
Кого трогать НЕЛЬЗЯ — остаются на поле |
antibot.puzzle_max_wrong |
1 |
Ошибок в пазле до кика (удар по «правильной» картинке, неверный клик в GUI). 1 = первая же ошибка — кик (засчитывается как доказанный провал) |
antibot.puzzle_mode |
"both" |
Режим пазла: blocks — стена 3×3 из рамок с картами, лишние картинки нужно УДАРИТЬ; gui — меню инвентаря (забрать отмеченные яйца); both — сначала рамки, при сбое — меню |
antibot.puzzle_remove_count |
3 |
Сколько лишних картинок на стене (1–8) |
antibot.puzzle_tiles |
[cat, dog, pig, cow, chicken, sheep, rabbit, fox, panda, man_black] |
Все картинки стены: plugins/VTRegister/puzzles/tiles/<имя>.png — можно положить свои PNG 128×128; отсутствующая картинка рисуется и сохраняется автоматическиимя> |
antibot.puzzle_random_targets |
true |
true (рекомендуется) = «лишние» картинки выбираются СЛУЧАЙНО из всех puzzle_tiles с равным шансом, у каждого игрока свои — ботам не запомнить. false = берутся из puzzle_remove_names с весами. Формат: “имя” или “имя:вес” |
antibot.puzzle_style |
keep |
Как звучит задание пазла: keep — «оставь только свинок — всё остальное убери» (понятнее, по умолчанию): случайное животное занимает все «правильные» клетки, лишние — другие картинки remove — «убери лишних: кот ×1, лиса ×2» (старый вариант) |
antibot.puzzle_task_keep |
"" |
Свой текст задания для keep (пусто = из lang: antibot_stage_puzzle_keep). Плейсхолдеры: {keep} {count} {word} {stage_num} {stage_total} пример: “&aОставь на стене только &6{keep}&a, остальные {count} картинки ударь!” |
antibot.puzzle_remove_names |
["man_black", "cat", "fox"] |
Какие картинки «лишние» (используется при puzzle_random_targets: false) |
antibot.puzzle_same_target |
false |
true = все «лишние» одного типа (один бросок по весам); false = микс разных на стене |
antibot.puzzle_task |
"" |
Свой текст задания (пусто = авто «Убери лишних: <имена>x<кол-во>»). Плейсхолдеры: {targets} {count} {word} {stage_num} {stage_total}кол-во>имена> |
antibot.min_answer_ms |
400 |
Ответ быстрее этого (мс) после показа вопроса = бот. Для captcha/math/secret/click/puzzle. 0 = выкл |
antibot.min_click_ms |
100 |
Клик по кликабельному сообщению быстрее N мс после показа = бот (0 = выкл) |
antibot.slots_response_ms |
8000 |
Молчание после принудительной смены слота дольше N мс = чит игнорирует серверный forced-слот (NoSlotChange). Повтор, затем кик. |
antibot.slot_relock_max |
4 |
Возвратов на слот, стоявший до форса (re-lock чит), до кика |
antibot.camera_snap_degrees |
60 |
Камера: ПОДРЯД резкие повороты > N градусов за пакет = спин-бот |
antibot.camera_snap_max |
8 |
Сколько ПОДРЯД одинаковых (±1°) рывков >= camera_snap_degrees считать ботом (они просто не засчитываются в обороты, кика нет). Минимум в коде 8: быстрый свайп мышью даёт 4–6 рывков |
antibot.slot_lock |
— | Запрет перекладывать вещи во время проверки |
antibot.slot_lock.enabled |
true |
включить запрет |
antibot.slot_lock.kick_after |
5 |
нарушений до кика |
antibot.recheck_on_restart |
false |
true — после ПЕРЕЗАГРУЗКИ сервера все игроки (даже старые аккаунты) заново проходят проверку на бота: защита от «спящих» бот-аккаунтов. false (по умолчанию) — постоянные игроки перепроверяются только по сроку recheck_hours (выше), а не после каждого рестарта |
antibot.slime_extra_seconds |
8 |
SLIME: сколько дополнительных секунд этапу даётся на отскок (взлететь + упасть + остановиться). Запас на пинг и лаги клиента. |
antibot.puzzle_sign_lines |
["&6&lПАЗЛ", "прямо перед тобой", "убери &cлишние&r предметы", "&aостальное не трогай"] |
Текст таблички перед игроком на этапе пазла (4 строки, &-цвета) |
antibot.fall_void_max |
3 |
Пустота на этапе FALL: сообщение и повтор. Сколько падений в пустоту до кика |
antibot.fall_packets |
true |
Пакетная проверка падения (Netty, limbo-стиль): телепорт в воздух + AcceptTeleportation, затем замер dy по формуле ванили v=(v-0.08)*0.98. false — старые платформы. Перехват не встаёт / пакетов не видно — повтор на событиях Bukkit (не кик). |
antibot.fall_confirm_timeout_ms |
2500 |
без AcceptTeleportation -> повтор падения на событиях Bukkit (НЕ кик) |
antibot.fall_move_timeout_ms |
3000 |
тишина по move-пакетам -> повтор на событиях Bukkit (НЕ кик) |
antibot.fall_max_duration_ms |
10000 |
общий потолок одной пакетной проверки падения, потом legacy (НЕ кик) |
antibot.fall_ticks |
4 |
нижняя граница сэмплов падения; реальный минимум считается из fall_height по физике ванили |
antibot.fall_tolerance |
0.01 |
допуск отклонения dy |
antibot.fall_tolerance_bedrock |
0.05 |
допуск для Bedrock/Geyser |
antibot.fall_packets_bedrock |
false |
пакетная проверка для Bedrock (Geyser); допуск не подтверждён замером — по умолчанию Bedrock идёт на legacy |
antibot.fall_height |
12 |
высота телепорта над ареной |
antibot.fall_max_violations |
3 |
подряд нарушений формулы до кика |
antibot.puzzle_front |
true |
Пазл перед игроком (прямо перед прицелом). false — стена за спиной: игроку нужно обернуться на 180 |
antibot.math_max |
20 |
MATH: пример на экране/в чате (по умолчанию выкл) числа 1..N в примере |
antibot.math_operations |
[add] |
Какие примеры давать: add — сложение (по умолчанию); mul — умножение самых простых чисел 2–5 (таблица умножения). Можно оба: [add, mul] |
antibot.math_where |
"chat" |
chat | bossbar | both — где показывать пример |
antibot.secret_mode |
"default" |
SECRET: тест на чит-команды Чит-клиенты перехватывают команды .help/#bind и не шлют их в чат — живой клиент отправит строку как сообщение. default — пул [.bind .help .bro #bro #bind #help] custom — свой список ниже random — случайные строки вида .fjdw / #jkkg |
antibot.secret_custom |
— | Свои чит-команды для этапа secret (при secret_mode: custom) |
antibot.secret_count |
2 |
сколько тестов подряд |
antibot.code_length |
4 |
длина кода капчи (3–8) |
antibot.captcha_prefixes |
".#!$" |
капча: префикс + токен (напр. #7bK9) |
antibot.captcha_strike |
false |
Капча на карте «зачёркнутая»: тонкие линии через середину и крест-накрест. Человек читает (буквы толще линий), программе-распознавалке мешает. |
antibot.max_attempts |
5 |
попыток ввода капчи/математики |
antibot.captcha_attempts |
3 |
попыток ввода капчи (и капчи в воздухе) до кика |
antibot.map_captcha |
false |
Рисовать код капчи на карте в руке (крупно, с искажением). Включено → код НЕ пишется в чат и титл, только на карте (Bedrock/Floodgate видит его и текстом). Рекомендуется true против ботов, читающих чат |
antibot.click_decoys |
2 |
CLICK: кнопок-приманок рядом с настоящей «Я НЕ БОТ» (0-3). Бот, жмущий любую ссылку из чата, попадает в приманку: 1-й промах прощается, 2-й = провал. 0 — старый режим (одно кликабельное сообщение) |
antibot.bedrock_skip_slots |
true |
Bedrock (Geyser): пропускать этап SLOTS — серверная смена слота на бедроке ненадёжна и кикала бы честных игроков. Остальные этапы остаются |
antibot.datacenter_block |
— | Защита ДО входа (отсекает бот-волны ещё при подключении) Блокировка IP хостингов / дата-центров / VPN Бот-фермы почти всегда сидят на VPS и прокси. Список подсетей скачивается по url раз в refresh_hours (кэш — data/datacenter-ipv4.txt). По умолчанию ВЫКЛ: честные игроки с VPN тоже не зайдут (им придётся отключить VPN). |
antibot.datacenter_block.enabled |
false |
вкл/выкл |
antibot.datacenter_block.mode |
new_players |
new_players — только незарегистрированным; all — всем |
antibot.datacenter_block.url |
"https://raw.githubusercontent.com/X4BNet/lists_vpn/main/output/datacenter/ipv4.txt" |
адрес списка подсетей хостингов/VPN |
antibot.datacenter_block.refresh_hours |
24 |
как часто обновлять список |
antibot.ping_check |
— | Проверка пинга перед входом Настоящий клиент сначала видит сервер в списке серверов (пинг), бот обычно подключается сразу. Зарегистрированные и Bedrock-игроки не проверяются. За прокси работает на прокси (там свой ping_check), здесь отключается сама. |
antibot.ping_check.mode |
attack |
off — выкл; attack — только во время атаки; always — всегда |
antibot.ping_check.window_seconds |
600 |
сколько секунд пинг «действует» |
antibot.connection_limit |
— | Лимит подключений (защита от наплыва ботов) |
antibot.connection_limit.enabled |
true |
включить лимит |
antibot.connection_limit.per_second |
10 |
всего подключений к серверу в секунду (0 = без лимита) |
antibot.connection_limit.per_minute |
150 |
всего подключений в минуту (0 = без лимита) |
antibot.connection_limit.per_ip_per_second |
2 |
с одного IP в секунду (0 = без лимита) |
antibot.connection_limit.per_ip_per_minute |
10 |
с одного IP в минуту (0 = без лимита) |
antibot.connection_limit.registered_bypass |
true |
уже зарегистрированных игроков лимит не трогает |
antibot.bans |
— | Баны за провал проверки на бота Бан только за ДОКАЗАННЫЙ провал (неверная физика, флуд, робот-ответы, обманка, ошибка в пазле/на блоке). Таймаут, лаг и AFK не банят никогда. mode: auto — первые free_fails провалов (по умолчанию 2) только кикают; дальше каждый провал с того же IP даёт следующую ступень: tiers_minutes[0] (1 мин), затем [1] (5 мин), [2] (15 мин); после последней — навсегда, если permanent: true, иначе снова последняя ступень. mode: off — не банить. Баны сохраняются в data/ip-bans.txt (переживают рестарт). Снять все баны: /authadmin unban |
antibot.bans.mode |
auto |
auto / off |
antibot.bans.tiers_minutes |
[1, 5, 15] |
длительность ступеней в минутах (можно больше ступеней) |
antibot.bans.permanent |
false |
4-я ступень — бан НАВСЕГДА (по умолчанию выкл) |
antibot.bans.free_fails |
2 |
Сколько первых ДОКАЗАННЫХ провалов только кикают (человек мог ошибиться). Бан по IP — с (free_fails+1)-го: при 2 — третий провал = 1 мин, дальше 5, 15… Доказанный провал: неверная физика, флуд пакетами, робот-ответы, кнопка обманка, ошибка в пазле/на блоке. Таймаут (лаг) и AFK бан НЕ дают никогда. |
antibot.bans.forget_after_hours |
24 |
без новых провалов столько часов — ступень сбрасывается |
antibot.guard |
— | Защита до входа: лимиты заходов с IP и общие, режим атаки, фильтр ников, лимиты аккаунтов и онлайна с одного IP |
antibot.guard.enabled |
true |
защита входа: лимиты подключений с IP и на весь сервер, режим атаки, фильтр ников |
antibot.guard.window_seconds |
60 |
окно подсчёта подключений |
antibot.guard.max_joins_per_ip |
5 |
максимум подключений с одного IP за окно |
antibot.guard.max_joins_global |
60 |
максимум подключений на весь сервер за окно |
antibot.guard.attack_mode_threshold |
30 |
при стольких входах включается attack-mode |
antibot.guard.reconnect_seconds |
0 |
>0 — в attack-mode просить переподключиться |
antibot.guard.fail_ban_minutes |
0 |
(только при bans.mode: off) бан IP после провала, мин |
antibot.guard.max_online_per_ip |
4 |
Одновременно онлайн с одного IP — только для НОВЫХ аккаунтов (0 = без лимита). IP прокси не ограничиваются |
antibot.guard.repeat_fail_ban_minutes |
5 |
(только при bans.mode: off) 3 провала проверки с IP за час → бан IP на N минут, только для незарегистрированных (0 = выкл). Выход посреди этапа после ошибок = провал |
antibot.guard.name_regex |
"^[A-Za-z0-9_]{3,16}$" |
Разрешённые ники (регулярка). Боты вида «Player12345678» отсекаются. Bedrock-ники Floodgate (“.Steve”) пропускаются: префикс срезается автоматически |
antibot.guard.attack_admit_per_second |
2 |
Щит от непрерывного потока ботов Во время атаки (attack-mode) новичков — незарегистрированных или с незнакомого для аккаунта IP — пускаем дозированно: столько в секунду. Остальным сразу и дёшево отвечаем «зайди через минуту», до загрузки мира и арен проверки. Свои игроки с привычного IP и прошедшие проверку входят без очереди. 0 — во время атаки новичков не пускать вовсе. |
antibot.guard.max_mspt |
45 |
Сервер не успевает за тиком (средний MSPT за ~5 с больше этого, мс) — новичков не пускаем, пока не полегчает; свои входят как обычно. 0 — выкл. Работает на Paper и форках (на Spigot нет нужного счётчика). |
antibot.guard.verified_ip_hours |
72 |
Сколько часов IP, прошедший проверку на бота, считается «своим» |
afk
AFK-защита и детект ботов (2 уровня + анти-макро)
| Параметр | По умолчанию | Что делает |
|---|---|---|
afk.enabled |
true |
вкл/выкл |
afk.initial_grace_seconds |
5 |
Уровень 1: новый игрок не двигался первые N сек → отсчёт в чат/ActionBar, по истечении initial_timeout — кик |
afk.initial_timeout_seconds |
15 |
сек до кика, если игрок вообще ничего не сделал после входа |
afk.queue_idle_seconds |
300 |
Уровень 2: игрок в очереди без активности N секунд → кик |
afk.bossbar |
true |
Боссбар с отсчётом до кика (AFK-предупреждение) |
afk.move_block_delta |
0.2 |
Анти-макро: прыжок на месте НЕ сбрасывает таймер — мин. смещение (блоки) |
afk.camera_window |
20 |
Линейный аим: окно тиков и порог стандартного отклонения дельт yaw/pitch |
afk.camera_stddev_max |
0.01 |
разброс поворотов камеры ниже этого = «робот» |
afk.camera_min_mean_delta |
1.0 |
минимальный средний поворот, чтобы вообще оценивать |
afk.camera_strikes |
2 |
сколько «роботизированных» окон до кика |
afk.bedrock_multiplier |
3.0 |
Bedrock (Floodgate): смягчение порогов камеры (сенсорный ввод) |
afk.ip_ban_minutes |
15 |
Бан IP ботов/AFK на N минут (0 = выкл) |
afk.ip_ban_on_kick |
false |
бан IP за AFK-кик неавторизованного (выкл: простой — не доказательство бота) |
afk.ip_ban_strikes |
2 |
Бан по IP: подтверждённый бот — сразу; AFK — со 2-го нарушения |
afk.spectator_grace |
— | AFK в очереди (любой режим): вместо мгновенного кика — spectator-режим с боссбаром; активность (камера/полёт) возвращает в очередь |
afk.spectator_grace.enabled |
true |
вкл/выкл |
afk.spectator_grace.timeout_seconds |
60 |
сколько секунд можно летать наблюдателем |
afk.kick_after_login |
false |
Кикать ли за AFK игроков, которые УЖЕ вошли в аккаунт (после authed_idle_seconds без активности). По умолчанию ВЫКЛ: после входа плагин игрока за AFK не трогает. Активность при включении: движение, транспорт, поворот камеры, чат, команды, клики, блоки. (Старый ключ track_authed больше не действует.) |
afk.authed_idle_seconds |
900 |
Секунд без активности до AFK-кика авторизованного (мин. 60). Право vtregister.afk.bypass — исключение |
afk.siege |
— | Осадной режим: много AFK-киков подряд → лимит входа неавторизованных |
afk.siege.enabled |
true |
вкл/выкл |
afk.siege.kicks_threshold |
8 |
столько afk-киков за окно → осадa |
afk.siege.window_seconds |
60 |
окно подсчёта AFK-киков для режима осады (сек) |
afk.siege.duration_seconds |
180 |
длительность лимита |
afk.siege.max_pending |
8 |
макс. неавторизованных онлайн при осаде |
info_bar
Инфо-боссбар №3 (реклама/донат/ротация сообщений)
| Параметр | По умолчанию | Что делает |
|---|---|---|
info_bar.enabled |
true |
вкл/выкл |
info_bar.interval_seconds |
8 |
ротация сообщений |
info_bar.color |
"PURPLE" |
цвет инфо-боссбара |
info_bar.messages |
["&dДобро пожаловать! Пройди проверку и войди.", "&bРегистрация: &f/reg&b, вход: &f/login", "&6Пароль вводится в чат и не попадает в логи сервера", "&eНикому не сообщай свой пароль — даже администрации"] |
Сообщения инфо-боссбара по очереди |
twofactor
Двухфакторная аутентификация (TOTP)
| Параметр | По умолчанию | Что делает |
|---|---|---|
twofactor.enabled |
true |
игроки включают сами: /2fa on |
twofactor.timeout_seconds |
60 |
сколько даётся на ввод кода при входе |
twofactor.max_attempts |
4 |
неверных кодов 2FA до кика |
twofactor.trust_minutes |
0 |
0 = спрашивать код каждый вход |
twofactor.issuer |
"Minecraft" |
название в приложении-аутентификаторе |
twofactor.force_admins |
false |
Обязательная 2FA для админов (по умолчанию ВЫКЛ). Если включить: админ без 2FA после входа может только включить её (/2fa on) — остальные команды и чат заблокированы до включения. |
twofactor.admin_permission |
"registerplugin.admin" |
кто считается админом (и все OP) |
twofactor.admin_setup_seconds |
300 |
через сколько секунд кик, если 2FA так и не включил (0 = не кикать) |
email
Почта (SMTP) — для /email и /recover
| Параметр | По умолчанию | Что делает |
|---|---|---|
email.enabled |
false |
вкл/выкл |
email.provider |
"custom" |
Готовые настройки почты: gmail, yandex, mailru — host/port/ssl ниже подставятся сами, заполни только smtp.user (свой адрес) и smtp.password. custom — свой SMTP-сервер, всё вручную. ВАЖНО: password — это «пароль приложения», НЕ обычный пароль от почты: Gmail — включи двухэтапную проверку → myaccount.google.com/apppasswords Яндекс — id.yandex.ru → Безопасность → Пароли приложений → «Почта»; в настройках Яндекс Почты разреши доступ почтовым программам Mail.ru — Настройки → Безопасность → Пароли для внешних приложений Проверка: /authadmin testmail <твоя почта="">твоя> |
email.code_minutes |
10 |
сколько минут действует код из письма |
email.smtp |
— | Почтовый сервер для писем восстановления |
email.smtp.host |
"smtp.example.com" |
адрес SMTP-сервера |
email.smtp.port |
465 |
порт (465 = SSL, 587 = STARTTLS) |
email.smtp.user |
"noreply@example.com" |
логин |
email.smtp.password |
"" |
пароль (храни файл в секрете) |
email.smtp.from |
"noreply@example.com" |
адрес отправителя |
email.smtp.ssl |
true |
порт 465 — да; для 587 поставь ssl: false, starttls: true |
email.smtp.starttls |
false |
true для порта 587 |
premium
Премиум-автологин (только для online-mode серверов) Если сервер лицензионный (за прокси — только при защищённом forwarding: Velocity modern, BungeeGuard или proxy.firewall; иначе автоматически отключается), лицензионные игроки входят без пароля. С включённой 2FA код всё равно спрашивается. На пиратке НЕ включать — UUID не совпадёт.
| Параметр | По умолчанию | Что делает |
|---|---|---|
premium.enabled |
false |
вкл/выкл |
premium.only_first_join |
false |
проверять премиум только при первом входе |
premium.cache_minutes |
60 |
сколько минут помнить ответ Mojang |
premium.min_interval_ms |
250 |
пауза между запросами к Mojang (мс) |
spawns
Спавны Точки задаются командой /authadmin setspawn <prelogin|postlogin|firstjoin>
after_auth
Куда отправить игрока после авторизации target - для уже зарегистрированных, new_target - для новых после /reg. auto - точка setspawn, если задана; иначе: старые остаются на месте входа, новички идут на спавн мира (нулевые координаты) spawn - точка /authadmin setspawn postlogin (новички: firstjoin) zero - спавн основного мира (нулевые координаты) coords - точные координаты из world/x/y/z ниже command - выполнить команду от консоли: {player} = ник, {uuid} = UUID. Примеры: “spawn {player}”, “warp lobby {player}” работает с EssentialsSpawn, SetSpawn, warp-плагинами plugin - то же, но команда берётся из plugin_command last - оставить на месте входа | none - ничего не делать
| Параметр | По умолчанию | Что делает |
|---|---|---|
after_auth.target |
"auto" |
Куда отправить игрока после входа: auto, spawn, zero, last, none, coords, command, plugin (подробности — в комментарии выше) |
after_auth.new_target |
"auto" |
то же для только что зарегистрировавшихся |
after_auth.command |
"spawn {player}" |
команда для target: command |
after_auth.command_new |
"" |
для новичков; пусто = та же command |
after_auth.plugin_command |
"spawn {player}" |
команда для target: plugin |
after_auth.world |
"world" |
coords: |
after_auth.x |
0.5 |
координата X (target: coords) |
after_auth.y |
100.0 |
координата Y |
after_auth.z |
0.5 |
координата Z |
after_auth.yaw |
0 |
поворот головы по горизонтали |
after_auth.pitch |
0 |
наклон головы |
bedrock
Bedrock (Geyser/Floodgate)
| Параметр | По умолчанию | Что делает |
|---|---|---|
bedrock.enabled |
false |
вкл/выкл |
bedrock.trust_floodgate_players |
false |
Bedrock-игроки входят без пароля |
bedrock.log_api_errors |
true |
писать в лог ошибки Floodgate API |
global_blacklist
Единый чёрный список между серверами Серверы-партнёры обмениваются списками банов: бот или читер, забаненный на одном сервере, не может зайти на другие. По умолчанию ВЫКЛ. Как соединить: 1. Оба сервера: enabled: true, свой server_name. 2. Чтобы ОТДАВАТЬ свой список: publish.enabled: true, открыть порт publish.port. Токен (пароль доступа) сгенерируется в data/blacklist-token.txt — передай его партнёру (или впиши свой в publish.token). 3. Чтобы ЗАБИРАТЬ список партнёра: добавь его в peers (url + его токен). Передаются только IP/ники с банами и срок бана — никаких паролей и данных игроков.
| Параметр | По умолчанию | Что делает |
|---|---|---|
global_blacklist.enabled |
false |
главный выключатель |
global_blacklist.server_name |
"myserver" |
имя этого сервера — видно игроку в причине блокировки |
global_blacklist.share_from_tier |
3 |
отдавать баны антибота от этой ступени (3 = 15 мин и выше) |
global_blacklist.share_server_bans |
true |
отдавать и баны сервера (/ban, /ban-ip) — например за читы |
global_blacklist.block_names |
true |
блокировать и по нику (а не только по IP) |
global_blacklist.ignore_private_ips |
true |
никогда не блокировать локальные адреса (127.x, 10.x, 192.168.x) |
global_blacklist.max_entries_per_peer |
50000 |
защита от «раздутого» списка партнёра |
global_blacklist.pull_interval_seconds |
60 |
как часто забирать списки партнёров |
global_blacklist.publish |
— | Отдавать свои баны серверам-партнёрам (открывает HTTP-порт, защищённый токеном) |
global_blacklist.publish.enabled |
false |
отдавать свой список партнёрам |
global_blacklist.publish.bind |
"0.0.0.0" |
на каком адресе слушать |
global_blacklist.publish.port |
8765 |
порт (открой его в файрволе хостинга) |
global_blacklist.publish.token |
"" |
пароль доступа; пусто = сгенерировать в data/blacklist-token.txt |
global_blacklist.peers |
[] |
Партнёры, чьи списки забираем: peers: url: “http://1.2.3.4:8765/vtregister/blacklist” token: “токен партнёра” |
proxy
Прокси (BungeeCord / Velocity)
| Параметр | По умолчанию | Что делает |
|---|---|---|
proxy.warn_misconfigured |
true |
Раз в минуту писать в консоль, если сервер за прокси, но прокси/переадресация не настроены (или похоже на то). false — не напоминать. |
proxy.type |
"auto" |
auto | bungeecord | velocity | none (none — прокси нет, перенос выключен) |
proxy.known_proxy_ips |
["127.0.0.1", "::1", "0:0:0:0:0:0:0:1"] |
IP прокси/защиты (можно CIDR, напр. 10.0.0.0/8): с них не работают лимиты, баны и автологин по IP |
proxy.firewall |
— | Пускать на сервер ТОЛЬКО с адресов прокси (защита от входа мимо прокси) |
proxy.firewall.enabled |
false |
Пускать только подключения с IP прокси (защита от прямого входа). ОБЯЗАТЕЛЬНО при spigot.yml bungeecord: true без BungeeGuard — иначе UUID/IP подделываются; allowed_ips — IP прокси как его видит сервер, можно CIDR |
proxy.firewall.allowed_ips |
["127.0.0.1"] |
IP прокси так, как их видит этот сервер |
proxy_server
Отправка игрока в лобби за прокси Работает для BungeeCord/Waterfall и Velocity (в velocity.toml включи bungee-plugin-message-channel = true). Как определяется куда отправлять: 1. если задан lobby_address (host:port) и auto_detect_name: true — плагин спрашивает у прокси список серверов и находит имя, у которого тот же IP:порт (BungeeCord: GetServers + ServerIP); 2. иначе используется server_name — имя сервера как в конфиге прокси. Безопасность: пока идёт перенос, игрок неуязвим и стоит на безопасной точке (prelogin-спавн / спавн мира / lobby-локация). Если прокси не ответил за transfer_timeout_seconds — игрок остаётся на этом сервере в lobby-локации (не падает и не умирает).
| Параметр | По умолчанию | Что делает |
|---|---|---|
proxy_server.enabled |
false |
вкл/выкл |
proxy_server.server_name |
"lobby" |
Имя сервера в конфиге прокси (для BungeeCord: servers. |
proxy_server.lobby_address |
"" |
IP:порт лобби, например “10.0.0.5:25566” или “play.example.com:25565”. Нужен только для автоопределения имени; можно оставить пустым. |
proxy_server.auto_detect_name |
true |
Спрашивать у прокси имя сервера, соответствующее lobby_address |
proxy_server.transfer_timeout_seconds |
8 |
Через сколько секунд считать перенос неудачным и оставить игрока здесь |
proxy_server.retry_seconds |
3 |
Через сколько секунд повторить Connect, если игрок ещё здесь |
proxy_server.safe_transfer |
true |
Пока идёт перенос: неуязвимость + запрет падения (игрок не умрёт) |
proxy_server.fallback_to_lobby_location |
true |
Если перенос не удался — телепортировать в lobby-локацию ниже (а не оставлять на месте) |
proxy_server.wait_for_server |
— | Если целевой сервер выключен: ждать его включения в лобби-очереди. TCP-проверка host:port раз в check_interval_seconds; по истечении timeout_minutes — кик с сообщением. Боссбар показывает обратный отсчёт. |
proxy_server.wait_for_server.enabled |
false |
вкл/выкл |
proxy_server.wait_for_server.host |
"" |
IP/хост целевого сервера для проверки (пусто = выкл) |
proxy_server.wait_for_server.port |
25565 |
порт целевого сервера |
proxy_server.wait_for_server.timeout_minutes |
15 |
сколько минут ждать включения |
proxy_server.wait_for_server.check_interval_seconds |
10 |
как часто проверять (сек) |
proxy_server.wait_for_server.bossbar |
true |
показывать ожидание в боссбаре |
lobby
Телепорт внутри сервера после авторизации
| Параметр | По умолчанию | Что делает |
|---|---|---|
lobby.enabled |
false |
вкл/выкл |
lobby.world |
"world" |
мир точки лобби |
lobby.x |
0 |
X |
lobby.y |
100 |
Y |
lobby.z |
0 |
Z |
lobby.yaw |
0 |
поворот головы |
lobby.pitch |
0 |
наклон головы |
selfdefense
Watchdog состояния Следит за подменой команд/листенеров и штатным отключением. По умолчанию только предупреждение и восстановление — остановка сервера может уронить доступность, включай осознанно.
| Параметр | По умолчанию | Что делает |
|---|---|---|
selfdefense.enabled |
false |
вкл/выкл |
selfdefense.action |
"stop" |
stop | restart |
selfdefense.integrity_check |
true |
самопроверка файлов плагина |
selfdefense.check_interval_seconds |
10 |
как часто (сек) |
selfdefense.max_tamper_strikes |
3 |
сколько срабатываний до отключения |
allowed_commands_unauthorized |
["login", "l", "register", "reg"] |
Команды, разрешённые ДО авторизации |
console_reminder
Консольное напоминание об обновлениях Пишется ТОЛЬКО в консоль (игроки не видят). Можно выключить.
| Параметр | По умолчанию | Что делает |
|---|---|---|
console_reminder.enabled |
true |
вкл/выкл |
console_reminder.delay_seconds |
10 |
через сколько секунд после старта |
console_reminder.times |
2 |
сколько раз повторить |
console_reminder.message |
"VTRegister — новые версии выходят на GitHub: github.com/Vitaliy222121/VTRegister/releases" |
текст в консоль |
console_reminder.messages |
["Нравится VTRegister? Поставь звезду на GitHub — это помогает проекту."] |
Доп. строки после основного сообщения (тоже только в консоль) |
messages
Сообщения Все тексты — в lang/ru.yml и lang/en.yml. Здесь можно точечно переопределить любой ключ: messages.<ключ> имеет приоритет над lang-файлом.ключ>
| Параметр | По умолчанию | Что делает |
|---|---|---|
messages.use_hex |
true |
HEX-цвета (&#RRGGBB) в сообщениях |
messages.prefix |
"&#FF66CC[Auth] &#FFFFFF" |
префикс сообщений |
messages.custom_instructions |
— | Свои инструкции при входе (любое количество строк; пусто = не отправлять) |
messages.custom_instructions_register |
— | доп. инструкции для тех, кому нужно зарегистрироваться |
messages.custom_instructions_login |
— | доп. инструкции для тех, кому нужно войти |
advanced.yml — база данных, лимиты, автоперезапуск
storage
| Параметр | По умолчанию | Что делает |
|---|---|---|
storage.type |
yaml |
Тип хранилища: yaml — файл data/accounts.yml (по умолчанию, человекочитаемый) sqlite — файл data/accounts.db (компактнее и быстрее на больших базах) mysql — база MySQL (общая для сети серверов) mariadb — база MariaDB (используется драйвер MySQL) postgresql — база PostgreSQL (драйвер скачается автоматически) |
storage.host |
"localhost" |
Параметры для SQL (для yaml/sqlite не нужны): адрес сервера базы |
storage.port |
3306 |
для PostgreSQL по умолчанию 5432 |
storage.database |
"minecraft" |
имя базы |
storage.user |
"root" |
пользователь БД |
storage.password |
"" |
пароль БД |
storage.ssl |
false |
шифровать соединение с БД |
storage.table_prefix |
"rp_" |
Префикс таблицы (несколько серверов могут жить в одной базе) |
storage.pool_size |
4 |
Размер пула соединений (1–16). Больше 8 обычно не нужно |
storage.sqlite_file |
"accounts.db" |
Имя файла SQLite |
storage.sqlite_busy_timeout_ms |
5000 |
SQLite: сколько миллисекунд ждать, если база занята записью, вместо ошибки «database is locked» (журнал WAL и synchronous=NORMAL включены всегда) |
storage.match_by_name |
true |
Искать аккаунт по нику, если UUID не совпал (смена online-mode, миграция с другого ядра, смена ника у лицензионного игрока) |
maintenance
Обслуживание: как часто сбрасывать изменения аккаунтов на диск
| Параметр | По умолчанию | Что делает |
|---|---|---|
maintenance.flush_interval_ticks |
40 |
Как часто сбрасывать изменённые аккаунты на диск/в базу (в тиках, 20 = 1 сек) |
maintenance.warn_sync_reads |
false |
Писать в лог, если аккаунт читается из базы синхронно (может лагать) |
purge
Автоочистка неактивных аккаунтов (по умолчанию ВЫКЛ — удаление необратимо). Удаляются аккаунты, которые не входили inactive_days дней: база не копит «мёртвые» регистрации. Игроки онлайн не трогаются. Применяется после перезапуска.
| Параметр | По умолчанию | Что делает |
|---|---|---|
purge.enabled |
false |
вкл/выкл |
purge.inactive_days |
180 |
сколько дней без входа (минимум 30) |
purge.keep_with_email |
true |
не удалять аккаунты с привязанной почтой |
purge.keep_with_2fa |
true |
не удалять аккаунты с включённой 2FA |
purge.check_hours |
24 |
как часто проверять (часы) |
limits
Лимиты нагрузки: хеширование паролей и письма
| Параметр | По умолчанию | Что делает |
|---|---|---|
limits.max_parallel_hash_checks |
12 |
Максимум одновременных проверок пароля (защита CPU от флуда) |
limits.max_parallel_per_ip |
2 |
Максимум проверок пароля с одного IP одновременно |
limits.max_emails_per_minute |
5 |
Максимум писем в минуту (защита SMTP от флуда) |
database_backup
Резервные копии базы аккаунтов
| Параметр | По умолчанию | Что делает |
|---|---|---|
database_backup.enabled |
false |
Автоматическая резервная копия при запуске (только для yaml/sqlite) |
database_backup.keep_last |
5 |
Сколько последних копий хранить в data/backups/ |
antibot
Антибот: экспертные ручки (для продвинутых) Обычному серверу трогать не нужно — значения по умолчанию подобраны.
| Параметр | По умолчанию | Что делает |
|---|---|---|
antibot.tick_ticks |
10 |
Период общего тикера антибота в тиках (20 = 1 сек). Меньше = точнее таймауты и отсчёты, больше = дешевле на слабых серверах |
antibot.jolt_interval_ticks |
8 |
Пауза между рывками камеры на этапе SLOTS (тики). Короче = агрессивнее |
antibot.packet_window_ticks |
3 |
Окно подсчёта move-пакетов (тики тикера): пакеты суммируются за окно, превышение packet_max_per_tick = бот. 1 = строго, 5 = толерантно к лагам |
auto_restart
Автоматический перезапуск сервера Долгая работа без перезапуска копит «мусор» у ядра и плагинов. По умолчанию: каждые 48 часов в 00:00 по Москве. Игроков заранее предупреждают в чате.
| Параметр | По умолчанию | Что делает |
|---|---|---|
auto_restart.enabled |
true |
вкл/выкл |
auto_restart.mode |
time |
time — в заданное время суток (time + timezone), раз в every_days дней uptime — ровно через uptime_hours часов работы сервера |
auto_restart.time |
"00:00" |
во сколько перезапускать (ЧЧ:ММ) — для mode: time |
auto_restart.timezone |
"Europe/Moscow" |
Часовой пояс: Europe/Moscow (МСК), Europe/Kyiv, Europe/Minsk, Europe/Berlin, Asia/Almaty, Asia/Yekaterinburg, Asia/Novosibirsk, Asia/Vladivostok, UTC или server — часовой пояс машины, где запущен сервер |
auto_restart.every_days |
2 |
раз в N дней (2 = каждые 48 часов) — для mode: time |
auto_restart.uptime_hours |
48 |
через сколько часов работы — для mode: uptime |
auto_restart.warn_seconds |
[900, 600, 300, 120, 60, 30, 10, 5, 4, 3, 2, 1] |
За сколько секунд до перезапуска предупреждать в чате |
auto_restart.warn_message |
"&c⚠ Перезапуск сервера через &f{time}&c." |
текст предупреждения в чате ({time} — сколько осталось) |
auto_restart.kick_message |
"&eСервер перезапускается. Зайди через минуту!" |
сообщение игрокам при перезапуске |
auto_restart.command |
"restart" |
restart — команда рестарта (spigot.yml → restart-script; без скрипта сервер просто выключится, и хостинг обычно поднимает его сам); stop — выключить |
bstats
Анонимная статистика bStats Раз в 30 минут на bstats.org: версии сервера, Java и плагина, ОС, число игроков онлайн, страна сервера, режим антибота, хранилище, язык и способ ввода пароля. Ников, IP и паролей там нет. Статистика: https://bstats.org/plugin/bukkit/VTRegister/34444
| Параметр | По умолчанию | Что делает |
|---|---|---|
bstats.enabled |
true |
вкл/выкл |
proxy-config.yml — настройки на прокси (Velocity/BungeeCord)
| Параметр | По умолчанию | Что делает |
|---|---|---|
auth_servers |
[auth] |
Серверы (имена из velocity.toml / config.yml прокси), где стоит VTRegister и где игрок вводит пароль. Первый подключившийся игрок, пока не вошёл, всегда попадает на первый доступный сервер из списка. Пустой список [] = вход на любом сервере, но смена сервера до входа запрещена. Имени нет среди серверов прокси? Игрока НЕ кикаем (идёт куда шлёт прокси), а в консоль раз в минуту пишется предупреждение, пока не исправишь. |
after_login_server |
[] |
Куда отправить после входа. Список — берётся первый, куда удалось подключиться. [] = остаться на сервере входа. ВАЖНО: если используешь это — выключи proxy_server.enabled на Paper-сервере, иначе игрока отправят дважды. |
allowed_proxy_commands |
[] |
Прокси-команды, разрешённые ДО входа (без ‘/’). Остальные прокси-команды блокируются. Команды сервера (/login, /register) это не затрагивает. |
secret |
'' |
Общий секрет с Paper-серверами (security.proxy_bridge.secret в их config.yml). Задай одинаковую длинную случайную строку на прокси и на всех серверах — тогда вход на одном сервере с VTRegister засчитывается на остальных. Пусто = каждый сервер с VTRegister спрашивает пароль сам. |
warn_misconfigured |
true |
Лимиты по IP. Если перед прокси стоит HAProxy/TCPShield БЕЗ PROXY protocol (haproxy-protocol / proxy_protocol), у всех игроков один IP — поставь per_ip_per_minute: 0 и max_online_per_ip: 0. Раз в минуту писать в консоль, если auth_servers/after_login_server указывают на несуществующие серверы. false — не напоминать. |
connection_limit
| Параметр | По умолчанию | Что делает |
|---|---|---|
connection_limit.per_ip_per_minute |
8 |
Подключений с одного IP в минуту (0 = без лимита). Проверенные IP не считаются. |
connection_limit.max_online_per_ip |
4 |
Одновременно в сети с одного IP (0 = без лимита) |
connection_limit.global_per_second |
25 |
Больше подключений в секунду на весь прокси = атака ботов (0 = выкл) |
connection_limit.attack_seconds |
120 |
Сколько секунд длится режим атаки: пускаем только проверенные IP |
connection_limit.verified_ip_hours |
72 |
Сколько часов IP считается проверенным после успешного входа |
connection_limit.attack_admit_per_second |
2 |
Во время атаки незнакомых IP пускаем столько в секунду (проверенные — без очереди). 0 — во время атаки пускать только проверенные IP |
ping_check
Проверка пинга: настоящий клиент сначала видит сервер в списке серверов (пинг), бот обычно подключается сразу. off — выкл; attack — только во время атаки (рекомендуется); always — всегда (новые игроки без пинга получат просьбу обновить список серверов и зайти снова).
| Параметр | По умолчанию | Что делает |
|---|---|---|
ping_check.mode |
attack |
off / attack / always |
ping_check.window_seconds |
600 |
сколько секунд пинг «действует» |
messages
Тексты для игроков: & — цвета; перевод строки — два символа: обратный слеш и n
| Параметр | По умолчанию | Что делает |
|---|---|---|
messages.ping_first |
'&eДобавь сервер в список серверов, обнови список и зайди снова.' |
сообщение игроку, который зашёл без пинга в списке серверов |
messages.switch_denied |
'&cСначала войди в аккаунт: &f/login <пароль>' |
сообщение при попытке сменить сервер до входа |
messages.command_denied |
'&cЭта команда доступна после входа: &f/login <пароль>' |
сообщение при запрещённой команде прокси до входа |
messages.no_auth_server |
'&cСервер авторизации недоступен. Попробуй зайти через минуту.' |
сообщение, когда нет доступного сервера входа |
messages.attack |
'&cСервер отражает атаку ботов.\n&fЗайди через пару минут — вернувшихся игроков пускаем сразу.' |
сообщение во время режима атаки |
messages.too_fast |
'&cСлишком частые подключения с твоего IP. Подожди минуту.' |
сообщение при слишком частых переподключениях |
messages.too_many_online |
'&cС твоего IP уже играет слишком много аккаунтов.' |
сообщение, когда с одного IP слишком много игроков |