Grief Prevention

Grief Prevention

AUTOMATICALLY PREVENTS ALL FORMS OF GRIEF, including build/break, theft, spam, fire, spawn camping, lava, treetopping and more, so you don't have to undo any damage after the fact. No configuration or database required! Stop responding to grief and prevent it instead. Grief Prevention will solve your grief problems without requiring you to manage a roster of trained administrators, juggle 10 different anti-grief plugins, take away cool standard game features, publish a training manual / tutorial for players, or add explanatory signs to your world. You can also choose to integrate PvP elements into build design to finally get a PvP experience befitting a sandbox game about creativity.

Grief Prevention stops grief before it starts automatically without any effort from administrators, and with very little (self service) effort from players. Solve all your grief problems with a single download, no database, and no configuration step.

http://dev.bukkit.org/media/images/76/965/gp_video.png

Official Servers (Try it for yourself!)

You can experience this plugin for yourself (as a player) by joining any of these public servers. :) We maintain these servers personally, which helps us catch bugs and spot opportunities for new features and improvements. Have fun!

Feature List

Yes, everything is customizable. See Setup and Configuration.

  • No database or world backups required.
  • Extremely efficient CPU / RAM usage.
  • Land claims are easy to manage.
    • New players get automatic claims around their first chests.
    • Players who ask for help in chat get an instant link to a demonstration video.
    • Resizing claims and creating new claims is done with ONLY the mouse, no slash commands.
    • When a player appears to be building something nice outside his claim, he's warned and shown his claim boundaries.
    • Claim boundaries are easy to see, and don't require any client-side mod installation.
    • Extremely easy-to-remember, single-parameter slash commands for giving other players permissions.
    • Claim subdivision and granular permissions are available to organize towns and cities. Watch this video.
  • It's IMPOSSIBLE to grief a land claim. Watch this video.
    • No building or breaking.
    • No stealing from ANY containers.
    • No using crafting equipment.
    • No sleeping in beds.
    • No button/lever usage.
    • No adjusting redstone repeaters.
    • No pushing blocks in with pistons.
    • No pulling blocks out with pistons.
    • No TNT damage.
    • No creeper damage.
    • No damage from TNT cannons.
    • No explosive damage from other plugins, like Extra Hard Mode or Magic Spells.
    • No enderman block changes.
    • All doors may be automatically locked (optional, see config file).
    • No killing or luring animals away.
    • No stealing water.
    • No trampling crops, by players, animals, or monsters.
    • No growing trees inside the claim by planting outside.
    • No building overtop, all claims reach to the max build height.
    • No placing or breaking paintings / item frames.
    • Fluids will not flow into a claim from outside.
  • Excellent anti-spam protection
    • Warns, then mutes, then may kick or bans (configurable) spammers.
    • Most spammers get only one message out before they're muted.
    • Almost no false positives.
    • Blocks server advertising.
    • Blocks repeat message spam.
    • Blocks ASCII art (ex. Nyan Cats) spam.
    • Blocks similar message spam.
    • Blocks unreadable (gibberish) message spam.
    • Blocks CAPS.
    • Blocks macro spam (very different messages in quick succession).
    • Blocks login/logout spam, even when the spammer has multiple accounts.
    • Blocks death spam.
    • Blocks slash command spam, including /tell, /emote, and any more you add.
  • Wilderness Protection and Rollback
    • Fire doesn't spread or destroy blocks.
    • Creepers and other explosions don't destroy blocks above sea level.
    • TNT doesn't destroy blocks above sea level.
    • Griefers can't dump water or lava above sea level, unless they claim the land first.
      • The fluid will not flow out of the claim.
      • Deleting the claim removes the fluid to prevent spillage.
    • No planting trees on platforms in the sky ("tree grief").
    • Instant, point and click nature restoration for not-claimed areas. Watch this video.
      • Insanely easy and fast fixes for penises, swastikas, and anything else unsightly.
      • Point at what you don't like and click, and it's fixed. Even from far away.
      • Never accidentally changes blocks inside land claims.
      • No need to investigate who built it, who broke it, or when they did it.
      • Doesn't matter if the griefer built with "natural" blocks, it will still be fixed.
      • No database.
      • No backups.
      • No chunk regeneration (it's dangerous for technical reasons).
      • Fixes bad chunk generations, like floating islands. It will be better than new.
      • Fills holes, even next to water to correct big spills.
      • Smooths noisy terrain.
      • No griefer construction is safe. If it's unnatural enough to be noticeable by players, it will be removed or filled-in.
  • Land claims can't be used as a griefing tool.
    • Land claims beyond the first require a golden shovel.
    • Minimum claim size prevents sprinkling small claims to annoy other players.
    • Max claim allowance grows with time played on the server, and can't be cheated by idling.
    • It's impossible to get a player "stuck" inside a land claim.
    • A simple administrative slash command will instantly remove all of a griefer's claims, no matter where they are.
  • Catches clever griefers.
    • Enhances the /ban command to ban ALL a griefer's accounts (not just his IP address).
    • Logs sign placements.
    • Optionally, logs whispers and opens them to administrative eavesdropping.
  • PvP Protections.
    • When PvP is off, no setting fire or dumping lava near other players.
    • Absolutely bullet-proof anti-spawn-camping protection, which requires no configuration.
    • No logging out, stashing items, or using plugin teleportation to escape combat.
    • Optional siege mode, to answer players who hide in their claimed houses to avoid combat.
  • Supports your server growth.
    • Permit players to exchange server currency for claim blocks (requires configuration and other plugins).
    • Grant claim blocks automatically for votes, donations, etc (console command provided, other plugins required).

The Manual

More Great Plugins!

  • Anti-XRay
    • Limits how quickly players can mine valuables, based on their play time / values mined ratio.
    • Keeps your valuables in the ground, so non-cheating players can find them (unlike ore loggers).
    • Practically free to run, unlike the tremendously expensive Orebfuscator.
    • Most legit players won't notice, but xrayers will ragequit and move on.
  • Population Density
    • Automatically assigns new players to wilderness where they'll find other new players and plenty of space, wood, and ore.
    • Optional teleportation system which can't be abused by players to escape combat or save them from being lost.
    • Login queue to guarantee fairness when the server is full.
    • Optional reserved spots for administrators.
    • Automatically removes idle players when the server is nearly full.
  • EnderHoppers
    • Allows the use of Hoppers with EnderChests inside a Claim
    • Items are taken from and added to the EnderChest inventory of the Claim owner
    • Supports The Better Ender Chest Plugin

Project Status and Future

From BigScary: I've re-joined the project. Yes, I know many of you had a very bad experience with the beta builds, there were many bugs. We've rolled-back the buggy features which were added after I left the project, and then I added necessary anti-grief features for new game elements (leashes, hoppers, mounts). I've also added UUID support.

Because all of the Bukkit staff have simultaneously quit the project, it's extremely unlikely that Bukkit will ever be updated to support Minecraft 1.8 or later servers. Also, there's a legal issue which resulted in all craftbukkit builds being removed from the internet in general. The law is slow, so that makes future bukkit versions even less likely.

Due to these circumstances, my current plan is to wait for a new mod platform to emerge (spongepowered.org is looking promising), then build a new grief prevention plugin for that new platform. Until then, Tux and I will perform the minimum maintenance needed for this project, which includes fixes for grief (including UUID support), bug report investigations, and bug fixes. Depending on how quickly the sponge platform gets ready to go, there may be time for me to slip in some minor tweaks here and there as well. There will be no major feature adds (like new config options or per world configs).

How to Upgrade to 8.0+ Builds

Starting with GriefPrevention 8.0.3, you can keep any claims and player data that was created by the broken "beta" builds. You just have to customize your config file again (a new config.yml will be generated in a folder named "GriefPreventionData").

Starting with GriefPrevention 8.1 which supports UUID (player name changes), GriefPrevention will do a one-time data update during boot. This can take a very long time - up to 1 second for each player who has ever played on your server. This is because GP has to contact Mojang via the interwebs to get the correct UUID for each player. At this time, it seems this process works well for offline mode and online mode servers, but not for the hybrid "Bungee Cord" configuration. For now, any BungeeCord servers should NOT update to 8.1 or later. Since Bukkit doesn't support that config, I'm not sure how GP can make it work - if anyone has specific information on how solve this problem, please share it.

Please read! I need your input/help.

I've decided it's time to make another pass at improving GP's overall performance. To do that, I need your help gathering performance measurements.

If you'd like to help out:

  1. Read your server docs/wiki to learn how to turn on timings and generate a timings report.
  2. Install the latest version of GriefPrevention (don't forget to reboot or /reload your server!).
  3. Allow your server to collect measurements for at least 24 hours.
  4. Generate a timings report.
  5. Share the report with me via comments or private message. Please tell me which type of server you're running and which version of GriefPrevention you have installed.

Gathering these measurements will help me understand where GP is spending most of its time, so I know where to focus performance improvement efforts.

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

  • Avatar of Bobcat00 Bobcat00 Oct 01, 2014 at 23:20 UTC - 0 likes

    @dutchrastacraft: Go

    Well, I'm jealous. We've had a survival server since March 2013, and we get a max of 8 players on at once. Most of the time, it's 0.

  • Avatar of bigscary bigscary Oct 01, 2014 at 22:31 UTC - 0 likes

    @dutchrastacraft: Go

    Any tips for server advertisement? I'm struggling to get players for my test server.

  • Avatar of dutchrastacraft dutchrastacraft Oct 01, 2014 at 21:18 UTC - 0 likes

    @bigscary: Go

    I will provide you with a full 24hour + report.

    The problem is I have a pretty big server, with tons of claims and tons of players. Over 110k players have joined my survival server only since april 2014... (based on essentials stats that were reset 1st of april) I have no idea where the pistons would be and it would be impossible to remove them or find them :/

  • Avatar of bigscary bigscary Oct 01, 2014 at 20:01 UTC - 0 likes

    @dutchrastacraft: Go

    Oh, I read misread your comment. That's an incredible improvement, I doubt I can attribute that to my recent minor changes - maybe something BC did in the beta versions killed the boot perf.

    Will definitely do something to address piston tracking expense this week. Thanks for the timings, I will look at them closely, but will you please provide me a report for a full 24-hour period? Both of these are for less than one hour, so they're not a fair assessment of GP's overall impact to your server.

    EDIT: Seriously, somebody's doing a bad thing with pistons. Try asking your players if anybody knows anything about a really big piston contraption. I will still take action to streamline GP's handling of pistons, but I don't think efficient code can completely solve a problem of this magnitude. Definitely some investigation on your part is warranted. If you find such a contraption, make sure it's inside a land claim. If it is (or if claiming the area around the thing doesn't solve your lag problem), then you may have to disable it to solve the problem. If it's not claimed, try claiming the area as admin and not giving anybody build permission. Then the builder might give himself away by asking why he can't change his build.

    Last edited Oct 01, 2014 by bigscary
  • Avatar of dutchrastacraft dutchrastacraft Oct 01, 2014 at 18:20 UTC - 0 likes

    @bigscary: Go

    Yes, they can still build in them. Offline AND online players. Just the claimblocks and bonusclaimblocks are not converted correctly.

    Also the startup went from 45 to 2 minutes, that's 77,5% improvement! Not 20% :D

    EDIT: First timings report (20 players online only): http://timings.aikar.co/?url=8474457

    EDIT 2: More urgent! Continuous lagg and laggspikes leads into this second timings report (after a /timings reset) http://timings.aikar.co/?url=8474550

    Information related to the timings report: Spigot version: 1627 Griefprevention version: 8.1.6

    PistonExtend and Retract :/

    Last edited Oct 01, 2014 by dutchrastacraft
  • Avatar of bigscary bigscary Oct 01, 2014 at 18:12 UTC - 0 likes

    8.1.6 Updates

    • Banned players will no longer send a leave message if banned while online. This is a spam fix for griefers who have many accounts to throw at a server. Of course the smart ban feature will catch them, but this tweak also ensures each account booted doesn't land a message in the chat on the way out.
    • Made fluid handling cheaper, one of the spammiest events this plugin has to monitor. Fluids may no longer flow out of claims even into adjacent claims where the source claim owner has permission to build in the destination claim. This slight reduction in functionality is a big win for performance.
    • Trees are now allowed to grow into claims from outside (for performance reasons), UNLESS you opt-into tree growth limiting in your config file (this is a new config option).
    • Claims no longer extend downward automatically for broken blocks (but still do for placed blocks). This is a performance saver that doesn't create any opening for griefers.

    @dutchrastacraft: Go

    20% improvement is pretty huge, that's good news. I still have another optimization in mind for DB mode, will try to get it in this week.

    Did you confirm that players still have access to their land claims after the boot? Meaning they can still build in them, etc?

    @jahangir13: Go

    I'm confused, now. Are you the GPDynmap dev or no? If not, please check with that project owner - changing the base plugin to make an extension work is backward.

    Last edited Oct 01, 2014 by bigscary
  • Avatar of dutchrastacraft dutchrastacraft Oct 01, 2014 at 18:06 UTC - 0 likes

    @bigscary: Go

    Convertion completed. I've found one problem: - Claimblocks aren't being converted to the new format. All players start with 100 accrued blocks. No problem tho since I ran another query to make sure everyone has 10k now.

    I updated to the latest 8.1.6 and I've had these messages on griefprevention boot. (So 2 minutes startup, which is 43 minutes faster than the beta builds.)

    [20:00:08] [Server thread/INFO]: [GriefPrevention] Enabling GriefPrevention v8.1.6 [20:00:08] [Server thread/INFO]: GriefPrevention: Grief Prevention boot start. [20:00:08] [Server thread/INFO]: GriefPrevention: Finished loading configuration. [20:02:37] [Server thread/INFO]: GriefPrevention: 15270 total claims loaded. [20:02:38] [Server thread/INFO]: GriefPrevention: Customizable messages loaded. [20:02:38] [Server thread/INFO]: GriefPrevention: Finished loading data (Database Mode). [20:02:38] [Server thread/INFO]: GriefPrevention: Boot finished.

  • Avatar of jahangir13 jahangir13 Oct 01, 2014 at 18:04 UTC - 1 like

    <<reply 2356890>>

    If you look here on my dynmap:
    http://crafttekk.de/dynmap/

    This is GP 7.6.2 on Tekkit Lite. In the middle of the map (the big Admin claim) there are several subclaims (created by a Moderator - normal user. So these show up red (as intended, I guess).

    In the new GP versions a normal big user claims shows up red...but any subclaim I create inside this claim shows up blue (as an Admin claim).

  • Avatar of bigscary bigscary Oct 01, 2014 at 17:32 UTC - 1 like

    @jahangir13: Go

    It could be that BC put that in, and I rolled back that change with the bugs. For now, adjust to "if has parent, call parent.isadminclaim()". I'll try to remember to check on that code for the next version.

    Last edited Oct 01, 2014 by bigscary
  • Avatar of jahangir13 jahangir13 Oct 01, 2014 at 17:13 UTC - 1 like

    <<reply 2356365>>

    Hi bigscary: maybe. But in previous versions it was always possible with claim.isadminClaim() to see if it's an admin claim. In these version I tried now (> 8) for an subclaim of a normal player on a normal user claim the function returns that it is an admin claim. That's what I am wondering. If I am the only one who has this issue then the problem may be on my side.

Facts

Date created
Dec 14, 2011
Categories
Last update
Oct 01, 2014
Development stage
Mature
License
GNU General Public License version 3 (GPLv3)
Curse link
Grief Prevention
Downloads
238,927
Recent files
  • R: 8.1.6 for CB 1.7.9-R0.2 Oct 01, 2014
  • R: 8.1.5 for CB 1.7.9-R0.2 Sep 30, 2014
  • R: 8.1.4 for CB 1.7.9-R0.2 Sep 28, 2014
  • R: 8.1.3 for CB 1.7.2-R0.3 Sep 25, 2014
  • R: 8.1.2 for CB 1.7.9-R0.2 Sep 24, 2014

Authors