WorldGuard: регионы, флаги и команды

WorldGuard защищает территории сервера: спавн, базы игроков, арены, магазины. Регион выделяется палочкой WorldEdit, после чего флагами в нём запрещают стройку, PvP, взрывы, мобов или вход чужим.

Установка и какая версия нужна

  1. Проверьте ядро: нужен сервер с Bukkit API, то есть Paper или Spigot. Ванильный сервер, Forge и Sponge не подходят.
  2. Скачайте WorldEdit для Bukkit под свою версию Minecraft. Он обязателен, через него выделяются регионы.
  3. Скачайте WorldGuard с dev.bukkit.org или Modrinth, положите оба jar в plugins и перезапустите сервер.

Каждая версия WorldGuard собрана под свои версии игры, старая на новом сервере не заработает. Соответствие по данным Modrinth:

MinecraftWorldGuard
1.16.57.0.5 (и WorldEdit 7.2.x)
1.21 и 1.21.17.0.12
1.21.47.0.13
1.21.5 до 1.21.87.0.14
1.21.107.0.15
1.21.117.0.17
26.1.x7.0.18
26.2 и 26.37.0.19

WorldEdit для 1.21.4 и новее выходит в ветке 7.3.x и 7.4.x, релиз 7.4.5 покрывает версии от 1.21.4 до 26.2. Под 26.3 на момент написания есть только бета WorldEdit 7.4.6.

По умолчанию пользоваться плагином не может никто, кроме операторов. Администраторам выдайте worldguard.* через плагин прав.

Как создать регион и добавить игроков

Регион создаётся из выделения WorldEdit. Возьмите деревянный топор командой //wand, кликните левой кнопкой по одному углу и правой по противоположному. Чтобы регион шёл от бедрока до неба, расширьте выделение: //expand vert.

//wand
//expand vert
/rg define spawn
/rg addmember spawn g:builders
/rg addowner spawn Steve

/rg это сокращение /region. Имя региона уникально и не зависит от регистра. Новый регион сразу запрещает строить всем, кроме участников (members) и владельцев (owners). Группу из плагина прав добавляют с приставкой g:. Владельцев можно указать сразу: /rg define town Steve Alex.

Регионы бывают кубоидами и 2D-многоугольниками с высотой (//sel poly). Цилиндр и сферу WorldGuard не примет. Изменить границы: выделите новую область и выполните /rg redefine spawn. Изменения сохраняются сами с небольшой задержкой, принудительно командой /rg save.

Флаги: PvP, двери, взрывы, приветствие

Флаг ставится командой /rg flag <регион> <флаг> <значение>, снимается той же командой без значения. /rg flags spawn показывает все флаги, в игре значения можно менять кликом.

/rg flag spawn pvp deny
/rg flag spawn use allow
/rg flag spawn creeper-explosion deny
/rg flag spawn tnt deny
/rg flag spawn mob-spawning deny
/rg flag spawn greeting Добро пожаловать на спавн
/rg flag vip entry deny
  • use: двери, рычаги, кнопки, нажимные плиты (без сундуков).
  • chest-access: доступ к сундукам и другим инвентарям.
  • block-break и block-place: отдельно ломание и установка блоков.
  • entry и exit: по умолчанию действуют только на тех, кто не состоит в регионе.
  • greeting и farewell: сообщение при входе и выходе, greeting-title выводит титр.
  • fire-spread, lava-fire, leaf-decay, ice-melt: природные процессы.

Флаг можно ограничить группой региона: /rg flag mall pvp -g nonmembers deny. Доступны группы all, members, owners, nonmembers, nonowners. Если перекрываются два региона одного приоритета, deny всегда побеждает allow. Разработчики советуют не ставить защитные флаги ради полной защиты или снятия защиты: для этого есть участники и флаг passthrough.

Глобальный регион __global__

У каждого мира есть регион __global__ на всю карту с самым низким приоритетом. Он появляется, как только вы меняете его флаги. Так запрещают PvP во всём мире:

/rg flag __global__ pvp deny

Чтобы новички не могли строить в дикой местности, ставьте passthrough, а не build:

/rg flag __global__ passthrough deny

После этого строить можно только участникам глобального региона или внутри своих регионов. Флаг build deny на глобальном регионе ставить не надо: он сломает поршни во всём мире. Если после настройки никто не может строить, проверьте, что у __global__ нет build deny, passthrough deny по ошибке и лишних участников.

Пересечения, приоритеты и участки

Если регионы перекрываются, игрок должен быть участником всех регионов в этой точке. Поэтому магазин внутри спавна не заработает, пока не поднять ему приоритет:

/rg define pub
/rg setpriority pub 10

У всех регионов приоритет по умолчанию 0. При пересечении учитываются только регионы с наибольшим приоритетом, а значение флага берётся из самого приоритетного региона, где он задан.

Для участков удобно наследование. Дочерний регион получает флаги родителя, если не задал их сам, а также его участников и владельцев:

/rg define plot1
/rg setparent plot1 mall
/rg addowner plot1 Steve

Регион без физической области, только для общих флагов, создаётся с ключом -g: /rg define -g plot_template.

Почему WorldGuard не работает

  • Не работает ни одна команда. Плагин не запустился: проверьте ядро командой version, версию WorldEdit и WorldGuard, ошибки в logs/latest.log.
  • Игроки не могут строить без сообщения от плагина. Скорее всего это защита спавна Minecraft: в server.properties поставьте spawn-protection=0. Проверьте, что игрок не в режиме приключения.
  • Непонятно, какой плагин блокирует. /wg debug testbreak <игрок> и /wg debug testplace <игрок> симулируют действие и пишут, кто его запретил.
  • Защита не действует. У оператора или игрока со всеми правами есть обход worldguard.region.bypass.<мир>, проверяйте защиту с обычного аккаунта. Ещё причины: стоит build allow или passthrough allow, предмет из мода или другого плагина.
  • Не работают поршни. Уберите флаг build deny.
  • Какие регионы в этой точке? Кликните по блоку кожей (палочка региона, право worldguard.region.wand) и посмотрите /rg info.

Команды и права WorldGuard

КомандаЧто делаетПраво
/rg define <регион> [владельцы]создать регион из выделения WorldEditworldguard.region.define
/rg redefine <регион>перенести границы на новое выделениеworldguard.region.redefine.*
/rg remove <регион>удалить регионworldguard.region.remove.*
/rg claim <регион>игрок сам занимает участок в рамках лимитовworldguard.region.claim
/rg addmember <регион> <игроки>добавить участников, группа через g:worldguard.region.addmember.*
/rg addowner <регион> <игроки>добавить владельцевworldguard.region.addowner.*
/rg removemember <регион> <игроки>убрать участниковworldguard.region.removemember.*
/rg removeowner <регион> <игроки>убрать владельцевworldguard.region.removeowner.*
/rg flag <регион> <флаг> [значение]поставить или снять флагworldguard.region.flag.*
/rg flags <регион>все флаги региона с правкой кликомworldguard.region.info.*
/rg info [регион]владельцы, участники, флагиworldguard.region.info.*
/rg list [страница]список регионов мираworldguard.region.list
/rg setpriority <регион> <число>приоритет при пересеченииworldguard.region.setpriority.*
/rg setparent <регион> [родитель]назначить или снять родителяworldguard.region.setparent.*
/rg select <регион>выделить регион в WorldEditworldguard.region.select.*
/rg teleport <регион>телепорт в регионworldguard.region.teleport.*
/rg saveсохранить регионы сразуworldguard.region.save
/wg reloadперечитать конфиг и регионыworldguard.reload
/wg debug testbreak <игрок>узнать, какой плагин запрещает ломать блокиworldguard.debug.event

Частые вопросы про WorldGuard

Как создать регион в WorldGuard?
Возьмите //wand, выделите два угла левым и правым кликом, при необходимости растяните по высоте //expand vert и выполните /rg define <название>. Затем добавьте игроков: /rg addmember <название> <ник>.
Нужен ли WorldEdit для WorldGuard?
Да. WorldGuard не запустится без WorldEdit для Bukkit, а выделять регионы без него нечем. Версия WorldEdit должна подходить к вашей версии Minecraft.
Как запретить PvP в регионе WorldGuard?
Командой /rg flag <регион> pvp deny. Для всего мира: /rg flag __global__ pvp deny. Разрешить PvP на арене: /rg flag arena pvp allow.
Какой WorldGuard скачать для 1.21 и 1.21.11?
Для 1.21 и 1.21.1 версия 7.0.12, для 1.21.4 версия 7.0.13, для 1.21.5 до 1.21.8 версия 7.0.14, для 1.21.10 версия 7.0.15, для 1.21.11 версия 7.0.17. Для 1.16.5 нужна 7.0.5.
Работает ли WorldGuard на Paper?
Да, Paper и Spigot поддерживаются полностью, с 7.0.16 есть экспериментальная поддержка Folia. На Forge, Fabric и ванильном сервере WorldGuard не работает.
Как разрешить открывать двери в регионе WorldGuard?
Поставьте флаг use: /rg flag <регион> use allow. Для сундуков нужен отдельный флаг chest-access.
Почему WorldGuard не защищает регион?
Оператор и игрок со всеми правами обходят защиту, проверяйте с обычного аккаунта. Также проверьте, что на регионе не стоят build allow или passthrough allow.

Не хочется настраивать самому

WorldGuard уже стоит и настроен в готовых сборках Cloud Delight: права, меню, защита и донат собраны в одно целое. Скачали, запустили, играете.