Authored months, weekdays and years, dated events, and the weather forecast.
Calendar
By default your world knows time of day and four rotating seasons — but no dates. There is no year, no month names, no weekday names, and because weather is rolled at random the moment it changes, there is no way to tell a player what tomorrow holds.
The Calendar fixes all of that. You author the shape of your year, date events onto it, and players get a real calendar they can open and read.
Find it in World Config → Calendar, next to Weather & Time.
Definition — the shape of your year
The Definition tab is where you invent your calendar:
| Field | What it does |
|---|---|
| Months | Any number of months. Each has a name, a length in days, and a season. |
| Weekdays | Name your weekdays. The week is as long as this list — a 5-day or 10-day week is perfectly valid. |
| Starting date | Which year/month/day/weekday the world begins on. |
| Year Label | How a year renders — Year {year}, {year} AC, whatever fits your setting. |
| Forecast Days | How far ahead players can see the weather. 0 hides the forecast entirely. |
A live preview shows what your settings resolve to ("Day 0 of this world is Stoneday, 2 Thaw, 312 AC"), so you can see immediately whether the shape is what you meant.
Months do not have to be equal length, and several months can share a season — three consecutive Winter months read as one continuous winter to everything downstream.
Seasons still do the work
**Your months map onto the engine's four seasons, and that is what keeps everything else working.** Weather weight tables, ambient temperature, seasonal audio and NPC shop season rotation are all driven by the season a day falls in — the calendar only decides when each season falls. Nothing you have already authored against seasons needs changing.
While a calendar is enabled, Season Length (days) in Weather & Time is ignored (and shown disabled), because your months now answer that question.
Events — things that happen on dates
The Events tab is a real grid of your authored year. Click any day to add an event.
| Setting | What it does |
|---|---|
| Repeats | Every day, every week on a weekday, every season on a day of the season, every month on a day, every year on a date, or once on a specific date. |
| Season / Day of the season | For every season: which season (or Every season), and which day of it — 1 is the season's first day. |
| Runs until the season ends | For every season: the event lasts from its day to the season's last day, however long you make your months. |
| Duration | How many days the event runs. It may cross month and year boundaries freely. Hidden for every day (always one day) and for runs until the season ends. |
| Time of day | All day (midnight to midnight), or Between two times on the in-game clock. An end time earlier than the start runs past midnight — 20:00 to 02:00 is a night event. Studio shows how long that is in real time at your day length. |
| Announcements | A toast and/or a chat line, broadcast when the event starts — for a timed event, each time its window opens. |
| Forced Weather | Holds the weather while the event runs. An all-day event pins every day it covers (and the forecast shows it); a timed one holds it only inside its window, then the day's own weather returns. |
| On-Start Script | A common event fired server-side when the event starts, for anything scripted. |
| World Event | A world event (authored in World Config → World Events) to run while the event runs — XP/loot/gathering boosts, boss spawns, mob waves, zone scoping. |
| Art & Colour | The image and chip colour players see on their calendar. |
| Visibility | Public shows on the player calendar. Hidden runs its script without players ever seeing it. |
Events are content, so they publish to your live server like any other definition.
Seasonal, weekly and daily events
These three cover most of what a living world needs:
| You want | Set it up like this |
|---|---|
| A festival that lasts all winter | Every season → Season Winter, Day 1, tick Runs until the season ends. |
| A fair at the start of every season | Every season → Season Every season, Day 1, Duration 2. |
| A market day each week | Every week → the weekday, All day. |
| An evening event on one weekday | Every week → the weekday, Between two times 18:00–23:00. |
| A night event every night | Every day → Between two times 20:00–02:00. |
| A dawn event every morning | Every day → Between two times 05:00–08:00. |
To give one a gameplay effect:
1. Under World Config → World Events, author the effect — for example **Gathering
Frenzy at 1.5 — and set its schedule to Manual**.
2. Under World Config → Calendar → Events, click New Event, pick how it repeats and
its time of day, and choose that world event in World Event.
3. Save. It reaches your live server straight away — no restart needed.
Every-day events are listed once, in an Every day strip above the month grid, rather than in every day's cell.
> Everything runs on your world's clock, not the real one. A daily event comes round > once per in-game day. With a 60-minute day that is every real hour, and a 20:00–02:00 > window is 15 real minutes. A season lasts as many real hours as it has days. Check the > real-time note under Time of day when you set the hours.
When events overlap, boosts stack
Running world events multiply together: a winter-long 1.25× XP event and a weekly 2× XP day give 2.5× on that day, and 1.25× again the moment the weekly one ends. A boost that is still running is never reset by another one finishing.
Where the gameplay effects come from
A calendar event schedules; a World Event is the payload. World Events already own XP / loot / gathering / crafting / speed multipliers, bloodmoon, boss spawns, mob waves and zone scoping — but they could only be scheduled in real time (an interval in milliseconds, or a wall-clock start), so "the 14th of Emberfall is a double-XP festival" was impossible to express.
Linking one in the World Event field fixes that: the calendar becomes the in-game-date scheduler World Events never had, and the world event runs for as long as your calendar event runs — its days, or its time window — overriding its own real-time duration.
So a double-XP day is two pieces:
1. Under World Events, author an event with effect XP Boost and a multiplier, and set its schedule to Manual so it only fires when something asks it to. 2. Under Calendar → Events, add an event on the date you want, set Duration to 1 day (or 7 for a week), and pick that world event.
Studio warns you if the world event you picked is disabled, or is still on its own recurring timer — in that case it fires on its own as well as on your date.
> Changing the current weather right now is separate from all of this: use > World Config → Weather & Time → Weather, which applies live — everywhere, in every > climate — when you change it and save. Saving other settings, or publishing, does not > re-apply the same pick. Bear in mind it is transient — the world keeps rolling weather > on its own. To make a date always have certain weather, use a calendar event's > Forced Weather instead.
The forecast
Daily weather is now deterministic: it is rolled from your world seed and the day number rather than at random. The odds are unchanged — the same season weight tables you already tuned — but because any future day can be computed, a forecast becomes possible at all, and every player sees the same one.
Weather still drifts within a day: roughly every 1–4 hours on your world's clock, it re-rolls from the same season table. It can roll the weather that's already running, which is why a common weather lingers and a rare one passes through — a 25%-weight snowfall lasts about a third longer than a 10%-weight blizzard, without either having a duration you set anywhere.
Because that window is measured in **game hours, not real minutes, it follows your day length**. Set a four-hour day and weather changes just as often per in-game day as it does on a one-hour day — it simply takes four times as long in real time. The same is true of how fast an arriving weather builds to full strength (a little over half a game hour). If you want a weather to last an exact length of time, use a schedule — its window is authored in game hours directly.
On a day an all-day event has pinned, weather doesn't drift at all. A timed event's weather holds only while its window is open and never appears in the forecast.
If your world has Weather Climates, every climate has its own forecast, and a player's calendar shows the forecast for the climate they are standing in — walk into the snowfield and the week ahead turns to snow.
What players see
Players have four ways into the Calendar panel:
- The weather, time and date chips in the top bar are buttons (a dotted underline
- A Calendar entry in the top bar's More menu.
- The
,(comma) key — rebindable like every panel key. - Custom menu buttons and top-bar buttons a creator points at the
panel.calendar
The panel shows:
- This month's grid, today ringed, in your month and weekday names
- Forecast icons on each day inside your forecast horizon
- Event chips, with a detail popover showing when it happens, the description and art
- An Every day strip for daily events, with their hours and a Now marker while
- A Coming up rail — "Harvest Festival — in 3 days", with the start time for timed
- Arrows to page through other months
calendar), so the UI & HUD Editor can
re-skin and reposition it like any other window.
The clock and the date in the HUD
The top-bar time chip shows a real clock — 14:32 · Afternoon by default. Pick the
format in the UI & HUD Editor's Top Bar tab (Clock format): 24-hour, 12-hour,
with or without the phase word, or phase-only for the classic look. When a calendar is
driving the world, a date line ("Moonday 14 Emberfall") appears beside it.
There is also a standalone World Clock HUD element (Layout tab → World Clock) — hidden by default — that a creator can place, scale and anchor anywhere on screen. It shows the clock plus the calendar date, and clicking it opens the calendar too.
Turning it off
The Calendar feature flag is on by default, but a calendar only drives dates and seasons once you tick "Calendar drives the world's dates & seasons". Until then the world keeps fixed-length seasons and shows no date line — the chips still open the panel (clock + forecast over the default calendar) so players always have a weather forecast. With the feature flag off entirely, the panel, button and keybind disappear.
Things worth knowing
- Reshaping your year moves existing dates. Dates are derived from a day counter, so
- Each world keeps its own date. The day counter is live server state, not content —
- Weekday-driven content follows your week. Systems keyed to a weekday wrap on your
- Events start on time, including after a restart. An event opens the minute its day
- Deleting or moving a running event ends it. Publish a change that takes an event
- Jumping the clock skips what you jump over. Setting the time or season from the
- An every-day event with no time of day is always on. Give it two times, or use a
- "Day of the season" must exist in that season. Studio blocks Day 30 of a 24-day