> ## Documentation Index
> Fetch the complete documentation index at: https://docs.borntocraftstudio.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom Biome Definition

> Define a new custom biome.

The **Custom Biome Definition** entry is the core of this extension. It allows you to register a entirely new biome into the server's datapack system.

## Configuration

<ResponseField name="biomeId" type="String" required>
  Unique ID for the biome (e.g. `enchanted_forest`). This is used in actions and checks.
</ResponseField>

<ResponseField name="displayName" type="String">
  The readable name used in placeholders and UI/Chat.
</ResponseField>

<ResponseField name="baseBiome" type="String" default="minecraft:plains">
  The vanilla biome to use as a template. Determines mob spawning and generation features unless overridden. Example: `minecraft:forest`.
</ResponseField>

<ResponseField name="temperature" type="Float" default="0.5">
  Biome temperature (0.0 to 1.0). Affects snow generation and foliage color in some resource packs.
</ResponseField>

<ResponseField name="downfall" type="Float" default="0.5">
  Rain/Snow amount (0.0 to 1.0).
</ResponseField>

### Visuals (Colors)

<ResponseField name="fogColor" type="HexColor">
  Color of the distance fog.
</ResponseField>

<ResponseField name="waterColor" type="HexColor">
  Color of the water surface and underwater fog.
</ResponseField>

<ResponseField name="skyColor" type="HexColor">
  Color of the sky.
</ResponseField>

<ResponseField name="grassColor" type="HexColor">
  Override color for grass blocks.
</ResponseField>

<ResponseField name="foliageColor" type="HexColor">
  Override color for tree leaves and vines.
</ResponseField>

### Visual Attributes (1.21.11+)

<ResponseField name="fogStartDistance" type="Float">
  Distance where fog starts.
</ResponseField>

<ResponseField name="fogEndDistance" type="Float">
  Distance where fog ends.
</ResponseField>

<ResponseField name="skyFogEndDistance" type="Float">
  Distance where sky fog ends.
</ResponseField>

<ResponseField name="waterFogStartDistance" type="Float">
  Distance where water fog starts.
</ResponseField>

<ResponseField name="waterFogEndDistance" type="Float">
  Distance where water fog ends.
</ResponseField>

<ResponseField name="cloudFogEndDistance" type="Float">
  Distance where cloud fog ends.
</ResponseField>

<ResponseField name="cloudHeight" type="Float">
  Height of the clouds.
</ResponseField>

<ResponseField name="skyLightFactor" type="Float">
  Multiplier for sky light brightness.
</ResponseField>

<ResponseField name="sunAngle" type="Float">
  Sun angle (0.0 = overhead).
</ResponseField>

<ResponseField name="moonAngle" type="Float">
  Moon angle.
</ResponseField>

<ResponseField name="starAngle" type="Float">
  Star angle.
</ResponseField>

<ResponseField name="starBrightness" type="Float">
  Star brightness.
</ResponseField>

<ResponseField name="moonPhase" type="String">
  Moon phase (e.g. `full_moon`, `waning_gibbous`).
</ResponseField>

<CodeGroup>
  ```yaml Example theme={null}
  id: enchanted_biome
  type: custom_biome_definition
  name: "Enchanted Forest"
  biomeId: enchanted_forest
  baseBiome: minecraft:forest
  temperature: 0.7
  fogColor: "#1a3d2e"
  waterColor: "#3f76e4"
  skyColor: "#7ba4db"
  ```
</CodeGroup>

> \[!WARNING]
> You must **restart your server** after creating or modifying a biome definition. The server needs to generate/update the datapack during the startup sequence.
