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.
RustyHeathensServerSync
Rusty Heathens network diagnostics and optional bounded scheduling for Valheim 1.0.20 / network 41. Exact version and signature checks; no runtime method fingerprinting.
| Date uploaded | 2 weeks ago |
| Version | 1.0.2 |
| Download link | RustyLaserGaming-RustyHeathensServerSync-1.0.2.zip |
| Downloads | 28 |
| Dependency string | RustyLaserGaming-RustyHeathensServerSync-1.0.2 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2351README
Rusty Heathens ServerSync 1.0.2
Network diagnostics and guarded optional scheduling for Rusty Heathens servers.
Compatibility
- Valheim 1.0.20 / network 41 (supported).
- Valheim 1.0.16 and 1.0.17 / network 40 remain admitted by the compatibility gate.
- BepInExPack Valheim 5.4.2351 dependency.
Version 1.0.2 removes runtime method fingerprinting and IL-body inspection. Compatibility uses exact reviewed game/network pairs and required method/field signatures. Unknown versions or missing/mismatched members stop initialization before hooks are installed. Existing Harmony-overlap and scheduling limits remain active. These checks do not detect every possible same-version change to a method body.
Installation
Close Valheim and stop the dedicated server before replacing the plugin. Install the same ServerSync release on the dedicated server and participating clients through your mod manager, or place RustyHeathensServerSync.dll in BepInEx/plugins/RustyHeathensServerSync. Keep only one active copy of the DLL, including in older mod folders, then restart.
Keep BepInEx/config/com.rustylasergaming.serversync.cfg. No new config key or ModGuard GUID is required. Existing unpinned ModGuard entries still apply.
Modes
Observe remains the default for new configs. It records summary measurements without adding network-send work.
BoundedScheduler remains an experimental dedicated-server option. It can make additional calls to the game's original send cycle within the configured call count, elapsed budget, frame-time limit and save cooldown. It preserves native peer order and does not restart a finished round. Clients remain observation-only.
Upgrading preserves your configured mode. If your existing config selects BoundedScheduler, that mode can resume on 1.0.20 when all runtime guards pass. This update does not automatically change an Observe config into a performance-tuning config.
Diagnostics and testing
Confirm the startup log reports game=1.0.20 network=41 and native_scheduler_guard=True, with no unsupported-version warning. With diagnostics enabled, [RHSS] sample= summaries report frame times, send queues and native send timing. Steam ping/quality counters may be unavailable on a dedicated server; queue and frame measurements remain available.
Test with at least two players for about ten minutes, including movement, enemies, portals and chest transfers. Keep the resulting client and server logs for comparison. Unknown or mismatched builds should not have their guards bypassed.
This build compiled against the supplied 1.0.20 game assemblies and passed 32 C# logic checks plus 11 production binding checks against the supplied game metadata. Live Harmony loading, Linux dedicated-server operation and multiplayer desync improvement have not been tested in this build environment. Compatibility is not a guarantee of improved latency.
Scope
ServerSync uses Valheim's existing networking. Packet formats, queue limits, object ownership and save/inventory formats are unchanged. Approved-mod enforcement remains ModGuard's responsibility.
Source and build instructions are supplied separately in RustyHeathensServerSync_1.0.2_SOURCE.zip. Proprietary game assemblies and BepInEx dependencies are not redistributed in these packages.
CHANGELOG
1.0.4
- Reviewed and enabled Valheim 1.0.21 / network 41.
- Retained version/signature checks and unknown-version rejection.
- No scheduling, transport or config behavior changes.
1.0.3
- Use SteamGameServerNetworkingSockets for dedicated-server connection statistics and SteamNetworkingSockets for clients/listen hosts.
- Report the statistics source and result; render unavailable values as n/a and preserve legitimate zeros.
- Isolate optional transport failures and retry unavailable statistics after 30 seconds without disabling the scheduler.
- Keep scheduling, version/signature guards and all existing settings unchanged.
- No runtime method fingerprinting or additional networking hooks.
Changelog
1.0.2 - 2026-10-15
- Remove runtime method fingerprinting, IL inspection and method hashes from the plugin DLL.
- Replace that check with exact supported game/network pairs and strict native method/field signatures.
- Reject missing or mismatched members before installing hooks. Retain scheduling limits and Harmony overlap handling.
- Preserve existing config modes and the Observe default.
- Keep install files and source in separate ZIPs.
1.0.1 - 2026-10-15
- Admit the reviewed Valheim 1.0.20 / network 41 pair.
- Retain method fingerprints, fail-closed handling for unknown versions, and all scheduling limits.
- Preserve existing config and the Observe default; no automatic switch to experimental scheduling.
- Rebuild against the supplied 1.0.20 assemblies and refresh reference hashes.
- Ship source separately from the install ZIP.
1.0.0 - 2026-10-07
- Add reviewed Valheim 1.0.17 / network version 40 compatibility while preserving 1.0.16/40 support.
- Replace the old single-version gate with a narrow game+network compatibility gate.
- Preserve runtime method-fingerprint guards for
ZDOMan.SendZDOToPeers2andZDOMan.SendZDOs; bounded scheduling disables itself if reviewed methods differ. - Keep future game/network versions fail-closed instead of forcing native hooks.
- Preserve Observe as the safe default for new configs and preserve existing BoundedScheduler configs on upgrade.
- No packet format, queue-limit, ownership, inventory, chest, world, or save-format changes.
0.1.2
- Dedicated-server Steam transport quality probing degrades gracefully when unavailable.
- Harmony patch invocation build fix.