A mod for Lethal Company allowing you to control the game's weather system.
- 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!
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
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)
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.
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).
This project is licensed under GNU Lesser General Public License v3.0.
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)