=========================== List of Terrain Expressions =========================== Below is a list of terrain expressions you can try out and use for your world generation. If you haven't already, please read the :doc:`Terrain From Scratch ` & :doc:`Creating A Pack From Scratch ` The terrain expressions shown below can be found in the default overworld pack that comes prepacked with Terra, which can be viewed through `GitHub `__. Plain ===== .. code-block:: yaml :caption: eq_plain.yml :linenos: # Basic relatively flat terrain. vars: &variables base: 64 height: 10 terrain: sampler: type: EXPRESSION dimensions: 3 variables: *variables expression: -y + base sampler-2d: dimensions: 2 type: EXPRESSION variables: *variables expression: (simplex(x, z)+1)/2 * height samplers: simplex: dimensions: 2 type: FBM octaves: 4 sampler: type: OPEN_SIMPLEX_2 frequency: 0.0075 Desert ====== .. code-block:: yaml :caption: eq_desert.yml :linenos: # Flat low elevation desert terrain vars: &variables base: 64 # Base terrain y level groundHeight: 5 # Block height of base noise duneHeight: 10 # Block height of dunes duneSpacing: 20 # Higher number = more spacing between dunes duneFrequency: 0.7 # Overall dune frequency duneRotationRange: pi/3 # How much dune cells are randomly rotated, 0 = anisotrophic, pi = isotrophic terrain: sampler: dimensions: 3 type: EXPRESSION variables: *variables expression: -y + base sampler-2d: dimensions: 2 type: EXPRESSION variables: *variables expression: | duneHeight * dunes(x*duneFrequency, z*duneFrequency) * ((duneHeightVariation(x,z)/4)+0.75) + groundHeight * (ground(x, z)+1)/2 samplers: duneHeightVariation: dimensions: 2 type: FBM octaves: 2 sampler: type: OPEN_SIMPLEX_2 frequency: 0.02 dunes: # Dune height map [0, 1] dimensions: 2 type: DOMAIN_WARP amplitude: 5 warp: type: OPEN_SIMPLEX_2 frequency: 0.04 sampler: type: DOMAIN_WARP amplitude: 15 warp: type: OPEN_SIMPLEX_2 frequency: 0.02 salt: 1 sampler: # Absolute sine wave domain rotated via CELL_VALUE, cell edges are hidden by DISTANCE_2_DIV type: EXPRESSION variables: *variables expression: | -mask(x, z) * (-|sin(( x*sin(rotation(x,z)*duneRotationRange) +z*cos(rotation(x,z)*duneRotationRange))/duneSpacing)|+1) samplers: height: &cell dimensions: 2 type: CELLULAR frequency: 0.01 rotation: <<: *cell return: CellValue mask: <<: *cell return: Distance2Div ground: dimensions: 2 type: FBM sampler: type: OPEN_SIMPLEX_2 frequency: 0.005 Mountains ========= .. code-block:: yaml :caption: eq_mountains.yml :linenos: # Basic peaked mountains. vars: &variables base: 80 height: 150 terrain: sampler: dimensions: 3 type: EXPRESSION variables: *variables expression: -y + base samplers: sampler-2d: dimensions: 2 type: EXPRESSION expression: (noise(x, z)+1)/2 * height variables: *variables samplers: noise: dimensions: 2 type: DOMAIN_WARP amplitude: 5 warp: type: OPEN_SIMPLEX_2 frequency: 0.03 sampler: type: FBM octaves: 4 sampler: type: LINEAR min: -1 max: 0.2 sampler: type: CELLULAR frequency: 0.008 Overhangs ========= .. code-block:: yaml :caption: eq_overhangs.yml :linenos: # Shattered hills vars: &variables base: 80 height: 35 shatterHeight: 78 terrain: sampler: dimensions: 3 type: EXPRESSION variables: *variables expression: -y + base + (simplex(x, z)+1)/2 * height + |shatter(x/3, y, z/3)*shatterHeight| samplers: shatter: type: CLAMP min: -1 max: 1 dimensions: 3 sampler: type: FBM dimensions: 3 octaves: 4 sampler: type: OPEN_SIMPLEX_2 frequency: 0.025 simplex: dimensions: 2 type: FBM octaves: 4 sampler: type: OPEN_SIMPLEX_2 frequency: 0.0075 .. tip:: You can check out even more terrain samplers from the default Overworld config pack, which can be viewed through `Github `__.