Biome Colors

Use this checklist when seasonal biome colours, or a season's snow, ice, flowers and leaf litter, are missing, wrong or visible to some players only. Stop at the first check that fails.

Checklist

1. The world has a season

Run /ms getinfo: it must show Season: <name>. On Seasons are off in this world, run /ms set <season>. Worlds without a season, the Nether and the End get vanilla chunks, except in a WorldGuard region with permanent-season. So does a world whose saved season is no longer loaded (no Loaded season: <id> line at start).

2. A biome file you edited was loaded

Restart after editing a biome file: /ms reload reads only its atmosphere section and always prints Biome file changes need a restart. At start the console prints Biome files: <n> loaded, <n> skipped, and these lines name a problem:

Console line Cause
biomes/<file> could not be read: <reason>, then Fix the file and restart the server. It has been left untouched, and its biomes get no seasonal colours until then. A YAML syntax error. The file is skipped
<file>.yml: no biome of that name exists on this server version, skipping this file A shipped file for biomes this version lacks, such as PALE_GARDEN.yml on an older version
<file>: no 'includes' list, skipping this file A custom file without an includes line
<file>: unknown biome '<id>' in includes, skipping it An id in includes is not a biome on this server
<file>: no usable biome in includes, nothing was applied from this file No id in includes exists
Could not load <season> in <file>. All multi-color properties must have the same count The colour lists of one season differ in length
Could not load <season> in <file>. Multi-color properties must have at least 2 colors A colour list ends up with one entry, for example after a trailing comma
Could not load <season> in file: <file>, with a stack trace An unreadable value, such as a colour that is not hexadecimal or a weight that is not a whole number. That season is skipped
<file> and <file> both configure the same biome for <season>, keeping the transition colors from <file> Two files name the same biome, and the one that loads later wins. Shipped files load first, your own in no fixed order

In the file itself:

  • A colour is six hexadecimal digits. NONE keeps the biome's own value, and a season with all six colours at NONE is not recoloured.
  • Quote colours that start with #. Unquoted, YAML reads them as NONE.
  • Only grasscolor and treecolor take a comma separated list. A list in skycolor, watercolor, waterfogcolor or fogcolor stops MythicSeasons from starting, whatever the top comment of older shipped files says.
  • includes is one line of text, not a YAML list.

3. The player has colours on

Have the player run /toggleseasoncolors until it prints Season colors on, not Season colors off. While it is off, that player's chunks are not changed at all. The choice is saved and applies to chunks received afterwards, so the player moves away and back, or rejoins.

4. The chunk was sent after the change

A chunk keeps the look it was sent with, and /ms reload never resends chunks. A season or sub-season change resends the loaded chunks around every player, one chunk every two ticks for the whole world. After an edit, chunks update when the player leaves and comes back, or with the seasonpopulator mechanic and action=refresh.

5. The switch in config.yml

modify-biome-on-client in config.yml must be true (the default). With false, everyone gets vanilla chunks: no colours, block replacements or populator blocks. See General Config.

6. A custom season has a colour set

A custom season has no colour set of its own. Each season file picks one with biome-color-index: 0 is winter, 1 summer, 2 spring and 3 fall, and -1 keeps the vanilla colours.

Console line Cause
seasons/<file> biome-color-index: <missing or the number> is not 0-3, so season '<id>' will use vanilla biome colours. Set it to -1 to make that deliberate. The key is missing or not 0 to 3. A deliberate -1 prints nothing
Seasons '<id>' and '<id>' both use biome-color-index <n>. Populators and snow coverage are keyed by that index, so the two seasons overwrite each other. Give every season its own biome-color-index. Two seasons share one number

biome-color-key does not choose colours. It only names the season's group in /ms biomelist.

7. A region or a claim turns season effects off

  • A WorldGuard region with season-effects set to deny sends vanilla chunks.
  • A region with permanent-season sends the season it names. A value that is not a season prints A WorldGuard region sets the permanent-season flag to '<value>', which is not a season in plugins/MythicSeasons/seasons/. The flag is ignored there.
  • claimed-areas.seasons-enabled: false in griefprevention.yml sends vanilla chunks wherever GriefPrevention reports a claim. A change needs a restart.
  • WorldGuard flags are read at each chunk's centre column at sea level and cached for about 5 seconds, so a small plot off that column, or a region whose height range leaves out sea level, is not seen.
  • Without WorldEdit no flag exists, and the console prints You'll need WorldEdit installed on your server to use WorldGuard with MythicSeasons!.

The hasseasons condition is false where season effects are off. See Land Claims.

8. Snow, ice, flowers or leaf litter are missing

  • The blocks come from the season file's populators, and a rule with enabled: false is not loaded. Shipped rules: snow and ice in winter, flora in spring and summer, leaf-litter and flora in fall.
  • The console names a broken rule:
    • season <file> populators.<rule>.<field>: <value> is not <expected>, skipping this populator. names a field with a wrong value.
    • season <file> populators.<rule>.layers: <reason>. names a layers setting that loads but cannot work as written, see Populators.
    • Unknown material in populator rule '<rule>': <block> or Unknown material in populator pool '<rule>': <material> names a material this Minecraft version lacks.
  • /toggleseasoncolors and modify-biome-on-client: false turn the populators off too.
  • The snow rule of winter follows snow coverage, see Populators. With the weather simulation, snow lies only where it snowed, from EARLY on, and rain or warm air melts it. On bare ground, /ms atmosphere stats reads Snow: with a number while snow falls and Rain: none while nothing falls. In other worlds the coverage grows only while the world itself has a storm, and is 0 again after every restart.
  • seasonpopulator with action=disable does not stop a rule with use-snow-coverage or phase-density, such as the shipped snow and ice.
  • On purpose, no snow layers lie where the block light is 12 or more, see Light melts snow.

9. The biome is not covered

With PlaceholderAPI, /papi parse me %ms_biome% prints the biome stored at your position without a namespace, such as plains. Where the weather simulation runs, the Biome: line of /ms atmosphere stats names the biome at the highest block of your column.

  • A biome that no biome file lists keeps its vanilla colours, and its Biome: entry in the console output of /ms biomelist shows All possible replacements for this biome: NONE. The shipped files do not recolour every season of every biome, see Biomes.
  • A biome from a world generator or a biome plugin needs a custom file in biomes/ whose includes line names it as namespace:name, as in the Biome: entries of /ms biomelist.
  • The shipped CUSTOM_EXAMPLE.yml has includes: ALL, so its fall and winter colours apply to every custom biome no other file names. Set includes: NONE to stop that. For a biome another file names, the console prints <file>: skipping biome <id>, it is already configured by <file>.

10. The colours are a mix of two seasons

With sub-seasons.enabled: true, the colours blend with the neighbouring season in the START, EARLY, LATE and END phases, and only MIDDLE shows the season alone. With false, every world stays in MIDDLE. See Sub-Seasons.

The colour patches of a list in grasscolor or treecolor are laid out again at every start, so a tree can change colour after a restart.

Updated Nov 11, 2026