Placeholders

MythicSeasons adds 37 MythicMobs placeholders for the season, calendar, events, temperature and weather of the entity a skill line runs on, and for a player's particle and cloud layer choices. The conditions read the same values directly. For other plugins, see PlaceholderAPI, where some names and fallbacks differ.

Using the placeholders

Write them as <mythicseasons.name> in lowercase, for example <mythicseasons.month.name>. They need no setup and have no aliases.

The entity

A placeholder reads the mechanic's target or the entity the condition checks, else the entity that triggered the skill, else the caster. Season skill triggers are cast by a player, so the values describe that player. Scopes such as <target.mythicseasons.season> do not exist: make the entity the line's target instead.

Values are text

Every placeholder returns text, and a zero reads 0, 0.0 or 0.00 depending on the placeholder. Compare numbers with the MythicMobs comparevalues condition, not stringequals.

The MythicMobs default attribute has no effect. With no answer, a placeholder returns the fallback under "Nothing to report", and that is a real value: "at most 3 days until the next season" is also true where daysuntilnextseason returns its fallback 0.

Worlds that answer

The Season, Calendar and Time and Events placeholders answer only for an entity in a world with a season, never in the Nether or the End. Otherwise they return their fallback. A world gets a season with /ms set or from on-new-world-creation.default-season in config.yml.

The other placeholders answer in any world. The Temperature and Weather and Clouds ones return their fallback with no entity, or when their system has nothing for that position.

Season

Placeholder Returns Nothing to report
<mythicseasons.season> The world's season id in lowercase, such as winter. none
<mythicseasons.season.display> The season's display-name with its MiniMessage tags, such as <#B0E0E6>Winter, or else the id with a capital first letter. none
<mythicseasons.nextseason> The display name of the next season in season-cycle of config.yml. none, also when the current season is not in the list
<mythicseasons.nextseason.id> The id of that next season. none, also when the current season is not in the list
<mythicseasons.subseason> The phase: START, EARLY, MIDDLE, LATE or END. none. In a world that answers, MIDDLE while sub-seasons.enabled is false in config.yml
<mythicseasons.progress> Percent of the season passed, a whole number from 0 to 99 (rounded down). 0, also while the calendar is disabled
<mythicseasons.daysuntilnextseason> Whole calendar days until the next season starts. 0, also while the calendar is disabled
<mythicseasons.seasonblend> How far the weather has blended into the next season, 0.00 to 1.00. 0

The phase follows progress: START below 9 percent, EARLY below 18, MIDDLE below 84, LATE below 92, END from 92. Season files move these limits with sub-season-thresholds (see Sub-Seasons).

seasonblend rises evenly from 0.00 to 1.00 over the last transition.blend-days days of the season (default 3 in atmosphere.yml), with or without the weather simulation. A season file can set atmosphere.transition.blend-days or atmosphere.transition.blend-percent.

A land plugin region with a permanent season does not change these placeholders. Inside a season area, season, season.display and subseason report the area's season, with the phase MIDDLE.

Calendar and Time

The date placeholders return their fallback while enabled is false in calendar.yml or the world has no date yet. hours, minutes and time work without the calendar. See Calendar.

Placeholder Returns Nothing to report
<mythicseasons.day> The day of the month, from 1. 0
<mythicseasons.month> The month number, 1 for the first month under months in calendar.yml. 0
<mythicseasons.month.name> The month name from calendar.yml, such as March. none
<mythicseasons.year> The calendar year, or the real year with sync-time-with-real-world. 0
<mythicseasons.weekday> The weekday name from week-days in calendar.yml, such as Saturday. With sync-time-with-real-world the first entry is Monday. none
<mythicseasons.hours> The in-game hour, 0 to 23, even with the 12-hour clock. 0
<mythicseasons.minutes> The in-game minute, 0 to 59, without a leading zero. 0
<mythicseasons.time> The clock in the time.format of calendar.yml (default $hours$:$minutes$, such as 06:05). 00:00

time.format fills $hours$, $minutes$ and $seconds$ with two digits. With time.12-hour-clock.enabled: true the hours run 1 to 12, and time.12-hour-clock.add-am-pm adds AM or PM. The fallback 00:00 ignores the format.

The clock reads 06:00 at world time 0 (sunrise) and 18:00 at 12000. With modify-daynight-length on in config.yml, the month's day-length-in-min and night-length-in-min stretch it in worlds with a season and a date. With sync-time-with-real-world it shows the real time in time-sync-timezone and ignores time-sync-offset.

Events

These need the calendar and list only events with display-event: true (the default). See Events.

Placeholder Returns Nothing to report
<mythicseasons.events> The display names of the active events, MiniMessage tags included, separated by , . - when no event is active. none in a world that does not answer
<mythicseasons.nextevent> The display name of the next type: dated event to start, or of every one starting that day, separated by , . Skips events active now and events that list this world under disabled-worlds. - when none is coming up. none in a world that does not answer
<mythicseasons.daysuntilnextevent> Whole calendar days until that event starts. -1

Temperature

Placeholder Returns Nothing to report
<mythicseasons.temperature> The air temperature in whole degrees Celsius from season, time of day, weather, biome and altitude, plus the blocks matched by a player's BlockHeat lines with air=true. In the Nether it is modifiers.other-dimensions.nether of temperature.yml (shipped 25), in the End modifiers.other-dimensions.end (shipped 0), without season, time of day, weather, biome or altitude. 0 with no entity, or while the temperature system is disabled
<mythicseasons.playertemperature> A player's body temperature in whole degrees Celsius, with every modifier, ModifyTemp included. It moves toward its target at temperature-change-rate. 0 for anything that is not a player, or while the temperature system is disabled
<mythicseasons.bodytemperature> Body temperature with the player's unit, such as 20°C or 68°F. A whole number after the name, as in <mythicseasons.bodytemperature.100>, is added in Celsius first. 0 for anything that is not a player, or while temperature is disabled
<mythicseasons.airtemperature> The air temperature in whole degrees Celsius from the weather sources: the simulated value at the entity's height where the simulation runs, else temperature. 0 with no entity, or when no weather source answers and the temperature system is disabled

The body temperature updates every temperature-update-interval ticks (default 40, in temperature.yml), only in worlds with temperature on, and stops changing in Creative and Spectator mode, so test as a Survival player. A player who switched temperature off with /toggletemperature still has a value. See Where temperature applies.

Weather and Clouds

Most of these need the weather simulation running in the world. storm, incloud, airtemperature and windspeed take the first answer from these sources:

  • Permanent weather spots, priority 1000 (see Land Claims). They answer only rain and thunder, so of these four they affect only storm.
  • The weather simulation, priority 100.
  • Other plugins' weather providers, priority 0 unless they set another.

With no answer, storm follows vanilla thunder and airtemperature the temperature system. Every other placeholder here returns its fallback.

Placeholder Returns Nothing to report
<mythicseasons.humidity> Water vapor at the entity's position and height in grams per kilogram, 0.0 to 25.5 (not relative humidity). 0 with no entity, or while enabled is false in atmosphere.yml. 0.0 when the simulation is on but has no data for the position, also in a world it does not run in
<mythicseasons.windspeed> Surface wind speed in metres per second, 0.0 to 25.5. 0 with no entity. 0.0 where no weather source reports wind
<mythicseasons.winddirection> The direction the surface wind blows towards, whole degrees 0 to 360: 0 east, 90 south, 180 west, 270 north (the angle of forcing.wind.direction). 0
<mythicseasons.windx> The X (east-west) part of the wind direction at the entity's height, length 1, -1.00 to 1.00. Positive blows east. 0, also where there is no wind data: the simulation is off or does not run in the world, or the entity is above or below the simulated sky
<mythicseasons.windz> The Z (north-south) part. Positive blows south. 0, in the same cases
<mythicseasons.precipitation> Precipitation at the surface of the entity's column, 0.00 to 8.00, no unit. Players see rain once it passes weather.rain-precip-threshold. 0 with no entity, or while enabled is false in atmosphere.yml. 0.00 when the simulation is on but has no data for the position, also in a world it does not run in
<mythicseasons.storm> true while the entity is in thunder (rain alone does not count), else false. false with no entity
<mythicseasons.incloud> true when the entity's feet are in the drawn cloud of the world's first solid cloud layer, even while clouds.enabled is false. Fog and other see-through layers never count. false
<mythicseasons.cloudcover> The share of simulated columns within 256 blocks of the entity (a fixed square) that hold cloud, 0.00 to 1.00. 0
<mythicseasons.cloudbase> The block height of the lowest drawn cloud of the first solid layer over the entity's x and z. With the default level of detail it is a multiple of the layer's voxel-height. -1, also when no cloud is drawn there
<mythicseasons.cloudtop> The block height of the top of the highest drawn cloud there. -1, also when no cloud is drawn there
<mythicseasons.atmosphereprofile> The atmosphere profiles forced on the world, lowercase, separated by commas without spaces: its profile from atmosphere.yml, then those pushed by the AtmosphereProfile mechanic, lowest priority first. Profiles from season files are not listed. none, also while the weather simulation is off

humidity, windx and windz have no data above or below the simulated sky (grid.y-min and grid.y-max in atmosphere.yml). For when a column counts as a storm, see Weather.

cloudcover counts thin low mist too, so it can read high under a mostly clear sky. The CloudCover condition measures it with a radius you choose.

Inside a land plugin region with a permanent wind speed, windx and windz follow the surface wind direction and are 0 when that speed is 0. windspeed does not change.

Season particles

Placeholder Returns Nothing to report
<mythicseasons.particles> true while the player has season particles on, false after /toggleseasonparticles turned them off. false for anything that is not a player

Check it on any line that should follow /toggleseasonparticles, as the bundled pack does.

WindGust:
  Cooldown: 1
  Skills:
  - effect:sound{s=entity.breeze.idle_air;volume=0.3;audience=self} @Self
  - effect:particles{p=gust;amount=1;audience=self} @Self ?stringEquals{val1=<mythicseasons.particles>;val2=true}

To skip a whole skill instead, list it under player-tick-particles.

Cloud layers

Placeholder Returns Nothing to report
<mythicseasons.cloudlayer.name> true while the player shows the cloud layers with the toggle name name, false after /togglecloudlayer hid them. false for anything that is not a player, and when no name is written

The name is the toggle value of the layer files, such as <mythicseasons.cloudlayer.fog> (see Player toggles). The shipped layers use cumulus, fog, cirrus and dust. Case does not matter.

Before a player chooses, a name gives true, or false when its layer files set toggle-default: hidden. A name no layer uses gives true, unless the player chose it while a layer still used it. The value is only the player's choice: /cloudquality, the world and the weather simulation do not change it.

LightMist:
  Cooldown: 2
  Skills:
  - effect:particles{p=cloud;amount=2;audience=self} @Self ?stringEquals{val1=<mythicseasons.cloudlayer.fog>;val2=false}

Runs for players who hid the fog layers with /togglecloudlayer fog.

Examples

ActionBarReadout:
  Skills:
  - actionmessage{m="<gray><mythicseasons.time> <dark_gray>-</dark_gray> <white><mythicseasons.airtemperature> C</white> <dark_gray>-</dark_gray> <white><mythicseasons.windspeed> m/s</white> <dark_gray>-</dark_gray> <white><mythicseasons.humidity> g/kg</white>"} @Self

List the skill under skill-triggers.player-tick in a season file to refresh it for every player.

WindWarning:
  Cooldown: 20
  Conditions:
  - comparevalues{value1=<mythicseasons.windspeed>;operator=GTE;value2=5} true
  Skills:
  - actionmessage{m="<yellow>Strong wind: <white><mythicseasons.windspeed></white> m/s"} @Self

comparevalues reads 5.3 as a number, and the fallback 0.0 fails the test.

WindStreaks:
  Cooldown: 1.2
  Conditions:
  - atmospherewind{min=2;max=5}
  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

With directional=true, particle types that need data, such as DUST, are not drawn. Use cloud, smoke or gust.

Updated Nov 11, 2026