documentation/Ruleset Management

This page explains how to edit ruleset properties from ingame or directly through the database followed by a detailed explanation of each property.

From Ingame

If you want to use the ruleset-editor you'll need to select a ruleset first. Do so by using /selectruleset Name Level. Afterwards, call the ruleseteditor via /ruleseteditor.

Ruleseteditor

You'll now see the main page. It displays all properties of the ruleset alongside their current value. Please note that for flags the color is indicative of the value, hence the example above would indicate that Roof-Required was set to true. It is highly recommended to heed the warnings the ruleset-editor displays.

Via the database

Database

It is possible to edit rulesets in the database (and also lots, should the neccessity arise). This plugin will create three tables for its needs; their name depends on the prefix you configured.

NameFunction
prefix_krimbuySaves each lot as a row.
prefix_krimbuy_floorsStores the floor of each lot at the time of its creation. (Only possible for lots smaller than 25.000 lots).
prefix_krimbuy_rulesetsRuleset-Data

You need to make sure that nobody edits rulesets as long as you're editing them in the database. Otherwise your changes will be overwritten (of course this applies only if they do actually modify the same ruleset as you do). To activate all changes you made in the database reload the plugin with /kbreload.

Be advised that the ingame-ruleseteditor is the preffered way of editing rulesets, since it validates the data you enter. Should there be any error with the ruleset, it will be displayed and all affected lot will be assigned a placeholder ruleset which protects them from permanent damage while retaining access for the owner.

Ruleset properties

Name & Level

The combination of these two properties uniquely identifies each ruleset. Consequently you can't have two rulesets with the name 'Slum' and the level '1'. If you want a ruleset to have an upgrade, simply create a second ruleset with the same name and a higher level. It should be brought to your attention that the first level is one and not zero.

Required Format: A string as ruleset-name (max 100 characters) and an integer greater than zero as level.
Database Column: "ruleset" & "level"

Give-Permissions

Something that we often found useful was the ability to give players specific transient permissions based on their lot ownership. If a player owns a lot with a ruleset that defines give-permissions, those permissions will be added transiently to the player on each join. You can use this for example to restrict quests only to people who own a lot in the city the event is taking place in.

Required format: A comma seperated list of permissions not longer than 255 characters.
Example: owns.lot.typea,special.additional.ownership
Database Column: "giveperms"


Required-Permissions (Acquisition)

Only players who have the permission to generally buy lots, as well as all of the permissions defined here will be able to buy lots of this type. Changing this later will not retroactively check this for people who already own the lot.

Required format: A comma seperated list of permissions not longer than 255 characters.
Example: owns.lot.typea,special.additional.ownership
Database Column: "requiredpermission"


Control-Block-Height

CBH example.

Please refer to the tutorial on lot creation for more details on the positioning of the interact-blocks. Generally speaking this property defines what part of the lot is the floor for all purposes of this ruleset (required for floor-related ruleset-properties). As lots are created through the bedrock (ie the interact-block or control-block), the number here tells the plugin how many steps in positive or negative Y-direction the floor is away from the interact-block.



Required format: An integer (although they strictly speaking do not make sense, values greater than the maximal world height are allowed)
Example: 1
Database Column: "controlblockheight"


Autofree

Defines how many consecutive days a player needs to be offline in order to have his lot removed from him.



Required format: An integer greater or equal zero. Use zero to disable this feature.
Example: 0
Database Column: "autofree"


Autoclear

Defines how to proceed if the lots owner has been inactive for a long time (what exactly constitutes a long time is defined through the "autofree"-property).



Required format: An autoclear-type. Possible values:

NameValueEffect
NONE0Won't do anything with the lot. Note that whether or not the player will be removed as the lots owner does not depend on this flag.
FLOOR_ONLY1Restore the floor to the state that was stored during the creation of the lot but leave the rest of any buildings intact.
ALL2Destroy everything and restore the floor
ALL_FILL_CELLAR3Destroy everything, fill the cellar with stone and restore the floor

Example: 1
Database Column: "autocleartype"

Height

How many blocks above the floor can a player build?



Required format: An integer greater or equal zero.
Example: 5
Database Column: "height"


Depth

How far below the floor can a player build?



Required format: An integer greater or equal zero.
Example: 5
Database Column: "depth"


Everyone-Can-Build

Is this lot public? Important: If you want a lot to be public you need to make sure that it has no owner! Sold lots with the everyone-can-build-flag enabled cannot be built on by everyone.



Required format: A boolean from ingame, represented as zero=is public, one=is private in the Database.
Example: 0
Database Column: "private"


Roof-Required

Is a roof required for this lot? TODO

Required format: A boolean from ingame, represented as zero=false, one=true in the Database.
Example: 0
Database Column: "roofrequired"


Buying - Allowed

Can people buy this lot? If this is false, lot ownership can only be changed via /givelot.

Required format: A boolean from ingame, represented as zero=buying is allowed, one=buying is prohibited in the Database.
Example: 0
Database Column: "buyingprohibited"


Selling - Allowed

Can people buy this lot? If this is false, lot ownership can only be changed via /givelot.

Required format: A boolean from ingame, represented as one=selling is allowed, zero=sellingis prohibited in the Database.
Example: 0
Database Column: "cansell"


Forbidden Blocks

Blocks in this list cannot be used in the lot.

Required format: A block list. That is a list of blocks in the format "ID:Subid,ID:Subid". You can prepend a ! to invert the mask (the blocks in the masks will be the only usable ones. It is strongly recommended to
Example: 0
Database Column: "cansell"


Ground-Blocks

The blocks allowed in the floor of this lot. Those will be used to determine how big the lot will be.

Required format: See Forbidden-Blocks.
Database Column: "group"



Comments

Posts Quoted:
Reply
Clear All Quotes