Debugging

Use these commands and console messages to see what the weather simulation is doing and why something is missing. The checklists at the end cover the common problems.

The sky is split into cells. A column is the stack of cells over one spot, a level is all cells at one height, and a region is 16 x 16 cells.

Where to look first

Question Look at
Is the simulation running, and where? info
What is the weather where I stand? stats, or the bars of debug
Which settings apply to this world, and where does each come from? profile
What did the plugin say at startup? Reading the console

The commands

Every /ms atmosphere form needs mythicseasons.admin, which operators have by default. /ms atmo works too. See Commands and Permissions.

  • The console can use info, toggle, profile and profiles (output in the server log, without colors, prefixed [MythicSeasons]). stats, debug and dumpclouds print Players only there.
  • /ms atmosphere alone runs info. An unknown subcommand prints Usage: /ms atmosphere toggle|debug|stats|info|profile|profiles|dumpclouds.
  • The tables leave out the prefix MythicSeasons » that starts a reply in chat. It is PREFIX in the language file, and on and off are its ENABLED and DISABLED lines, see Language.

info

Shows the state of the simulation. It takes no argument.

Line Meaning
Atmosphere (on) or Atmosphere (off, enabled in atmosphere.yml) The master switch enabled. While it is off nothing is simulated
Grid: cells <x>x<y>x<z> blocks (x, y, z), regions <n> wide, step <n> ms The cell size (grid.cell-size), the region width and the time between steps (timing.step-period-ms)
Budget: <n> cells per world grid.max-cells
Worlds: none No world is switched on
<world>: not started No weather yet: the master switch is off, the simulation started a moment ago, or it waits for MythicProxy to name the server
<world>: <n> regions, y<low> to y<high> (<a> here, <b> frozen, <c> received) Regions and simulated height range. here: computed by this server near players. frozen: saved but idle, no player near. received: from another server, left out when there are none
shared: <status> Only with MythicProxy, see Shared Weather
Clouds: off (clouds.enabled) clouds.enabled is false
Clouds: unavailable (needs 1.21.11+ and a restart) The layer does not run: the master switch is off, the server is older than 1.21.11 or cannot draw clouds, or clouds.enabled was turned on after startup
Clouds: on, detail <automatic or pinned n>, occlusion culling <on or off> clouds.lod-level and clouds.occlusion-culling of the running cloud layer
Quality: <presets> (default <name>) Only while the cloud layer runs: the quality presets, off first, and the one players get until they pick one with /cloudquality
Fog pack: off or Fog pack: on (<file name>), <n> shader looks, <status> The fog pack, its shader looks of cloud styles and whether players get them (Checking that players have the pack). With clouds.shader-pack.post-effects on, , post effects on for <n> players follows

A usage line ends the reply.

stats

Prints the weather where you stand, in this order.

Line Meaning
Weather here (region <x>,<z>, <state>) Your region: simulated here, frozen (kept, not computed now) or from <server>
Air: <t>°C, <p>% humidity, wind <v> m/s toward <direction> Temperature, humidity and wind at the ground. The wind blows toward E, SE, S, SW, W, NW, N or NE
Rain: <x> or Rain: none How hard rain or snow falls at the ground, 0 to 8, shown only above weather.rain-precip-threshold. With a number, Rain becomes Snow when the surface air is below weather.snow-temp-threshold. , thunderstorm marks a storm column
Clouds: y<a> to y<b> (simulated y<c> to y<d>) The cloud the first solid layer draws here, then the simulated cloud over you (bottom of its lowest level to top of its highest). Either can be none
Sky: <p>% cloudy, base y<a>, tops y<b> (highest y<c>) All weather regions of the world, or Sky: clear. The share counts thin low mist too, so it can read high while few clouds are drawn. base and tops are averaged over the cloudy columns
Biome: <biome>, base <b>°C (vanilla <t>) The biome at the highest block above you and its base temperature, from its vanilla temperature with biome-defaults.temp-scale and temp-offset (Weather). , clamped to <n> means the vanilla value was outside -0.7 to 2.0
Outflow: <x> here, <p>% of the sky above 0.15 Only with outflow: its strength here, 0 to 1, and the share of loaded columns above 0.15
Fixed weather: <weather> A land plugin pins the weather here, over the simulation
By height: One line per listed level, top down: y<block>: <temperature>, <p>% humidity, cloud <water in g/kg>, rain <flux>. cloud and rain are left out below 0.05
Renderer: ... Only while the cloud layer runs, a moment later. See the Renderer line
  • By height lists the levels with at least 0.05 g/kg of cloud water, 0.05 of precipitation or 50 percent humidity, and always your own level, marked >. Each y is the bottom of a level.
  • Wind directions count from +X toward +Z: E is east, S is south.
  • With no weather at your position it prints No weather here yet (it starts a few seconds after a player arrives, unless other players use up grid.max-cells), also in a region entirely outside the world border. With no simulation in the world it prints No atmosphere in this world.

The Renderer line

Look here first when clouds are missing or have holes. It counts the cloud faces (quads) the server keeps for you. The sky is built in 256-block tiles.

Part Meaning
quality <name> Your cloud quality preset. off draws nothing
shader looks on You get the shader looks of cloud styles
post effect on You get the post look of cloud styles
spawned <a>/<b> quads Faces that exist for you (shown or hidden) out of those in the tiles in your view. Faces you cannot see are not sent or are hidden
(<n> occlusion-hidden) or (<n> occlusion-hidden, <m> by terrain) Faces behind thicker cloud or solid blocks, <m> of them by blocks. Faces within the layer's no-cull-distance are counted but drawn. Only with clouds.occlusion-culling on
(<n> viewRange-hidden) Faces hidden for now (out of view, turned away, behind cloud or terrain). They come back at once when needed
(in-cloud dome <n> + collar <m>) The see-through view near or inside a cloud (dome) and the solid faces around it (collar), set by near-distance, near-opacity and near-dome-size of the first solid layer
(fog haze <n>) Faces of the haze shells around you inside ground fog (haze-shells)
(tiles still meshing) Some tiles in your view are still being built and fill in over the next ticks
(gen swap pending, lag <n>) The clouds of a newer weather step are still being built. The sky is <n> steps behind
(MIXED-GEN: <n> quads off-generation) <n> faces come from another weather step than the sky shows
(alt-ring <n>) <n> faces use another level of detail, because the planned tiles were not ready
wave <n>t Ticks the last full cloud update took, from a new weather step until the whole sky showed it. n/a before the first
[pinned <n>] clouds.lod-level is pinned to <n>
tiles cached <n> Tiles kept in memory
mesh jobs pending <n> Tiles waiting to be built
layers <id> <n>, ... Faces in view per cloud layer, in the order of the cloud list

The line reads no cloud view yet before the cloud layer has processed you.

profile

Shows which settings apply to a world with a running simulation and where each comes from. Without a world it uses yours. The console has to name one (Add a world: /ms atmosphere profile [world]), and an unknown world prints World not found: <name>.

Line Meaning
Profile <world> (<season> <p>%, <b>% into <next>) The season and its progress. , <b>% into <next> shows only during the blend into the next season
Forced: <names> The world's own profile, then those from skills, lowest priority first, or none. A profile a season file names is not listed
Cloud tint: #<hex> Only when a tint is set
<setting> <value> (<place>) Every setting a file or block sets, with its place
every setting is at its default No file or block sets any setting
Cloud layers: none The cloud list is empty, none of its layers loaded, or the world has no running simulation
Layer <id> (solid) or Layer <id> (see-through <opacity>) One cloud layer, then every setting its file or a block sets and lines on its shape and style
shape <name>: frame <a> deg (season wind direction plus angle <b>, snapped to <c>), up to <p>% of the sky where present A layer with a shape: its preset (recipe for its own steps), the pattern direction (the season's wind direction plus angle, rounded to snap) and cover times the layer's coverage, at most 100
shape.<number> <value> from <place> A shape number set outside the layer's own file, with that place
style <name>; shader steps: <steps>; post: <settings> A layer with a style: the steps of its shader look and its post settings above 0. A part is left out when the style has none
style.<variable> <value> (<place>) Every style variable with its value or formula and its place: a block, the layer file or the style file. , read by the shader marks the ones the shader look uses
Outflow: <n>% of the sky above 0.15, <m>% above 0.5 Only with outflow: the share of loaded columns above 0.15 and above 0.5

Every setting a place sets is listed, even at its default value, so with the shipped atmosphere.yml most lines end in (atmosphere.yml). During a blend a changing setting shows both places, as <first>><second>.

profiles

Lists the loaded profiles under Atmosphere profiles, then a line on how to use one. With none it prints None yet, add yml files to plugins/MythicSeasons/atmosphere-profiles/. A profile file without any setting is not loaded and not listed.

debug

/ms atmosphere debug <field> shows live weather values at your position as boss bars and colored particles. The field is temp, wind, precip or cloud, not case sensitive.

  • Each field turns on and off on its own, and fields can run together. With no field the command turns every field off when any is on, and temp on otherwise.
  • It replies Debug preview: <fields> or Debug preview off. An unknown field prints Usage: /ms atmosphere debug [temp|wind|precip|cloud].
Field Bar Reads
temp Red air <t> surface <t>: the air temperature in your cell and at the ground, in degrees Celsius
wind Green surface <speed> m/s @<direction>: the ground wind and its direction in degrees. cell u/v/w: the wind in your cell in m/s (east-west, vertical, north-south)
precip Blue intensity <x>, plus STORM in a storm column and SNOW when the surface air is below weather.snow-temp-threshold
cloud White water <x> g/kg sim layer y<a>..y<b> drawn y<a>..y<b>: the cloud water in your cell and the heights of the simulated and drawn cloud, none without cloud. IN CLOUD while you are inside the drawn cloud

Every bar starts with [Atmo:<field>] [<x>,<level>,<z>], your cell. Particles mark the cells within two cells of yours at your height, colored by the field you turned on first, and outline your own cell. The display updates every 10 ticks and ends when you leave. Where your spot has no weather yet, each bar reads [Atmosphere:<field>] no simulated weather here. Without a simulation in the world no bars show.

toggle

/ms atmosphere toggle <world> turns the simulation on or off for a world, yours when you leave it out. The console has to name one (Add a world: /ms atmosphere toggle [world]). A Nether or End world prints Atmosphere only runs in the overworld, and an unknown world World not found: <name>.

  • It prints Atmosphere in <world>: on or Atmosphere in <world>: off.
  • While the simulation runs, switching a world on starts it at once. Switching it off saves its weather, gives its players the server's weather back and removes its clouds.
  • Switched-on worlds are saved in data.yml under atmosphere.<world> and switched on again at startup, if the world is loaded when MythicSeasons finishes starting.
  • With enabled: false in atmosphere.yml, switching a world on adds The master switch in atmosphere.yml is off, turn it on and run /ms reload. Nothing simulates until the master switch is on.

dumpclouds

/ms atmosphere dumpclouds writes the clouds drawn for you to plugins/MythicSeasons/debug/cloud-dump-<player>-<milliseconds>.txt and prints Cloud view written to <path>. Attach the file to a bug report. Without a running cloud layer and clouds visible to you it prints No cloud view to dump (are clouds running and visible?).

Reading the console

When the simulation starts, the plugin writes these lines:

Atmosphere world world: y -64..319 (24 layers of 16 blocks), weather follows the players, up to 2,000,000 cells (~104 MB)
Atmosphere enabled: 1 world(s), cells of 32x16x32 blocks (x, y, z) in regions of 512 blocks, up to 2,000,000 cells, 4 solver thread(s)

The first line repeats for every switched-on world. Shown for a default overworld with four solver threads.

  • The y range and the number of layers are what the world ended up with. Read them before you trust a change to the grid.
  • ~104 MB is an estimate of the memory for that many cells.
  • solver thread(s) is physics.solver-threads, or when that is 0, half of the CPU cores, at least 1 and at most 4.

Other lines at startup and while it runs:

Message Meaning
Atmosphere: per-biome climate loaded for <n> biome(s) Biome files with an atmosphere: block were found
Atmosphere: server '<name>' shares its weather with the servers of group '<group>' or simulates its own weather The group from shared-weather-group, see Shared Weather
Atmosphere is simulating <world> (season <id>) but that season does not run the MS_Atmosphere skill, so players will see no rain, snow, wind or storm effects. Add MS_Atmosphere to skill-triggers.player-tick in the season file, then run /mm reload. Checked once when the simulation starts, for switched-on worlds with a season
Atmosphere clouds need Minecraft 1.21.11 or newer; cloud layer disabled. clouds.enabled is on for an older server
Atmosphere cloud rendering is unavailable on this server build; cloud layer disabled. The server build cannot draw the clouds
atmosphere.yml: <keys> changed, but the running simulation keeps its current values. Restart the server to apply them. A reload found changes that need a restart
atmosphere.yml <key>: <value> is not a power of two, using <n> and ... is outside the supported range <low>-<high>, using <n> A grid value was adjusted, see Options
atmosphere.yml <section>.<key> is not a setting and is ignored; remove it An unknown key under grid or timing
atmosphere.yml grid.y-min <a> to grid.y-max <b> gives <n> layers of <h> blocks in world <world>, using <n> The sky height gave fewer than 8 or more than 128 levels
atmosphere.yml grid.y-min: '<text>' is not "world" or a block height, using the world's build limit The value is neither world nor a whole number. The same line appears for grid.y-max
Terrain at y<h> in world <world> lies below atmosphere.yml grid.y-min (y<min>); the weather treats it as ground at the bottom of the simulated sky Logged once per world
physics.tropopause-height <n> is below the bottom of world <world> (y<min>), using y<min> The tropopause height was raised to the bottom of the world
atmosphere sim step took <n> ms -- lower grid.max-cells or physics.pressure-iterations in atmosphere.yml A step took longer than half of timing.step-period-ms, so the weather lags
atmosphere sim failed for world <world>: <error> Logged once per world, with a stack trace. The world's weather may stop changing
Could not save the weather of world <world> to <folder or the MythicProxy hub>: <error> Logged once until a save works again
Could not read saved weather <file> (<error>); retrying That area does not start until a read works
Saved weather <file> is damaged (<error>); moved it to <file>.bad-<milliseconds> and that area starts fresh A saved region file was corrupt
Could not read the saved weather clock <file> (<error>); the jet stream restarts its cycle The clock file of a world's saved weather. The wind swing starts over
The shared weather clock of <world> is unreadable (<error>); the jet stream restarts its cycle The same, for the clock on the MythicProxy hub
Shared weather region <x>,<z> of <world> is damaged (<error>); that area starts fresh A region on the MythicProxy hub could not be decoded. Nothing is renamed
Saved weather <file> is damaged (<error>); could not move it aside and that area starts fresh Like the .bad-<milliseconds> message, but renaming failed. Delete or move the file by hand
Saving the weather of world <world> failed: <error> or ... did not finish: <error> failed: the save when a world is switched off or unloaded, or when the plugin stops. did not finish: the save of a world switched off or unloaded took over 10 seconds. Weather since the last autosave may be lost
Saving the atmosphere weather took longer than 10 s; stopping it anyway The save when the plugin stops
Shared weather upkeep failed for world <world>: <error>, Shared weather message failed: <error>, atmosphere sim tick failed: <error> Errors with a stack trace. Report them
Dropped a malformed weather message from <server>: <error> A shared-weather message from another server could not be read
cloud tick failed for <player>: <error> or cloud tick failed for world <world>: <error> A cloud layer error. Run dumpclouds and attach the file to a report
cloud dump failed: <error> dumpclouds could not write its file to plugins/MythicSeasons/debug/
Terrain does not hide clouds on this server version (cloud occlusion by other clouds still works) The terrain part of clouds.occlusion-culling is off. Not expected on any version that draws clouds
Reading terrain for cloud culling failed, terrain no longer hides clouds: <error> A stack trace follows. Terrain hides no clouds until the next restart. Report it
[MythicSeasons] Skill trigger references unknown MythicMobs skill: <name> For MS_Atmosphere, the pack is not installed or not loaded, see Packs
atmosphereprofile: no profile '<name>' in plugins/MythicSeasons/atmosphere-profiles/ Logged once per skill line
atmosphereprofile needs profile=<name> (or clear=true) A skill line has neither. Logged once per skill line
season <id> references unknown atmosphere profile '<name>' and the other profile and cloud messages See Profiles

Checklists

No rain

Stop at the first step that fails.

  1. /ms atmosphere info says Atmosphere (on). If it says Atmosphere (off, enabled in atmosphere.yml), set enabled: true and run /ms reload.
  2. info shows your world with regions, not not started. If your world has no line (or Worlds: none), run /ms atmosphere toggle <world>.
  3. The world has a season. /ms getinfo prints Seasons are off in this world without one, and /ms set <season> starts one.
  4. MythicMobs is installed.
  5. plugins/MythicMobs/packs/MythicSeasons/skills/Atmosphere.yml exists, and you ran /mm reload after editing it. The console line Skill trigger references unknown MythicMobs skill: MS_Atmosphere means the skill is not loaded.
  6. The season file lists MS_Atmosphere under skill-triggers.player-tick, as the four shipped seasons do, see Triggers.
  7. /ms atmosphere stats shows a number on its Rain: or Snow: line, so the precipitation is above weather.rain-precip-threshold (0.15 in the shipped atmosphere.yml, 0.09 to 0.26 in the shipped seasons). Its Clouds: line must also have a drawn range that ends above you.
    • Rain: none: it is not raining there. Check neighbouring cells with /ms atmosphere debug precip.
    • Clouds: none with a rain number: the first solid cloud layer does not draw the raining cloud here, usually low cloud under its ground-clearance. No rain shows then.
    • In a world with no solid cloud layer, check that you are not above the top of the simulated cloud in your column.
  8. /ms atmosphere profile <world> shows no setting that stops rain, such as physics.auto-rate at 0, humidity at 0 or a high weather.rain-precip-threshold. The mars profile never rains.
  9. stats shows no Fixed weather line.
  10. A newly arrived player keeps their previous client weather for up to 30 seconds. If stats still says No weather here yet after that, the spot is outside the world border or other players use up grid.max-cells.

No clouds

  1. Read the Clouds: line of /ms atmosphere info.
    • off: set clouds.enabled: true and restart.
    • unavailable: the server is older than 1.21.11 or its build cannot draw clouds (the console says which at startup), or clouds.enabled was turned on after startup. With Atmosphere (off, enabled in atmosphere.yml) it only means the simulation never started: set enabled: true and restart.
    • Restart after you change clouds.enabled.
  2. Your cloud quality is not off. /cloudquality shows it, and so does the start of the Renderer: line of stats.
  3. /ms atmosphere profile <world> lists cloud layers. With Cloud layers: none, check clouds.layers in every place that can set it, and look in the console for clouds.layers lists '<name>', but there is no cloud-layers/<name>.yml; skipping it, has no type, skipping it and unknown type messages.
  4. Compare the two ranges on the Clouds: line of stats.
    • Clouds: none (simulated none): the simulation has no cloud here, and the default cumulus layer draws only where it has.
    • Clouds: none with a simulated range: the layer's forms-at, full-at or coverage leave nothing, see Layer Options.
  5. spawned 0/0 quads on the Renderer: line means no faces are in your view. tiles still meshing or gen swap pending means the clouds are still being built.
  6. Far clouds fade into the fog: serve the fog resource pack, see Shader Pack. A player who declines it keeps the fogged view distance.
  7. A cloud tick failed line in the console is a cloud layer error. Run dumpclouds and report it.

The weather never changes

  1. timing.time-acceleration is not 0 (0 stops the weather). The setting needs a restart.
  2. stats shows Weather here (region <x>,<z>, simulated here). frozen means no player is near enough. A region that was never simulated starts calm and uniform and needs a while to develop.
  3. The console shows no atmosphere sim failed for world <world>.
  4. The console does not repeat atmosphere sim step took. If it does, lower grid.max-cells or physics.pressure-iterations.
  5. /ms atmosphere profile <world> shows no forced profile or setting that stops cloud or rain, such as physics.cond-rate, physics.auto-rate or humidity at 0.
  6. With shared weather, info does not say paused: this server lost its MythicProxy lease, and the server that simulates is running. See Shared Weather.
  7. After a settings change the air moves toward the new values over the following weather minutes. It does not jump.

A profile or a forced profile has no effect

  1. /ms atmosphere profiles lists the name. If not, the file is missing, holds no setting the plugin recognises or has a YAML error. Read the console from the last start or reload.
  2. You ran /ms reload after editing the file. A forced profile keeps the content it had when the skill ran, so cast the skill again.
  3. /ms atmosphere profile <world> shows settings with (profile <name>) or (override <name>). A profile named by a season file shows as (profile <name>) but is not on the Forced line. A world that is not switched on lists nothing, see profile.
  4. The world has a season. Places that belong to a season, the season's profile included, do not apply where the season is disabled.
  5. No later place sets the same key with a plain number, see the order of application.
  6. Every operator is quoted. An unquoted -3 sets the value to minus 3 instead of subtracting 3, see Value forms.
  7. The world is switched on with /ms atmosphere toggle. A profile changes nothing in a world without a simulation.
Updated Nov 11, 2026