World Presets
TFC adds a single world preset, which is used to generate a TFC world, and along with that, adds the TFC generator which has a number of important configuration options available. For the generic format of a world preset, see the Minecraft Wiki, or the Example. This page is concerned with the generator
field of the world preset.
The TFC world generator has the following fields:
type
must be"tfc:overworld"
biome_source
must be{ "type": "tfc:overworld" }
settings
is the name of a Noise Settings to use. The default is"minecraft:overworld"
tfc_settings
is an object with various settings that affect TFC world generation. It has the following fields:flat_bedrock
(Boolean): If the bottom of the world is a single layer of flat bedrock, or random like vanillaspawn_center_x
(Integer): The center X position around which the spawn position is chosenspawn_center_z
(Integer): The center Z position around which the spawn position is chosenspawn_distance
(Integer): The maximum distance from the spawn center the spawn position will be chosentemperature_scale
(Integer): The distance between two temperature extremes, in blocks. If zero, the temperature will be a constant based ontemperature_constant
temperature_constant
(Optional Number, Default0
). A number representing the temperature for an entire world, where-1.0
is polar and1.0
is tropical.rainfall_scale
(Integer): The distance between two rainfall extremes, in blocks. If zero, the rainfall will be a constant based onrainfall_constant
rainfall_constant
(Optional Number, Default0
): A number representing the rainfall for an entire world, where-1.0
is arid and1.0
is tropical.rock_layer_settings
is the Rock Layer Settings for a world.continentalness
(Number): This is a value between-1.0
and1.0
which determines the nature of continents. Smaller values create smaller continents, more islands, whereas larger values create larger, blobbier continents.grassDensity
(Optional Number, Default0.5
): This is a number which affects how much grass generates in the world. Higher values indicate more grass coverage.
Rock Layer Settings
This describes the rocks that exist in the world, what blocks they use, and how they spawn. It is useful to understand how rock layers generate in TFC:
First, TFC picks the overall Layer Type of the area. This may be one of ocean_floor
(Oceans), volcanic
(Volcanic islands, and volcanic mountains), uplift
(Inland mountains), or land
(All other non-ocean areas). It then looks in the rock layer settings for what Layer correspond to that Layer Type.
Rock Layer
A Layer consists of an object, with two fields:
id
(String) The name or ID of the layerlayers
(Object) A map of Rock IDs to Layer IDs
Example
// A single "Layer", named "igneous_extrusive", with four rocks (rhyolite, andesite, dacite, and basalt),
// mapped to three layers (felsic, intermediate, and mafic)
{
"id": "igneous_extrusive",
"layers": {
"rhyolite": "felsic",
"andesite": "intermediate",
"dacite": "intermediate",
"basalt": "mafic"
}
}
Rock
A Rock is a collection of mappings of a name to the resulting blocks that are used for that rock. It can be either, a preset name (these are registered by TFC for ease of use), or an object with the following fields:
raw
,hardened
,gravel
,cobble
,sand
,sandstone
(String) These are names of blocks that are used for this rock in the respective places in world generationspike
,mossy
,mossy_loose
(Optional String) These are names of blocks that are used for this rock in the respective places in world generation, but are optional, and won’t generate if not present.
Example
// An example "Rock" using default TFC blocks
{
"raw": "tfc:rock/raw/basalt",
"hardened": "tfc:rock/hardened/basalt",
"gravel": "tfc:rock/gravel/basalt",
"cobble": "tfc:rock/cobble/basalt",
"sand": "tfc:sand/red",
"sandstone": "tfc:raw_sandstone/red",
}
When considering a layer, TFC will pick a random Rock from that layer, and then move onto the following Layer, before repeating the process. For example here, TFC could place basalt
, and then under the basalt, would be a rock from the mafic
layer.
There is a special Layer named bottom
- This is a layer consisting only of a list of Rocks. Once the bottom
layer is reached, any further rocks underneath it will repeat endlessly from the bottom
layer (until there are no more Y positions left to generate).
With all that in mind, a Rock Layer Settings has the following fields:
rocks
is an object which is a map of Rock IDs, to Rock objects, or preset names.bottom
is a list of Rock IDs, which form thebottom
layerlayers
is a list of all the Layers which existocean_floor
,volcanic
,uplift
, andland
are each the default Layer Types. They are each a list of the Layer IDs which are used for the top rock of each type.
Example
// This is the default rock layer settings used by TFC, found at
// data/tfc/worldgen/world_preset/overworld.json
{
"rocks": {
"granite": "tfc:granite",
"diorite": "tfc:diorite",
"gabbro": "tfc:gabbro",
"shale": "tfc:shale",
"claystone": "tfc:claystone",
"limestone": "tfc:limestone",
"conglomerate": "tfc:conglomerate",
"dolomite": "tfc:dolomite",
"chert": "tfc:chert",
"chalk": "tfc:chalk",
"rhyolite": "tfc:rhyolite",
"basalt": "tfc:basalt",
"andesite": "tfc:andesite",
"dacite": "tfc:dacite",
"quartzite": "tfc:quartzite",
"slate": "tfc:slate",
"phyllite": "tfc:phyllite",
"schist": "tfc:schist",
"gneiss": "tfc:gneiss",
"marble": "tfc:marble"
},
"bottom": [
"gneiss",
"schist",
"diorite",
"granite",
"gabbro"
],
"layers": [{
"id": "felsic",
"layers": {
"granite": "bottom"
}
}, {
"id": "intermediate",
"layers": {
"diorite": "bottom"
}
}, {
"id": "mafic",
"layers": {
"gabbro": "bottom"
}
}, {
"id": "igneous_extrusive",
"layers": {
"rhyolite": "felsic",
"andesite": "intermediate",
"dacite": "intermediate",
"basalt": "mafic"
}
}, {
"id": "igneous_extrusive_x2",
"layers": {
"rhyolite": "igneous_extrusive",
"andesite": "igneous_extrusive",
"dacite": "igneous_extrusive",
"basalt": "igneous_extrusive"
}
}, {
"id": "phyllite",
"layers": {
"phyllite": "bottom",
"gneiss": "bottom",
"schist": "bottom"
}
}, {
"id": "slate",
"layers": {
"slate": "bottom",
"phyllite": "phyllite"
}
}, {
"id": "marble",
"layers": {
"marble": "bottom"
}
}, {
"id": "quartzite",
"layers": {
"quartzite": "bottom"
}
}, {
"id": "sedimentary",
"layers": {
"shale": "slate",
"claystone": "slate",
"conglomerate": "slate",
"limestone": "marble",
"dolomite": "marble",
"chalk": "marble",
"chert": "quartzite"
}
}, {
"id": "uplift",
"layers": {
"slate": "phyllite",
"marble": "bottom",
"quartzite": "bottom",
"diorite": "sedimentary",
"granite": "sedimentary",
"gabbro": "sedimentary"
}
}],
"ocean_floor": [
"igneous_extrusive"
],
"volcanic": [
"igneous_extrusive",
"igneous_extrusive_x2"
],
"land": [
"igneous_extrusive",
"sedimentary"
],
"uplift": [
"sedimentary",
"uplift"
]
}