Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Solstice
Meadworks seasons: spring, summer, fall and winter by the world calendar, with seasonal growth, bees, food, stamina, fire, sap, rest and wind effects, and local winter snow and season colors. Cooperates with Tempest weather. Required on all peers.
| Date uploaded | 4 days ago |
| Version | 0.1.2 |
| Download link | expDARE-Solstice-0.1.2.zip |
| Downloads | 23 |
| Dependency string | expDARE-Solstice-0.1.2 |
This mod requires the following mods to function
ValheimModding-Jotunn
Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.
Preferred version: 2.30.2denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2351expDARE-Crucible
Meadworks shared library: product registration, server authority, the shared interface kit, localization and logging. Adds no gameplay. Required on all peers.
Preferred version: 0.3.28README
Solstice
Four seasons for Valheim: spring, summer, fall and winter follow the world calendar and change how the world works.
Version 0.1.2. Requires Crucible 0.3.28 / Crucible.UI 0.3.20. Changes are in CHANGELOG.md.
Features
- A season calendar from the in-game day: four seasons of ten days by default, each length yours to set. The server decides, and the season is saved with the world, so every player is in the same season after they receive it. The season already underway keeps its start day when a length changes.
- Seasonal effects: plants grow fast in spring and not at all in winter, bees work hard in summer and rest in winter, food and stamina last longer in summer and run out sooner in winter, fires burn through fuel faster in winter, sap flows best in spring, the Rested effect lasts longer in summer, the wind blows harder in fall, and winter rain no longer wears down buildings. Every number is a setting per season. Places the seasons do not reach: indoors (a greenhouse under a roof), the Ashlands, the Deep North, high mountains, and inside a shield generator dome (in winter, by default). In a winter that stops growth, plants that are not hardy die of cold unless a fire is near; carrots, barley, flax, thistle and magecap are hardy (a server setting).
- Seasonal weather: each season adds and swaps weather in the biomes (more thunder in fall, snow in the Meadows, the Black Forest and the Plains in winter, clear heath skies in the Meadows in summer). Names such as Clear Winter are copies of the game's own weather with a night tint.
- A season status outdoors (not in the Ashlands or the Deep North), and overheating from too many warm clothes in summer unless you eat Eyescream, the weather is cold, or you are sheltered or indoors. Ripe crops on a server list can freeze and perish in a winter that stops growth. A crop that fails its winter survival roll drops its normal harvest once after the full freeze grace. Sleep and time skips do not shorten the grace.
- Works with Tempest: while a Tempest blizzard or thunderstorm reaches you, or a weather is forced, Solstice never resets the sky under it. Cairn, Tempest and other mods can read the current season from Solstice.
- On your own screen: grass, leaves and the ground take the season's color, and both maps tint with them. In winter, Meadows, Black Forest, Swamp and Plains ground takes the game's mountain snow, a little under full white, grass thins and frosts, leaves and small ground plants take a light snow and trunks stay brown. Materials that already know snow can still raise it. On the frozen days, shallow water tints toward icy blue and stays partly transparent. A small plate shows the season and day, with a season mark. Winter keeps that mark on the status when season icons are off. A heat meter shows warm-clothes heat in a hot season, and one of the game's own tracks can follow the season. These are yours to switch off, and they do not change the world for anyone else. There is no snow mesh and no ice you can walk on.
- A short message when a new season starts, and a console command:
solsticeshows the season and day. - A cheat, off by default: Season Override holds the world in one season.
Requirements
- BepInExPack Valheim 5.4.2351
- Jotunn 2.30.2
- Crucible 0.3.28 or a later 0.3.x, which includes Crucible.UI 0.3.20 (the shared Meadworks interface kit)
Installation
- Mod manager (recommended): install Solstice with r2modman, Gale or the Thunderstore Mod Manager; the dependencies above are installed for you.
- Manual: install BepInExPack Valheim, then Jotunn and Crucible, then copy the
plugins/Solsticefolder from this package intoBepInEx/plugins/. - Solstice must also be installed on the server (see Multiplayer).
Configuration
- Settings file:
BepInEx/config/com.extrapotions.solstice.cfg. Edit it in game with Almanac (the Meadworks settings book) or any ConfigurationManager. - In multiplayer the server's values win for the calendar and the effects, and admins can lock settings; locked settings show as read-only.
- General: Enabled turns the effects and the seasonal weather off for everyone while the season stays readable by other mods.
- Calendar: Days In Spring, Summer, Fall and Winter (1 to 100 each).
- One section per season (Spring, Summer, Fall, Winter): Plants Growth, Beehive Production, Food Drain, Stamina Drain, Fireplace Drain, Sap Collecting Speed, Rested Buff Duration and Wind Intensity multipliers, and Rain Protection.
- Protection: Heat Protects Crops, Shield Generator Protects, Shield Generator Protects In Winter Only, Winter Hardy Crops (the original mod's defaults). Crops Perish, Perish From Day, Freeze Seconds, Winter Harvest Chance and Crops To Control.
- Climate: Season Status, Warm Clothes Overheat and Cooling Foods.
- Notices: the season message is yours to switch off.
- Visuals: World Tint, Snow Cover, Frozen Water, Minimap Tint, Season Indicator, Season Icons and Heat Meter. Music: Seasonal Music. Each one is local to this player, takes effect at once, and the server does not override it. A dedicated server does not play music or draw the marks.
- Cheat: Season Override (off by default). In multiplayer it stays locked unless the server allows it.
Multiplayer
- Required on all peers: install it on the server and on every client, same major.minor version. The server saves the season with the world and clients read it. Until that arrives, a client does not apply a season of its own.
- Joining a server without Meadworks: Crucible waits for the server's reply (10 seconds by default), then treats it as a vanilla server; Solstice turns off for that session. It also turns off on a Meadworks server that does not run Solstice.
- Players without Meadworks (vanilla clients) cannot join a server that runs Meadworks yet: Crucible is required on every peer.
Replaces / compatibility
- Steps aside and says so when Seasons (shudnal) or Seasonality (RustyMods) is installed.
- Tempest: Solstice changes only the biome weather lists and never forces weather, so a Tempest event, a forced environment or a personal weather override keeps the sky. At a season start Solstice also waits (at most an hour) before making the game choose weather again if one of those is active.
- Not in Solstice: copied season textures, snow meshes, ice you can walk on, Seasons' summer-heat meter, and Seasons' music files. Snow cover and frozen water are still numbers other mods can read. The client color does not write snow onto buildings. The heat meter only shows the warm-clothes overheat Solstice already applies. Seasonal music uses tracks the game already has. Ember (torches and night), Shepherd (breeding) and Wildblood (wood and meat) can read those numbers from Solstice. See docs/SEASON-CONTRACT.md.
- Not yet tested side by side with other weather or time mods.
Compatibility & notes
- Cheats: anything this product's cheats spawn carries Valheim's native cheated flag (m_cheated); servers running CheatTagEnforcement remove those items. In multiplayer, cheats stay locked unless the server allows them.
- Gamepad: the season plate is display only. It has no control to focus.
- Languages: English, Spanish, Simplified Chinese, Russian, French, German and Korean (notices, season names, the console reply, the season plate, the heat meter, and the visual and music settings; the configuration file's own descriptions stay English). The translations await a native review.
- The package icon is a sun drawn for Solstice in the Meadworks icon style (see docs/art-provenance.md).
- Adapted from Seasons by shudnal (Unlicense, public domain): the calendar arithmetic, the default seasonal values and weather rules, and the effect patches. Seasons' textures and music are not used.
- Listed under Thunderstore's AI Generated category; tested in-game.
- Source: https://github.com/ExtraPotions/Meadworks/tree/main/Solstice
Changelog
See the Changelog tab (CHANGELOG.md).
Credits and license
Code: GPL-3.0-or-later (LICENSE-CODE.md). Original artwork and documentation: CC BY-NC-SA 4.0 (LICENSE-ASSETS.md). The season calendar, default effect values and weather rules are adapted from Seasons by shudnal, released into the public domain under the Unlicense (THIRD_PARTY_NOTICES/Seasons-Unlicense.txt). Product author: expDARE.
CHANGELOG
Changelog
Unreleased
-
If legacy settings cannot be copied, initialization stops before saving defaults and retries on the next start. Existing settings and backups are preserved.
-
Add Debug-only Stopwatch and GC diagnostics for multi-frame winter work and day/toggle frames. Timings retain the existing work schedule.
0.1.3 (2026-10-22)
- 0.1.3. Solstice is now a MeadWorks plugin everywhere: its plugin ID is
com.meadworks.solstice(wascom.extrapotions.solstice). Almanac lists it under Meadworks, and Crucible treats it like every other MeadWorks product. - Your settings carry over. On the first start,
com.extrapotions.solstice.cfgis copied tocom.meadworks.solstice.cfgand the old file is kept ascom.extrapotions.solstice.cfg.bak; the seasons import marker moves the same way, so an import that was already applied is not applied again. An existing new file is never overwritten. The world's season clock is unchanged. - A server that let players use Season Override through the admin "Players may use" list must allow it again after the update: that list names the plugin ID, so the old grant no longer matches. Until then Season Override stays admin-only.
- Update every player and the server together: a 0.1.2 client and a 0.1.3 server (or the reverse) do not see the same plugin ID and cannot join.
0.1.2 (2026-10-21)
- 0.1.2. One per-frame tick that throws is logged at most once a minute and no longer skips the other ticks.
- Snow-cover pass lines and per-texture source and frost averages, including sky, sun and ambient, are Debug. A snow frame over 50 ms still warns, at most once a minute.
- A day change or a General Enabled toggle logs a Debug breakdown of Solstice's own tick times, and whether the weather list, environment variants, music invalidate, visuals repaint or minimap tint ran in that frame.
0.1.1 (2026-10-21)
- Thunderstore republish of the release 8 build; no code changes.
- Requires Crucible 0.3.28 / Crucible.UI 0.3.20 (Crucible 0.3.27 on Thunderstore is a source archive without DLLs).
0.1.0 (2026-10-21)
- First release. Requires Crucible 0.3.27 / Crucible.UI 0.3.20.
- New product: Solstice, four seasons by the world calendar (Runestone, required on all peers).
- Calendar: configurable season lengths, server-authoritative.
- Seasonal effects on plant growth, beehives, food, stamina, fire fuel, sap, the Rested effect, wind and rain wear.
- Protected places (indoors, Ashlands, Deep North, high mountains, shield dome) and the winter cold rule for plants with fire heat protection and a hardy crop list, from the original mod.
- Seasonal weather through the biome weather lists, yielding to Tempest and to forced environments.
- The season capability
meadworks.seasons.view1.0 for Cairn, Tempest and other mods. - Season Override cheat,
solsticeconsole status, season-start message. - Adapted from Seasons 1.10.6 by shudnal (Unlicense); its textures, snow meshes, walkable ice and music files are not included.
- Icon: a sun, drawn in code in the Meadworks icon style (approved 2026-10-10). Notices and season names in English, Spanish, Simplified Chinese, Russian, French, German and Korean.
Development history:
- Black Forest winter no longer turns firs and ground plants black. The frost copy is read as sRGB, so the shared fir texture and the forest-floor cards keep their color, with a light frost on the green.
- Leaving a world and joining again rebuilds the season plate, the heat meter and the season status. A destroyed HUD object is recreated, and the status name is localized again instead of staying SolsticeSeason.
- Black Forest ground plants take the same light frost as leaves. The frost copy keeps each source alpha byte, so the cutout edges stay the game's.
- Winter snow on this client no longer frosts every texture and rebuilds every terrain chunk in one frame. Each source texture is read once per winter session, a strength step is built off the main thread, and loaded chunks rebuild a few per frame, nearest first. Bark, trunk, log and stem materials stay as they are. Leaves take a light snow and brown pixels stay brown. Open lowland snow stops at 0.8 of the mountain mask. Clear Winter and Heath clear Winter lower the midday sun a little on a graphical client. A narrow heat meter leaves the word off when it would be under 8 pixels.
- Winter ground on this client uses the terrain shader's mountain snow mask on Meadows, Black Forest, Swamp and Plains, rebuilt when the season or the winter day changes. Grass and leaves use a frosted texture copy instead of a white color multiplier, and clutter that only grows in those biomes is thinned. Frozen water no longer writes a surface color and stays icy blue with some transparency. The overheat mark is a flame. The heat label has a dark outline. Winter status keeps the Solstice winter mark when season icons are off.
- Winter Meadows uses snow instead of rain, and those snow copies are not Wet. Snow Cover still raises the game's snow level where a material already has one. The season plate reserves a HUD rectangle so notices step aside, and the heat meter hides when the only gap is the compass band. Goblin king and dragon music names stay reserved. A crop watch attaches only to crops on the server list, and a perish drop is marked picked before the items fall.
- On this client, Solstice can play one of the game's own ambient tracks for the season, draw a season mark on the plate and the season status, and show a heat meter for warm-clothes overheat. Frozen winter days also tint foam and the top water color, when the water has them, and space the ripples. Each one is a local setting and applies at once. There is still no ice you can walk on. Seasons' summer-heat meter is not copied. A dedicated server does not play music or draw these.
- Crop freeze checks follow ownership on every peer and keep the full configured grace through sleep and world-time skips. A failed survival drops the normal harvest once; survival applies only to the current winter.
- Unknown or damaged saved clocks are preserved with seasonal effects off. Beehives, fire fuel and sap integrate each season across unloaded gaps, and a winter override retains earlier plant growth.
- Turning Solstice off restores seasonal skies, material instances and both maps. Late weather sources retry, and Swamp Summer uses the game's Darklands environment.
- All settings and section headings have names and help in all seven languages. Shelter and interiors stop warm-clothes overheating.
- The season is saved with the world (
mw.solstice.clock) and sent to clients. A world with no clock starts from the same day-to-season math as before. Changing a later season's length no longer moves the season already underway. - Other mods can read
meadworks.seasons.clock1.0 andmeadworks.seasons.facts1.0.meadworks.seasons.view1.0 is unchanged. See docs/SEASON-CONTRACT.md. - Ripe crops on a server list can freeze in a winter that stops growth. Failed survival drops their normal harvest. A fire, a hardy crop, or a protected place keeps them ripe.
- The season status effect uses the existing stat table outdoors, except in the Ashlands and the Deep North. Two or more frost-resistant clothes in a hot season slow stamina and Eitr recovery unless sheltered, indoors, cold, or eating a cooling food.
- Snow cover and frozen water are numbers on the facts contract. Solstice does not spawn snow or ice.
- On this client, grass, leaves, the ground and both maps take a season color. Winter can raise the game's own snow level on materials that already have one, and shallow water can tint toward ice on the frozen days. Nothing is saved onto buildings, and no snow mesh or walkable ice is added. A small plate shows the season and day. These client visuals apply immediately.
- Seasonal weather names such as Clear Winter are cloned from the game's own environments and tinted, so those swaps are no longer skipped.
- A
Solstice.seasons.jsonfile can fill settings that are still at their defaults. Night, torches, wood, meat and breeding are left for the mods that own them.