Weather Skills

Skills that react to the weather around a player or change it, with the Atmosphere, AtmosphereTemp, AtmosphereWind, CloudCover and AtmosphereProfile conditions and the AtmosphereWeather, AtmosphereWind, AtmosphereProfile and AtmosphereForce mechanics.

Before you copy an example

  • The weather simulation is on by default (enabled: true in atmosphere.yml) and starts in a world when it first gets a season. /ms atmosphere toggle <world> switches it off or on there and answers Atmosphere in <world>: on or off. See Setting Up Weather.
  • Without the simulation, atmosphere{raining=true} and atmosphere{storm=true} follow the world's vanilla weather, and the wind, cloud cover, profile and force examples do nothing. The weather triggers then fire only for a WorldGuard permanent-weather region or an add-on weather provider.
  • /ms atmosphere stats prints the values a skill reads at your position. If rain never shows for players, see No Rain.
  • Run /mm reload after editing a skill file and /ms reload after editing a season file, see Common Examples.

Weather report

Tells a player what the weather skills can read at their position.

Weather_Report:
  Skills:
  - message{m="<gray>Air <white><mythicseasons.airtemperature></white> C, wind <white><mythicseasons.windspeed></white> m/s toward <white><mythicseasons.winddirection></white> degrees."} @Self
  - message{m="<gray>Rain <white><mythicseasons.precipitation></white>, cloud cover <white><mythicseasons.cloudcover></white>, thunder <white><mythicseasons.storm></white>."} @Self

The wind is the surface wind, and the direction is where it blows towards (0 east, 90 south, 180 west, 270 north). Precipitation runs from 0.00 to 8.00, and players under a cloud see rain above weather.rain-precip-threshold. Cloud cover (0.00 to 1.00) counts the simulated columns within 256 blocks that hold cloud, and storm is true for thunder only.

Without the simulation, wind, direction, precipitation and cloud cover answer zero, airtemperature falls back to the temperature system, and storm follows the vanilla thunder.

Wind streaks

Draws wisps that drift in the direction the wind blows.

Wind_Streaks:
  Cooldown: 1
  Conditions:
  - atmospherewind{min=2}
  Skills:
  - effect:particles{p=cloud;amount=4;directional=true;direction=<mythicseasons.windx>,0.03,<mythicseasons.windz>;speed=0.45;hSpread=8;ySpread=3;uel=true;audience=self} @Self
skill-triggers:
  player-tick-particles:
    - Wind_Streaks

<mythicseasons.windx> and <mythicseasons.windz> are the horizontal wind at the player's height, scaled to a length of 1 (0 in calm air), as in the bundled MS_AtmosphereBreeze.

A gale lift for gliders

Gives gliding players an extra push in strong wind.

Gale_Lift:
  Cooldown: 0.5
  Conditions:
  - atmospherewind{min=5}
  Skills:
  - atmospherewind{multiplier=0.01;vertical=0.5;requiregliding=true} @Self

List it under player-tick. Keep multiplier small, because the pushes add up with each cast (the bundled MS_AtmosphereWind uses 0.02).

Rain and storm chill

Chills players under open sky in rain and more in a storm.

Weather_Chill:
  Cooldown: 1
  Skills:
  - modifytemp{id=weather;amount=-4;duration=3} @Self ?atmosphere{raining=true} ?outside
  - modifytemp{id=weather;amount=-8;duration=3} @Self ?atmosphere{storm=true} ?outside

List it under player-tick. The shared id weather makes the storm line replace the rain line, and snow counts as rain.

A heat wave

Warms players when the air is hot.

Heat_Wave:
  Cooldown: 2
  Conditions:
  - atmospheretemp{min=32}
  Skills:
  - modifytemp{id=heatwave;amount=6;duration=3} @Self

List it under player-tick. atmospheretemp reads the simulated air at the player's height where the simulation runs, and the air of the temperature system elsewhere. It never matches where neither exists.

A storm-only skill

Runs only while a thunderstorm is over the player.

Storm_Shelter:
  Cooldown: 20
  Conditions:
  - atmosphere{storm=true}
  - outside
  Skills:
  - title{title="<dark_gray>Storm";subtitle="<gray>Find shelter";fadein=5;duration=40;fadeout=10} @Self
  - potion{type=SLOWNESS;duration=100;lvl=0} @Self

List it under player-tick. storm is true for thunder only, not for a plain rain shower.

Storm announcements

Casts a skill once when a storm reaches a player and once when it passes.

Storm_Alert:
  Skills:
  - title{title="<dark_gray>Storm";subtitle="<gray>A thunderstorm is overhead";fadein=10;duration=50;fadeout=20} @Self
  - effect:sound{s=entity.lightning_bolt.thunder;v=0.8;p=0.7;audience=self} @Self

Storm_Over:
  Skills:
  - message{m="<gray>The thunder rolls away."} @Self
skill-triggers:
  atmosphere-storm-start:
    - Storm_Alert
  atmosphere-storm-stop:
    - Storm_Over

Add both lists to the season files that should announce storms. The caster is the player at whose position the storm begins or ends, and a player who joins during a storm gets no start cast.

Vanilla thunder alone never fires the weather triggers, see Triggers.

A clear-sky night chill

Cools players under open sky when the sky is mostly clear at night.

Clear_Night_Chill:
  Cooldown: 2
  Conditions:
  - timerange{from=21;to=5}
  - cloudcover{max=0.2}
  - outside
  Skills:
  - modifytemp{id=clearnight;amount=-5;duration=3} @Self

List it under player-tick. cloudcover counts any simulated cloud within 256 blocks, thin low mist included, so it can read higher than the drawn sky suggests.

Showing the simulated weather in a custom season

Makes a season of your own show the simulated rain and storms to its players.

Server_Sky:
  Skills:
  - atmosphereweather @Self
skill-triggers:
  player-tick:
    - Server_Sky

Players see the simulated weather only while a skill runs atmosphereweather for them, as MS_Atmosphere does in the shipped seasons. When the simulation starts, the console warns about a season without MS_Atmosphere, even when it lists a skill like this one.

A boss sky

Forces a dark, windy sky on the world for the length of a fight.

Storm_Warden:
  Type: WITHER_SKELETON
  Display: '<dark_gray>Storm Warden'
  Health: 200
  Skills:
  - atmosphereprofile{profile=example;duration=6000} @Self ~onSpawn
  - atmosphereprofile{profile=example;clear=true} @Self ~onDeath
Boss_Sky_Rumble:
  Cooldown: 20
  Conditions:
  - atmosphereprofile{profile=example}
  Skills:
  - effect:sound{s=entity.lightning_bolt.thunder;v=0.5;p=0.6;audience=self} @Self

List the second block under player-tick. The shipped example profile holds for up to 5 minutes, ends when the warden dies, and is gone after a restart.

Under Conditions:, atmosphereprofile counts the profiles forced by the mechanic and the profile a world names in atmosphere.yml, but not a profile that a season file names.

A storm caller

A villager summons a storm cell, at most once every 15 minutes.

Summon_Storm_Once:
  Cooldown: 900
  Skills:
  - atmosphereforce{temp=20;vapor=2.5;updraft=1.5;radius=160;duration=600} @Self
  - message{m="<dark_purple>The Storm Caller raises his hands and the sky answers."} @Trigger
Storm_Caller:
  Type: VILLAGER
  Display: '<dark_purple>Storm Caller'
  Skills:
  - skill{s=Summon_Storm_Once} @Trigger ~onInteract

The cooldown counts for the villager, so the sky answers at most once every 900 seconds, whoever asks. The values are those of the bundled MS_SummonStormCell.

The force works only where the simulation runs around a player at that moment, and elsewhere does nothing and says nothing.

Good to know

Updated Nov 11, 2026