How colours are chosen each cycle
Seed / tick changes
The exo world advances the seed (or tick) on the single WorldColors recipe it points at (max-range).
Base colour is generated
A hue, luminance and saturation are sampled for the Base node (currently full hue circle, lum 50, sat 55).
Roots derive from the Base
Veg-Solid Root and Min-Liq Root apply their lum/sat shifts.
Vegetation, Solid, Liquid, Mineral Roots inherit from those.
Sand and Gleam add their own extra shifts.
Final materials are linked
Every block type (rock, grass, gleam, wood, creatures, etc.) is assigned a colour from one of these derived nodes.Mapping to the 254
- The continuous HSLuv values are converted into one of the fixed 254 palette indices. The whole set is coherent because almost everything shares the same Base.
Why some colours are never (or almost never) reached
- Coherence rules - Materials must stay related. Extreme combinations that would look broken are avoided.
- Narrow probability - Even with full hue range, pure reds, pure cyans, etc. are small targets on the colour wheel.
- Upstream limits - Gleam cannot change hue on its own — it is locked to the Mineral Root. Sand in most recipes is locked to warm hues.
- focusStrength & ranges - Higher focusStrength or tighter min/max make some regions much less likely.
- Discrete mapping - Some of the 254 indices only get chosen if the generated colour lands in a very small “attraction” zone. Others have larger zones and appear more often.
- Single recipe - Only one graph is evaluated per cycle. There is no system that systematically walks the full 254.
Result
You get a new coherent family of ~30–60 colours each cycle. Over a long time you will see a wide variety, but a handful of the 255 (especially the most extreme or awkwardly placed ones) can remain extremely rare or effectively unreachable.