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,profileandprofiles(output in the server log, without colors, prefixed[MythicSeasons]).stats,debuganddumpcloudsprintPlayers onlythere. /ms atmospherealone runsinfo. An unknown subcommand printsUsage: /ms atmosphere toggle|debug|stats|info|profile|profiles|dumpclouds.- The tables leave out the prefix
MythicSeasons »that starts a reply in chat. It isPREFIXin the language file, andonandoffare itsENABLEDandDISABLEDlines, 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 heightlists 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>. Eachyis the bottom of a level.- Wind directions count from +X toward +Z:
Eis east,Sis 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 printsNo 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
tempon otherwise. - It replies
Debug preview: <fields>orDebug preview off. An unknown field printsUsage: /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>: onorAtmosphere 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.ymlunderatmosphere.<world>and switched on again at startup, if the world is loaded when MythicSeasons finishes starting. - With
enabled: falseinatmosphere.yml, switching a world on addsThe 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
yrange and the number of layers are what the world ended up with. Read them before you trust a change to the grid. ~104 MBis an estimate of the memory for that many cells.solver thread(s)isphysics.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.
/ms atmosphere infosaysAtmosphere (on). If it saysAtmosphere (off, enabled in atmosphere.yml), setenabled: trueand run/ms reload.infoshows your world with regions, notnot started. If your world has no line (orWorlds: none), run/ms atmosphere toggle <world>.- The world has a season.
/ms getinfoprintsSeasons are off in this worldwithout one, and/ms set <season>starts one. - MythicMobs is installed.
plugins/MythicMobs/packs/MythicSeasons/skills/Atmosphere.ymlexists, and you ran/mm reloadafter editing it. The console lineSkill trigger references unknown MythicMobs skill: MS_Atmospheremeans the skill is not loaded.- The season file lists
MS_Atmosphereunderskill-triggers.player-tick, as the four shipped seasons do, see Triggers. /ms atmosphere statsshows a number on itsRain:orSnow:line, so the precipitation is aboveweather.rain-precip-threshold(0.15 in the shippedatmosphere.yml, 0.09 to 0.26 in the shipped seasons). ItsClouds: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: nonewith a rain number: the first solid cloud layer does not draw the raining cloud here, usually low cloud under itsground-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.
/ms atmosphere profile <world>shows no setting that stops rain, such asphysics.auto-rateat 0,humidityat 0 or a highweather.rain-precip-threshold. Themarsprofile never rains.statsshows noFixed weatherline.- A newly arrived player keeps their previous client weather for up to 30 seconds. If
statsstill saysNo weather here yetafter that, the spot is outside the world border or other players use upgrid.max-cells.
No clouds
- Read the
Clouds:line of/ms atmosphere info.off: setclouds.enabled: trueand restart.unavailable: the server is older than 1.21.11 or its build cannot draw clouds (the console says which at startup), orclouds.enabledwas turned on after startup. WithAtmosphere (off, enabled in atmosphere.yml)it only means the simulation never started: setenabled: trueand restart.- Restart after you change
clouds.enabled.
- Your cloud quality is not
off./cloudqualityshows it, and so does the start of theRenderer:line ofstats. /ms atmosphere profile <world>lists cloud layers. WithCloud layers: none, checkclouds.layersin every place that can set it, and look in the console forclouds.layers lists '<name>', but there is no cloud-layers/<name>.yml; skipping it,has no type, skipping itand unknown type messages.- Compare the two ranges on the
Clouds:line ofstats.Clouds: none (simulated none): the simulation has no cloud here, and the defaultcumuluslayer draws only where it has.Clouds: nonewith a simulated range: the layer'sforms-at,full-atorcoverageleave nothing, see Layer Options.
spawned 0/0 quadson theRenderer:line means no faces are in your view.tiles still meshingorgen swap pendingmeans the clouds are still being built.- Far clouds fade into the fog: serve the fog resource pack, see Shader Pack. A player who declines it keeps the fogged view distance.
- A
cloud tick failedline in the console is a cloud layer error. Rundumpcloudsand report it.
The weather never changes
timing.time-accelerationis not 0 (0 stops the weather). The setting needs a restart.statsshowsWeather here (region <x>,<z>, simulated here).frozenmeans no player is near enough. A region that was never simulated starts calm and uniform and needs a while to develop.- The console shows no
atmosphere sim failed for world <world>. - The console does not repeat
atmosphere sim step took. If it does, lowergrid.max-cellsorphysics.pressure-iterations. /ms atmosphere profile <world>shows no forced profile or setting that stops cloud or rain, such asphysics.cond-rate,physics.auto-rateorhumidityat 0.- With shared weather,
infodoes not saypaused: this server lost its MythicProxy lease, and the server that simulates is running. See Shared Weather. - 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
/ms atmosphere profileslists 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.- You ran
/ms reloadafter editing the file. A forced profile keeps the content it had when the skill ran, so cast the skill again. /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 theForcedline. A world that is not switched on lists nothing, see profile.- The world has a season. Places that belong to a season, the season's profile included, do not apply where the season is
disabled. - No later place sets the same key with a plain number, see the order of application.
- Every operator is quoted. An unquoted
-3sets the value to minus 3 instead of subtracting 3, see Value forms. - The world is switched on with
/ms atmosphere toggle. A profile changes nothing in a world without a simulation.