Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
RuneboundRest
Server-authoritative overhaul of Valheim's Rested/Comfort system: config-driven comfort, resting conditions and rested duration, plus a new Well Rested buff for sleeping a full night in your own claimed bed.
CHANGELOG
Changelog
[1.1.5]
- Store page only: the README was rewritten to the new layout and is now the same on every store, and the website link now goes to https://ravenirongames.com/.
- No change to the mod:
RuneboundRest.dllis the same file as in 1.1.4.
[1.1.4]
- Rebuilt for Valheim 1.0.21. Rebuilt against the Valheim 1.0.21 game assemblies (network version 41) on BepInExPack 5.4.2360, and re-verified: static reference check clean against both the client and dedicated-server assemblies, and the mod boots on a real 1.0.21 dedicated server.
Player.UpdateBaseValuechanged (the comfort record is now read withGetStat(MaxComfort, DifficultyRequirement.Any)), but the2fscan-interval constant the transpiler anchors on is still the firstldc.r4 2in the method, andSE_Rested,SE_Cozy,SE_StatsandObjectDBare byte-for-byte unchanged. No source change. - Website link moved to https://www.rossgilsonlabs.dev.
- The BepInExPack dependency is now
denikson-BepInExPack_Valheim-5.4.2360. - No gameplay change.
MinimumRequiredVersionfollows the mod version to 1.1.4, as it always has, so 1.1.3 clients are refused rather than silently running mismatched settings.
[1.1.3]
- Rebuilt for Valheim 1.0.16. Rebuilt against the 1.0.16 game assemblies (client build 25527674 / dedicated server build 25527701, network version 40) on BepInEx 5.4.2350. No source change was needed: both transpilers still find their anchors -
GetNearbyComfortPiecesstill loads10ffor the comfort radius andUpdateBaseValuestill compares the scan timer against2f- and every Harmony target andSE_Rested/ comfort member the patches read is unchanged. - No gameplay change. Verified on the real 1.0.16 dedicated server: static reference check against both the 1.0.16 client and dedicated-server assemblies is clean (1089 references, 26 Harmony targets, same counts as 1.1.2), and the comfort-update-interval transpiler still patches successfully with no Harmony errors.
[1.1.2]
- Fixed: config sync was broken on Valheim 1.0.x without a compatibility patcher. 1.1.1 shipped with a prebuilt
ServerSync.dll(built against a pre-1.0 game) merged into the plugin. Valheim 1.0 turnedZRoutedRpc.Everybodyfrom a static field into a constant, and that old build still loads it as a field - which the game's Mono runtime refuses to compile (MissingFieldException: ... Using static instructions with literal field). The server booted fine and clients connected fine, but the first time the server pushed a synced value that differed from a client's own config file, the client's config-apply handler died mid-package: the remaining values stayed at the client's local settings and the admin lock never engaged. The mod only behaved correctly if the Valheim10Compatibility patcher happened to be installed (itsZRoutedRpcEverybodyStaticbridge papers over exactly this). RuneboundRest now compiles ServerSync from the shared source against the current game assemblies, like every other Wubarrk mod, so it binds on 1.0.7 / 1.0.12 on its own - no patcher, no bridge. - No gameplay change.
MinimumRequiredVersionfollows the mod version to 1.1.2, so 1.1.1 clients (which cannot sync correctly anyway) are refused rather than silently running mismatched settings. - Verified on the real 1.0.12 dedicated server (build 25253791, network version 40) with BepInEx 5.4.2350; static reference check against both the 1.0.12 client and dedicated-server assemblies is clean, including the new constant-field check that would have caught 1.1.1.
[1.1.1]
- Valheim 1.0.7 compatibility. Rebuilt for 1.0.7 (client build 25185596 / dedicated server build 25185644, network version 39) on BepInEx 5.4.2350. No source change was needed: every Harmony target (
Player.UpdateBaseValue/UpdateEnvStatusEffects/SetSleeping,SE_Rested.CalculateComfortLevel(Player)/GetNearbyComfortPieces/Setup/UpdateStatusEffect,SE_Cozy.Setup/UpdateStatusEffect,SE_Stats.Setup,ObjectDB.Awake/CopyOtherDB) and everySE_Rested/ comfort member the patches read was checked against the 1.0.7 decompile. Both transpilers still find their anchors -GetNearbyComfortPiecesstill loads10ffor the comfort radius andUpdateBaseValuestill compares the scan timer against2f- andSE_Rested.CalculateComfortLevelgained a second overload(bool inShelter, Vector3 position)on 1.0 that the existingtypeof(Player)pin already keeps unambiguous. - Verified the ServerSync merge on a Linux build: the ILRepack step runs, the merged DLL is the one staged into
HexiumDist/plugins, and it resolves cleanly against both the 1.0.7 client and dedicated-server assemblies. - No behaviour change.
MinimumRequiredVersionfollows the mod version to 1.1.1, as it always has. - The Thunderstore dependency now names the 1.0 BepInEx pack (
denikson-BepInExPack_Valheim-5.4.2350).
[1.1.0]
- New: Well Rested — a separate buff from the comfort-driven Rested, granted for sleeping through a server-confirmed full night in your own claimed bed (health regen, stamina regen and a stacking skill XP bonus, all configurable, toggleable via
EnableWellRested). - Fixed: the skill XP multiplier while Rested was miscalculated as roughly 201x instead of the intended 3x. The underlying field is additive to a 1.0 baseline multiplier, not a percentage scaled by 100 - a leftover from an earlier, incorrect assumption about the value's units. Every world running the default
SkillXPMultiplierwas getting a game-breaking XP bonus while Rested; it now applies correctly. - Fixed:
Player.IsSafeInHome()could disagree with whether you actually had the Resting buff. The mod overrides vanilla's resting conditions, but the flag other systems read to ask "is this player safe at home" was still being computed from vanilla's original, un-overridden logic - so a server runningAllowRestingNearEnemiescould grant Resting while the game still considered the player not safe at home. It's now derived from the same config-driven decision the Resting buff itself uses. - Fixed:
ServerSync.dllwas not actually being bundled into the shipped plugin DLL. The merge step existed but pointed at a library search path that didn't exist, so it silently failed - meaning the mod as previously built would refuse to load on any machine that didn't happen to already haveServerSync.dllsitting inBepInEx/pluginsfrom another mod. This is the library the server-authoritative config locking depends on, so it's now verified to be correctly merged and internalized into the single shipped DLL. - Hardened the comfort-scan-interval patch to match the same safety net the comfort-radius patch already had (stops after the first match, logs an error if the expected value ever isn't found), so a future Valheim update can't cause it to silently corrupt an unrelated value.
- Chore: reference assemblies now come from the shared
libs-Toolsfolder instead of a per-project copy, removed an unused Jotunn dependency and a leftover scratch file.
[1.0.0]
- Initial build: config-driven Rested duration/XP, resting conditions, comfort radius/update interval, and sitting/lying bonuses, all server-synced and admin-lockable.