> For the complete documentation index, see [llms.txt](https://paradiseland.gitbook.io/wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://paradiseland.gitbook.io/wiki/generator-config/properties/layers-floating-islands.md).

# Layers (floating islands)

{% hint style="warning" %}
`Please note that understanding this property might be a bit challenging, as it involves knowledge of a noise algorithm (in this case, Perlin Noise).`
{% endhint %}

This list contains different layers that generate islands with varying shapes.

```yaml
layers:
-   enabled: true
    name: fat_large_layer
    extraHeight: 0
    noiseScaleX: 32.0
    noiseScaleY: 32.0
    noiseScaleZ: 32.0
    noiseAmplitude: 256.0
    solidBlockThreshold: 0.0
    riverType: WATER
    generateCaves: true
    generateTrails: true
-   enabled: true
    name: thin_large_layer
    extraHeight: 0
    noiseScaleX: 32.0
    noiseScaleY: 64.0
    noiseScaleZ: 32.0
    noiseAmplitude: 128.0
    solidBlockThreshold: 75.0
    riverType: WATER
    generateCaves: true
    generateTrails: true
-   enabled: true
    name: thin_tiny_layer
    extraHeight: 64
    noiseScaleX: 64.0
    noiseScaleY: 64.0
    noiseScaleZ: 64.0
    noiseAmplitude: 128.0
    solidBlockThreshold: 99.9
    riverType: NONE
    generateCaves: false
    generateTrails: false
```

A layer is essentially the configuration used to generate the blobs that represent the floating islands. In this case, there are three layers named: `fat_large_layer`, `thin_large_layer`, and `thin_tiny_layer`.

> **NOTE**: I use the term "blob" to represent an island that you can think of as a horizontal lava lamp bubble.

<figure><img src="https://3586521393-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVaTufFv4BbKVyQLim4tI%2Fuploads%2Fgkwu9fmbbQiTrUiMPuqq%2Fimage.png?alt=media&amp;token=7f5cabd9-dd27-483f-810d-77a9d258484a" alt="" width="320"><figcaption><p>Lava lamp from Wikipedia</p></figcaption></figure>

{% hint style="warning" %} <mark style="color:yellow;">You cannot edit already generated worlds by adding or removing layers. Starting from ParadiseLand BETA 1.3.0, when a world is generated, it registers all these layers that can be used. If you remove a layer from this list, an already-generated world will add a dummy layer, and if you add a new one, it will be ignored.</mark>
{% endhint %}

## Properties

### Name

A unique internal name for this layer (not exposed externally).

### Entra height

This property adds additional height to the islands. The value range is from 0 to 64, with the default set at 0.

### Noise scale (x, y, z)

> Scale of Perlin noise in the X, Y, and Z coordinates.

The 'noise scale' controls how far apart spatial variations in the noise are.

Imagine looking at the generated islands. Decreasing the noise scales spreads out the generated blobs, creating a broader landscape with larger, smoother, and more regular features. Conversely, increasing the noise scale gives you smaller, jagged, and rugged blobs.

For example: assuming a 'noiseAmplitude' of 1, adjusting these values affects the size of the generated islands. It's recommended to avoid values close to 1, as that can lead to a flat world.

### Noise amplitude

> This value controls the range of value changes between nearby points in the noise.

In simple terms, a smaller value leads to more pronounced changes between points, creating distinct features. If the amplitude is far from zero, the generated islands will be smoother and broader; on the other hand, higher values result in narrower and more concentrated features.

> My advice is to keep this value at 256.

### Solid block threshold

The default threshold is 0. During generation, each block corresponds to a value; blocks are placed if their value surpasses this threshold.

{% hint style="info" %}
**NOTE**: The threshold can be negative, potentially resulting in larger generated features.
{% endhint %}

### River type

<table data-view="cards"><thead><tr><th>Value</th><th>Description</th></tr></thead><tbody><tr><td><strong>NONE</strong></td><td>No rivers</td></tr><tr><td><mark style="color:blue;"><strong>WATER</strong></mark></td><td>Water rivers</td></tr><tr><td><mark style="color:red;"><strong>LAVA</strong></mark></td><td>Lava rivers</td></tr></tbody></table>

### Generate caves

Set it to 'true' if you want to generate caves on this layer.

### Generate trails

Set it to 'true' if you want to generate trails on this layer.

***

## Samples

> Note that the values of the other properties are set to their default values.

### Noise amplitude = 256

<table><thead><tr><th>Layer config</th><th>Result</th></tr></thead><tbody><tr><td><pre class="language-yaml"><code class="lang-yaml">noiseScaleX: 1
noiseScaleY: 1
noiseScaleZ: 1
noiseAmplitude: 256.0
</code></pre></td><td>A thick flat layer from both above and below.</td></tr><tr><td><pre class="language-yaml"><code class="lang-yaml">noiseScaleX: 1
noiseScaleY: 16
noiseScaleZ: 1
noiseAmplitude: 256.0
</code></pre></td><td>An empty layer with no blocks placed.</td></tr><tr><td><pre class="language-yaml"><code class="lang-yaml">noiseScaleX: 16
noiseScaleY: 16
noiseScaleZ: 16
noiseAmplitude: 256.0
</code></pre></td><td>A massive, very large, and flat layer with a rounded shape at the bottom.</td></tr><tr><td><pre class="language-yaml"><code class="lang-yaml">noiseScaleX: 32
noiseScaleY: 32
noiseScaleZ: 32
noiseAmplitude: 256.0
</code></pre></td><td>This is the default fat_large_layer layer configuration.</td></tr><tr><td><pre class="language-yaml"><code class="lang-yaml">noiseScaleX: 64
noiseScaleY: 64
noiseScaleZ: 64
noiseAmplitude: 256.0
</code></pre></td><td>Islands connected by various holes (resembling Swiss cheese), similar to 3D Perlin noise.</td></tr><tr><td><pre class="language-yaml"><code class="lang-yaml">noiseScaleX: 128
noiseScaleY: 128
noiseScaleZ: 128
noiseAmplitude: 256.0
</code></pre></td><td>Similar to the previous configuration, but the islands are smaller, a little bit far away, and irregular. It appears as though they have shrunk and drawn closer together.</td></tr><tr><td><pre class="language-yaml"><code class="lang-yaml">noiseScaleX: 256
noiseScaleY: 256
noiseScaleZ: 256
noiseAmplitude: 256.0
</code></pre></td><td>Similar to the previous one, but with slightly more pronounced features.</td></tr></tbody></table>

### Noise amplitude = 1

It's worth noting that with a low noise amplitude value, you can generate a flat world at height 0.

<table><thead><tr><th>Layer config</th><th>Result</th></tr></thead><tbody><tr><td><pre class="language-yaml"><code class="lang-yaml">noiseScaleX: 1
noiseScaleY: 1
noiseScaleZ: 1
noiseAmplitude: 1
</code></pre></td><td>A thick flat layer from both above and below.</td></tr><tr><td><pre class="language-yaml"><code class="lang-yaml">noiseScaleX: 16
noiseScaleY: 16
noiseScaleZ: 16
noiseAmplitude: 1
</code></pre></td><td>A massive and flat layer with a rounded shape at the bottom.</td></tr></tbody></table>
