Grief Prevention
AUTOMATICALLY PREVENTS ALL FORMS OF GRIEF, including build/break, theft, spam, fire, spawn camping, lava dumping, chat trolling, advertising and more, so you don't have to undo any damage after the fact. It even teaches players how to use it so you don't have to! 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 creative building.
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.
Got a question or found some random bug? Check the documentation!
Got a problem or bug you can reliably reproduce? Or a feature request? Report it on the issue tracker!
Also, you might be able to catch me/others on the #GriefPrevention IRC channel for help (please state your question and exercise patience if you use this option).
Downloads for older Minecraft Versions
You may also view recent update notes on Github
The Manual
Feature List
Yes, everything is customizable.
- No database or world backups required.
- Extremely efficient CPU / RAM usage.
- Land claims are easy to manage.
- Players create and manage their own land claims, so you don't have to do it for them.
- New players get automatic claims around their first chests so they're protected even if they don't know how to create land claims yet.
- 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 (slash commands are also available).
- 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 sleeping in beds.
- No button/lever usage.
- No adjusting redstone repeaters or other configurable blocks.
- No pushing blocks in with pistons.
- No pulling blocks out with pistons.
- No TNT damage (including cannons).
- No creeper damage.
- No explosive damage from other plugins, like Extra Hard Mode or Magic Spells.
- No enderman/silverfish block changes.
- All doors may be automatically locked (optional, see config file).
- No killing or luring animals away.
- No stealing water (e.g. buckets).
- No trampling crops by players, animals, or monsters.
- No building overtop, all claims reach to the max build height.
- No placing or breaking paintings / item frames / armor stands, etc.
- Fluids will not flow into a claim from outside.
- No placing blocks via TNT/Sand/Gravel cannon.
- Pets and death loot are protected.
- Players can't pick up what another player dropped on death without permission.
- All types of pets are protected everywhere, even outside of land claims (can be configured per-world).
- Excellent anti-spam protection
- Warns, then mutes, then may kick or ban spammers (configurable - you choose).
- Most spammers get only one message out before they're muted.
- Blocks server advertising (IP addresses).
- 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 bot team 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.
- 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.
- It's impossible to get a player "stuck" inside a land claim.
- 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.
- 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.
- /SoftMute command to shut down chat trolls without them knowing they're beaten.
- Abridged chat logs make reviewing what happened while you were away super-quick and easy.
- Automatically mutes new-to-server players who use racial or homophobic slurs.
- PvP Protections.
- When PvP is off, no setting fire or dumping lava near other players.
- Absolutely bullet-proof anti-spawn-camping protection including bed respawns, 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).
Please Vote for Grief Prevention
I've also posted Grief Prevention on the Spigot site, where plugins are ranked based on reviews. If you love GP, please take a couple of minutes to give GP your rating and leave a short review. Better rating and positive reviews will help server owners who look for plugins on the Spigot site make the safe choice (GP) instead of downloading something sketchy or incomplete. :) Thanks so much for all your support!
http://www.spigotmc.org/resources/griefprevention.1884/
Got a question or found some random bug? Check the documentation!
Got a problem or bug you can reliably reproduce? Or a feature request? Report it on the issue tracker!
Also, you might be able to catch me/others on the #GriefPrevention IRC chat channel for help (please state your question and exercise patience if you use this option).
-
View User Profile
-
Send Message
Posted Nov 4, 2013@BC_Programming
Lol BC, if you have trouble resisting the urge to keep adding new ideas you think of, then you might try another approach in the future. On my projects, I decide what features (including tickets) will be added to a build before I start on the build. The upside is you always know what is coming, what needs to be done and what needs to be documented, it also keeps your ETA's (whether internal or made public) more succinct and accurate. The downside is that any feature requested today will be guaranteed to not be in the next release build, no matter how awesome it might be. Of course bugs are fixed as fast as I can eliminate them and don't follow this rule.
@BC_Programming
-
View User Profile
-
Send Message
Posted Nov 4, 2013@Roenie82
The idea was to finish this BlockOverrides capability and integrate the trashblocks into an override rule instead of a set of kind of weird options, make the permissions more consistent (eg. no doubles, change defaults), and that was it, at least code-wise. I wasn't expecting the Block Overrides to take this long but they've been giving me trouble. Heck I'm working on it right now and it's 4AM and I have to work tomorrow :P
Once that's done hopefully I can build a version and upload it to the project page, at least as a Beta, and then while that is under review for approval try to update the appropriate documentation before it is approved.
You are entirely right. I wanted to "feature freeze" right after I made world configs... then I got the idea for Rules... then I got more ideas for new rules... etc etc. Problem is that a lot of comments make light of issues that could be fixed or awesome feature ideas. Heck BigScary himself posted some enhancement ideas which were pretty epic and got added in the very next dev builds (/softmute and /ignore commands). So people need to stop coming up with awesome ideas :P.
Hopefully I can at least get a Beta out before a Bukkit API implementation for 1.7.2 drops, if only so, as Tigergruppe said, people know it's still alive and being updated. April was hella-long ago.
-
View User Profile
-
Send Message
Posted Nov 4, 2013Stating the obvious here (+who am I to tell you) but anyway... consider planning a serious feature freeze which will force you to prioritize things to be implemented prior to 1.7.2. It may also help limit some of the scope creep that occurs when updating the documentation. Be realistic about what makes it in, and what will have to wait for the next release. If not, you're making v10.0 as if it's a final version and calling it 7.8, then having to test and document it all, not necessarily a good thing with the awesome mc update that everyone will want to generate a new world with, and a new version of bukkit coming to your doorstep. If GP for 1.7.2 ends up having a very late release that might push more people to switch to a worldguard+plugin1+plugin2+plugin3+... combination than feature XYZ is worth.
-
View User Profile
-
Send Message
Posted Nov 3, 2013@Tigergruppe
I suppose it allows us to know there is a solid and stable release from time to time. And not a never ending stream of dev builds (Multiverse).
The difference is that if I call a release "stable" I'm going to make damn sure it's stable and documented. Too many plugins release a "stable" version and then have to scramble to fix bugs that corrupt worlds or destroy data... that is, the plugin was not at all stable. They just called it that. IMO that's outright lying, regardless of any good intentions.
I could easily call any development version stable according to some of the same standards some other plugins might call theirs "stable". That standard seems to in some cases be "it compiles". More importantly before I actually upload any "promoted" build I would need to update or change both the main page and all documentation. Even the 7.8 dev documentation is a few builds out of date at this point.
No. Permissions have been re-done. and rearranged in a heirarchy. Permissions are documented in the 7.8/dev build documentation page found in the Pages Tab.Also, when can we expect some documentation to go with some of the new dev builds? Or is there already some available? For example, my users are no longer able to /buyclaim or /sellclaim and while they have the original permission in place for this function, it simply no longer functions with what I assume to be, the new permission set.
the 7.8 dev build documentation is available in the pages section. It's a few builds out of date but still applicable. Off the top of my head, for buyclaim you would need griefprevention.claimblocks.buy (changed from, griefprevention.claimblocksbuy or griefprevention.buyclaimblocks or whatever it was before) as well as griefprevention.commands.buyclaimblocks; and the equivalent permissions with sell in place of buy for selling claim blocks.
This looks like a case of a permission(s) that should be set on as the default, methinks. Some of the perms seem redundant- in this case we have both griefprevention.commands.buyclaimblocks as well as griefprevention.claimblocks.buy. This redundancy is because there are often two permissions for what appears to be the same thing: one for the actual command being issued, and another for the operation itself. In this case the redundancy is probably something that can be eliminated, since it's unlikely there is ever going to be some way of selling or buying claim blocks without a command. But for some things such as editing claims, changing claims, etc. I can imagine there being ways of doing the same thing both with a command as well as interactively, and it may be desirable to control them separately.
The reason the permissions were changed was because I got a lot of requests to change them. Not counting the "The permissions make no sense" comments and PMs. Evidently some redundancies have crept in particularly from permissions that used to control a command still existing and being required but not having any observable effect beyond the equivalent griefprevention.commands.<command> permission for that command (eg. the buy and sell claim blocks commands). I'll have to remove those as needed before any release. There are also some configuration options that have functional overlaps that need to be rethought.
Docs are the part that will delay any release the most. Partly because there is so much to document but also because in the process of such documentation I often find there are things that could do with a change or revision, then have to practically start over again with the documentation to include that particular change. That and the old documentation for 7.7 and earlier needs to be there somewhere for those using older versions.
Will the per world options be able to be toggle-able? For example, some sort of master config that blankets over all worlds and not just one?
The development doc mentioned above, in the pages section covers this. There is a "SingleWorld" mode which can be set to specify a single name. For example, if this is set to "world" than world.yml in WorldConfigs will be used as the config for every world. It's also possible to set a template world that will be used as the default for any new world. If memory serves this defaults to _template.yml by default. (which doesn't exist normally and therefore built-in default values are used instead).
If you want essentially, a "7.7 updated for 1.6.4" I believe there are forks of Tux2's GriefPrevention repository which might add those features. From what I can tell they re-work the external API so no external GP plugins will work, so that could be a concern. Some of them remove features from GP that the author didn't like, as well.
-
View User Profile
-
Send Message
Posted Nov 3, 2013@BC_Programming
I suppose it allows us to know there is a solid and stable release from time to time. And not a never ending stream of dev builds (Multiverse).
Also, with your new versions, should we expect permissions to act as they are? Everything has been changed around and there is now a True/False style of option for every little detail. Will the per world options be able to be toggle-able? For example, some sort of master config that blankets over all worlds and not just one?
Also, when can we expect some documentation to go with some of the new dev builds? Or is there already some available? For example, my users are no longer able to /buyclaim or /sellclaim and while they have the original permission in place for this function, it simply no longer functions with what I assume to be, the new permission set.
-
View User Profile
-
Send Message
Posted Nov 3, 2013Is there a 1.6.2 compatible version that will allow for other dimension claiming such as planets from galacticraft? I really want to stick with GP. <3
-
View User Profile
-
Send Message
Posted Nov 3, 2013@Tigergruppe
There is no ETA.
And there isn't even a dev build of bukkit for 1.7.2 so I don't know how anybody can possibly expect anything build for that.
I've gone through this already. Do you want me to add the current dev version as a beta or release version of the project? Because I could. Nobody would be happy with it, however, and I would end up needing to release a new version anyway.
There is more to any new version release than the change of what API is being built against, which would be why this one appears to be taking longer than previous versions. And there is no ETA because there is no consistency to when I can actually work on it.
I haven't chimed in for some time but BigScary was on top of this stuff like CLOCKWORK.
If I recall he also didn't make development builds available, so doing so was more important. and there was far less new code and logic being added than there will be between 7.7 and 7.8. (eg. each version really just updated to support the new features of the Minecraft version).
let me ask you this, though: Aside from being able to download from bukkit.org, what difference will having it available here make? Not much. It will just be a promoted development build. Not to mention all the docs will need revision to account for changed or added features.
-
View User Profile
-
Send Message
Posted Nov 3, 2013When can we expect some sort of SOLID update, not a dev build, for 1.6.4 or even better, 1.7.2 as it is the current version? Can we please get some sort of time table? I haven't chimed in for some time but BigScary was on top of this stuff like CLOCKWORK.
-
View User Profile
-
Send Message
Posted Nov 1, 2013@Jsight
And what version is the "Correct" version that you are using?
@Roenie82
OK, I just wanted, to be clear that we/I am more looking for something that will most likely include what you are looking for as part of it's more extensive capabilities.
I was thinking the trash blocks setting could be "auto-translated" into the override framework. Really it could be a single node; more nodes could be added for whatever else was desired as well, including changing permission levels for certain block placement, which could be useful on modded servers; or for example if a server wanted to make it so a player could only place furnaces inside a claim or letting a siege attacker place Levers or something.
-
View User Profile
-
Send Message
Posted Nov 1, 2013@BC_Programming Best thing right now is if I stay out of this and let you do it however you want. The feature I am looking for with GP in 1.7.2 is to define a few blocks that players can place or break (defined separately) outside of claims above sea level, while disallowing every other block there. I appreciate you being so responsive to feedback. I wish I could tell you I'll donate for sure, but it's going to depend on me finding a new IT job before I run out of what little is left of my money! Took'r'juuuuubs!
-
View User Profile
-
Send Message
Posted Nov 1, 2013I am using version the Correct Grief Prevention on Tekkit Classic , I have had these major Problems!
- No matter what It is set in the config players cannot build out of there claims - When They Build in there claims They Cannot Pick up Blocks!(By this I mean when They Break Them They Do not Get Any block These are massive Problems Can anyone please help me! Thanks Jsight
-
View User Profile
-
Send Message
Posted Nov 1, 2013@Roenie82
My postulation was that only the owner of a claim could place obsidian blocks inside that claim. I don't see how that example could be interpreted in that fashion; it seems to simply be exactly the same as simply having ClaimControl set to RequireOwner for BlockPlacement. I mean, technically, yes, with that config, only a claim owner would be able to place obsidian blocks inside a claim, but it would also prevent players with build access from placing any block at all as well.
ClaimControl overrules the outcome of the <result of Allow/DenyAll and the Exception>, not the other way around.
Then IMO it's useless. It means these settings only apply to the wilderness section, and wouldn't have much use at all within the claims section. If no Exceptions or "allow" override claimcontrol, than if ClaimControl is anything other than None or Disabled the nodes are useless.
-
View User Profile
-
Send Message
Posted Nov 1, 2013If you meant: only allow the owner of a claim to place obsidian in that claim, but allow placement of every other block inside of a claim even by players who are not the owner, then no I cannot do that with my method, because I can only define one thing for claimcontrol: either claimcontrol requires owner or it does not, and that then applies to all the blocks defined (result of Allow/DenyAll vs Except) in the Claims subsection.
-
View User Profile
-
Send Message
Posted Nov 1, 2013@BC_Programming only allow the owner of a claim to place obsidian in that claim. That's not possible with the "Exceptions" way
I don't see why not....from where did you get the idea that this method would ignore claimcontrol? It would be done like this:
result: others can place obsidian anywhere except in claims they don't own, and the owner of a claim can place obsidian in his claim and outside of it. If you were looking for a different result, please be more descriptive of the limitations I am supposed to assume.
ClaimControl overrules the outcome of the <result of Allow/DenyAll and the Exception>, not the other way around. Neither the AllowAll line nor the Exception line in the Wilderness section ever overrule ClaimControl. Set me a more difficult challenge and I'll see if I can make a config snippet for it with this method. ;-)
-
View User Profile
-
Send Message
Posted Oct 31, 2013@Roenie82
The BlockPlacement and BlockBreaking are Rules because they quite literally are rules in the code. Everything added to them will be possible with every single rule as a result and would need to have some meaning in those cases as well. I want "exceptions" to be very 'aware' of Claims and claim permissions. For example, imagine if you want to only allow the owner of a claim to place obsidian in that claim. That's not possible with the "Exceptions" way, which basically just inverts whatever the existing setting is, yet the same configuration logic being used to deal with Exceptional behaviour during a siege can easily apply in a more general case, and apply at all times.
@lolitsthad
That is working as intended. Here's a question though to explain why.
let's imagine it magically removed claims.
Which claims would get removed? the most recently made ones? On what basis would that selection be made? Imagine a player is given that bonus, and they start playing. They make their first claim with that bonus, and continue playing- making claims in a few other places. Let's say their last claim is 500x500 blocks. The initial bonus they got was 500 blocks, but that's removed. Now they have negative claim blocks. What claim get's removed and how is what claim would be removed determined? It cannot remove the last claim- that is using 2500 claim blocks, far more than the amount needed to bring their claim blocks into the black. Does it try to solve the knapsack problem and basically find the closest set of claims that will bring them into the black for claim blocks? What if one of those claims is important? etc.
The way it is now the player simply has to wait until they accrue or are given blocks that brings them above zero. Thus you can consider that received amount an early credit that they now have to pay off.
@ThisUsernameIsMine
I can't recall the specific problem you had that you mentioned, but I'm guessing it was the one involving how createclaims was being used with the shovel. This was a mistake- the Claim tool was checking the wrong permission. That was fixed. Sign EavesDropping was changed to both reset the colour per-line as well as display the location in the world the sign was being placed.
@Luficer
All Datastore's will store any config information in dataconfig.yml. Right now there is a MySQL and a flatFile datastore implementation. the SQL stores stuff such as host, password, user, database, etc. connection information. the flatfile data store has no special information so that is empty.
I'm using MySQL on my test server at the moment but since you are having the issues with the flat file data store I will swap it and see if I can replicate the problems then.
-
View User Profile
-
Send Message
Posted Oct 31, 2013Not sure if this is a bug or if I'm missing something in the config
"You may also grant bonus claim blocks based on permissions. For example, /acb [myservergroups.builders] 5000 to grant everyone with the "myservergroups.builders" permission 5,000 claim blocks. This is not a one-time operation - players who get the permission in the future will also get the bonus, and will lose the bonus if they lose the permission."
- I set it up so that default players can claim 0 blocks, and VIP players can claim 100 - I gave my VIP group grief.vipclaim permission - /acb [grief.vipclaim] 100 - VIP players can now successfully claim 100 blocks - I removed the grief.vipclaim permission from the VIP group. - Now VIP players can no longer make claims, however any existing claims they have already created will remain claimed.
Is there a way to change this so that if a player no longer has claim blocks, his existing claims are automatically removed?
-
View User Profile
-
Send Message
Posted Oct 31, 2013@Roenie82
I'm aware of those nodes, but as i'm Op i assumed i didn't need them.
The good news is that a newer build of GriefPrevention solved it for me (was using #182).
I'm not sure which build changed this (it isn't mentioned anywhere), but world and coordinates are shown in-game again (thanks BC_Programming?¿!) :-)
I know what "Rot op of ga dood" means, i happen to be dutch =P (action has already been taken)
-
View User Profile
-
Send Message
Posted Oct 31, 2013@BC_Programming
What is the dataconfig.yml supposed to have in it? Mine only generated with "flat: {}" in it. The other files look to have generated, although being new to this config setup, i'm not sure what is supposed to be there. Pastebin of the config: http://pastebin.com/cBap478t
-
View User Profile
-
Send Message
Posted Oct 31, 2013@BC_Programming
That's what it means, nothing more nothing less. Calling this "Except" makes more sense. Am I missing something here? I'm not saying you should not have a Siege section or a TrashBlocks section for whatever reason but they have nothing to do with this.
Edit: I guess the indentation in that (before Except:) made little sense. Perhaps this makes more sense:
AllowAll or DenyAll can be used depending on how close what you want is to either extreme, so you never have to enter a hundred blocks on the Except: line. Of course this layout is a little different from what you have now so the sections for blockplacement and blockbreaking would be different from the other rules sections. Maybe you can think of a better way.
Come to think of it, it does seem logical for the blockplacement and blockbreaking sections to have a different layout than the rules subsections like CreeperExplosions because those subsections only deal with one thing each (in this case the creeper), while blockplacement/breaking deal with a >100 things (all the blocks in the game) so these require more fine tuning. Maybe BlockPlacement and BlockBreaking should for that reason not be part of the Rules section, but be in a section of their own, like a "Blocks" section.
-
View User Profile
-
Send Message
Posted Oct 31, 2013@Luficer
The only way those lines would throw that exception would be if the Configuration wasn't initialized. That only happens if the Plugin fails to load properly.
@Roenie82
Except what does "override" mean? What is it overriding? eg when you "override" wilderness Above Sea level, what does it mean? Only thing I can figure is it would mean the opposite.
eg: wtf would this mean? Why does the override suddenly take on a completely different semantic meaning based on whether it was override or deny?
This also would mean keeping everything I already have- since despite what you said what I already have actually has more flexibility- It's used to allow siege attackers to place TNT during a Siege if they are the attacker, as well as break blocks in that same circumstance. That is now handled (internally) by the aforementioned Block Rules override.