Custom Cloud Layer

Write your own cloud layer, a high peach-coloured haze that shows in any weather, and draw it in your world. The guide has five steps.

What you need

  • The clouds running in your world (Clouds: on in /ms atmosphere info), see Setting Up Clouds.
  • A cloud quality other than off for the player who checks the result (/cloudquality shows it).
  • The mythicseasons.admin permission (operators have it).

Paths are relative to plugins/MythicSeasons.

Step 1: Pick a type

Use the type noise, a steady pattern that shows in any weather. The other types read the weather (simulated, surface-humidity, humidity, surface-wind and outflow) or draw only the patches of a shape (none), see Layer Types.

Step 2: Copy a shipped file

Copy cloud-layers/mars-ice.yml, the shipped noise layer, to cloud-layers/high-haze.yml. The file name is the layer's name. It may use a-z, 0-9, _ and -, and capitals are read as small letters.

Replace the content of the copy with this:

type: noise
color: "FFD9B3"
opacity: 0.35
coverage: 1.0
visible-from-inside: false
voxel-height: 8
min-y: 264
thickness: 24
noise-scale: 400.0
noise-seed: 77
  • Only type is required. Other keys take their defaults, which the shipped cloud-layers/cumulus.yml lists.
  • color is six hex digits (RRGGBB) in quotes: unquoted, YAML reads 000000 as a number and #FFD9B3 as a comment.
  • opacity is 1.0 for solid cubes and 0.1 to 0.99 for see-through ones.
  • coverage is how much of the sky the pattern fills, 0.2 to 2.
  • visible-from-inside: false draws one surface, enough for a high layer. The default true also draws the inside faces, about twice as many.
  • voxel-height: 8 makes rows 8 blocks high. The nearest cubes keep the default voxel-size of 32 in width.
  • min-y: 264 and thickness: 24 make a flat band from about y264, three rows of 8. Choose a min-y above your terrain: without min-y a band sits below the world and draws nothing.
  • noise-scale: 400.0 is the patch size in blocks, and noise-seed: 77 picks the pattern.

Step 3: Select the layer

Add the layer to clouds.layers in atmosphere.yml. Keep cumulus first, so it stays the first solid layer, the one players can be inside:

clouds:
  layers: [cumulus, high-haze]

Write a YAML list: a string such as "cumulus, high-haze" is read as one name that matches no file.

To draw the layer in one world only, keep layers: [cumulus] at the top and put the new list in that world's block:

worlds:
  resource_world:
    clouds:
      layers: [cumulus, high-haze]

Step 4: Reload

Run:

/ms reload

Chat shows Reloaded and Biome file changes need a restart (the second line after every reload). The layer needs no restart.

Step 5: Verify

Run this in the world (from the console, add the world name):

/ms atmosphere profile

Your layer is listed with its opacity:

Layer high-haze (see-through 0.35)

Below it, each number setting of your file gets a line such as opacity 0.35 (cloud-layers/high-haze.yml). Cloud layers: none means the world is not switched on or the list is empty.

Look up: a see-through band of cubes in your colour sits high above the terrain. Then run:

/ms atmosphere stats

The Renderer: line ends with the number of faces each layer draws for you:

layers cumulus <n>, high-haze <m>

high-haze shows a number above 0 once the layer is built around you.

Tune the look

Change a value in cloud-layers/high-haze.yml and run /ms reload again.

Change Setting
More or less of the sky coverage
Thicker or fainter opacity
Another colour color
Higher or lower min-y
A thicker band thickness, which grows in rows of voxel-height
Broader or finer patches noise-scale and noise-scale-y
Another pattern noise-seed
Finer cubes, at the cost of many more cloud faces voxel-size, a power of two from 4 to 64

Each layer adds cloud faces for every player who sees it, so avoid many layers, small voxel-size values and long max-distance values. See Layer Options for every setting.

If the layer does not show

Console line or symptom Cause
clouds.layers lists 'high-haze', but there is no cloud-layers/high-haze.yml; skipping it The name in the list matches no file name
cloud-layers/high-haze.yml has no type, skipping it No type, or a YAML error (printed above this line)
cloud layer 'high-haze' has type '<type>', which is not a known cloud layer type; skipping it The type is misspelled
cloud-layers/high-haze.yml: unknown cloud layer setting '<key>', ignoring A misspelled key
cloud-layers/high-haze.yml color: '<value>' is not a hex colour, ignoring A character is not a hex digit (0 to 9, A to F). Write exactly six digits: other lengths load without a warning and give an unexpected colour
The layer shows in one world and not in another A profile, season or world block with its own clouds.layers, such as the dust-bowl profile of Custom Climate Profile, replaces the list. Add high-haze there too
No line in the console, and nothing in the sky The band is above or below where you look, min-y is outside your world, or your own preset is off

A deleted shipped layer file comes back at the next load. To stop drawing a shipped layer, remove its name from clouds.layers.

Next steps

  • Layers explains how layers stack and how a season, world or profile changes one.
  • Built-in Layers and Shapes cover the shipped layers and streaks, hooks and veils on a band.
Updated Nov 11, 2026