WorldGuard Flags (Full List), Commands and Spawn Protection
All 103 WorldGuard 7.0.19 flags with their defaults, the /rg commands you'll use, and a step-by-step spawn protection setup that works for non-op builders.
Vanilla protects one square at spawn and nothing else. WorldGuard replaces that with named 3D regions you can draw anywhere, each with its own owners, members, flags and priority — a spawn nobody can touch, a shop district where each plot has a different owner, an arena where PvP is on and building is off, and a wilderness that is claim-only. What each region allows is set with WorldGuard flags, and this guide lists all 103 of them with their defaults.
It is also the plugin people most often misconfigure, because two of its ideas are counter-intuitive: a new region already protects itself without any flag being set, and the flag that looks like it turns protection on is the one you should never touch. Both are covered below.
This guide covers defining regions, a step-by-step spawn protection setup, membership, the complete flags list and region groups, priorities and inheritance, the __global__ region, player self-claiming, storage, and the diagnostic commands. It sits under Minecraft Grief Protection and Rollback, which is where to start if you are not sure whether you want protection, logging or backups.
What WorldGuard Needs
WorldGuard requires the Bukkit API and the Bukkit build of WorldEdit
WorldGuard runs on Paper, Spigot and Purpur. A vanilla server jar cannot load plugins at all, and Forge and Sponge are not supported — nor is Fabric, which is not a Bukkit implementation either. It also needs WorldEdit, and specifically the Bukkit version of it, because WorldEdit is what selects the area a region covers. Install both jars together; WorldGuard will not start without WorldEdit. Installation is covered in How to install plugins for Minecraft Java Edition, and WorldEdit itself in Minecraft WorldEdit: Selections, Brushes and Schematics.
As of 28 September 2026 the current release is WorldGuard 7.0.19, published 18 September 2026. It supports Minecraft 26.2 and 26.3 on Bukkit, Paper, Spigot and Folia, and it requires 26.2 or newer, so a server still on 26.1.x should stay on 7.0.18. Two things lag behind it: Paper's 26.3 builds are still marked alpha, and WorldEdit's stable 7.4.5 stops at 26.2, with 26.3 support only in the 7.4.6 betas. On a production server that means WorldGuard 7.0.19 with WorldEdit 7.4.5 on Paper 26.2 for now.
Creating Your First Region
Select the area with WorldEdit — //wand, left-click one corner, right-click the other, then //expand up and down to cover the full height of the build. Then:
/rg define spawn
/rg addmember spawn g:builders That is the whole thing. /region and /rg are the same command. Region IDs are case-insensitive and must be unique per world, so two worlds can each have a spawn.
A new region already prevents building
You do not set a flag to protect it. The moment
/rg defineruns, non-members cannot break or place blocks, open chests, or use doors inside it. Membership is what grants access back. This is the single most common misunderstanding, and it is the reason thebuildflag exists as a trap rather than a tool.
Prefix a name with g: to add a permission group instead of a player — g:builders refers to a LuckPerms group, covered in How to Set Up LuckPerms Permissions for Minecraft. You can also name owners at creation time: /rg define spawn sk89q g:builders.
Owners and members differ only in authority: both can build, owners can also manage the region if you have granted them the owner-level command permissions.
The commands you will actually use
| Command | What it does |
|---|---|
/rg define <id> [owners...] |
Create a region from your current WorldEdit selection |
/rg define -g <id> |
Create a region with no physical area — for templates |
/rg redefine <id> |
Re-shape an existing region to your current selection |
/rg remove [-u|-f] <id> |
Delete a region. With children, -u orphans them and -f deletes them |
/rg addmember <id> <names...> |
Add members |
/rg addowner <id> <names...> |
Add owners |
/rg removemember [-a] <id> <names...> |
Remove members. -a removes all |
/rg info [-s] [<id>] |
Show members, flags and priority. -s also selects it |
/rg select [<id>] |
Load a region's area into your WorldEdit selection |
/rg list [-p <player>] [-i <text>] |
List regions, filtered by owner or by ID text |
/rg flags <id> |
Interactive, clickable list of every flag and its value |
/rg setpriority <id> <n> |
Set priority — default 0 |
/rg setparent <id> [<parent>] |
Set or clear the parent region |
/rg teleport [-s] <id> |
Teleport to the region's teleport or spawn flag location |
Almost all of these work from the console; add -w <world> when it is ambiguous. Changes save automatically shortly after you make them — /rg save exists but is not normally needed.
Regions can be cuboids or 2D polygons with a height. Cylinders and spheres are not supported; WorldGuard will tell you so if you try.
How to Protect Spawn with WorldGuard
Spawn is the first region almost every server makes, and it is where the two systems collide: vanilla already protects a square around world spawn, and WorldGuard cannot override it. Do these five steps in order.
1. Turn off vanilla spawn protection
Vanilla's spawn-protection setting in server.properties defaults to 16, which protects a 33×33 square around world spawn in your main world. Inside it, only operators can build. If you define a WorldGuard region over that area, WorldGuard tells you so:
Warning! This region overlaps vanilla's spawn protection. WorldGuard cannot override this, and only server operators will be able to interact with this area. If your build team is not opped, and it should not be, they cannot touch spawn until you turn the vanilla feature off. Open server.properties in the File Manager, set spawn-protection=0, and restart the server. GSK's startup only rewrites the IP and port lines in that file, so the change survives restarts. All the other keys are covered in Minecraft server.properties: The Complete Reference.
2. Select the whole spawn area, top to bottom
Stand at spawn, run //wand, left-click one corner of the area and right-click the opposite corner. Then stretch the selection to the full world height, so nobody can tunnel in underneath or build a platform above:
//expand vert
//size //size confirms the dimensions before you commit. Selections are covered in Minecraft WorldEdit: Selections, Brushes and Schematics.
3. Define the region and add the people who build there
/rg define spawn
/rg addmember spawn g:builders
/rg addowner spawn g:admin From this moment non-members cannot break, place, open chests or use doors inside spawn. You have not set a single flag yet, and you do not need one for block protection.
4. Set the flags spawn usually needs
/rg flag spawn pvp deny
/rg flag spawn mob-spawning deny
/rg flag spawn creeper-explosion deny
/rg flag spawn enderman-grief deny
/rg flag spawn use allow
/rg flag spawn greeting-title Welcome to spawn
/rg flag spawn teleport here pvp denyis needed even though non-members already cannot hit each other in a region: unset,pvpfollows membership, so your builders could still fight.denyblocks it for everyone, and it also blocks a player outside spawn hitting someone inside.mob-spawning denystops mobs spawning inside, including from spawn eggs. Mobs can still walk in from outside, which is whycreeper-explosion denyis there too. To block only some mobs, usedeny-spawninstead.use allowlets everyone press buttons and open doors. Chests stay locked, because inventories arechest-access, a separate flag.teleport heresaves your current position, so/rg teleport spawn(or/rg tp spawn) lands people in the right place.
Leave build, block-break and block-place alone. Setting any of them overrides membership and locks out your own builders, as explained under the flags list below.
5. Test it as a normal player
Operators bypass region protection, so testing on your own op account shows nothing. Use a non-op alt, or ask a player, then run /rg info spawn to check members and flags. If something is still blocked or allowed unexpectedly, /wg debug testbreak <player> names the plugin responsible.
The Nether and the End need their own spawn regions
Regions are per-world, and vanilla spawn protection only ever applies to the main world. If players arrive in the Nether through a hub portal, define a region around it there too.
WorldGuard Flags
A flag changes one behaviour inside a region.
/rg flag town pvp deny
/rg flag town greeting Welcome to town! Omit the value to remove a flag: /rg flag town pvp. Use -e to set an explicitly empty value, which is how you silence a greeting inherited from a larger region. /rg flags <id> lists everything with its current and default value, and the output is clickable in game.
Flags come in types — state (allow/deny), string, integer, double, boolean, location and set. Most string flags accept \n for a newline and colour codes, plus replacements such as %name%, %world%, %online% and %health%.
The complete WorldGuard flags list
WorldGuard 7.0.19 has 103 flags. The tables below come from the plugin's own source code at the 7.0.19 release tag, grouped roughly as the official flags page groups them, with the default each flag falls back to when you have not set it. That default column is what the official page leaves out. Four flags, wind-charge-burst, breeze-charge-explosion, moisture-change and lava-harden, exist in the plugin but are not on the official page yet.
How to read the Default column:
- allow: the thing happens unless a region denies it.
- members only: while the flag is unset, WorldGuard falls back to membership. Members of the region can do it and non-members cannot. Outside every region, everyone can. Set
allowto open it to everyone, ordenyto block everyone, members and pistons included. - unset: the flag does nothing until you give it a value.
- ‡ needs
high-frequency-flagsenabled in the config. † needsuse-player-move-event, which is on by default. See the warning after the tables.
Overrides
| Flag | Type | Default | What it controls |
|---|---|---|---|
passthrough |
state | unset (region protects) | allow makes the region stop protecting its area. __global__ is implicitly allow |
nonplayer-protection-domains |
set of strings | unset | Regions sharing a domain name let pistons and other non-player machines act across their shared border |
Protection
| Flag | Type | Default | What it controls |
|---|---|---|---|
build |
state | members only | Every protection check at once. Do not set it: use membership, or passthrough |
interact |
state | members only | Using blocks and entities: doors, levers, mounting and similar |
block-break |
state | members only | Breaking blocks |
block-place |
state | members only | Placing blocks |
use |
state | members only | Doors, levers, buttons and pressure plates, but not inventories |
chest-access |
state | members only | Opening chests, furnaces and other inventories |
damage-animals |
state | members only | Players hurting passive animals |
ride |
state | members only | Mounting vehicles and animals |
pvp |
state | members only | Player-versus-player damage. deny applies if the attacker or the victim is inside the region, and ops cannot bypass it |
sleep |
state | members only | Sleeping in beds |
respawn-anchors |
state | members only | Activating respawn anchors |
tnt |
state | members only | TNT detonation and TNT block damage |
lighter |
state | members only | Flint and steel and fire charges |
vehicle-place |
state | members only | Placing boats and minecarts |
vehicle-destroy |
state | members only | Breaking boats and minecarts |
block-trampling |
state | members only | Trampling farmland and turtle or sniffer eggs |
frosted-ice-form |
state | members only | Frost Walker boots forming ice |
item-frame-rotation |
state | members only | Rotating the item in an item frame |
firework-damage |
state | members only | Fireworks damaging entities |
potion-splash |
state | members only | Splash potions applying their effects |
use-anvil |
state | members only | Using anvils |
use-dripleaf |
state | members only | Using dripleaf |
wind-charge-burst |
state | members only | Player-thrown wind charge bursts and their knockback. Not on the official flags page |
Mobs, fire and explosions
| Flag | Type | Default | What it controls |
|---|---|---|---|
creeper-explosion |
state | allow | Creeper explosions doing damage |
other-explosion |
state | allow | Any other explosion doing damage |
ghast-fireball |
state | allow | Ghast fireballs and wither skulls doing damage |
wither-damage |
state | allow | Wither body explosions doing damage |
enderdragon-block-damage |
state | allow | The ender dragon destroying blocks |
breeze-charge-explosion |
state | allow | Breeze wind charges and their knockback. Not on the official flags page |
enderman-grief |
state | allow | Endermen picking up and placing blocks |
ravager-grief |
state | allow | Ravagers breaking blocks |
snowman-trails |
state | allow | Snow golems leaving snow behind them |
entity-painting-destroy |
state | allow | Non-player entities destroying paintings |
entity-item-frame-destroy |
state | allow | Non-player entities destroying item frames |
mob-damage |
state | allow | Mobs hurting players |
mob-spawning |
state | allow | Mob spawning, including spawn eggs and commands |
deny-spawn |
set of entity types | unset | Specific mobs that may not spawn: /rg flag spawn deny-spawn cow,pig |
fire-spread |
state | allow ‡ | Fire spreading |
Natural events
| Flag | Type | Default | What it controls |
|---|---|---|---|
lava-fire |
state | allow ‡ | Lava starting fires |
water-flow |
state | allow ‡ | Water flowing |
lava-flow |
state | allow ‡ | Lava flowing |
lightning |
state | allow | Lightning strikes |
snow-fall |
state | allow | Snow layers forming on the ground |
snow-melt |
state | allow | Snow melting |
ice-form |
state | allow | Ice forming |
ice-melt |
state | allow | Ice melting |
frosted-ice-melt |
state | allow | Frosted ice melting |
leaf-decay |
state | allow | Leaves decaying |
grass-growth |
state | allow | Grass spreading |
mycelium-spread |
state | allow | Mycelium spreading |
mushroom-growth |
state | allow | Mushrooms growing |
vine-growth |
state | allow | Vines and kelp growing |
rock-growth |
state | allow | Dripstone and similar growing |
sculk-growth |
state | allow | Sculk and sculk veins spreading |
crop-growth |
state | allow | Wheat, potatoes, melons and other crops growing |
soil-dry |
state | allow | Farmland drying out |
moisture-change |
state | allow | Farmland moisture level changing. Not on the official flags page |
coral-fade |
state | allow | Coral dying out of water |
copper-fade |
state | allow | Copper oxidising |
lava-harden |
state | allow | Lava turning into cobblestone, stone, obsidian or basalt (added in 7.0.18). Not on the official flags page |
Movement and messages
| Flag | Type | Default | What it controls |
|---|---|---|---|
entry |
state | allow (non-members) | deny keeps non-members out. Applies to non-members unless you pass -g |
exit |
state | allow (non-members) | deny keeps non-members in |
exit-via-teleport |
state | allow | Whether a player denied exit may still teleport out |
exit-override |
boolean | unset | true always lets players leave |
entry-deny-message |
string | "You are not permitted to enter this area." | Message when entry is denied |
exit-deny-message |
string | "You are not permitted to leave this area." | Message when exit is denied |
greeting |
string | unset † | Chat message on entering |
farewell |
string | unset † | Chat message on leaving |
greeting-title |
string | unset | Title on entering. \n adds a subtitle |
farewell-title |
string | unset | Title on leaving. \n adds a subtitle |
notify-enter |
boolean | unset | Tell holders of worldguard.notify when someone enters |
notify-leave |
boolean | unset | Tell holders of worldguard.notify when someone leaves |
enderpearl |
state | allow | Ender pearl teleports |
chorus-fruit-teleport |
state | allow | Chorus fruit teleports |
teleport |
location | unset | Where /rg teleport <id> sends you. /rg flag <id> teleport here sets it to your position |
spawn |
location | unset (members) | Respawn point for members who die inside the region |
teleport-message |
string | "Teleported you to the region '%id%'." | Message after /rg teleport |
Players and map making
| Flag | Type | Default | What it controls |
|---|---|---|---|
invincible |
state | off | allow makes players take no damage |
fall-damage |
state | allow | Fall damage |
natural-health-regen |
state | allow | Natural health regeneration (from a full hunger bar, or on peaceful) |
natural-hunger-drain |
state | allow | Hunger draining |
heal-delay |
integer | unset † | Seconds between heals. 0 disables |
heal-amount |
integer | unset † | Half-hearts healed every heal-delay seconds. Negative values hurt |
heal-min-health |
double | unset † | Floor that negative heal-amount will not push health below |
heal-max-health |
double | unset † | Cap that healing will not go above |
feed-delay |
integer | unset † | As heal-delay, for hunger |
feed-amount |
integer | unset † | As heal-amount, for hunger |
feed-min-hunger |
integer | unset † | As heal-min-health, for hunger |
feed-max-hunger |
integer | unset † | As heal-max-health, for hunger |
game-mode |
game mode | unset | Force survival, creative or adventure inside |
time-lock |
string | unset | Client-side time in ticks, 0 to 24000. Prefix + or - for time relative to the world |
weather-lock |
weather | unset | Client-side rain or clear. Does not change world mechanics |
item-pickup |
state | allow | Picking up items. Allowed by default on purpose |
item-drop |
state | allow | Dropping items. Allowed by default on purpose |
exp-drops |
state | allow | XP orbs dropping |
deny-message |
string | "Hey! Sorry, but you can't %what% here." | Message when an action is blocked |
Chat, commands and pistons
| Flag | Type | Default | What it controls |
|---|---|---|---|
send-chat |
state | allow | Sending chat from inside |
receive-chat |
state | allow | Receiving chat while inside |
blocked-cmds |
set of strings | unset | Commands blocked inside: /rg flag spawn blocked-cmds /tp,/teleport |
allowed-cmds |
set of strings | unset | Command whitelist: everything not listed is blocked |
pistons |
state | allow | Pistons working |
fire-spread,water-flow,lava-flowandlava-fireneed a config optionThese four (marked ‡ above) are high-frequency events and do nothing until you set
high-frequency-flags: trueunderregions:inplugins/WorldGuard/config.ymland restart. It is off by default because of the extra region lookups. The flags marked † (greeting,farewell, healing and feeding) needuse-player-move-event, which is on by default. Leave it on.
Region groups
A flag can be scoped to a category of player with -g:
/rg flag mall pvp -g nonmembers deny The five groups are all, members, owners, nonmembers and nonowners. They describe membership of the region and have nothing to do with permission groups.
You cannot set the same flag to different values for different groups on one region — if you need that, make two regions. Two defaults are worth remembering: entry and exit already default to non-members, so /rg flag vault entry deny keeps non-members out without any -g, and the spawn location flag defaults to members.
Never use the
buildflag to protect or unprotect a regionThis is WorldGuard's own strongest advice.
buildis set implicitly by membership, and setting it by hand overrides other regions in ways that are very hard to reason about. Worse,build denystops members building too — and it breaks pistons, because WorldGuard treats a piston as a member of whatever region it sits in, exactly like a player. To let people build, add them as members. To make a region stop protecting its area, usepassthrough. The same warning applies to the other protection flags: settingblock-break denystops pistons breaking blocks as well as players.
When a flag seems to do nothing
Work through these in order. The first one explains most "WorldGuard flags not working" reports.
- You are testing as an operator. Ops, and anyone holding
*, implicitly haveworldguard.region.bypass.<world>, so protection looks broken to them. The one exception ispvp deny, which even bypass does not skip. Test with a non-op account. - The flag needs a config option. The four ‡ flags need
high-frequency-flags. The † flags needuse-player-move-event. - Another region wins. Where regions overlap, the highest-priority region that sets the flag decides. At equal priority, a
denybeats anallow./rg infoat the spot, or/rg flags <id>, shows which values are set and which are inherited. - It was set with a region group. A flag set with
-g nonmembersdoes nothing to members. Remember thatentryandexitdefault to non-members. - It is set on
__global__with-g nonmembers. This does not work the way it looks. See the global region section below. - It is a location flag set from the console.
teleportandspawnread the position of the player running the command, so set them in game.
Priorities, Inheritance and Overlap
Regions may overlap, and by default a player must be allowed to build in every region they are standing in. That is safe but rigid; priorities and parents are how you get out of it.
Priority
Every region starts at priority 0. Higher wins.
/rg define pub
/rg setpriority pub 10
/rg addmember pub g:pubstaff Where regions overlap, only the highest-priority regions are considered for membership and building, and for any given flag the highest-priority region that defines it wins. Without the priority above, a pub member would also need to be a spawn member to build.
If two regions at the same priority disagree on a state flag, deny wins over allow. For non-state flags — two different greeting messages at the same priority, say — the result is undefined. Do not do that.
Parents
A region can have at most one parent, set with /rg setparent <child> <parent>. A child inherits the parent's members and owners, and inherits the parent's flags for any flag the child has not set itself. WorldGuard refuses circular inheritance.
/rg define mall
/rg define -g shop_template
/rg define shop1
/rg setparent shop_template mall
/rg setparent shop1 shop_template /rg define -g creates a region with no physical area. That is the template pattern: the template exists only to hold flags and members that every plot should inherit, and each plot points at it. Deny use across the mall's public areas and allow it back on the template, and every shop gets working doors without touching each one.
Inheritance only works properly when children are at the same or higher priority than their parent — a higher-priority parent overrides its own children.
Overlapping regions and
-g nonmembersare subtler than they lookWhen a flag is set with a region group, the player must be a member of the region the flag is set on, or of one of that region's child regions. If spawn has
pvp -g nonmembers denyand no members, then a member of an overlapping market region is still a "non-member" as far as spawn is concerned, and PvP is denied for them. Parenting the market to spawn fixes it.
The __global__ Region
Every world has an implicit region called __global__. It covers the whole world, sits at the lowest possible priority, and does not exist until you refer to it.
/rg flag __global__ passthrough deny passthrough is short for "passthrough build permissions" and has nothing to do with movement. Unlike a normal region, __global__ has passthrough implicitly set to allow, which is why unclaimed wilderness is open ground by default. Set it to deny and the global region starts behaving like any other region — building requires membership, and since it covers everything, the whole world becomes claim-only, with normal regions above it granting access where you want it. That one command turns a free-for-all map into a claims map.
Adding an owner or member to __global__ sets passthrough to deny implicitly, for legacy reasons. Setting build on it is strongly discouraged and will break every piston not inside another region.
Two things __global__ is bad at:
-g nonmembersdoes not do what you expect on it. Regions do not inherit from the global region, so "non-members of__global__" includes the members of every plot you have made. Use a template region and parent your plots to it instead.- It is per-world. Setting it in the overworld does nothing for the Nether or a creative world. Run it again with
-w, or from inside each world.
The same page of WorldGuard's docs gives the two most common global settings for a survival server:
/rg flag __global__ use allow
/rg flag __global__ ride allow Be aware the second one also lets players take horses out of other people's regions.
What Protection Actually Covers
WorldGuard's protection is broad, and knowing the list saves you from setting flags you do not need. Out of the box, inside a region, non-members cannot: break or place blocks; open chests or furnaces; fire TNT or gravel cannons in from outside; grief with tree growth from outside; push or pull blocks with pistons across the boundary; exploit sign changes; trample crops; damage or steal minecarts and boats; destroy paintings and item frames; use doors, buttons, plates and levers; leash, tame or shear animals; or land unauthorised splash potions and projectiles.
Water and lava flow protection exists but is off by default. Item drops, item pickups and XP drops are deliberately allowed for non-members; the item-drop, item-pickup and exp-drops flags change that.
The mechanism behind all of this is worth understanding: WorldGuard treats blocks and entities as members of whatever region they are physically inside. A piston inside a region is a member and works normally; a piston outside pushing in is a non-member and is blocked. That is also why build deny breaks pistons — it revokes membership from everything, including them.
Mod-added blocks get best-effort protection, mostly by blocking clicks on unknown blocks. Blocks that open a client-side GUI cannot be protected, because they bypass the events WorldGuard listens to.
Letting Players Claim Their Own Land
/rg claim <id> is a rudimentary self-serve claim system: the player selects an area with WorldEdit and claims it, becoming its owner automatically. Access comes from the worldguard.region.claim permission, and the player only needs worldedit.selection on the WorldEdit side.
Four rules apply unless the player has worldguard.region.unlimited:
- They cannot exceed the maximum region count set in the config
- The claim volume cannot exceed
regions.max-claim-volume - The claim cannot overwrite an existing region of the same name
- The claim cannot overlap a region they do not already own
If regions.claim-only-inside-existing-regions is enabled, claims must overlap a region the player already owns. Polygonal regions are not fully supported by claiming.
For a server built entirely around player claims, most owners reach for GriefPrevention instead — it has been the self-service anti-griefing plugin since 2011 and needs no WorldEdit selection at all. WorldGuard's claiming is best treated as a bolt-on for a server that already runs regions.
Storage
Region data lives in YAML by default, at plugins/WorldGuard/worlds/<world>/regions.yml. That file can be edited while the server is running and reloaded with /rg load. It is plain YAML — each region records its bounds, type, priority, members, owners and flags, with player UUIDs rather than names.
MySQL storage exists and WorldGuard recommends against it. Its own documentation says SQL region storage has major issues, tells anyone using it to migrate back with /rg migratedb mysql yaml, and states that SQL support will be removed in a future version. No other SQL database is supported at all. Use YAML.
When WorldGuard saves, it writes the new data to regions.yml.tmp, deletes regions.yml, then renames the temporary file into place. If the rename fails, the console logs Failed to rename temporary regions file and your latest regions are in regions.yml.tmp. Stop the server, rename that file to regions.yml in the File Manager, and start it again.
Two migrations are worth knowing about. /rg migrateuuid converts old name-based region data to UUIDs. /rg migrateheights extends regions that were defined at the pre-1.18 world limits (y 0 to 255) out to the modern world height — useful if you are bringing an old map forward, and covered alongside the rest of world handling in Minecraft World Management. Both pause the entire server while they run, so take a backup and pick a quiet moment.
Diagnostics
| Command | What it does |
|---|---|
/rg bypass |
Toggle your own protection bypass — note it does not bypass pvp deny |
/wg debug testbreak <player> |
Simulate a block break and report which plugin blocked it |
/wg debug testplace <player> |
The same for block placement |
/wg debug testinteract <player> |
The same for interacting with a block |
/wg debug testdamage -t <player> |
Simulate a damage event — how to work out why PvP seems blocked |
/wg flushstates [<player>] |
Clear cached movement state when a player is stuck by entry or exit |
/wg report [-p] |
Write a support report to plugins/WorldGuard/report.txt |
/wg running |
List WorldGuard's background tasks |
/stopfire [<world>] |
Emergency: stop all fire spread. /allowfire lifts it |
/wg debug testbreak is the one to reach for when a player insists they cannot build and you cannot see why. It runs a fake block break and lists the plugins that objected, most recent first — only the first entry matters, because a later plugin that unblocks an already-blocked action has no effect. Point the crosshair at the block yourself, or add -t to use the target player's crosshair instead.
Do not use WorldGuard's chest protection
WorldGuard has an old sign-based
[Lock]chest protection feature. Its own documentation recommends against it for new setups, notes that it does not support UUIDs — so players lose access to their own chests after a name change — and states that it will be removed in a future version. Use regions for area ownership, and a dedicated single-block plugin such as LWC Extended if you need per-chest locks. That is what WorldGuard's docs point you at.
Common Issues
- WorldGuard will not load. WorldEdit is missing, is the wrong build, or the server is not a Bukkit implementation.
- A region does not protect anything. You are testing as an operator, and ops bypass region protection. Test with a non-op account. Otherwise its
passthroughflag isallow, or a higher-priority overlapping region is overriding it./rg infoand/rg flagsshow both. - "This region overlaps vanilla's spawn protection". Vanilla spawn protection is still on, so only ops can build there whatever WorldGuard says. Set
spawn-protection=0inserver.properties, as in the spawn walkthrough above. - Members cannot build in their own region. They are standing in an overlapping region they are not a member of — a player must be permitted in all of them unless priorities say otherwise. Or
buildhas been set todeny, which blocks members too. - Pistons stopped working. The
buildorblock-breakflag has been set todenysomewhere, most likely on__global__. Unset it with/rg flag __global__ build. - Creepers still blow holes.
creeper-explosioncovers one region; the vanillamob_griefinggame rule covers the whole world. Pick the scope you want — see Minecraft Grief Protection and Rollback. - The greeting message never appears. The "use player move event" option is disabled, or an overlapping region carries the same greeting so no change is detected on crossing.
- A flag set on
__global__with-g nonmembersdoes nothing useful. Expected. Use a template region. - Protection works in the overworld but not the Nether.
__global__is per-world. So is every region ID.
FAQ
Do I still need CoreProtect if I have WorldGuard?
Yes, and CoreProtect is the higher priority of the two. WorldGuard stops damage inside the areas you have drawn; it does nothing about the rest of the map, and it cannot tell you who did what or undo it. See CoreProtect: Logging, Lookups and Rollbacks.
Does WorldGuard work on Fabric, Forge or Sponge?
No. It needs the Bukkit API — Paper, Spigot or Purpur. Forge and Sponge are explicitly unsupported, and Fabric is not a Bukkit implementation either. WorldEdit does run on all of them, so a modded server can have the editing without the protection.
How many flags does WorldGuard have?
103 in version 7.0.19, all listed above. /rg flags <id> shows every one in game, including flags added by other plugins such as WorldGuard Extra Flags, which are not part of WorldGuard itself.
How do I protect the whole map, not just spawn?
/rg flag __global__ passthrough deny, run once per world. Then define regions where people are allowed to build.
Can I stop a specific command inside a region?
Yes: /rg flag spawn blocked-cmds /tp,/teleport. allowed-cmds does the inverse and blocks everything else. Note that WorldGuard only sees commands handled on its own server — a proxy that intercepts commands is outside its reach.
How do I make a mining world where players may dig but not build?
/rg flag mining_area block-break allow on a region that otherwise protects the area. A Minecraft prison server uses the same pattern: one protective region over the world, with break allowed inside each mine.
Can I limit a flag to certain block types?
Not per region. Whole-world control over which blocks may be broken is a job for WorldGuard's blacklist, which is a separate feature from regions.
What to Read Next
- Minecraft Grief Protection and Rollback for how protection, logging and backups fit together
- Minecraft WorldEdit: Selections, Brushes and Schematics for the selections every region is built from
- How to Start a Minecraft Factions Server — WorldGuard for the safezone and warzone only, with the Factions plugin owning every other claim
- CoreProtect: Logging, Lookups and Rollbacks for finding out who did it and undoing it
- How to Set Up LuckPerms Permissions for Minecraft for the
g:groups used in/rg addmember - How to Start a Minecraft SkyBlock Server — why WorldGuard belongs on the hub world and not on the island world
- How to install plugins for Minecraft Java Edition for installing WorldGuard and WorldEdit together
- Minecraft Whitelist and Ban Management for keeping the griefer off the server in the first place
- Multiverse: Running Several Worlds on One Minecraft Server — remember that regions and
__global__are per-world
Primary sources used for this guide (checked 19 August 2026; versions, flags list and spawn protection re-checked 28 September 2026 against the WorldGuard 7.0.19 source, including Flags.java, and the server.properties reference on the Minecraft Wiki): the official WorldGuard documentation — installation, regions quick start, region flags, priority and inheritance, the global region, region commands, claiming, storage drivers, what's protected, common scenarios, the command reference and the chest protection notice; and the WorldGuard project on Modrinth for the current version and supported Minecraft versions.
- Minecraft circle generator — block-accurate circles and ellipses, for the builds you are about to protect
- How to Build a Circle in Minecraft — laying out a round region before you protect it
Made with 💜 by GameServerKings

Need a Minecraft server?
Deploy an instantly-provisioned Minecraft server on high-clock hardware — DDoS protected, no contracts, cancel anytime.
From $4.80 /month