Note: It is not recommended to use this mod with existing saves. Some mechanics may change and could break your save in irreversible ways.
How it works
Terrain is swapped to snow and ice tiles from Aquilo during winter and restored back during summer. It keeps an internal snapshot of the "warm" terrain tiles, then replaces the visible tiles with winter variants while freezing is active. When the world thaws, it restores the terrain from that warm snapshot.
Winter tile selection works like this:
- hardcoded mappings, for special cases like water -> ice and vanilla dirt/grass -> snow variants
frozen-<tile-name>, if such a tile prototype exists- fallback to
snow-flat
So if another mod provides a tile called my-soil, and also provides frozen-my-soil, it should automatically use frozen-my-soil as the winter display tile. If no frozen variant exists, it falls back to snow-flat.
When winter begins, a visible snowstorm front moves across Nauvis. Terrain behind the front becomes frozen. Grass, sand, dirt and other tiles are replaced with winter variants, while water turns into ice. During winter, snowfall effects appear around players.
When summer begins, the front moves in the opposite direction and restores the original terrain state.
By default:
- summer lasts 22 hours
- winter lasts 7 hours
- the first winter starts near the end of summer cycle (season offset = 21.99) - for demo
- the snow front moves at 7.2 tiles per second
Admins can use /wic-next-season-in-minutes <minutes> to override the time until the next season.
Technical Details
- Efficient chunk-based world state: terrain is tracked in 32x32 chunks instead of per-tile Lua tables
- Compact tile storage: tiles are encoded through a shared palette and packed into byte strings for efficient storage ~1024 bytes/chunk
- Incremental snow front simulation: freezing and thawing progress in small strips, so the mod avoids processing the whole map at once
Gameplay
- Water bodies can freeze to ice during winter
- Players and enemies can move and build on ice
- Structures built on ice will be lost when it melts
- Offshore pumps cannot be placed on ice
- Fish cannot be caught under the ice
Compatibility
- Alien Biomes
- Cargo Ships
- Wood Walls and floors / Lignumis
- Dredgeworks
- AAI Vehicles: Ironclad
- Dirt Path
For compatibility, the important part is that terrain-changing mods raise tile-change events when they modify terrain:
surface.set_tiles(..., raise_event = true)
That raise_event = true allows it to detect the change and update its warm-tile snapshot. If the changed position is currently behind the snow front / in winter, the mod can then immediately redraw the visible tile using the winter version.
Feedback is very welcome: please share your observations, bug reports, balance thoughts, and gameplay ideas