WorldGuard is a powerful plugin with a large bag of tricks for server owners, server map makers, regular survival servers, and everyone in between!

  • Create zones in your world that only permit mods or certain players from building within
  • Set additional game rules on your server (deny wither block damage, falling damage, etc.)
  • Set game rules on specific areas (food regen, health regen, disable PvP, TNT, control mob damage) in your world
  • Blacklist certain items and blocks so they can't be used
  • Dump useful statistics and information about your server (/wg report -p)
  • CPU profile your server (/wg profile -p)
  • Add useful commands like an immediate "STOP ALL FIRE SPREAD" command.
  • Works, more or less, with mods (other Bukkit plugins and FTB mods)
  • Protects against many types of grief (fire spread, tree growth, TNT cannons, piston machines, crop trampling, paintings and item frames, etc.), and certain interactions can also be allowed (door open, lever usage, etc.)
  • Well documented, and one of the oldest Minecraft projects (older than Bukkit!)
  • Open source
  • Enable only features you want! Everything is off by default. You can just install WorldGuard and configure it later.

Also, check out these plugins: CommandBook and CraftBook

How do I install WorldGuard?

  1. Download WorldEdit (required by WorldGuard) and extract the WorldEdit.jar file into your "plugins/" folder.
  2. Download WorldGuard and extract the WorldGuard.jar file into your "plugins/" folder.
  3. Run your server!

Where do I learn how to use WorldGuard?

To learn how to use WorldGuard, there are current two sources of documentation:

Where can I get my questions answered?

If you have a question:

Where can I report bugs or request features?

Visit our issue tracker.

Can I download WorldGuard source code?

Visit our GitHub repository. WorldGuard is licensed under LGPLv3 and you can compile it with Maven.


Check out my Minecraft server!

SK's Minecraft Server

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of DeFauw22 DeFauw22 Apr 09, 2013 at 01:55 UTC - 0 likes

    Hey, what is up with the MySQL schema? Using the one posted will create the tables fine, but running the update, which looks like it was posted the same day, causes SQL errors pretty much throughout the whole run. Can someone post a schema that they are currently using that works? I had mine where I worked out almost all of the issues but was still getting errors from plugins trying to interface with WG because the tables still aren't quite correct. Worked for a few days pretty well and I'm sure without SQL would work just fine but I really prefer using SQL for something like this that is constantly checking things.

  • Avatar of kludermor kludermor Apr 08, 2013 at 21:34 UTC - 0 likes

    Hi. I have followed the wiki and tutorials on setting up regions and regions within regions. But I still have some trouble. Can someone please help me?

    I have a big region as safezone. No monsterspawning but players are allowed to build. Within this region I have smaller areas. Some have the flag build:deny set for all and some are set so only owners and members can build.

    But I can not get worldguard to accept, when I set the group "builder" to be allowed to build in the safezone. I assume the group worldguard is refering to is the essentials GM.
    I have all players to join the GM builder group as default. Something is wrong
    Only if I add the individual player ass owner, they can build.

    type: poly2d
    min-y: 0
    max-y: 255
    - {z: -10, x: -509}
    more POINTS removed to safe space in this forum
    - {z: 34, x: -535}
    priority: 0
    flags: {pvp: deny, tnt: deny, use: allow, build-group: OWNERS, mob-spawning: deny}
    groups: [Builder]
    members: {}

    type: cuboid
    min: {x: -198.0, y: 63.0, z: 142.0}
    max: {x: -185.0, y: 88.0, z: 159.0}
    priority: 0
    flags: {chest-access: allow, build: deny}
    players: [kludermor]
    members: {}

    type: cuboid
    min: {x: -289.0, y: 61.0, z: 176.0}
    max: {x: -278.0, y: 83.0, z: 191.0}
    priority: 0
    flags: {chest-access: allow, build: deny}
    owners: {}
    members: {}

    Last edited Apr 08, 2013 by kludermor
  • Avatar of ViscousSummer88 ViscousSummer88 Apr 08, 2013 at 15:27 UTC - 0 likes

    @Sentaloc: Go This is an error with SQL connection, the server can't reach the SQL server.

    @optimus_Skillz: Go What 'flags' are you using? By default making a worldguard zone disables people being able to do all that you're saying.

    @Freelix2000: Go If you chose the 'Worldguard 5.7.3' you need to open that .zip and extract the 'WorldGuard.jar', that sounds like what you've got an issue with or just download this build:
    Personal Website:

  • Avatar of Julian90090 Julian90090 Apr 07, 2013 at 22:12 UTC - 0 likes

    These errors are spamming my console. I use Spigot.
    15:08:44 [SEVERE] Could not pass event EntityDamageByEntityEvent to WorldGuard v813-f67ad64
    at org.bukkit.plugin.RegisteredListener.callEvent(
    at org.bukkit.plugin.TimedRegisteredListener.callEvent(
    at org.bukkit.plugin.SimplePluginManager.fireEvent(
    at org.bukkit.plugin.SimplePluginManager.callEvent(
    at org.bukkit.craftbukkit.v1_5_R2.event.CraftEventFactory.callEvent(
    at org.bukkit.craftbukkit.v1_5_R2.event.CraftEventFactory.callEntityDamageEvent(
    at org.bukkit.craftbukkit.v1_5_R2.event.CraftEventFactory.handleEntityDamageEvent(
    at net.minecraft.server.v1_5_R2.EntityLiving.damageEntity(
    at net.minecraft.server.v1_5_R2.EntityHuman.damageEntity(
    at net.minecraft.server.v1_5_R2.EntityPlayer.damageEntity(
    at net.minecraft.server.v1_5_R2.EntityMonster.m(
    at net.minecraft.server.v1_5_R2.EntityMonster.a(
    at net.minecraft.server.v1_5_R2.EntitySpider.a(
    at net.minecraft.server.v1_5_R2.EntityLiving.c(
    at net.minecraft.server.v1_5_R2.EntityMonster.c(
    at net.minecraft.server.v1_5_R2.EntityLiving.l_(
    at net.minecraft.server.v1_5_R2.EntityMonster.l_(
    at net.minecraft.server.v1_5_R2.EntitySpider.l_(
    at net.minecraft.server.v1_5_R2.World.entityJoinedWorld(
    at net.minecraft.server.v1_5_R2.WorldServer.entityJoinedWorld(
    at net.minecraft.server.v1_5_R2.World.playerJoinedWorld(
    at net.minecraft.server.v1_5_R2.World.tickEntities(
    at net.minecraft.server.v1_5_R2.WorldServer.tickEntities(
    at net.minecraft.server.v1_5_R2.MinecraftServer.r(
    at net.minecraft.server.v1_5_R2.DedicatedServer.r(
    at net.minecraft.server.v1_5_R2.MinecraftServer.q(
    Caused by: java.lang.NoClassDefFoundError: org/bukkit/entity/MinecartTNT
    at com.sk89q.worldguard.bukkit.WorldGuardEntityListener.onEntityDamageByEntity(
    at com.sk89q.worldguard.bukkit.WorldGuardEntityListener.onEntityDamage(
    at sun.reflect.GeneratedMethodAccessor116.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(
    at java.lang.reflect.Method.invoke(
    ... 29 more

    Last edited Apr 07, 2013 by Julian90090

    WORLDCRAFT Survival Minecraft/Tekkit Server

  • Avatar of Freelix2000 Freelix2000 Apr 07, 2013 at 21:26 UTC - 0 likes

    I have WorldEdit, but the server is ignoring WorldGuard. It doesn't even show an error on console, it just ignores it.

  • Avatar of optimus_Skillz optimus_Skillz Apr 07, 2013 at 17:43 UTC - 0 likes

    Ok somehow people are bypassing denial to build and are destroying signs, doors, and redstone.

  • Avatar of Sentaloc Sentaloc Apr 07, 2013 at 14:13 UTC - 0 likes

    07.04 14:10:10 [Server] [Informatie] The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 07.04 14:10:10 [Server] [Informatie] com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 07.04 14:10:10 [Server] [Informatie] The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 07.04 14:10:10 [Server] [Informatie] at sun.reflect.GeneratedConstructorAccessor149.newInstance(Unknown Source) 07.04 14:10:10 [Server] [Informatie] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance( 07.04 14:10:10 [Server] [Informatie] at java.lang.reflect.Constructor.newInstance( 07.04 14:10:10 [Server] [Informatie] at com.mysql.jdbc.Util.handleNewInstance( 07.04 14:10:10 [Server] [Informatie] at com.mysql.jdbc.SQLError.createCommunicationsException( 07.04 14:10:10 [Server] [Informatie] at com.mysql.jdbc.MysqlIO.<init>( 07.04 14:10:10 [Server] [Informatie] at com.mysql.jdbc.ConnectionImpl.coreConnect( 07.04 14:10:10 [Server] [Informatie] at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly( 07.04 14:10:10 [Server] [Informatie] at com.mysql.jdbc.ConnectionImpl.createNewIO( 07.04 14:10:10 [Server] [Informatie] at com.mysql.jdbc.ConnectionImpl.<init>( 07.04 14:10:10 [Server] [Informatie] at com.mysql.jdbc.JDBC4Connection.<init>( 07.04 14:10:10 [Server] [Informatie] at sun.reflect.GeneratedConstructorAccessor146.newInstance(Unknown Source) 07.04 14:10:10 [Server] [Informatie] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance( 07.04 14:10:10 [Server] [Informatie] at java.lang.reflect.Constructor.newInstance( 07.04 14:10:10 [Server] [Informatie] at com.mysql.jdbc.Util.handleNewInstance( 07.04 14:10:10 [Server] [Informatie] at com.mysql.jdbc.ConnectionImpl.getInstance( 07.04 14:10:10 [Server] [Informatie] at com.mysql.jdbc.NonRegisteringDriver.connect( 07.04 14:10:10 [Server] [Informatie] at java.sql.DriverManager.getConnection( 07.04 14:10:10 [Server] [Informatie] at java.sql.DriverManager.getConnection( 07.04 14:10:10 [Server] [Informatie] at 07.04 14:10:10 [Server] [Informatie] at<init>( 07.04 14:10:10 [Server] [Informatie] at 07.04 14:10:10 [Server] [Informatie] at 07.04 14:10:13 [ServerBuilds] Skipped 146 lines due to rate limit (30/s)


  • Avatar of SerketSurfur SerketSurfur Apr 07, 2013 at 08:09 UTC - 0 likes

    i am having problems with the game-mode flag, when switching regions with the game-mode flag set to a different game-mode than the region that i was previously in my game-mode is still the same.


  • Avatar of dmncpham dmncpham Apr 07, 2013 at 03:12 UTC - 0 likes

    Hi, can you make it so that when you disable tnt explosions, it will still ignite other tnt?

  • Avatar of ViscousSummer88 ViscousSummer88 Apr 06, 2013 at 23:32 UTC - 0 likes

    @diskman2000: Go

    You cant do that with this..


Date created
Aug 25, 2011
Last update
Jan 21, 2015
Development stage
  • enUS
GNU General Public License version 3 (GPLv3)
Curse link
Recent files