Biome Dokumentation (Bedrock)

Aus Minecraft Wiki
Wechseln zu: Navigation, Suche

Dies ist die Biom Dokumentation für die Bedrock Edition 1.14.0.

Überblick[Bearbeiten]

Biomes beschreiben, wie eine lokale Region der Welt aussehen und sich verhalten sollte. Durch das Schreiben von benutzerdefinierten Biomdaten kann man:

  1. Die allgemeine Geländeform für ein Biom ändern.
  2. Das Frequenzverhältnis der Biomtypen ändern.
  3. Die Blöcke, aus denen das Biom besteht, sowohl an der Oberfläche als auch unten, ändern.
  4. Die Verteilung der dekorativen Merkmale (z. B. Bäume, Gras usw.) für ein Biom ändern.
  5. Die Mobs, die für ein Biom erscheinen, ändern.
  6. Das Klima für ein Biom ändern.

JSON Format[Bearbeiten]

Alle Biome sollten die Version, auf die sie abzielen, über das Feld "format_version" angeben. Der Rest der Biomdaten ist in unabhängige JSON-Unterobjekte oder -Komponenten unterteilt. Im Allgemeinen können Sie sich das Vorhandensein einer Komponente als Definition des Spielverhaltens eines Bioms vorstellen, wobei die Komponentenfelder definieren, wie es beteiligt ist. Grundsätzlich gibt es zwei Kategorien von Komponenten:

  1. Namespaced-Komponenten (d. H. Solche mit dem Präfix 'name:') werden bestimmten Verhaltensweisen im Spiel zugeordnet. Sie können Mitgliedsfelder haben, die dieses Verhalten parametrisieren. Es werden nur Namen mit einer gültigen Zuordnung unterstützt.
  2. Komponenten ohne Namespace werden als 'Tags' behandelt: Jeder Name, der aus alphanumerischen Zeichen besteht, '.' und '_' ist erlaubt; Das Tag wird an das Biom angehängt, damit entweder Code oder Daten auf seine Existenz prüfen können. Tag-Komponenten haben möglicherweise keine Mitgliedsfelder.

Weitere Informationen und die vollständige Liste der Namespace-Komponenten finden Sie im vollständigen Biom-Schema unten.

Hier ist ein Beispielbiom:
{
  "format_version": "1.13.0",
  "minecraft:biome": {
    "description": {
      "identifier": "plains"
    },
    "components": {
      "minecraft:climate": {
        "downfall": 0.4,
        "snow_accumulation": [ 0.0, 0.125 ],
        "temperature": 0.8
      },
      "minecraft:overworld_height": {
        "noise_type": "lowlands"
      },
      "minecraft:overworld_surface": {
        "floor_depth": 7,
        "floor_material": "minecraft:gravel",
        "foundation_material": "minecraft:stone",
        "mid_material": "minecraft:dirt",
        "top_material": "minecraft:grass"
      },
      "minecraft:world_generation_rules": {
        "hills_transformation": [
          [ "forest_hills", 1 ],
          [ "forest", 2 ]
        ],
        "mutate_transformation": "sunflower_plains",
        "generate_for_climates": [
          [ "medium", 3 ],
          [ "warm", 1 ],
          [ "cold", 1 ]
        ]
      },

      "animal": {},
      "monster": {},
      "overworld": {},
      "plains": {}
    }
  }
}

Neue Biome hinzufügen[Bearbeiten]

Biomes werden aus JSON-Dateien in den Biom-Unterordnern von Verhaltenspaketen gelesen. Durch das Laden wird ein Biom pro Datei erzwungen. Der Dateiname und der tatsächliche Biomname müssen übereinstimmen. Durch Hinzufügen einer Datei mit einem neuen Namen zum Speicherort der Biomdaten wird diese für das Spiel verfügbar, während vorhandene Biome über Dateien überschrieben werden können, die ihrem vorhandenen Namen entsprechen. Beachten Sie, dass Sie beim Hinzufügen eines neuen Bioms Komponentendaten schreiben müssen, die es ermöglichen, an der Weltgenerierung teilzunehmen (siehe das vollständige Schema unten), da es sonst nicht in Ihren Welten angezeigt wird.

Schema[Bearbeiten]

  {
      version "format_version"
      object "minecraft:climate"[0,3] : opt // Beschreibt Temperatur, Luftfeuchtigkeit, Niederschlag usw. Biome ohne diese Komponente haben die standartwerte.
      {
          float "temperature"
          float "downfall"
          array "snow_accumulation"[2]
          {
              float "0"
              float "1"
          }
      }
      object "minecraft:overworld_height"[0,2] : opt // Noisemapparameter, mit denen die Geländehöhe in der Überwelt gesteuert wird.
      {
          array "noise_params"[2] : opt
          {
              float "0"
              float "1"
          }
          string "noise_type" : opt
      }
      object "minecraft:forced_features"[0,14] : opt // Erzwingt, dass bestimmte dekorative Merkmale (Bäume, Pflanzen usw.) in diesem Biom angezeigt werden, unabhängig von den normalen Dekorationsregeln.
      {
          array "first_pass" : opt
          {
              object "<any array element>" : opt
              {
                  molang "iterations" // Anzahl der zu erzeugenden Streupositionen
                  molang "chance_percent" : opt // Wahrscheinlichkeit (0-100], dass diese Streuung auftritt. Nicht bei jeder Iteration ausgewertet, entweder werden keine Iterationen ausgeführt oder alle werden ausgeführt.
                  molang "x" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "x" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder im Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "z" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "z" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Gitter
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "y" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "y" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Gitter
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  feature_reference "places_feature"
              }
          }
          array "before_underground_pass" : opt
          {
              object "<any array element>" : opt
              {
                  molang "iterations" // Anzahl der zu erzeugenden Streupositionen
                  molang "chance_percent" : opt // Wahrscheinlichkeit (0-100], dass diese Streuung auftritt. Nicht bei jeder Iteration ausgewertet, entweder werden keine Iterationen ausgeführt oder alle werden ausgeführt.
                  molang "x" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "x" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Gitter
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "z" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "z" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "y" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "y" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  feature_reference "places_feature"
              }
          }
          array "underground_pass" : opt
          {
              object "<any array element>" : opt
              {
                  molang "iterations" // Anzahl der zu erzeugenden Streupositionen
                  molang "chance_percent" : opt // Wahrscheinlichkeit (0-100], dass diese Streuung auftritt. Nicht bei jeder Iteration ausgewertet, entweder werden keine Iterationen ausgeführt oder alle werden ausgeführt.
                  molang "x" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "x" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "z" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "z" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "y" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "y" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  feature_reference "places_feature"
              }
          }
          array "after_underground_pass" : opt
          {
              object "<any array element>" : opt
              {
                  molang "iterations" // Anzahl der zu erzeugenden Streupositionen
                  molang "chance_percent" : opt // Wahrscheinlichkeit (0-100], dass diese Streuung auftritt. Nicht bei jeder Iteration ausgewertet, entweder werden keine Iterationen ausgeführt oder alle werden ausgeführt.
                  molang "x" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "x" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "z" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "z" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "y" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem
                  object "y" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  feature_reference "places_feature"
              }
          }
          array "before_surface_pass" : opt
          {
              object "<any array element>" : opt
              {
                  molang "iterations" // Anzahl der zu erzeugenden Streupositionen
                  molang "chance_percent" : opt // Wahrscheinlichkeit (0-100], dass diese Streuung auftritt. Nicht bei jeder Iteration ausgewertet, entweder werden keine Iterationen ausgeführt oder alle werden ausgeführt.
                  molang "x" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "x" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "z" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "z" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "y" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "y" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  feature_reference "places_feature"
              }
          }
          array "surface_pass" : opt
          {
              object "<any array element>" : opt
              {
                  molang "iterations" // Anzahl der zu erzeugenden Streupositionen
                  molang "chance_percent" : opt // Wahrscheinlichkeit (0-100], dass diese Streuung auftritt. Nicht bei jeder Iteration ausgewertet, entweder werden keine Iterationen ausgeführt oder alle werden ausgeführt.
                  molang "x" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "x" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "z" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "z" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "y" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "y" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  feature_reference "places_feature"
              }
          }
          array "after_surface_pass" : opt
          {
              object "<any array element>" : opt
              {
                  molang "iterations" // Anzahl der zu erzeugenden Streupositionen
                  molang "chance_percent" : opt // Wahrscheinlichkeit (0-100], dass diese Streuung auftritt. Nicht bei jeder Iteration ausgewertet, entweder werden keine Iterationen ausgeführt oder alle werden ausgeführt.
                  molang "x" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "x" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "z" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "z" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "y" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "y" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  feature_reference "places_feature"
              }
          }
          array "before_liquids_pass" : opt
          {
              object "<any array element>" : opt
              {
                  molang "iterations" // Anzahl der zu erzeugenden Streupositionen
                  molang "chance_percent" : opt // Wahrscheinlichkeit (0-100], dass diese Streuung auftritt. Nicht bei jeder Iteration ausgewertet, entweder werden keine Iterationen ausgeführt oder alle werden ausgeführt.
                  molang "x" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "x" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "z" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "z" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "y" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "y" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  feature_reference "places_feature"
              }
          }
          array "liquids_pass" : opt
          {
             object "<any array element>" : opt
              {
                  molang "iterations" // Anzahl der zu erzeugenden Streupositionen
                  molang "chance_percent" : opt // Wahrscheinlichkeit (0-100], dass diese Streuung auftritt. Nicht bei jeder Iteration ausgewertet, entweder werden keine Iterationen ausgeführt oder alle werden ausgeführt.
                  molang "x" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "x" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "z" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "z" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "y" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "y" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  feature_reference "places_feature"
              }
          }
          array "after_liquids_pass" : opt
          {
              object "<any array element>" : opt
              {
                  molang "iterations" // Anzahl der zu erzeugenden Streupositionen
                  molang "chance_percent" : opt // Wahrscheinlichkeit (0-100], dass diese Streuung auftritt. Nicht bei jeder Iteration ausgewertet, entweder werden keine Iterationen ausgeführt oder alle werden ausgeführt.
                  molang "x" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "x" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "z" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "z" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "y" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "y" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  feature_reference "places_feature"
              }
          }
          array "before_sky_pass" : opt
          {
              object "<any array element>" : opt
              {
                  molang "iterations" // Anzahl der zu erzeugenden Streupositionen
                  molang "chance_percent" : opt // Wahrscheinlichkeit (0-100], dass diese Streuung auftritt. Nicht bei jeder Iteration ausgewertet, entweder werden keine Iterationen ausgeführt oder alle werden ausgeführt.
                  molang "x" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "x" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "z" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "z" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "y" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "y" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  feature_reference "places_feature"
              }
          }
          array "sky_pass" : opt
          {
              object "<any array element>" : opt
              {
                  molang "iterations" // Anzahl der zu erzeugenden Streupositionen
                  molang "chance_percent" : opt // Wahrscheinlichkeit (0-100], dass diese Streuung auftritt. Nicht bei jeder Iteration ausgewertet, entweder werden keine Iterationen ausgeführt oder alle werden ausgeführt.
                  molang "x" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "x" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "z" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "z" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "y" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "y" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  feature_reference "places_feature"
              }
          }
          array "after_sky_pass" : opt
          {
              object "<any array element>" : opt
              {
                  molang "iterations" // Anzahl der zu erzeugenden Streupositionen
                  molang "chance_percent" : opt // Wahrscheinlichkeit (0-100], dass diese Streuung auftritt. Nicht bei jeder Iteration ausgewertet, entweder werden keine Iterationen ausgeführt oder alle werden ausgeführt.
                  molang "x" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "x" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "z" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "z" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "y" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "y" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  feature_reference "places_feature"
              }
          }
          array "final_pass" : opt
          {
              object "<any array element>" : opt
              {
                  molang "iterations" // Anzahl der zu erzeugenden Streupositionen
                  molang "chance_percent" : opt // Wahrscheinlichkeit (0-100], dass diese Streuung auftritt. Nicht bei jeder Iteration ausgewertet, entweder werden keine Iterationen ausgeführt oder alle werden ausgeführt.
                  molang "x" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "x" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen MoLang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "z" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "z" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  molang "y" : opt // Ausdruck für die Koordinate (wird bei jeder Iteration ausgewertet). Sich gegenseitig ausschließen mit zufälligem Verteilungsobjekt unten.
                  object "y" : opt // Verteilung für die Koordinate (ausgewertet bei jeder Iteration). Mit dem obigen Molang-Ausdruck gegenseitig ausschließen.
                  {
                      enumerated_value "distribution" // Art der Verteilung - einheitlicher Zufall, Gauß (im Bereich zentriert) oder Raster
                      int "step_count" : opt // Wenn der Verteilungstyp Raster ist, wird die Anzahl der Unterteilungen entlang dieser Achse definiert
                      array "extent"[2]
                      {
                          molang "0" : opt // Untergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                          molang "1" : opt // Obergrenze (einschließlich) des Streubereichs als Versatz vom Eingabepunkt zur Streuung
                      }
                  }
                  feature_reference "places_feature"
              }
          }
      }
      object "minecraft:automatic_features"[0] : opt // Verwendet die normalen Spawn-Regeln für dekorative Merkmale, um den Baum, die Pflanzen usw. zu bestimmen, die in diesem Biom erscheinen.
      object "minecraft:overworld_surface"[0,5] : opt // Kontrolliert die Blöcke, die für die standardmäßige Geländegenerierung von Minecraft Overworld verwendet werden.
      {
          block_reference "top_material" // Kontrolliert den Blocktyp, der für die Oberfläche dieses Bioms verwendet wird.
          block_reference "mid_material" // Steuert den Blocktyp, der in einer Schicht unter der Oberfläche dieses Bioms verwendet wird.
          block_reference "floor_material" // Steuert den Blocktyp, der als Boden für Gewässer in diesem Biom verwendet wird.
          block_reference "foundation_material" // Steuert den Blocktyp, der tief unter der Erde in diesem Biom verwendet wird.
          int "floor_depth" // Steuert, wie tief unter dem Weltwasserspiegel der Boden liegen soll.
      }
      object "minecraft:surface_material_adjustments"[0,1] : opt // Gibt detaillierte Detailänderungen an Blöcken an, die bei der Geländegenerierung verwendet werden (basierend auf einer Noise-Funktion).
      {
          array "adjustments" : opt // Alle Anpassungen, die den Noisewerten der Spalten entsprechen, werden in der angegebenen Reihenfolge angewendet.
          {
              object "<any array element>"
              {
                  object "materials"
                  {
                      block_reference "top_material" // Kontrolliert den Blocktyp, der für die Oberfläche dieses Bioms verwendet wird.
                      block_reference "mid_material" // Steuert den Blocktyp, der in einer Schicht unter der Oberfläche dieses Bioms verwendet wird.
                      block_reference "floor_material" // Steuert den Blocktyp, der als Boden für Gewässer in diesem Biom verwendet wird.
                      block_reference "foundation_material" // Steuert den Blocktyp, der tief unter der Erde in diesem Biom verwendet wird.
                      int "floor_depth" // Steuert, wie tief unter dem Weltwasserspiegel der Boden liegen soll.
                  }
                  array "noise_range"[2] // Definiert einen Bereich von Rauschwerten [min, max), für die diese Einstellung angewendet werden soll.
                  {
                      string "0" : opt
                      float "0" : opt
                      string "1" : opt
                      float "1" : opt
                  }
              }
          }
      }
      object "minecraft:swamp_surface"[0,5] : opt // Ähnlich wie bei der overwold_surface. Fügt Details zur Sumpfoberfläche hinzu.
      {
          block_reference "top_material" // Kontrolliert den Blocktyp, der für die Oberfläche dieses Bioms verwendet wird.
          block_reference "mid_material" // Steuert den Blocktyp, der in einer Schicht unter der Oberfläche dieses Bioms verwendet wird.
          block_reference "floor_material" // Steuert den Blocktyp, der als Boden für Gewässer in diesem Biom verwendet wird.
          block_reference "foundation_material" // Steuert den Blocktyp, der tief unter der Erde in diesem Biom verwendet wird.
          int "floor_depth" // Steuert, wie tief unter dem Weltwasserspiegel der Boden liegen soll.
      }
      object "minecraft:frozen_ocean_surface"[0,5] : opt // Ähnlich wie bei der overwold_surface. Fügt Eisberge hinzu.
      {
          block_reference "top_material" // Kontrolliert den Blocktyp, der für die Oberfläche dieses Bioms verwendet wird.
          block_reference "mid_material" // Steuert den Blocktyp, der in einer Schicht unter der Oberfläche dieses Bioms verwendet wird.
          block_reference "floor_material" // Steuert den Blocktyp, der als Boden für Gewässer in diesem Biom verwendet wird.
          block_reference "foundation_material" // Steuert den Blocktyp, der tief unter der Erde in diesem Biom verwendet wird.
          int "floor_depth" // Steuert, wie tief unter dem Weltwasserspiegel der Boden liegen soll.
     }
      object "minecraft:mesa_surface"[0,9] : opt // Ähnlich wie bei overworld_surface. Fügt farbige Schichten und optionale Säulen hinzu.
      {
          block_reference "top_material" // Kontrolliert den Blocktyp, der für die Oberfläche dieses Bioms verwendet wird.
          block_reference "mid_material" // Steuert den Blocktyp, der in einer Schicht unter der Oberfläche dieses Bioms verwendet wird.
          block_reference "floor_material" // Steuert den Blocktyp, der als Boden für Gewässer in diesem Biom verwendet wird.
          block_reference "foundation_material" // Steuert den Blocktyp, der tief unter der Erde in diesem Biom verwendet wird.
          int "floor_depth" // Steuert, wie tief unter dem Weltwasserspiegel der Boden liegen soll.
          block_reference "clay_material"
          block_reference "hard_clay_material"
          bool "bryce_pillars"
          bool "has_forest"
      }
      object "minecraft:nether_surface"[0] : opt // Verwendet die Standardgenerierung für Minecraft Nether-Gelände.
      object "minecraft:the_end_surface"[0] : opt // Verwendet die Standardgenerierung für Minecraft End-Gelände.
      object "minecraft:world_generation_rules"[0,3] : opt // Steuert, wie dieses Biom während der Weltgenerierung instanziiert (und dann möglicherweise modifiziert) wird.
      {
          biome_reference "hills_transformation" : opt
          array "hills_transformation" : opt
          {
              biome_reference "<any array element>" : opt
              array "<any array element>"[2] : opt
              {
                  biome_reference "0"
                  int "1"
              }
          }
          biome_reference "mutate_transformation" : opt
          array "mutate_transformation" : opt
          {
              biome_reference "<any array element>" : opt
              array "<any array element>"[2] : opt
              {
                  biome_reference "0"
                  int "1"
              }
          }
          array "generate_for_climates" : opt // Steuert die Klimakategorien der Weltgeneration, für die dieses Biom erscheinen kann. Ein einzelnes Biom kann mehreren Kategorien mit unterschiedlichen Gewichtungen zugeordnet werden.
          {
              array "<any array element>"[2]
              {
                  enumerated_value "0" // Name einer Klimakategorie
                  int "1" // Gewicht, mit dem dieses Biom ausgewählt werden soll, im Vergleich zu anderen Biomen derselben Kategorie
              }
          }
      }
      object "[a-z0-9_.:]+"[0] : opt // Fügen Sie diesem Biom beliebige String-Tags hinzu
  }

Siehe auch[Bearbeiten]