TeaHost
Minecraftminecraftworldguardплагинызащита4 мин. чтения

Установка и настройка WorldGuard

Установка WorldGuard на Paper-сервер: зависимость WorldEdit, первый запуск, глобальный регион, базовые флаги и типичные ошибки новичков.

Кратко

WorldGuard работает только вместе с WorldEdit: положите worldedit-bukkit и worldguard-bukkit одной эпохи в plugins Paper-сервера и перезапустите его. Сразу задайте правила для всего мира через регион __global__ (creeper-explosion deny, tnt deny, fire-spread deny), выдайте модераторам worldguard.region.* через LuckPerms и проверяйте флаги аккаунтом без OP.

Установка WorldGuard нужна почти каждому серверу, где играют не только друзья: без него любой гость снесёт спавн киркой за пару минут. Плагин закрывает две задачи — глобальные запреты на весь мир (взрывы, распространение огня, PvP) и приватные регионы, которые игроки или админы выделяют под свои постройки.

Что нужно до установки WorldGuard

WorldGuard не работает в одиночку. Ему обязательно нужен WorldEdit — из него берётся механика выделения области деревянным топором. Если положить в plugins только WorldGuard, сервер при старте напишет Unknown/missing dependency: WorldEdit и плагин просто не загрузится.

Дальше — платформа. WorldGuard живёт на Bukkit-ветке: Paper, Purpur, Spigot. На Forge и Fabric он не встанет, там свои аналоги вроде FTB Chunks. Если у вас модовая сборка, смотрите смену версии и ядра — иногда проще перейти на Paper, чем искать замену.

И версия. WorldGuard 7.0.x рассчитан на 1.13+, для 1.21 берите последнюю сборку с сайта EngineHub. Пара с WorldEdit должна быть ровесниками: WorldEdit 7.3 + WorldGuard 7.0.13 работают вместе, а свежий WorldGuard со старым WorldEdit 6 упадёт при инициализации.

Порядок установки

  1. Скачайте worldedit-bukkit-<версия>.jar и worldguard-bukkit-<версия>.jar с enginehub.org или Modrinth.
  2. Остановите сервер. Не «рестарт на лету» — плагины с зависимостями любят загружаться в неправильном порядке при горячей подгрузке.
  3. Закиньте оба .jar в папку plugins через файловый менеджер панели или по SFTP.
  4. Запустите сервер и посмотрите консоль.

В логе должны появиться две строки вида [WorldEdit] Enabling WorldEdit v7.3.x и следом [WorldGuard] Enabling WorldGuard v7.0.x. Порядок именно такой — WorldEdit первым. Проверить итог можно командой /plugins: оба имени должны гореть зелёным.

Общая механика загрузки .jar подробно разобрана в статье про установку плагинов, здесь она не отличается ничем.

Что появляется после первого запуска

WorldGuard создаёт папку plugins/WorldGuard со следующим содержимым:

  • config.yml — глобальные настройки плагина;
  • worlds/<имя_мира>/config.yml — настройки конкретного мира, они перекрывают глобальные;
  • worlds/<имя_мира>/regions.yml — сами регионы, их границы, участники и флаги.

Правило простое: правите поведение всего сервера — идёте в корневой config.yml, правите только основной мир — в worlds/world/config.yml. Второй вариант чаще нужен, когда через Multiverse подключены креативный и ресурсный миры с разными правилами.

Файл regions.yml руками лучше не трогать. Он перезаписывается при выгрузке мира, и правки, сделанные в момент работы сервера, просто затрутся.

Глобальный регион и первые флаги

Самое полезное, что даёт WorldGuard сразу после установки, — псевдорегион __global__. Он покрывает весь мир и позволяет задать правила по умолчанию.

Типовой набор для выживания с защитой спавна:

код
/rg flag __global__ creeper-explosion deny
/rg flag __global__ tnt deny
/rg flag __global__ fire-spread deny
/rg flag __global__ lava-fire deny

Для PvE-сервера добавляют /rg flag __global__ pvp deny, для анархии наоборот — ничего не запрещают вовсе. Учтите: флаги fire-spread, lava-fire, water-flow и lava-flow срабатывают, только если в конфиге WorldGuard включены «high frequency flags» — так указано в документации по флагам.

Отдельная история — флаг passthrough. Если поставить /rg flag __global__ passthrough deny, строить не сможет никто, кроме тех, кто внутри разрешающих регионов. Это удобно для карт-хабов, но на обычном выживании такой ход обычно ломает игру новичкам, которые не понимают, почему блок не ставится.

Часть запретов настраивается не флагами, а конфигом. Например, в worlds/world/config.yml есть блок:

код
mobs:
    block-creeper-explosions: true
    block-enderdragon-block-damage: true
    block-witherblock-damage: true

Разница в том, что конфиг работает жёстко на весь мир, а флаг __global__ можно переопределить в конкретном регионе. Гибче — флаги.

Права доступа

Из коробки все команды WorldGuard доступны только операторам. Чтобы модератор мог работать с регионами без OP, права выдают через LuckPerms:

код
/lp group moder permission set worldguard.region.* true
/lp group moder permission set worldedit.wand true

Игрокам обычно хватает права на владение своими регионами: worldguard.region.addmember.own, worldguard.region.info.own, worldguard.region.list.own. Полный worldguard.* рядовым игрокам не выдают никогда — с ним можно снять флаги с любого чужого региона.

Проверка, что всё работает

Возьмите деревянный топор (//wand), кликните левой кнопкой по одному углу, правой — по противоположному. В чат придёт First position set и Second position set с координатами. Если сообщений нет, значит не загрузился WorldEdit, а не WorldGuard.

Дальше создайте тестовый регион: /rg define test. Ответ A new region has been created named 'test' — установка WorldGuard прошла успешно. Удалить пробник: /rg remove test. Подробнее про выделение и наполнение — в статье про создание регионов в WorldGuard.

Частые ошибки

Unknown/missing dependency: WorldEdit. Забыли WorldEdit или положили не bukkit-сборку, а версию для Forge. Смотрите на имя файла: нужно worldedit-bukkit, а не worldedit-mod.

NoClassDefFoundError при старте. Классика несовместимости версий: WorldGuard новее, чем WorldEdit. Обновите оба до последних сборок под вашу версию игры.

Флаги ставятся, но не действуют. Почти всегда причина — вы OP. У операторов по умолчанию есть право обхода регионов. Проверяйте эффект вторым аккаунтом или временно снимайте OP.

Регионы пропали после рестарта. Мир выгрузился аварийно, regions.yml не сохранился. Помогает /rg save перед плановым перезапуском и нормальные бэкапы.

Взрывы криперов всё равно ломают спавн. В регионе спавна флаг creeper-explosion не выставлен, а __global__ перекрыт региональным приоритетом. Ставьте флаг на сам регион спавна, а не полагайтесь на глобальный.

Коротко

Порядок такой: WorldEdit → WorldGuard → рестарт → глобальные флаги → регион на спавн → права модераторам. Пятнадцать минут работы, и сервер перестаёт разбираться вручную с каждым «а меня загриферили».

Если сервер ещё не поднят или хочется панель, где .jar закидываются в пару кликов и рестарт делается кнопкой — тарифы TeaHost тут.