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: onin/ms atmosphere info), see Setting Up Clouds. - A cloud quality other than
offfor the player who checks the result (/cloudqualityshows it). - The
mythicseasons.adminpermission (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
typeis required. Other keys take their defaults, which the shippedcloud-layers/cumulus.ymllists. coloris six hex digits (RRGGBB) in quotes: unquoted, YAML reads000000as a number and#FFD9B3as a comment.opacityis1.0for solid cubes and0.1to0.99for see-through ones.coverageis how much of the sky the pattern fills,0.2to2.visible-from-inside: falsedraws one surface, enough for a high layer. The defaulttruealso draws the inside faces, about twice as many.voxel-height: 8makes rows 8 blocks high. The nearest cubes keep the defaultvoxel-sizeof32in width.min-y: 264andthickness: 24make a flat band from about y264, three rows of 8. Choose amin-yabove your terrain: withoutmin-ya band sits below the world and draws nothing.noise-scale: 400.0is the patch size in blocks, andnoise-seed: 77picks 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.