RainproofBuildings
Protect your buildings from rain and water wear.Rainproof Buildings
Protect your buildings from rain and water wear.
Keep your Valheim builds protected from rain and water wear, with configurable filters, wear limits and damage rates. The default settings fully protect every piece that would normally take this type of wear, while preserving wet visuals.
Rainproof Buildings does not repair existing damage or prevent attacks, loss of structural support, snow, ash, lava or other damage sources. Roof and shield checks remain part of the game's normal behavior.
Features
- Full protection by default, or a configurable health floor and wear rate.
- Protect all eligible pieces, include selected name patterns, or exclude selected patterns.
- Coverage for both exposed rain wear and submersion wear.
- Nonnegative wear damage: already damaged pieces are never healed, and rain protection never subtracts from another damage source.
- A focused Harmony transpiler changes only the rain/water condition and contribution inside the original wear method.
- No per-frame plugin update, world scans, per-piece health cache or wet-piece log messages. Filter text is parsed when settings change.
Requirements and installation
Tested on Valheim 1.0.16, Windows, with BepInExPack_Valheim 5.4.2350 (BepInEx 5.4.23.5). The package declares denikson-BepInExPack_Valheim-5.4.2350 as its dependency. Harmony is supplied by that pack; no separate Harmony installation is needed.
Mod manager
- Close Valheim normally.
- Install RainproofBuildings by NegroniForge in your Valheim profile using r2modman or Thunderstore Mod Manager. Allow the manager to install the declared dependency.
- Start the game through that profile. After the first launch, the configuration file is available in the profile's config editor.
Manual installation
- Close Valheim and install BepInExPack_Valheim according to its instructions.
- Copy this package's
BepInExfolder into your Valheim installation folder. The plugin should be atBepInEx/plugins/NegroniForge-RainproofBuildings/RainWearProtection.dll. The DLL and configuration keep their original technical names; the plugin appears as Rainproof Buildings. - Start the game once to generate the configuration. Keep only one copy of this plugin installed. If upgrading an earlier local RainWearProtection installation, back it up and remove its old DLL before installing this package; retain the existing configuration.
Configuration
File: BepInEx/config/negroniforge.valheim.rainwearprotection.cfg
| Section | Setting | Default | Meaning |
|---|---|---|---|
| General | Enabled | true | Enable the configured protection. False uses normal game wear. |
| Damage Filter | Filter Type | ALL | ALL selects every eligible piece. INCLUSIVE selects matching names. EXCLUSIVE selects names that do not match. |
| Damage Filter | Filter List | empty | Comma-separated, case-sensitive substrings of internal GameObject names, not translated display names. Spaces around entries and empty entries are ignored. |
| Rain Damage | Max Damage | 0 | Fraction of maximum HP that rain/water may remove, from 0 to 1. Zero fully protects; 0.25 sets a 75% health floor; 1 permits wear down to zero where game rules allow it. |
| Rain Damage | Damage Per Minute | 5 | Percentage points of maximum HP per normal rain step. Five means 5 HP on a 100-HP piece or 20 HP on a 400-HP piece, limited by the health floor. |
The game schedules rain steps after more than 60 seconds of eligible wet time. This is not continuous damage or a catch-up rate. Normal timer behavior is retained when conditions or settings change.
Finite Max Damage values are clamped to 0..1; non-finite values become 0. Negative or non-finite Damage Per Minute values become 0. A zero rate prevents rain/water wear on selected pieces. Pieces below the configured health floor keep their existing HP; they are not repaired. Other damage can still take them below that floor.
Unselected pieces use normal game wear. An empty INCLUSIVE list selects nothing; an empty EXCLUSIVE list selects everything. Settings changed through a BepInEx configuration UI take effect when applied. If editing the file directly, close the game first, or use a configuration tool that explicitly reloads the file; this mod does not watch the file itself.
Example: protect everything
[General]
Enabled = true
[Damage Filter]
Filter Type = ALL
Filter List =
[Rain Damage]
Max Damage = 0
Damage Per Minute = 5
Example: limited wear on selected wood pieces
Use Filter Type = INCLUSIVE, Filter List = wood_floor, wood_wall, Max Damage = 0.25, and Damage Per Minute = 2. Matching names lose up to two percentage points per rain step, stopping at 75% of their current maximum HP. Other pieces retain normal wear. Name patterns match substrings, including prefab variants; check the internal names of modded pieces before relying on a filter.
Multiplayer
Wear is calculated by the network owner of each object. The settings used are those on the owning client or server, and ownership can change during play. A local installation does not guarantee protection for objects owned elsewhere.
For consistent behavior among players, install the same version on every participating client and agree on the same settings. This is a coverage recommendation, not a connection requirement: this plugin adds no version handshake, mandatory-client check or configuration synchronization. It does not change the connection rules imposed by other mods or the server.
A client installation does not cover server-owned objects. If server-side ownership matters to your setup, test a matching server installation and matching settings in a separate environment before relying on it. Dedicated-server operation and real ownership transfer between different peers have not been validated. Installing only on a server is not a guarantee of protection for the whole world.
Compatibility and validation
The plugin checks the expected structure of the rain section before applying either change. If a game update or another patch makes that structure unrecognizable, protection is not applied and an error is logged; the plugin does not leave a partial patch installed.
Known conflict: do not enable NoRainDamage (uk.co.oliapps.valheim.noraindamage) alongside this plugin. BepInEx incompatibility metadata prevents Rainproof Buildings from loading with that plugin enabled. Other mods that rewrite the same wear method may also conflict.
Version 1.0.0 has passed automated checks of damage boundaries, filters and patch rejection, plus controlled in-game checks of rain, submersion, a physical roof, wet visuals, damaged pieces, live settings, ordinary damage and unsupported-piece collapse. Local loss and restoration of ownership was exercised. Snow, ash, lava and shield behavior were checked for preserved code, but were not individually tested in gameplay. Other game versions and operating systems are unverified.
The public build updates the display name and release metadata. Its compiled method bodies match the tested pre-release build; a new in-game run of the renamed build has not been performed.
The implementation avoids recurring plugin scans and logging; this is not a promise of higher FPS or removal of stutters.
Troubleshooting and support
On a supported setup, BepInEx/LogOutput.log contains Rain/water wear patch applied (two validated edits) at startup. If it reports that protection is not active, check the game version and conflicting plugins before relying on protection.
For help, visit NegroniForge on Discord. Include your game/mod versions, the relevant settings, a short reproduction and the relevant startup error excerpt. Remove private information before sharing logs.
To uninstall, close the game, disable/remove RainproofBuildings in your manager or remove its DLL manually. Normal rain/water wear resumes. The configuration can be retained for later use.
License
MIT License. The plugin, documentation and original icon are provided by NegroniForge; see LICENSE. Game and dependency assets are not included.


