WeatherRegistry
A mod for controlling the game's weather system: scrap multipliers, weather chances, blacklisting and more!
| Last updated | 2 days ago |
| Total downloads | 2028459 |
| Total rating | 27 |
| Categories | Mods Tools Libraries BepInEx Client-side Server-side Weather |
| Dependency string | mrov-WeatherRegistry-0.8.5 |
| Dependants | 803 other packages depend on this package |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100Evaisa-FixPluginTypesSerialization
Fix custom Serializable structs and such not properly getting deserialized by Unity.
Preferred version: 1.1.4Hamunii-AutoHookGenPatcher
Automatically generates MonoMod.RuntimeDetour.HookGen's MMHOOK files during the BepInEx preloader phase.
Preferred version: 1.0.9README
WeatherRegistry
A mod for Lethal Company allowing you to control the game's weather system.
Features
- A system for registering custom weathers and weather effects
- Weight-based weather selection system
- Weather-to-weather transition weights for creating weather progression patterns
- Level-based weather filtering system
- Scrap value/amount multipliers based on active weather
- Editor support for creating new weathers
- Multiple weather selection algorithms (Registry weighted, Vanilla, and Hybrid)
- Hot-reloadable configuration system that applies changes after completing the current day
- Terminal commands for forecasting and changing weather conditions
- and many more!
Editor components
WeatherRegistry provides Unity Editor components to help mod developers create custom weather systems:
WeatherDefinition: Create new weathers without writing code, offering the same capabilities as code-based weather creationImprovedWeatherEffect: Create custom weather effects with WeatherRegistryEffectOverride: Design custom weather effect overrides directly in the Unity Editor- Visual tools for configuring weather properties, effects, and transitions
Terminal Commands
WeatherRegistry supports terminal commands for managing and debugging weathers:
weather forecast <moon>for viewing probabilites of weathersweather change <weather>for changing the current weather (host only)
Weight-based weather selection system
WeatherRegistry uses a priority-based weight system instead of vanilla's hardcoded weather selection. Each weather can have multiple weight configurations, and the algorithm selects which one to use based on availability (checked in order):
- Level-specific weight: Weight assigned to a specific moon (e.g., "Experimentation@200")
- Weather-to-weather weight: Weight based on the previous day's weather (e.g., if yesterday was Foggy, today's Rainy weather uses its "after Foggy" weight)
- Default weight: Fallback weight used when no specific conditions match
Example: If you want Rainy weather to be:
- Common on Experimentation (weight: 200)
- Very likely after Foggy weather (weight: 150)
- Rare otherwise (default weight: 25)
The algorithm automatically uses the most specific applicable weight during selection.
For developers
Install the mod from Nuget:
<PackageReference Include="mrov.WeatherRegistry" Version="*-*" />
To install the mod in Unity Editor, add WeatherRegistry and MrovLib dlls to your project. To create a new weather, create a new WeatherDefinition object. For more information, check out the "Creating and bundling weathers" guide (WIP).
License
This project is licensed under GNU Lesser General Public License v3.0.
Credits
Thank you to everyone who contributed to this project, reported bugs and suggestions! Special thanks to:
- Generic and s1ckboy for helping me test editor addons and providing feedback
- XuXiaolan for helping me test the mod on various occasions
- Beanie, Monty, Kenji, Autumnis for helping me playtest the mod a lot of times
- Zigzag for sending me multiple detailed bug reports
and to everyone submitting their bug reports and testing the releases!
Code used in this project is based on the following works:
- LethalCompanyTemplate (licensed under MIT License)
- LethalLib (licensed under MIT License)
- LethalLevelLoader (licensed under MIT License)
- LC-SimpleWeatherDisplay (licensed under MIT License)