Skip to content

Tutorial for the biome configuration

Cadentem edited this page Feb 17, 2024 · 2 revisions

General

Each (spawn) feature and structure has a biome configuration which is used to determine in which biomes it will generate / occur

These configurations are located in config\iceandfire\*.json

Warning

With future releases the default configurations might be expanded or certain issues will be fixed - these updates will not apply to existing configurations though (you would need to delete your current configuration so that they can be newly generated)

Syntax

Here is an example syntax:

{
  "biomes": [
    [
      {
        "type": "BIOME_TAG",
        "negate": false,
        "value": "minecraft:is_overworld"
      },
      {
        "type": "BIOME_TAG",
        "negate": false,
        "value": "forge:is_hot"
      },
      {
        "type": "BIOME_TAG",
        "negate": true,
        "value": "minecraft:is_jungle"
      },
      {
        "type": "BIOME_TAG",
        "negate": true,
        "value": "minecraft:is_badlands"
      },
      {
        "type": "BIOME_TAG",
        "negate": true,
        "value": "minecraft:is_savanna"
      }
    ]
  ]
}

A generation will happen if the biome...

  • is part of the biome tags minecraft:is_overworld and forge:is_hot
    • Note the usage of the word and here - both statements need to be true
  • is not part of the biome tags minecraft:is_jungle, minecraft:is_badlands and minecraft:is_savanna
    • Note that negate is set to true

This biome configuration has has one entry but you can have multiple

An example for one with multiple:

{
  "biomes": [
    [
      {
        "type": "REGISTRY_NAME",
        "negate": false,
        "value": "terralith:steppe"
      }
    ],
    [
      {
        "type": "REGISTRY_NAME",
        "negate": false,
        "value": "byg:rose_fields"
      }
    ]
  ]
}

A generation will happen if the biome...

  • is terralith:steppe
  • or if it is byg:rose_fields

What this means:

  • The biome tag (BIOME_TAG) and biome (REGISTRY_NAME) entries within a biome configuration entry are combined as AND
  • The biome configuration entries are combined as OR (meaning if the biome which is currently being checked for a generation attempt is valid for any of the biome configuration entries a generation will happen)

Modded support (Terralith, Regions Unexplored, etc.)

It is likely that there is already a certain part of default support because the default biome configurations use biome tags and most mods / datapacks which modify world generation do so as well

Tests were made with various mods / datapacks like this and the Ice and Fire features generated as expected without any additional changes needed

Additionally you can add their biomes to the current biome configuration entries or add new ones like you would for any biome (vanilla or modded)

Support for other dimensions

For this you'll need to add a biome of said dimension to the biome configuration (as a new entry or to an existing entry)

Warning

Certain features might not generate correctly (like dragon caves) because the blocks it checks to replace (to generated the actual dragon cave) are coded for the overworld dimension

Disable generation

Simply remove all biome configuration entries:

{
  "biomes": []
}