cubiomes supports Minecraft Java Edition from Alpha 1.2 / Beta 1.7 through the latest 1.21 releases. Every API call that performs biome generation requires you to specify both a version and a dimension, so understanding these two enumerations is the first step before writing any generator code.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Cubitect/cubiomes/llms.txt
Use this file to discover all available pages before exploring further.
MCVersion enum
TheMCVersion enum in biomes.h assigns a unique integer constant to each supported release. Constants follow the pattern MC_X_Y for patch releases and MC_X as a convenient alias that maps to the latest patch of that major release.
MC_NEWEST when you always want the latest supported version, or a specific constant such as MC_1_18 when targeting a known release.
Version constants table
| Alias | Resolves to | Notes |
|---|---|---|
MC_B1_7 | Beta 1.7 | Oldest supported; uses BiomeNoiseBeta |
MC_B1_8 | Beta 1.8 | Transition to layered generation |
MC_1_7 | MC_1_7_10 | Major biome overhaul (layered) |
MC_1_13 | MC_1_13_2 | Ocean temperature layers added |
MC_1_14 | MC_1_14_4 | Bamboo jungles |
MC_1_16 | MC_1_16_5 | Nether biomes; Xoroshiro RNG |
MC_1_17 | MC_1_17_1 | Last version using layered generation |
MC_1_18 | MC_1_18_2 | New noise-based generation system |
MC_1_19 | MC_1_19_4 | Deep Dark and Mangrove Swamp |
MC_1_20 | MC_1_20_6 | Cherry Grove |
MC_1_21 | MC_1_21_WD | Pale Garden (Winter Drop) |
MC_NEWEST | MC_1_21 | Always tracks the latest release |
Development effort focuses on the newest patch for each major release. Minor releases and versions ≤ 1.0 are available but considered experimental — results may not match the game exactly.
Dimension enum
TheDimension enum encodes each of the three Minecraft dimensions as an integer. The values match Minecraft’s own internal dimension IDs.
| Constant | Value | When it applies |
|---|---|---|
DIM_NETHER | -1 | Nether biomes (MC 1.16+); uses NetherNoise |
DIM_OVERWORLD | 0 | Overworld; uses LayerStack or BiomeNoise |
DIM_END | +1 | The End (MC 1.9+); uses EndNoise |
DIM_UNDEF | 1000 | Sentinel value; not passed to the generator |
Setting up a generator
UsesetupGenerator() to configure the version and flags, then applySeed() to bind a world seed and dimension. You must call both functions before generating any biomes.
Call setupGenerator
Pass a pointer to a
Generator, the MCVersion constant, and a flags value. This initializes internal layer or noise structures for the chosen version.Call applySeed
Pass the world seed (64-bit unsigned integer) and a
Dimension constant. The generator derives all internal salts and noise states from this seed.Generator flags
The flags parameter insetupGenerator() accepts a bitwise OR of the following constants:
| Flag | Effect |
|---|---|
LARGE_BIOMES | Enables the Large Biomes world type (applies extra zoom passes in the layer stack, MC ≤ 1.17) |
NO_BETA_OCEAN | Suppresses ocean generation in Beta-era worlds |
FORCE_OCEAN_VARIANTS | Makes ocean variant biomes appear at scales higher than normal |
0 when none of these options are needed. Flags are ignored for versions where they have no effect.
Can I switch dimensions without calling setupGenerator again?
Can I switch dimensions without calling setupGenerator again?
Yes.
setupGenerator() configures version-specific structures that do not change between dimensions. You only need to call applySeed() with the new Dimension constant to switch.What happens if I pass MC_UNDEF or DIM_UNDEF?
What happens if I pass MC_UNDEF or DIM_UNDEF?
MC_UNDEF and DIM_UNDEF are sentinel values. Passing them to setupGenerator() or applySeed() produces undefined behavior. Always use a real version or dimension constant.Do beta versions support all three dimensions?
Do beta versions support all three dimensions?
No. Beta 1.7 and Beta 1.8 only model Overworld generation. The Nether and End generators require MC 1.16 and MC 1.9 respectively.
Biome generation
Learn how the Generator struct works and how to sample biomes from it.
Noise and layer systems
Understand the layer stack used in 1.17 and the noise system used in 1.18+.