This page describes the JSON format that CoFH
World uses for describing features to generate in the world. Features
are described inside the populate value of world generation
files.
Features are described as objects with the following values.
| Name | Type | Default | Description |
|---|---|---|---|
generator | Feature type configuration / array of feature type configurations | - | The type of feature to generate. When specified as an array, a feature type configuration is chosen randomly each time the feature is generated. |
distribution | String | - | The distribution type used to distribute the feature in the world. The used distribution type may require additional values to be added to the feature entry. |
cluster-count | Number / number provider | - | How many attempts to generate the feature are done in a chunk. Evaluated once per chunk. |
chunk-chance (optional) | Number | 1 | The chance of a chunk containing the feature at all. Read as follows: one in [chance] chunks contain the feature. |
in-village (optional) | Boolean | true | Whether the feature may be generated in the same area as a village. |
biome (optional) | Biome restriction | (Any biome) | The biomes in which the feature may be generated. |
dimension (optional) | Dimension restriction | (Any dimension) | The dimensions in which the feature may be generated. |
retrogen (optional) | Boolean | false | Whether to generate the feature in previously generated chunks where the feature
wasn’t already generated (with the same name). This will only work if
RetroactiveGeneration is set to true in CoFH World’s configuration file. |
enabled (optional) | Boolean | true | Whether to generate the feature at all. |
A feature type configuration specifies and configures the type of feature to generate. It is an object with the following values. The used feature type may require additional values to be added.
| Name | Type | Default | Description |
|---|---|---|---|
type (optional) | String | (Set by distribution type) | The feature type to generate. |
material (optional) | Block ID / array of block IDs | (Set by distribution type) | The type(s) of block that may be replaced to generate the feature, such as stone for ore blocks. |
weight (optional) | Number | 100 | How likely the feature type configuration is to be selected when it is part of an array of items to randomly choose from. Items with a greater weight have a higher chance of being selected. |
A biome restriction specifies the biomes in which a feature may or may not be generated. It is an object with the following values.
| Name | Type | Description |
|---|---|---|
restriction | String | Whether the given list of biomes should be treated as a blacklist or as a
whitelist. Can be either "blacklist" or "whitelist". |
value | Array of biome entries | The biomes that the restriction applies to. |
A biome entry describes a way to match one or more biomes. It is an object with the following values.
| Name | Type | Default | Description |
|---|---|---|---|
type | String | - | The method used to match biomes. May be "id", "temperature" or
"dictionary". |
entry | String / array of strings | - | The value used to match biomes. Uses different values depending on the value of
type:
|
whitelist (optional) | Boolean | true | If false, the biome entry is treated as an exception to the blacklist or
whitelist it is in. |
rarity (optional) | Number (integer) | -1 | If greater than 1, a random chance is added to determining whether a biome
matches the entry. One in [rarity] attempts to match a matching biome will go
through. This can be used to make a feature generate more rarely in certain
biomes. |
A biome entry may also be specified as a single string. In this case, it specifies a single biome by its ID.
A dimension restriction specifies the dimensions in which a feature may or may not be generated. It is an object with the following values.
| Name | Type | Description |
|---|---|---|
restriction | String | Whether the given list of dimensions should be treated as a blacklist or as a
whitelist. Can be either "blacklist" or "whitelist". |
value | Array of numbers | The IDs of the dimensions that the restriction applies to. The vanilla dimension
IDs are as follows: 0 for the Overworld, -1 for the Nether and 1 for the
End. |
Coming soon…