- Tested Minecraft Versions:
Let me introduce you to PreciousStones
PreciouStones is flexible. The "force fields" you see above are the ones that are configured by default, they were created using our massive collection of flags. You can use them as-is, pick just the ones you like, or erase them all and create your own. They are defined in a list called force-field-blocks on the config, and can be changed or completely removed if you like.
In that list you can tie any block type to a set of flags (chose from over 180 flags with varied functionality) to configure your own force fields unique to your server that do exactly what you need them to do. From protection to potion effects to confiscation of items to rollback abilities to teleportation, the possibilities for wacky new types of force fields are endless. PreciousStones is not just about protections.
Here is an example of the how the Entry Bouncer field is defined on the config using flags:
title: Entry Bouncer
Fields are not limited to one owner, you can allow as many people as you like into your protection (/ps allow), with SimpleClans integration you can even automatically add your entire clans to the allowed list. You can buy/sell your fields or rent them for any type of item/currency or length of time. Set up entry/farewell messages. Get notified when someone enters your field and you're far away, or prevent the use of just about anything you want: chests, doors, traps, fences, teleports, portals, etc. There are flags for just about anything, all created during its 4+ years of heavy development. Just about any request has been created, like the ability to toggle creation of fields (/ps [on|off]), or have it be off by default (settings.off-by-default). Or to have to sneak when you are placing the block to create the field so that often used block types can be used as fields without interfering (settings.sneak-to-place-field). Want to prevent grief in your world and allow only place/break to happen inside fields? Turn on (settings.prevent-place-everywhere) and (settings.prevent-destroy-everywhere) in the config, give your fields the (allow-place, allow-destroy) flags, and then hand the fields out to your players for them to claim land. You need a feature? Request it, but most likely it already exists.
If you think having all the functionality on flags was flexible, did you know that even the flags themselves are flexible? You can add modifiers before the flag names to change how they behave: flags can be reversed with (~) to have them apply to the allowed vs the non-allowed players and vice-versa (for example the ~launch flag would launch non-allowed players into the air instead of the default of allowed players). They can be made global with (^) to have them apply to all players allowed and non-allowed (for example the ^prevent-entry flag will bounce out all players not just non-allowed ones), or made toggable with (?) disabling them by default but allowing your players to turn them back on manually per-field with the /ps toggle command (great with ?welcome-message and ?farewell-message flags or any other flags that not everyone may want to use all the time).
The fields you create can have limiting functionality (using the limits flag) to control the distribution of the fields you create for your players based on permissions. Use them as a reward for donators, or sell them outright, they are a great way to increase funding for your server. They work alongside other protection plugins. Your players will love them!
Now that you have had an introduction to the flexibility of PreciousStones, one more thing of note: PreciousStones is fast. Really fast. Fields are pulled from the fully indexed DB to memory and their references stored in 6 different hashmaps for linear time O(1) lookups by (world, location, chunks covered, flags, owner, and block type). This means no lag while doing lookups other protection plugins can only dream of being able to do. Now that you have been acquainted, on to the show:
Found a bug or have a feature request?
Like the plugin? Please consider donating!
Defining cuboid fields (excuse the lag)
PreciousStones Basics Tutorial
Showcase of the effect of each of the default stones.
Demonstration of various field types (using custom build stones)
Review of PreciousStones that goes through all the default stones.
PreciousStones has two types of protections unbreakable blocks and field blocks:
These are protection for the block itself, like OwnBlocks. The blocks on the unbreakable-blocks list in the config will not be breakable by anyone but the owner, they will belong to whomever placed them. They can be used as building material i.e. ungriefable city walls, impenetrable vaults, etc. or protect block types from theft i.e. note blocks, fences, or anything that you want to be grief proof. You can right-click on the block with a tool in hand to view who owns it.
Note: The block types you place on this list cannot be added to the fields list.
Fields are blocks that project a force-field outwards onto their surroundings. They can have various different properties which can be added with field flags. The field's radius extends from the cube itself outwards. ( i.e. For a radius of 3 the resulting force field would measure 7x7x7, you can optionally add a custom height to override the height calculated from the radius to whatever height you choose)
Right clicking on any one of your fields with one of the tools configured in the tool-items list in the config.yml will show you specific information for that field. Right clicking on fields that don't belong to you will only tell you who the owner of the field is. You can configure for all fields to display the full info by toggling the public-block-details setting to true. Right clicking on a block in the ground with one of the tool-items will tell you if the block is protected or not.
You can visualize what one of your fields looks like by standing inside of it and typing /ps visualize, this will surround the field with glass blocks (placed inside of the field). This visualization is sent to the player's client directly and is not visible by any other player on the server. Once the player moves, the visualization will be removed to prevent people from interacting with it. This will help you visually see what is being protected.
Cuboid fields are the next generation of fields. You can make a field into a cuboid field by giving it the cuboid flag. Cuboid fields behave identical to the normal fields at first sight. Like a normal field they can be placed down to create a field around the radius of the block based on the configured size. The difference is that the shape of cuboid fields can be redefined at will.
Redefining a Cuboid / Drawing Mode
Cuboid fields can be placed in drawing mode by [sneak-left-click] with a tool. During drawing mode you can [left-click] on blocks around the area to grow the protection cuboid. [right-click] aiming at any direction will expand the cuboid one block in that direction. [sneak-right-click] anywhere will undo your last selection if you made a mistake. And to finish and close the cuboid, [sneak-left-click] again anywhere, or simply click on the field block.
Technically you only required to select two blocks, one from each opposite corner of the cuboid in order to form the cuboid. But we all know that that is almost never how we want to define a cuboid. You have a specific content in mind that you want to protect for example a house with underground area, or a floating platform in mid air, the valley that you can see down below. Traditional methods of cuboid definition require you to dig down into some imagined corner to select the bottom corner block, or pile up blocks to select the top corner block. In cuboid drawing mode, rather than being forced to select opposite corners, you select the actual blocks you want protected from a distance by just left clicking in their direction, and afterwards a cuboid will be created that is the smallest shape that can wrap around all selected blocks.
When you place a field into drawing mode its configured height and radius are converted into volume and given to the player as the available blocks his new field shape can cover. For example field of radius 5 (which is 11x11x11) will be converted into block volume, so 11x11x11 = 1331 blocks. You will then be able to redefine the cuboid using the available volume.
If the cuboid has the custom-volume flag set, then that volume will be used instead overriding the volume calculated from the radius/height. This is good if you want players to be able to place down a small field, with say radius 0, and then be able to redefine it into a much larger field. Good for plots and such that need to be placed next to fields owned by others without causing conflicts.
While in drawing mode you can increase the available volume of a field by placing more of the same type of fields down. Each one you place down will add on its volume to the parent. This way you will be able to create immense fields at any size. When you close the cuboid, all the fields you placed down will turn into a group. Right clicking on any of them will give you the same information and breaking one of the blocks in the group will break them all.
While in drawing mode you can place down different field types down and their field flags will be imported to the cube being drawn. This way you can mix the effects of several fields into one. What fields can mix with what fields can be configured by putting your fields into "mixing groups" with the mixing-group flag, fields in the same groups will be able to mix with each other. You will want to put fields of similar size and "cost" in the same groups.
Note: Fields without a mixing group will not be mixable
Note: Only the field flags are imported, no extra volume is added to the cuboid.
Fields vs Cuboids
Cuboid fields are saved on a separate database table (pstone_cuboids) than fields (pstone_fields). Due to this changing existing fields that people are already using into cuboids or viceversa is a bad idea.
Grief revert fields are just what they sound like. They are personal BigBrother fields. They will let you roll back any grief that was done within the field. These fields will record all block breaks by players who are not allowed into the field and all block breaks from explosions in the database. The blocks that are broken and recorded will not drop, they will just disappear. There are two modes to these blocks - you can have them rollback the grief on command when right clicking on them, or you can have them roll back the grief at a predefined interval with the grief-revert-interval' flag. You can define a list of blocks that you don't want to be revertible and will be stealable (drop when broken) by adding them to the grief-revert.black-list in the config.
Any block with the snitch flag will create a field which will keep a record of player's activities within the field. It will keep a record of their entry, any block breaks and placements, and any block usage inside the field. You can see this list by right-clicking on the block or typing /ps snitch. You can clear the list at any time by issuing the command /ps snitch clear.
This will allow your users to place a block and instantly create an entire forest of trees and grass around it. The block must be placed on a fertile block to activate. The types of blocks that are considered fertile can be specified with the the fertile-blocks flag, these blocks will be terraformed into grass where plant-life can grow. Once the forester has accomplished its task, the activator block itself will turn into a tree. The amount of trees that have the potential to grow can be configurable with the tree-count flag, you can choose what kind of trees to grow with the tree-types flag, and what kind of shubs to grow with the shrub-types flag. The amount of time it will take to grow the whole forest can be set with the grow-time flag.
You can allow people into your fields using the allow, allowall, remove, and removeall commands. Theallowall and removeall commands allow or remove the players into all of your fields. While the allowand remove command only work for the fields you are either pointing at or standing in. If your fields are overlapped, then standing in one will allow/remove players from all overlapped fields.
Here is an example of what you can allow:
/ps allow [player]allows a player into your field(s)
/ps allow c:[tag]allows a clan into your field(s)
/ps allow g:[group]allowed a group into your field(s)
/ps allow *allows everyone into your field(s)
So for example you set up a launcher field and want to allow several people to use it you can do this:
/ps allow c:toads
/ps allow g:admins
/ps allow rabbleroost
/ps allow willhicks
Or you can do them all in one line as well:
/ps allow c:toads g:admins rabbleroost willhicks
Clans are available through
Selling and Renting
Players can now rent and sell their fields with the new rentable, shareable, and buyable flags!
- amount (item/block) or amount currency
- rent period
Renting out a city lot
(30 gold ingots for 6 days use)
Charging for your public GodStone use
- 30 (266)
(50 economy money for 20 minutes use, many players can rent it at the same time)
Selling a house
- 50 rupees
(costs 15 diamond blocks to take ownership)
- 15 (57)
Renting - The [Rent] tag gives you allow access to the field for the specific amount of time. The player can mine, change blocks and do anything except modify or remove the field. The owner will still have rights to the area, but he will not be able to modify the sign, break the block, disable it, change its name, change its radius, or enter drawing mode. After you rent the field it's [Rent] tag will turn RED signifying that its occupied and a countdown will appear on the last line of the sign. (Renting only works for fields with the rentable flag)
Sharing - The [Shared] tag allows multiple players to rent the same field, used for public areas, mines, pay per use launchers, Miner's haste, godstone and what not. It's tag will turn GOLD when at least one person is renting the field. (Sharing only works for fields with the shareable flag)
Buying - The [Buy] tag changes the owner of the block to a new owner. First the player who wants to purchase the land/block must right-click on the sign to make the payment. The tag will turn RED and his name will be displayed on the last line of the sign. Money will be taken from him and he will be added to the allow list on the field so he can start building on it, the transaction completes when the new owner right clicks on the sign to take his payment. He is removed as owner of the field and the new owner set as the proper owner of the field.(Buying only works for fields with the buyable flag)
Price - Can either be items or economy money. If you want items then you use two numbers, the amount and the item/block id in parenthesis. (i.e. 10 (266) means ten gold ingots). If you want to use economy money, then use a number with any text you want after it without parenthesis (i.e. 10 credits)
Rent period - This can be in weeks, days, hours, minutes, seconds or a combination of up to three (e.g. 5w) (e.g. 5h 30m 5s). This only applies to rent or shared fields.
Collecting rent - The owner of the fields must right click on the sign in order to collect his payment, the payments will accumulate until he does so.
Right-ClickPurchases one rent period (can click multiple times to purchase more)
Left-ClickWill show the field details and will visualize an outline of the field to get a good view of the area it covers. If it is being occupied, it will show who the tenant is and how long they have left on their rent.
Shift-Right-ClickAbandons your current rent. (no money back)
Right-ClickCollect the rent, collect the money for a purchased field, or list out the tenants on the field.
Plots inside fields
Several changes in v8 now allow fields inside fields. Something which was just not possible with PS before. Removed is the old overlapping system. You will notice the commands will no longer allow you to do operations on overlapped fields. (Though you can still overlap fields of the same name and type so that welcome and farewell messages only show once).
You can now have, for example, huge Town fields which can have plot fields inside of them that your players can place themselves. One of the changes that makes this possible is that whenever an event is fired (block break, place, fire ignite, etc) in an area with several overlapping fields, the smallest one always takes precedence and is the only one that is gonna be obeyed. So for example the Town may have streets and town owned areas that will follow the rules of the Town field. But the fields inside of it, will have their own flags which can vary completely from the Town field's flags. The players inside the plot fields will be subject to both the town's fields and the plots fields, but if both have for example prevent-place flags, then the one in the plot will take precedence (which can have people allowed on it etc.). If you want the plots to completely override the area they cover and remove the parent field's flags from the area completely, add the "plot" flag to the field.
Plots can be multi-leveled, for example you will be able to walk into a city and and see the city's welcome message, and walk into a town inside of it and see the town's welcome message, and walk into someones plot inside of that and see the plot's welcome message, and inside each level you will be subject to all the flags of the levels above along with the inner one, with the smallest field always taking precedence.
As you know, if you try to place a field that overlaps someone elses field, you will see an error message telling you that you cannot place a field there. This is in place, obviously, so you can't encroach on someone elses land. Also you know if someone allows you into their field, you can place a field nearby that can overlap their field or even be inside of it. In earlier versions of PS this caused problems. Your friend overlaps one of your fields with a new field they added, and they forgot to allow you on it, and so now you no longer have control of a chunk your land.
This is a thing of the past with two new changes in v8. The first is automatic allowing, if you allow your friend on one of your fields, and he places a field nearby overlapping yours, PS will automatically allow you into his field. This will prevent the problem of you no longer being in control of your land. You will see that plots will just work. More so, if that friend one day decides he doesn't like you and wants to remove you from his allowed lists he will not be able to remove you from that specific field that is overlapping yours thanks to the conflict-of-interest protections. His only recourse will be to remove the field altogether. You can feel safe that you will always be in control of your land.
You can now make it so certain fields can only be placed inside of others. For example you may want your plot fields only placeable inside Town fields. You can now do this with the allow-only-inside field flag. (i.e. allow-only-inside: [Town Protection]). With this in place you wont have plot fields all over your server outside of towns throwing everything out of whack. Also for added protection once a plot has been placed inside a parent field, the parent field will not be able to be removed or redrawn until all the fields inside of it are removed.
Or for example you want to keep control of Jack-O-Death fields, you can make them only placeable in City Protect fields, this way you can rest assured that players are using these defensively inside their own structures and not peppering them all over the map.
Permissions per Field
You can now tie permissions to your fields. You can now give your default users permissions to use small plots, give the larger ones to your members, and allow your VIP users to create towns. Now it's super easy with the required-permission field flag (i.e. required-permission: preciousstones.plots.vip). Make up any permission you like and add it to your fields. Now only the players with that specific permission will be able to place the field. Everyone else will just place normal blocks.
Land Claiming Mode
You can prevent anyone from being able to place or destroy any blocks in your world by turning on the "prevent-place-everywhere" and "prevent-destroy-everywhere" configs in the settings. With this enabled players will only be able to place and break inside fields they own or are allowed in. Fields with the allow-place and allow-destroy flags will be the only fields players will be able to place in protected land, thus are the fields that they will use to claim land.
Vault is used for economy support
You can use the price field flag to give a field a price. When the field is placed, the amount will be taken from the player's account. When the field is removed (block is broken), the amount will be refunded.
A file containing all the text on the plugin can be found in the plugin folder called language.yml. This file will allow you to change the entire plugin into your own language. Even if your server's language is English, this file will allow you to change any and all of the text in the plugin, will let you change the colors of all messages outputted (chat and logs), and even let you change the name of the commands to best suit your server.
This plugin, created by dandielo, shows you the areas of fields in dynmap. Just drop it in with PreciousStones and use the new field flags to select which fields you want to be visible on the map.
Flexible self-service protection system for PvP servers
Hello, please help, I do all the steps the plugin says that it works in 1.14.2 or at least it appears in green. Configure the protections, I appear in game, but when I want to give a protection I get "an internal error occurred while attempting to perform this command"
Hey, Im having a bug I don't know if its a flag or something but when I place a field staying with SHIFT (kneel) It just don't create the field, just place the simple block and no make a protections or something pls help!, how can i fix it?? is there a flag???
Problems after problems... maaaaaaaaany things im trying to do for make it works... is a head break and you need to accept many things its not going to work... there is a lack of info so you need to go test and error way, and that takes hooooooooours and hours to make work a simple idea like mine...