Configuration
Arable uses a conventional YAML configuration file to specify and apply rules. Please note that all configuration options are case-sensitive.
Sections
There are four top-level sections: rules, defaults, worlds, and advanced.
rules
The rules section is the meat of your configuration file, it's where you list out all of the arable rules that you want to use. In fact, for single-world setups, the rules section is the only section you'll need to use. Rules listed here can also optionally be used in the defaults and worlds sections. The section has the following basic structure:
rules: <rule-name>: <condition>: <value> ... <effect>: <value> ... ...
There can be any number of rules, and each rule can contain as many of the possible conditions and effects as you want.
Here is a complete listing of (case-sensitive) conditions, effects, and values:
| Condition | Type | Description | Range | Default |
|---|---|---|---|---|
| blocks | string list | set of affected block types | [see below] | [all below] |
| stages | byte list | set of affected growth stages | [see below] | [all below] |
| biomes | string list | set of affected biomes | [see below] | [all below] |
| weather | string list | set of applicable weather conditions | clear, rain, thunder, snow | all weather |
| times | string list | set of applicable times of day | day, dusk night, dawn | all times |
| minWetness | byte | minimum wetness value of affected farmland [only relevant for wheat, pumpkins, melons, carrots, and potatoes] | 0-8 | 0 |
| maxWetness | byte | maximum wetness value of affected farmland [only relevant for wheat, pumpkins, melons, carrots, and potatoes] | 0-8 | 8 |
| minHumidity | double | minimum humidity of affected biomes | 0-1 | 0 |
| maxHumidity | double | maximum humidity of affected biomes | 0-1 | 1 |
| minTemperature | double | minimum temperature of affected biomes | 0-2 | 0 |
| maxTemperature | double | maximum temperature of affected biomes | 0-2 | 2 |
| minElevation | int | minimum y-value of affected blocks | 0-255 | 0 |
| maxElevation | int | maximum y-value of affected blocks | 0-255 | 255 |
| minLight | byte | minimum total light value of affected blocks | 0-15 | 0 |
| maxLight | byte | maximum total light value of affected blocks | 0-15 | 15 |
| minSunlight | byte | minimum sunlight level of affected blocks | 0-15 | 0 |
| maxSunlight | byte | maximum sunlight level of affected blocks | 0-15 | 15 |
| minBlocklight | byte | minimum light from glowstone, torches, etc. | 0-15 | 0 |
| maxBlocklight | byte | maximum light from glowstone, torches, etc. | 0-15 | 15 |
| Effect | Type | Description | Range | Default |
|---|---|---|---|---|
| rate | double | average growth rate, as a multiplier of the default rate | 0 or greater | 1 |
| spread | double | standard deviation (variability) of the growth rate | 0 or greater | 0 |
| ripen | double | probability of a crop instantly growing to its max stage | 0-1 | 0 |
| wilt | double | probability of a crop losing a growth stage | 0-1 | 0 |
| uproot | double | probability of a crop breaking, as if by hand | 0-1 | 0 |
| die | double | probability of a crop being destroyed without drops | 0-1 | 0 |
| burn | double | probability of a crop going up in flames | 0-1 | 0 |
| frost | double | probability of a crop reverting to snow | 0-1 | 0 |
| blight | double | probability of a crop catching a contagious disease | 0-1 | 0 |
| Block | Stages |
|---|---|
| brownmushroom | 0 |
| cactus | 0 to 15, creates a new block after 15 |
| carrot | 0 (newly planted) to 7 (fully grown) |
| cocoa | 0 (newly planted) to 2 (fully grown) |
| melon | 0 to 7, creates a melon after 7 |
| netherwart | 0 (newly planted) to 3 (fully grown) |
| potato | 0 (newly planted) to 7 (fully grown) |
| pumpkin | 0 to 7, creates a pumpkin after 7 |
| redmushroom | 0 |
| sapling | 0 |
| sugar | 0 to 15, creates a new block after 15 |
| vines | 0 |
| wheat | 0 (newly planted) to 7 (fully grown) |
| Biome | Humidity | Temperature |
|---|---|---|
| beach | 0.4 | 0.8 |
| desert | 0.0 | 2.0 |
| deserthills | 0.0 | 2.0 |
| extremehills | 0.3 | 0.2 |
| forest | 0.8 | 0.7 |
| foresthills | 0.8 | 0.7 |
| frozenocean | 0.5 | 0.0 |
| frozenriver | 0.5 | 0.0 |
| hell | 0.0 | 2.0 |
| icemountains | 0.5 | 0.0 |
| iceplains | 0.5 | 0.0 |
| jungle | 0.9 | 1.2 |
| junglehills | 0.9 | 1.2 |
| mushroomisland | 1.0 | 0.9 |
| mushroomshore | 1.0 | 0.9 |
| ocean | 0.5 | 0.5 |
| plains | 0.4 | 0.8 |
| river | 0.5 | 0.5 |
| sky | 0.5 | 0.5 |
| smallmountains | 0.3 | 0.2 |
| swampland | 0.9 | 0.8 |
| taiga | 0.8 | 0.05 |
| taigahills | 0.8 | 0.05 |
defaults
By default, all rules in the "rules" section apply to all game worlds. If this is what you want, then you're already done! If, however, you want to override the default rule list, you need to create a "defaults" section. The format is simply a list of the default rule names:
defaults: - <rule-name> - ...
worlds
The worlds section lets you override the default rule list for specific worlds. You only need this section if you want to have worlds with unique rule lists. If a world is not listed here, it receives the default rule list. Each entry is a list of rules named after the affected world:
worlds: <world-name>: - <rule-name> - ... ...
advanced
The advanced section is for modifying how the plugin does its job. This is a section that you will most likely never need to deal with, but it's here in case you need to exercise extreme control over Arable. Here is a complete list of advanced options:
| Option | Type | Description | Range | Default |
|---|---|---|---|---|
| interval | int | the update interval, as a multiple of the default | 1 or greater | 1 |
| save | boolean | whether or not to save data on server shutdown | on, off | on |