ProtectionStones [Updated for 1.17] 2.9.0

The easiest grief prevention method that players will enjoy!

  1. EspiDev
    Tested Minecraft Versions:
    • 1.17
    Source Code:
    AxelDios (Original), Vik1395 (2015-2016), Dragoboss (2016-2017), Jerzean (2018), EspiDev (2018+)

    Get support for this plugin on the M.O.S.S. Discord!

    ProtectionStones only supports 1.17+! Please check below for versions for older versions of Minecraft.

    Ever needed an easy, yet powerful way to prevent grief, and protect a certain area?

    This plugin allows players to protect land using a block that they place down. It creates a WorldGuard region at a set radius (configurable) around where the block is placed. The plugin also allows players to add and remove people to the region, as well as set flags (defined in the config).

    • WorldGuard 7+
    • WorldEdit 7+
    • Vault (Optional)
    • PlaceholderAPI (Optional)
    • Spigot 1.13.2+
    Appreciate my work?
    Donations are appreciated! :)

    1.13 - 1.16 (NOT MAINTAINED):
    Use v2.8.5.

    1.8 - 1.12 (NOT MAINTAINED):
    I did port one version of ProtectionStones backwards, but I do not provide support or updates for this version:

    Make sure you first have the requirements listed above.

    Simply add the plugin to the plugins folder, and it will generate the default configuration.

    By default, no permissions are given to players, so you have to add them explicitly.

    Adding new blocks:
    To add new protection blocks, go into plugins/ProtectionStones/blocks, and copy and paste the default block1.toml file and rename it (ex. block2.toml). Then, you have to change the "type" and "alias" fields in the new block config, since there cannot be duplicates.

    Configuring flags:
    Flags allow for customization of region behaviour. ProtectionStones uses WorldGuard flags, meaning that WorldGuard is actually doing the protecting, not ProtectionStones. You can view the list of WorldGuard flags here.

    It is also possible to use other plugins that add flags to WorldGuard, such as WorldGuard Extra Flags and use them in ProtectionStones.

    Other Recommendations:
    WorldGuard by default prevents hoppers from going between regions. I recommend setting "ignore-hopper-item-move-events" in WorldGuard's config to true to fix this.

    If you want to protect against water and lava flow into regions, you can set "high-frequency-flags" and "protect-against-liquid-flow" to true in WorldGuard's config.

    View the WorldGuard config here.

    Default Config Files:
    View the default configuration here.

    View user contributed translations here.
    Contact me on the Discord, or file a GitHub issue if you would like to contribute your translation to the page! Thank you!

    Get a protection block with the /ps get command. Simply placing it down will create a protection region centered around the block. Breaking the block will remove the region.

    View the permission list here.
    View the recommended permissions to give for commands here.

    View the list of commands here.

    ProtectionStones has support for PlaceholderAPI! View them here.

    When I add a new block config, an error occurs!
    Read the error. Most likely you made a configuration mistake, you can read the TOML spec here, or ask me. Another known issue is that configs made in Notepad (Windows) cause issues with the plugin. Please use a better text editor (ex. Notepad++) for the time being, while I investigate ways to mitigate this.

    When I get the protection block from the creative inventory, it doesn't work (nothing happens when I place it)!
    Since v2.0.0, the config options "restrict-obtaining" is enabled by default. This restricts obtaining the protectionstones to just /ps get and /ps give (and plugins that use the API), since they attach NBT data to the block. That means that when the block is obtained through natural means, it won't work as a protection block. You can set "restrict-obtaining to false to negate this behaviour.

    How can I add protection blocks in a kit?
    Since v2.0.0, the config options "restrict-obtaining" is enabled by default. This restricts obtaining the protectionstones to just /ps get and /ps give (and plugins that use the API), since they attach NBT data to the block. You need to add a command (/ps give) to give the block to the player in the kit. For EssentialsX, check the kit section here.

    How can I sell protection blocks in a shop?
    There are many ways to sell protection blocks, with the easiest being setting a price on /ps get (requires Vault, configured in the block config). You can also use external plugins to sell the protection block, either through running a command (/ps give) or giving an item that was obtained through /ps get or /ps give. Known plugins to work are: ShopChest, ChestCommands.

    Why don't players see the region merge menu?
    Be sure to give players the protectionstones.merge permission.

    Why do some flags apply to members of the region as well? (ex. block-break deny)
    By default flags apply to everyone, including members of the region. You have to use region groups (using -g) to change this (ex. set the group to apply to only nonmembers). You can read about this here.

    How do I change the block type of a region after players have already created regions with it?
    You can use the command /ps admin changeblock [world] [fromblock] [toblock] to do this. Create a new config (block.toml file) in the blocks folder with the changed block type, while keeping the old one still loaded. Do /ps reload, and run the command to do the conversion. After it completes, you can remove the block config with the old type.

    Why does [x] flag not work?
    Flags are handled by WorldGuard, and some of their behaviours may not be what you expect. You can read more about WorldGuard flags here:

    How can I allow PS regions to overlap or be created inside manually created WorldGuard regions?
    You can use the concept of priorities in WorldGuard, and set the manually created WG region to a lower priority than the ProtectionStones regions.

    I found a bug! How do I get it fixed?
    Please file this issue on either GitHub, or post it on the discussion page.

    I want a new feature!
    Please file this issue on either GitHub, or post it on the discussion page. The feature may not be aligned with the goals of the plugin, so it might also be worth making another plugin that uses the developer API instead.

    Is there a developer API?
    Yes there is! It still is in a beta stage though right now, so methods are bound to change. You can see the wiki page here.



    Usage Statistics:


    This plugin is based off of the original ProtectionStones.

    Migrating from older versions of ProtectionStones (<2.x.x)
    The transition from older versions should be seamless, so just drag the plugin in to the plugins folder and enjoy! The plugin will automatically update your configs and regions.

    You can find the original plugin here:

    Graphics were made by Seshpenguin, thank you!
    IamSeverus, Emma94, Diclo and 9 others like this.

Recent Reviews

  1. Felix081203
    Version: 2.8.5
    The plugin is awesome, but there is a problem. I can`t set the minimum and maximum period of rent to 1d because it is getting bugged and I can`t use [/ps rent lease] with any period of time (1s, 1m, 1h, 1d, 1w,etc)
    1. EspiDev
      Author's Response
      thank you, please ask on the discord for support, I can't properly respond here
  2. Betob89
    Version: 2.8.5
    Muy buen plugin, podrias reparar el error del permiso para limitar minas que no funciona gracias!
    1. EspiDev
      Author's Response
      thanks, please go on the discord for support
  3. Luxor7u7
    Version: 2.8.5
    Excelente plugin! Me gusto mucho para mi servidor:) pero me gustaria saber si hay alguna manera de activar el pvp al momento de crear una proteccion para el servidor
    1. EspiDev
      Author's Response
      thank you! you can set the pvp flag for regions, but I'd recommend asking in the discord for a better response.
  4. AlexTheCannibal
    Version: 2.8.5
    Great Plugin.
    Makes for extremely simple claiming / claim managment and it works for 1.17 too!
    The only claim plugin I will ever need.
    Just one question / suggestion. Is there a way to broadcast in the console or log in console every time someone places a protection stone and the co ordinate? Sorry that I am asking question in reviews section.
    Keep supporting the plugin :)
    1. EspiDev
      Author's Response
      thanks! in the block config, there is an events section where you can run commands. I'd recommend asking in the discord though for a better response.
  5. juliocesar0102
    Version: 2.8.5
    very good plugin. I would like to know if there is a way to move directly by putting the / ps home command without having to click on the message that it sends you. Thank you.
    1. EspiDev
      Author's Response
      thank you! /ps home [id/name] works. I recommend though asking on the discord to get a better response
  6. SeanTheKiller
    Version: 2.8.5
    VERY good plugin, i love it and like the inspiration from grow topia thanks for making this keep it up
    1. EspiDev
      Author's Response
      thanks :3
  7. weedorpy
    Version: 2.8.5
    excelente plugin, lo uso desde que se abrió mi servidor, muy bueno para modificaciones de estilo factions o clanes.
    Tengo la traducción en español para el que quiera usar.
    1. EspiDev
      Author's Response
      thank you for creating a translation, I can add it to the translation page
  8. JugadorNuevo17
    Version: 2.8.5
    [00:11:44 INFO]: adriangmns issued server command: /ps reload
    [00:11:44 INFO]: [ProtectionStones] Protection Stone Blocks:
    [00:11:44 INFO]: [ProtectionStones] - IRON_ORE (Hierro)
    [00:11:44 INFO]: [ProtectionStones] - EMERALD_ORE (64)
    [00:11:44 ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing 'ps reload' in dev.espi.protectionstones.PSCommand(ps)
    at org.bukkit.command.SimpleCommandMap.dispatch( ~[patched.jar:git-PaperSpigot-"4c7641d"]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand( ~[patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand( [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.PlayerConnection.a( [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.PacketPlayInChat.a( [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.PacketPlayInChat.a( [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$ [patched.jar:git-PaperSpigot-"4c7641d"]
    at java.util.concurrent.Executors$ [?:1.8.0_282]
    at [?:1.8.0_282]
    at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.MinecraftServer.B( [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.DedicatedServer.B( [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.MinecraftServer.A( [patched.jar:git-PaperSpigot-"4c7641d"]
    at [patched.jar:git-PaperSpigot-"4c7641d"]
    at [?:1.8.0_282]
    Caused by: org.bukkit.plugin.IllegalPluginAccessException: Plugin attempted to register task while disabled
    at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.validate( ~[patched.jar:git-PaperSpigot-"4c7641d"]
    at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.runTaskTimerAsynchronously( ~[patched.jar:git-PaperSpigot-"4c7641d"]
    at dev.espi.protectionstones.PSEconomy.<init>( ~[?:?]
    at dev.espi.protectionstones.ProtectionStones.loadConfig( ~[?:?]
    at dev.espi.protectionstones.commands.ArgReload.executeArgument( ~[?:?]
    at dev.espi.protectionstones.PSCommand.execute( ~[?:?]
    at org.bukkit.command.SimpleCommandMap.dispatch( ~[patched.jar:git-PaperSpigot-"4c7641d"]
    ... 14 more
  9. GreenMasks
    Version: 2.8.4
    what can i say, this plugin is just amaziiing! keep on with the good work dude! i will always use this plugin for my servers, i'm a minecraft server owner since 2017, found your plugin on December 2018 and never switched to another!
    1. EspiDev
      Author's Response
      thank you :)
  10. Naive4901
    Version: 2.8.4
    1.17 is awesome! I hope it can be developed to run without other dependencies. Can the author find a Chinese translation, let the configuration file be Chinese
    1. EspiDev
      Author's Response
      If anyone contributes a Chinese translation I can add it to the wiki.