Winter Chernarus V2
Mod Details Due to the original Winter Chernarus no longer receiving updates, and me being the only member left willing to continue, I decided to create a living successor to Winter Chernarus, just simply called; Winter Chernarus V2 This mod aims to overhaul the entirety of Chernarus and bask it with snow. All the old elements of Winter Chernarus are still here, but will be changed over time as the mod continues to… (more)
Mod Details Due to the original Winter Chernarus no longer receiving updates, and me being the only member left willing to continue, I decided to create a living successor to Winter Chernarus, just simply called; Winter Chernarus V2 This mod aims to overhaul the entirety of Chernarus and bask it with snow. All the old elements of Winter Chernarus are still here, but will be changed over time as the mod continues to grow. Many assets and textures are done via prefixes which overrides the base files. This can be done and will be done to update more structures, items, objects, etc. Thanks to DrDeSync for the thumbnail! Thanks to Helkiana for the scripting rework! Thanks to Asmondian for the great infected texture rework! Big thanks to the original team of Winter Chernarus for all the time they have spent making the original Winter Chernarus. Without their contributions to the community, this project would never have been possible. Dependencies It is NOT required to run the original Winter Chernarus with this mod, and is completely standalone. Winter mods for workshop maps that used the original Winter Chernarus as a dependency should switch to this one. If you were using chernarus_winter_scripts as a required addon, switch to WinterChernarusV2Scripts. F.A.Q -Can you add X,Y,Z Feature? If it's do with scripting, probably not. I'm not a scripter and typically I'm a one man band with this. I can source help but it'll not be something I can focus on. -Why did you change the wind sounds? They were changed due to constant copyright claims from a company that has claimed a soundbyte as their own. Streamers, content creators and such were getting flagged and that's not ideal. I bought new sounds, customised them and simply replaced the tracks in config, and the volumes were reduced due to feedback. -The snow is blinding! Turn down the brightness! Unfortunately, that is not possible as snow is, well, bright. To mitigate the issue, configure your server date to sometime in winter. Refer to the init.c down below. If you'd like an inkling of blue sky, then February 20th is a good date too. Installation Mission Files The mission files are included in the mod, feel free the modify them as you see fit. https://github.com/ThatLad/WinterChernarusV2-Missions-Files Lad's Modding Workshop Discord You can join my Modding Workshop discord to help report issues, give feedback and talk about my projects: https://discord.com/invite/jm49NcTPgh Usage & Terms This item is NOT authorized (strictly forbidden) for any of these conditions: - posting on Steam, except under the Steam account Lad. - hosting on any download server other than Lad's current workshop download. - hosting on any launcher for distribution other than Lad's current workshop download. - to be packaged in any form other than Lad's current workshop download. - to create derivative works. PERMISSION IS NOT GRANTED FOR THIS MOD TO BE INCLUDED IN A "SERVER PACK" or "MOD PACK". Use a Collection if you want to include this mod on your server for your users. Monetization while using this mod is approved. Support If you like this mod and want to support this or future mods you can do so below. Thanks. PS it does not get you sweaty feet pics. That is the platinum tier :^)
No file I/O on hot paths, no timers created per event, no per-player-per-frame hooks.
5 chain breaks, all on specific classes the mod replaces wholesale — matters only if another mod patches the same classes.
less than 0.001% of each server frame at 100 players (0.001 ms/s). Counts hook dispatch and timers only, not what the hooks do inside. Methodology.
Structural load of the 328 scripted mods analyzed, lightest on the left. This mod's bar is lit; 21 others share it. Ranked list.
Event hooks carry 99.8% of this mod's structural load. 0.001 ms/s in all.
6 hooks · 0.0012 ms/s
| Event hooksrun when something happens: an inventory move, a hit, an action | 6 hooks | 0.0012 ms/s | 99.8% | ActionEatSnowContinuous.ActionCondition, ActionFillBottleSnow.ActionCondition, Iceaxe.SetActions and 2 more |
Counts how often each hook is dispatched and how many timers stay alive, not what the code inside does. Some rates are order-of-magnitude estimates; the methodology lists which.
Chain breaks, by consequence
5 overrides that skip super(), ranked by how much they can affect. On any server a break replaces vanilla's behaviour on that method and silences every earlier-loaded mod hooking it.
CalculateVolFog · CalculateWind · SetupLiquidTemperatures
Only this class is affected. Matters only if another mod in your stack patches the same class.
1 class
ChernarusPlusData3 locations
WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/Worlds/ChernarusPlus.c:643WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/Worlds/ChernarusPlus.c:573WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/Worlds/ChernarusPlus.c:119SetActionAnimOverrides
Only these classes are affected. Matters only if another mod in your stack patches the same classes.
2 classes
Iceaxe, Pickaxe2 locations
IceFishing.pbo::scripts\4_world\IceFishing\Modded\Tools.c:3IceFishing.pbo::scripts\4_world\IceFishing\Modded\Tools.c:18Where this mod runs often
Hooks on per-frame and high-rate surfaces, with what their bodies call. Body work, not the hook itself, is what costs frame time.
Other findings
Checks answered without super() · 4 · warning
- ActionEatSnowContinuous.ActionCondition returns its own answer without consulting super.ActionCondition() — vanilla's conditions on this check, and those of every earlier-loaded mod, no longer apply. Intended when a mod owns the rule outright; otherwise it is how another mod's restriction quietly stops working.
WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/UserActionComponent/Actions/Continuous/ActionEatSnowContinuous.c:3 - ActionFillBottleSnow.ActionCondition returns its own answer without consulting super.ActionCondition() — vanilla's conditions on this check, and those of every earlier-loaded mod, no longer apply. Intended when a mod owns the rule outright; otherwise it is how another mod's restriction quietly stops working.
WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/UserActionComponent/Actions/Continuous/ActionFillBottleSnow.c:3 - ChernarusPlusData.LogWeatherData returns its own answer without consulting super.LogWeatherData() — vanilla's conditions on this check, and those of every earlier-loaded mod, no longer apply. Intended when a mod owns the rule outright; otherwise it is how another mod's restriction quietly stops working.
WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/Worlds/ChernarusPlus.c:668 - ChernarusPlusData.WeatherOnBeforeChange returns its own answer without consulting super.WeatherOnBeforeChange() — vanilla's conditions on this check, and those of every earlier-loaded mod, no longer apply. Intended when a mod owns the rule outright; otherwise it is how another mod's restriction quietly stops working.
WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/Worlds/ChernarusPlus.c:134
- ActionEatSnowContinuous.ActionCondition returns its own answer without consulting super.ActionCondition() — vanilla's conditions on this check, and those of every earlier-loaded mod, no longer apply. Intended when a mod owns the rule outright; otherwise it is how another mod's restriction quietly stops working.
super() only on some paths · 2 · warning
- ActionFillBottleBase.GetActionCommandEx calls super.GetActionCommandEx() only on some paths — on the others the chain below this mod is dropped.
IceFishing.pbo::scripts\4_world\IceFishing\Modded\ActionFillBottleBase.c:3 - Hologram.RefreshVisual calls super.RefreshVisual() only on some paths — on the others the chain below this mod is dropped.
IceFishing.pbo::scripts\4_world\IceFishing\Modded\Hologram.c:3
- ActionFillBottleBase.GetActionCommandEx calls super.GetActionCommandEx() only on some paths — on the others the chain below this mod is dropped.
Several overrides of one hot surface · 1 · info
- 2 overrides of PlayerBase.SetActions within this mod.
Which vanilla methods the mod hooks, which of them drop the chain, how often each hook fires, and which risky calls sit inside hot hooks.
How long hook bodies take, network cost, or engine-side load. Measured across live fleets, most server lag comes from the engine and world state, not mod script chains — a light footprint does not clear a mod of lag, and a heavy one does not convict it. Methodology.
Everything else
All 24 overrides
Surface is the dispatch tier the rubric can price (— = unpriced); server is whether the override exists on a dedicated server; super() shows whether the vanilla chain is preserved on a server.
| method | surface | server | super() | where |
|---|---|---|---|---|
ActionConstructor.RegisterActions |
— | yes | ✓ | IceFishing.pbo::scripts\4_world\IceFishing\Modded\ActionConstructor.c:3 |
ActionConstructor.RegisterActions |
— | yes | ✓ | WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/UserActionComponent/ActionConstructor.c:3 |
ActionEatSnowContinuous.ActionCondition |
T2 | yes | ✗ none | WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/UserActionComponent/Actions/Continuous/ActionEatSnowContinuous.c:3 |
ActionFillBottleBase.GetActionCommandEx |
— | yes | conditional | IceFishing.pbo::scripts\4_world\IceFishing\Modded\ActionFillBottleBase.c:3 |
ActionFillBottleSnow.ActionCondition |
T2 | yes | ✗ none | WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/UserActionComponent/Actions/Continuous/ActionFillBottleSnow.c:3 |
ChernarusPlusData.Init |
— | yes | ✓ | WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/Worlds/ChernarusPlus.c:29 |
ChernarusPlusData.SetupWeatherSettings |
— | yes | ✓ | WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/Worlds/ChernarusPlus.c:109 |
ChernarusPlusData.SetupLiquidTemperatures |
— | yes | ✗ none | WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/Worlds/ChernarusPlus.c:119 |
ChernarusPlusData.WeatherOnBeforeChange |
— | yes | ✗ none | WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/Worlds/ChernarusPlus.c:134 |
ChernarusPlusData.CalculateWind |
— | yes | ✗ none | WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/Worlds/ChernarusPlus.c:573 |
ChernarusPlusData.CalculateVolFog |
— | yes | ✗ none | WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/Worlds/ChernarusPlus.c:643 |
ChernarusPlusData.GetAgentSpawnChance |
— | yes | ✗ none | WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/Worlds/ChernarusPlus.c:655 |
ChernarusPlusData.GetColdAreaToolDamageModifier |
— | yes | ✗ none | WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/Worlds/ChernarusPlus.c:663 |
ChernarusPlusData.LogWeatherData |
— | yes | ✗ none | WinterChernarusV2Scripts.pbo::scripts/4_World/Classes/Worlds/ChernarusPlus.c:668 |
Hologram.RefreshVisual |
— | yes | conditional | IceFishing.pbo::scripts\4_world\IceFishing\Modded\Hologram.c:3 |
Iceaxe.SetActionAnimOverrides |
— | yes | ✗ none | IceFishing.pbo::scripts\4_world\IceFishing\Modded\Tools.c:3 |
Iceaxe.SetActions |
T2 | yes | ✓ | IceFishing.pbo::scripts\4_world\IceFishing\Modded\Tools.c:8 |
ModItemRegisterCallbacks.RegisterOneHanded |
— | yes | ✓ | WinterChernarusV2Scripts.pbo::scripts/4_World/Entities/ManBase/ModItemRegisterCallbacks.c:3 |
Pickaxe.SetActionAnimOverrides |
— | yes | ✗ none | IceFishing.pbo::scripts\4_world\IceFishing\Modded\Tools.c:18 |
Pickaxe.SetActions |
T2 | yes | ✓ | IceFishing.pbo::scripts\4_world\IceFishing\Modded\Tools.c:23 |
PlayerBase.SetActions |
T2 | yes | ✓ | IceFishing.pbo::scripts\4_world\IceFishing\Modded\PlayerBase.c:3 |
PlayerBase.EOnContact |
— | yes | ✓ | WinterChernarusV2Scripts.pbo::scripts/4_World/Entities/ManBase/PlayerBase.c:3 |
PlayerBase.SetActions |
T2 | yes | ✓ | WinterChernarusV2Scripts.pbo::scripts/4_World/Entities/ManBase/PlayerBase.c:30 |
SakhalData.InitYieldBank |
— | yes | ✓ | IceFishing.pbo::scripts\4_world\IceFishing\Modded\SakhalData.c:3 |
Dispatch surfaces and timers the grade prices
| surface | tier | rate (Hz) | rate source | ms/s |
|---|---|---|---|---|
PlayerBase.SetActions | T2 | 8.0 | placeholder | 0.0002 |
Iceaxe.SetActions | T2 | 8.0 | placeholder | 0.0002 |
Pickaxe.SetActions | T2 | 8.0 | placeholder | 0.0002 |
PlayerBase.SetActions | T2 | 8.0 | placeholder | 0.0002 |
ActionEatSnowContinuous.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionFillBottleSnow.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
Includes 0.001 ms/s from placeholder-rated surfaces.
Load-order constraints (CfgPatches)
What each PBO declares: its addon identity and the addons it requires to be loaded first (requiredAddons). A partial load-order signal from the mod's own metadata.
AsmondWinterZombies.pbo
AsmondWinterZombiesrequiredVersion 0.1 — requiresDZ_DataAsmondWinterZombiesrequiredVersion 0.1 — requiresDZ_Data,DZ_Surfaces,DZ_Characters,DZ_Characters_Zombies
IceFishing.pbo
IceFishingrequiredVersion 0.1 — requiresDZ_DataIce_Fishing_WaterrequiredVersion 0.1 — requiresDZ_Data
WinterChernarusV2LakesAndPonds.pbo
WinterChernarusV2LakesPonds_DZ— requiresDZ_Data
WinterChernarusV2PanelParts.pbo
WCV2_PanelPartsrequiredVersion 0.1 — requiresDZ_Data
WinterChernarusV2Plants_Bush_Winter.pbo
WCV2_Plants_Bush_Winter— no requiredAddons
WinterChernarusV2PondTex.pbo
WinterChernarusV2PondTex— requiresDZ_Data
WinterChernarusV2Rocks.pbo
DZ_RocksrequiredVersion 0.1 — requiresDZ_DataDZ_Snow_RocksrequiredVersion 0.1 — requiresDZ_Data
WinterChernarusV2Scripts.pbo
WinterChernarusV2ScriptsrequiredVersion 0.1 — requiresDZ_Data
WinterChernarusV2Surfaces.pbo
DZ_Surfaces_WinterrequiredVersion 0.1 — requiresDZ_Data
WinterChernarusV2World.pbo
WinterChernarusV2_WorldrequiredVersion 0.1 — requiresDZ_DataWCV2_MapNameColourrequiredVersion 0.1 — requiresDZ_Data,DZ_Gear_NavigationWinterChernarus_Chernarusplus_WorldrequiredVersion 0.1 — requiresDZ_Data,DZ_Surfaces,DZ_Worlds_Chernarusplus_World
WinterChernarusV2_Expansion.pbo
WinterChernarusV2_ExpansionrequiredVersion 0.1 — requiresDZ_Data,DZ_Surfaces,DZ_Characters,DZ_Sounds_EffectsWCV2_Weapons_ThrowablesrequiredVersion 0.1 — requiresDZ_Data
census 1.1 · findings 1.1 · hash 9e100e176438d59d