SkyForge_studio-SonsRealisticWinter icon

SonsRealisticWinter

Realistic winter: snow builds up grain by grain where flakes land, piles into drifts, freezes water, then melts. Presets up to Kamchatka-deep snow, low-end PC profiles. Experimental.

Last updated 6 hours ago
Total downloads 10
Total rating 1 
Categories Mods
Dependency string SkyForge_studio-SonsRealisticWinter-0.3.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack_IL2CPP-6.0.755 icon
BepInEx-BepInExPack_IL2CPP

BepInEx pack for IL2CPP x64 Unity games. Preconfigured and ready to use.

Preferred version: 6.0.755

README

Sons Realistic Winter

A winter overhaul for Sons Of The Forest. Snow builds up flake by flake: where a snowflake lands, a tiny grain of snow appears, and more flakes make it deeper, from a dusting to metres. Wind piles drifts behind walls and rocks, open water melts flakes until it freezes, and in warm weather everything melts away again. Built for low-end PCs: every effect has a budget you can turn down.

Status: experimental. See Known limitations below.

What it does

  • Grain-by-grain snow. Each flake is a real ray from the sky. Where it lands, snow appears and keeps growing with every further flake in that spot.
  • Unlimited depth. There is no built-in ceiling. The Kamchatka preset reaches about 5-6 metres at the peak of a long cold spell, and you can go further.
  • Drifts. Wind pushes extra snow behind walls and rocks. Open, windswept ground holds a little less.
  • Roofs and shelter. Snow settles on the first surface a flake touches, so roofs get snow and the ground under a roof stays clear.
  • Water and ice. A flake that hits open water melts. After enough frost the mod treats the water as frozen and snow settles on it. When it thaws, that snow sinks quickly.
  • Melting. Warm spells shrink the snow back down, and deep snow takes longer to go.
  • Own weather clock. Cold spell, then thaw, then cold again (or one winter only). It does not read the game's own weather yet.

Where the files go

All paths are inside your game folder (Sons Of The Forest).

What Where
The mod (SotfRealisticWinter.dll) BepInEx/plugins/SotfRealisticWinter/
Settings file (created on the first launch) BepInEx/config/com.local.sotf.realisticwinter.cfg
Probe report (only if you press F8) BepInEx/SotfRealisticWinter_probe.txt
Log (look for Sons Realistic Winter and Grains stats) BepInEx/LogOutput.log

Edit the settings file with the game closed. Delete it to get the defaults back.

Keys (in game)

Key Action
F9 Test snowfall on / off (constant heavy snow at -5 C, ignores the mod's weather)
F10 Remove all snow
F8 Write the probe report (a list of snow / weather / water related shaders and types, used for development)

Keys can be changed in the settings file ([6. Grains] DebugForceKey and ClearKey, [5. Probe] Hotkey). If the game does not accept the keys, nothing breaks: the mod just keeps running on its own weather.

Settings

Names below are [section] Key. Defaults in brackets.

Quick start

Setting What it does
[2. Intensity] WinterPreset (Kamchatka) Normal ~0.5 m peak, Heavy ~2 m, Kamchatka ~5-6 m with no depth limit, Custom = use your own numbers
[2. Intensity] SnowIntensity (1.0) Multiplier on top of the preset. 0.3 lighter, 2 about twice the snow. Up to 50
[2. Intensity] MeltSpeed (1.0) How fast snow melts above 0 C
[3. Performance] Profile (Low) Low / Medium / High / Custom. Pick Low on a weak PC

The depth numbers above were measured on a simulation of the model, not in the game, and they are for a full cold spell.

Performance profiles

Profile Snow radius around you Flakes per second Max snow patches Rays per frame
Low 7 m 40 900 3
Medium 10 m 110 2500 8
High 14 m 260 6000 16
Custom [6. Grains] CustomRadius CustomFlakesPerSecond CustomMaxCells CustomMaxRaysPerFrame

Snow is only drawn around the player, that is where the radius comes from. A bigger radius or more patches costs more FPS.

Weather ([1. General])

Setting Default What it does
VirtualDayMinutes 20 Real minutes per day of the mod's own weather clock
ColdDays / ThawDays 6 / 3 Length of the cold spell and the thaw (used by Normal and Custom; Heavy and Kamchatka use their own)
ColdMeanC / ThawMeanC / DailySwingC -5 / 4 / 4 Temperatures (same note as above)
LoopCycle true Repeat cold, then thaw. false = one winter, then permanent thaw
Seed 1337 Same seed gives the same winter

Snow ([6. Grains])

Setting Default What it does
Enabled true Turn the snow rendering on or off
DepthPerVirtualDay 1.0 Custom preset only: metres of snow per weather day at full snowfall
MaxDepthMeters 0 Custom preset only: depth limit in metres. 0 = no limit
MeltMetersPerDegreeDay 1.5 Custom preset only: metres melted per degree above 0 C per weather day
DriftStrength 1.0 Drifts behind obstacles. 0 = off, 2 = extreme
WindDirectionDeg 45 Direction the wind blows towards
ShelterMeters 8 How far upwind an obstacle can be and still cause a drift
TrenchRadius / TrenchDepth 3 / 0.6 The mod cannot lift you onto the snow, so snow is shown low around you (like a dug path) and rises to its real depth further out. TrenchRadius = 0 turns this off, then deep snow can cover the camera
MaxSlopeDeg 55 Snow does not stay on surfaces steeper than this
SkipMovingObjects true No snow on things that move (people, animals, logs, items)
Color 0.95,0.97,1.0 Snow colour as r,g,b from 0 to 1
UseInstancing true Set to false if the snow is invisible or pink
Shader Auto Shader used for the snow. Type an exact shader name if Auto picks a bad one
IgnoreSceneKeywords title No snow while the active scene name contains one of these words. Empty = always on
StatsEverySeconds 30 Write snow statistics to the log. 0 = off

Water and ice ([6. Grains])

Setting Default What it does
SnowOnLiquidWater false true = snow also settles on open water
WaterFreezeDays 2 Days of hard frost for water to freeze solid (the mod's own estimate)
WaterThawDays 1.5 Days of thaw for ice to melt completely
WaterFreezeThreshold 0.6 Ice level (0 to 1) from which snow settles on water
WaterLayers Water Unity layer name(s) of water, comma separated
WaterKeywords water,ocean,lake,river,swamp,pond Names containing these count as water
IceKeywords ice,frozen Names containing these count as solid ice
IgnoreKeywords player,cannibal,mutant,enemy,creature,animal Names containing these never get snow

Advanced

Setting What it does
[2. Intensity] RoofAccumulation (1.0), RoofMelt (0.7) Roofs relative to the ground. RoofMelt below 1 keeps snow on roofs longer
[3. Performance] SmoothingSeconds (4), MaterialRescanSeconds (180) Easing and how often materials are searched
[4. Targets] GroundProperty, RoofProperty (empty) Names of the game's own snow shader properties. Empty until they are found with the probe; nothing happens while they are empty
[5. Probe] Enabled, Hotkey, AutoRunDelaySeconds, Keywords, MaxLines Settings of the probe report

Known limitations

  • Visual only. The snow has no collision. You still walk on the ground and through the snow.
  • Only around the player. Snow is drawn in a radius around you (see the profile table). The rest of the world has no snow, because the mod is not hooked into the game's own snow shader yet.
  • Blocky when deep. Deep snow is made of upright columns with flat tops, so you can see small steps where the depth changes. Smooth wave-like drifts and snow hanging over roof edges and balconies are not supported.
  • Not tested widely. It has not been checked on many setups, and the FPS cost has not been measured. Start with Profile = Low.
  • Water detection is a best guess. If snow shows up on the bottom of a lake, or does not settle on ice, check the Grains stats lines in the log and adjust WaterLayers / WaterKeywords.
  • Single player only. Every player would calculate their own snow.

Reporting problems

Please include BepInEx/LogOutput.log (the lines with Sons Realistic Winter and Grains) and, if you can, BepInEx/SotfRealisticWinter_probe.txt made inside a loaded world with F8.