Seasons Not Changing

Use this checklist when a world stays in one season, changes back, or shows a date you do not expect. Stop at the first check that fails. If players still see the old look after a change, see Biome Colors.

Checklist

1. Count the days

Run /ms getinfo.

Season: <name>
Date: <weekday>, <month> <day>, year <year>
Days until <next season>: <days>
Time: <time>
Events: <events>
  • Good: Days until <next season> counts down. With the shipped calendar.yml a season lasts about 30 real hours, so wait or shorten the lengths in calendar.yml. The line appears only when the season has a next season in season-cycle.
  • Bad: Seasons are off in this world, see step 2.
  • Bad: no Date: line. The calendar is off (step 3) or the world has no date (step 5).

2. The world has a season

Run /ms set <season>, which prints Season set to <name>. An unknown id prints Unknown season, pick one of: <ids>. The Nether and the End cannot have a season (No seasons in the Nether or the End).

3. The calendar is on

In plugins/MythicSeasons/calendar.yml:

  • enabled: true must be there. A missing line counts as false.
  • months needs at least one month, or the console prints calendar.yml defines no months; the calendar is disabled.
  • A YAML error prints calendar.yml could not be read: <reason>, though /ms reload still answers Reloaded. Until you fix the file and run /ms reload, the previous calendar stays active, or after a server start the calendar is off.

4. Automatic cycling is on

automatic-season-cycling in config.yml must be true (the default), or only /ms set and /ms nextseason change the season. Run /ms reload after a change.

5. The world has a date

Give a world without a Date: line a date with /ms setdate <date>, in whole numbers as dd/mm/yyyy (mm/dd/yyyy when american-date-format is true in calendar.yml). It prints Date set to <date>, or:

  • Usage: /ms setdate dd/mm/yyyy (mm/dd/yyyy with the American format) for a wrong format, with (e.g. 01/05/0001) when a part is not a number.
  • Month can't be above <n> for a month above the number of months.
  • Nothing for a day or month of 0, which is ignored.

A world gets a date from /ms nextseason, /ms setdate, /ms set with the calendar and sub-seasons on, or a server start with a saved season. A season from on-new-world-creation, or from /ms set with the calendar or sub-seasons off, comes without one.

6. The clock is moving

The date advances when the world's clock passes midnight (world time 18000). If /time query daytime stays the same for a few seconds, time is stopped:

  • The world is paused. /ms pausetime pauses or resumes it and prints Time paused or Time resumed. With sync-time-with-real-world on, a world with a season answers Time follows the real clock and can't be paused.
  • With modify-daynight-length: false, a world that ran with it true keeps the daylight cycle game rule off. Turn the rule on with /gamerule, or run /ms pausetime there.
  • With modify-daynight-length: true, the rule is off in every world with a season and the clock moves only in worlds with a date (step 5).

See General Config.

7. The real-time modes

Two switches in calendar.yml take the date from the real clock:

  • sync-time-with-real-world: true uses the real date in time-sync-timezone: seasons change on the real <season>-start dates and /ms setdate does not move the date. The calendar needs twelve months in real-year order and seven week-days, Monday first.
  • calendar-is-real-life-days: true moves the date one day at each real midnight in time-sync-timezone, however long the in-game day is.

8. Every season has a start date

Every season in season-cycle in config.yml needs a line <id>-start: <Month> <day> in calendar.yml, with the lowercase id. The console reports gaps at start:

Console line Cause
calendar.yml has no '<id>-start' entry, so the season '<id>' from season-cycle can never start. Add '<id>-start: <Month> <day>' to calendar.yml, for example '<id>-start: March 4'. Logged only while enabled is true in calendar.yml
config.yml season-cycle lists the unknown season '<id>', dropping it. Known seasons: <ids> The list names a season that is not loaded
config.yml season-cycle names no season that exists in seasons/. Cycling through every loaded season instead: <ids> No entry is a loaded season

A season missing from season-cycle is never reached either, even with a start line, and in a world in that season /ms nextseason silently does nothing. Keep season-cycle in the order of the start dates.

9. The start lines are spelled right

A start line is a month and a day separated by a space, such as winter-start: December 4. The month must match a key under months exactly, capitals included. Only the seasons in season-cycle are read.

  • Bad: Could not find month in: <value> as season start, followed by MythicSeasons could not start: and a stack trace, or Reload stopped part-way: <error> on /ms reload. Fix the month name.
  • A day that is not a whole number, or a line without a space, stops the start the same way, with an error that quotes the line.

10. The season changes back

While automatic-season-cycling is true, a season that does not match the world's date is replaced within a second.

  • /ms set moves the date only when enabled is true in calendar.yml and sub-seasons.enabled is true in config.yml. With sub-seasons off, use /ms nextseason (start of the next season) or /ms setdate.
  • A date from /ms setdate that lies in another season changes the season.
  • Date unchanged, <id> has no usable length in calendar.yml after /ms set: check that season's <id>-start entry and the next season's.
  • A season missing from season-cycle cannot stay (step 8).
  • After a restart, the calendar corrects the restored season about ten seconds after start.

11. The date changed by itself

  • Removing or reordering months while worlds hold dates can leave a saved month number past the last month. That world's day and night handling then fails every tick until /ms setdate gives it a valid date.
  • A world in synced-worlds takes the highest clock of the synced worlds and the date of the one furthest ahead.
  • Edits to data.yml while the server runs are lost. A world that another plugin loads after MythicSeasons finished starting is not restored from it.

12. Another plugin cancels the change

A plugin that listens to the season change event can cancel it. /ms set still prints its success message and the calendar retries every second, but the season never changes. Check the plugins that react to seasons.

Updated Nov 11, 2026