mrov-WeatherRegistry icon

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-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100
mrov-MrovLib-0.4.2 icon
mrov-MrovLib

Common methods for my mods.

Preferred version: 0.4.2
Evaisa-FixPluginTypesSerialization-1.1.4 icon
Evaisa-FixPluginTypesSerialization

Fix custom Serializable structs and such not properly getting deserialized by Unity.

Preferred version: 1.1.4
Hamunii-AutoHookGenPatcher-1.0.9 icon
Hamunii-AutoHookGenPatcher

Automatically generates MonoMod.RuntimeDetour.HookGen's MMHOOK files during the BepInEx preloader phase.

Preferred version: 1.0.9

README

WeatherRegistry

CodeFactor Grade Thunderstore Downloads GitHub Workflow Status GitHub Release Version


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 creation
  • ImprovedWeatherEffect: Create custom weather effects with WeatherRegistry
  • EffectOverride: 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 weathers
  • weather 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):

  1. Level-specific weight: Weight assigned to a specific moon (e.g., "Experimentation@200")
  2. 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)
  3. 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: