Skip to content

Multi‐Noise Placement

gniftygnome edited this page Mar 27, 2024 · 12 revisions

Add Biomes

Adding a biome by noise requires the dimension key to add it to, the biome key of the biome to add, and a noise hypercube describing where the biome will be added.

⚠️ This method requires familiarity with Minecraft's multi-noise biome placement strategy, which is complex and confusing. If possible, the best course of action is to use biome replacement instead.

in code

  • Methods: addOverworld, addNether, addEnd
BiomePlacement.addOverworld(BiomeKeys.CRIMSON_FOREST,
        new MultiNoiseUtil.NoiseHypercube(
                MultiNoiseUtil.ParameterRange.of(-1.0f, -0.15f),
                MultiNoiseUtil.ParameterRange.of(-1.0f, -0.35f),
                MultiNoiseUtil.ParameterRange.of(0.3f, 1.0f),
                MultiNoiseUtil.ParameterRange.of(-0.375f, 0.05f),
                MultiNoiseUtil.ParameterRange.of(0.0f),
                MultiNoiseUtil.ParameterRange.of(0.0f, 1.0f),
                0L));

as data

  • Multiple additions can be specified in the additions list.
{
  "additions": [
    {
      "dimension": "minecraft:overworld",
      "biome": "minecraft:crimson_forest",
      "noise": {
        "temperature": { "min": -1.0, "max": -0.15 },
        "humidity": { "min": -1.0, "max": -0.35 },
        "continentalness": { "min": 0.3, "max": 1.0 },
        "erosion": { "min": -0.375, "max": 0.05 },
        "depth": { "min": 0.0, "max": 0.0 },
        "weirdness": { "min": 0.0, "max": 1.0 },
        "offset": 0.0
      }
    }
  ]
}

Remove Biomes

To remove a multi-noise biome, specify the dimension key to remove it from and the biome key of the biome to remove.

⚠️ Removing biomes without adding something to fill the noise region occupied by the removed biome can result in broken worldgen. For example, oceans on land, land biomes in the ocean, and strangely shaped or oversized biomes.

in code

  • Methods: removeOverworld, removeNether, removeEnd
BiomePlacement.removeOverworld(BiomeKeys.CHERRY_GROVE);

as data

  • Multiple removals can be specified in the removals list.
{
  "removals": [
    {
      "dimension": "minecraft:overworld",
      "biome": "minecraft:cherry_grove"
    }
  ]
}