Skip to content

Creating Biomes

Outspending edited this page Dec 22, 2023 · 3 revisions

Creating Biomes

In this you will learn everything about creating Custom Biomes. BiomesAPI offers many features to improve your biomes.

CustomBiome

CustomBiome is the main class for all biomes in BiomesAPI. You will also have a CustomBiome.Builder which can improve the look of your code dramatically. Both examples are the same biome. As shown below:

Without Builder

CustomBiome newBiome = new CustomBiome(
        new BiomeResourceKey("test", "custombiome"),
        new BiomeSettings(
                0.1F,
                0.2F,
                0.3F,
                0.4F,
                BiomeTempModifier.NONE
        ),
        "#db4929",
        "#22c1c8",
        "#c8227d",
        "#c82222",
        "#b9de2e",
        "#40df8b",
        new ParticleRenderer(
                AmbientParticle.CLOUD,
                0.001F
        )
);

With Builder

CustomBiome biome = CustomBiome.builder()
        .resourceKey(BiomeResourceKey.of("test", "custombiome"))
        .particleRenderer(ParticleRenderer.of(AmbientParticle.CLOUD, 0.001F))
        .settings(BiomeSettings.builder()
                .depth(0.1F)
                .scale(0.2F)
                .temperature(0.3F)
                .downfall(0.4F)
                .modifier(BiomeTempModifier.NONE)
                .build())
        .fogColor("#db4929")
        .foliageColor("#22c1c8")
        .skyColor("#c8227d")
        .waterColor("#c82222")
        .waterFogColor("#b9de2e")
        .grassColor("#40df8b")
        .build();

Learning The Elements

Here will teach you what each parameter does within the CustomBiome. Here's an example:

ResourceKey

A biome's ResourceKey is essential for creating custom biomes. These keys tell minecraft what the biome is identified as. Let's give an example for the classic Plains biome. The Plains biome has a ResourceKey of minecraft:plains.

These keys also cannot be used twice, if you are creating more than 1 biome make sure they have different resource keys and make sure they aren't trying to override vanilla minecraft biomes.

Parameters:

  • key: String ("x:path")
  • path: String ("key:x")

Particle Renderer

The ParticleRenderer is the main class for Ambient Particles. These are particles that can make a biome more ambient.

The Particle Renderer is NOT required for creating custom biomes and can be left out if you dont want any ambient particles inside your biome!

Parameters:

  • ambientParticle: AmbientParticle
  • probablity: float

BiomeSettings

The BiomeSettings are the main settings with creating a custom biome, these ARE required. But you can always use BiomeSettings.defaultSettings() to get the default settings instead of creating your own. These settings are only really useful for world generation.

Default Settings:

  • depth: 0.1F
  • scale: 0.2F
  • temperature: 0.3F
  • downfall: 0.4F
  • modifier: BiomeTempModifier.NONE

Parameters:

  • depth: float
  • scale: float
  • temperature: float,
  • downfall: float,
  • modifier: BiomeTempModifier

Fog Color

This is the color that is displayed between the ground and the sky. This color is displayed no matter what. Even if the player's fog is turned off.

Parameters:

  • Either "rrggbb" or "#rrggbb" is supported

Foliage Color

This is the color of the leaves inside your biome.

Parameters:

  • Either "rrggbb" or "#rrggbb" is supported

Sky Color

This is the color of the sky inside your biome. This is above the fog color.

Parameters:

  • Either "rrggbb" or "#rrggbb" is supported

Water Color

This is the color of the water inside your biome.

Parameters:

  • Either "rrggbb" or "#rrggbb" is supported

Water Fog Color

This is the color of the water fog when you are inside water.

Parameters:

  • Either "rrggbb" or "#rrggbb" is supported

Grass Color

This is the color of the grass inside the biome.

Parameters:

  • Either "rrggbb" or "#rrggbb" is supported

End Result

CustomBiome biome = CustomBiome.builder() // Creates a new biome builder
        .resourceKey(BiomeResourceKey.of("test", "custombiome")) // Resource key for the biome aka "test:custombiome" (These cannot be registered twice, the resource keys MUST be different than other biomes.)
        .particleRenderer(ParticleRenderer.of(AmbientParticle.CLOUD, 0.001F)) // Ambient Particles for the biome (Not Required)
        .settings(BiomeSettings.builder() // Biome settings (Required, default settings are used if not provided)
                .depth(0.1F) // Depth of the biome (Required, default is 0.1F)
                .scale(0.2F) // Scale of the biome (Required, default is 0.2F)
                .temperature(0.3F) // Temperature of the biome (Required, default of 0.3F)
                .downfall(0.4F) // Downfall of the biome (Required, default is 0.4F)
                .modifier(BiomeTempModifier.NONE) // Temperature modifier of the biome (Required, default is NONE)
                .build())
        .fogColor("#db4929") // Fog color of the biome (Required)
        .foliageColor("#22c1c8") // Foliage color of the biome (Not Required)
        .skyColor("#c8227d") // Sky color of the biome (Required)
        .waterColor("#c82222") // Water color of the biome (Required)
        .waterFogColor("#b9de2e") // Water fog color of the biome (Required)
        .grassColor("#40df8b") // Grass color of the biome (Not Required)
        .build();