Skip to content

Releases: Sternab/MultiplayerStability

Multiplayer Stability v0.9.5

Choose a tag to compare

@Sternab Sternab released this 01 Aug 10:25

Changes

  • Guards VendorVM.HandleEquipmentSlotUpdated during the constructor window before StashVM is assigned. This is an ungated, UI-only fix for the paired exception family in the v0.9.4 captures.
  • Repairs PartyPetSpawner.MyData.OnDispose when its stored unit reference no longer resolves. Exact-parity multiplayer now clears the stale spawned-unit state instead of throwing before base cleanup.
  • Adds serious-only standalone hashes for the class-valued child roots used by Player.GetHash128. This narrows future player-bucket desyncs without changing simulation state.

The vendor and party-pet changes prevent their captured exception paths. Their effect on desync incidence still requires post-fix multiplayer validation.

Compatibility

  • Rogue Trader 1.6.1.514
  • Use the same Multiplayer Stability version on every player.
  • Matching manifest versions and compiled module IDs are required for simulation fixes and custom transfer protocols.

Validation

  • Compiled with Unity 6000.0.64f1 against the current project reference set.
  • Owlcat modification build completed successfully.
  • Release archive manifest reports 0.9.5.
  • Packaged DLL matches the verified build output and contains the new patch classes.
  • Archive includes the required Blueprints and Content placeholders.

Multiplayer Stability v0.9.4

Choose a tag to compare

@Sternab Sternab released this 29 Jul 06:22

Changes

  • Adds narrow UI lifecycle guards for null or disposed units during Surface HUD selection, experience refreshes, inventory stat refreshes, and additional-stats view notifications.
  • Preserves every valid callback on its original path. The guards are ungated, subset-safe, and do not swallow exceptions or write synchronized state.
  • Covers the separately captured disposed-preview inventory refresh in addition to the four originally identified callback families.
  • Keeps the packaged Blueprints and Content directories non-empty so ZIP installers retain them.
  • Includes all v0.9.3 pause-consensus, dialogue-answer, and UUID-attribution changes.

Compatibility

Use the same v0.9.4 build on every peer. This release targets Rogue Trader 1.6.1.514.

The guarded exception paths were recorded in the paired v0.9.2 folder-3 capture. This release is expected to eliminate those exceptions, but their effect on the two associated desync episodes still requires post-fix multiplayer validation.

SHA-256: 51DDCA3CE3AAD2E2A09E031F1FBC8870BF4CE10A5B72CBAAC797B073BECF24C4

Multiplayer Stability v0.9.3

Choose a tag to compare

@Sternab Sternab released this 27 Jul 21:52

Changes

  • Stabilizes cooperative pause consensus against the exact transfer-epoch roster and ignores local pause requests while loading.
  • Prevents synchronized dialogue answers from being silently discarded because of local cue timing state.
  • Adds exact in-tick GlobalUuid caller attribution for the unresolved Medikit desync class without changing Medikit behavior.
  • Includes the v0.9.2 achievement reward, Proving Ground ordering, and detector recovery fixes.

Compatibility

Use the same v0.9.3 build on every peer. This release targets Rogue Trader 1.6.1.514. The new pause and dialogue fixes still require post-fix multiplayer field validation.

SHA-256: D33136E1BD41B60DFB3B8A465B44655478EADA90D0EC82195DCA0C276E2EC4C0

Multiplayer Stability v0.9.2

Choose a tag to compare

@Sternab Sternab released this 27 Jul 00:09

Multiplayer Stability v0.9.2 adds two evidence-backed desync fixes and corrects repeated recovery notifications.

  • Prevents the There Is Only War... cabin reward from changing shared inventory according to each peer's local platform achievements.
  • Sorts the Cyber Eagle Proving Ground ally-marker pass by UniqueId, preserving all vanilla applications while stabilizing the surviving replacement-buff context.
  • Requires 100 consecutive comparable matching hash checks before DesyncWatch re-arms, preventing one unresolved fork from producing repeated dialogs and telemetry.
  • Records successful three-player v0.9.1 validation of the compatibility decision, accelerated save transfer, sequenced loading locks, trap containment, and charge-cache guard.

All players must use the exact same v0.9.2 build. The new prevention changes still require post-fix multiplayer validation, so keep save backups and retain logs from any desync.

Multiplayer Stability v0.9.1

Choose a tag to compare

@Sternab Sternab released this 25 Jul 18:18

Hotfix for v0.9.0's save-load refusal.

  • Sends compatibility decisions directly to each peer before LoadSave and preserves non-owner and simultaneous save starts.
  • Replaces the mutating answer-tree RNG wrapper with a no-side-effect co-op UI policy.
  • Adds replayable Steam completion, generation-safe transfer cleanup, sequenced-lock progress, bounded charge diagnostics, and labeled Owlcat desync telemetry.
  • Ships a non-empty Blueprints folder so the installed directory survives packaging.

All players must use the exact same v0.9.1 build. Multiplayer field validation is still in progress.

Multiplayer Stability v0.9.0

Choose a tag to compare

@Sternab Sternab released this 25 Jul 11:33

Multiplayer Stability v0.9.0

Co-op desync fixes, diagnostics, and faster save transfers for
Warhammer 40,000: Rogue Trader build 1.6.1.514.

This is an experimental review release. It has passed source review, compilation, packaging, and
local startup testing, but the combined v0.9 changes have not yet completed a full post-fix
multiplayer field session. Use the same version on every machine and keep save backups.

Installation

ModFinder

  1. Install ModFinder.
  2. Download MultiplayerStability-0.9.0.zip below.
  3. Drag the unchanged ZIP onto ModFinder's Drag zips here to install area.
  4. Confirm the mod is enabled on every machine, then restart the game.

Manual

Create:

%USERPROFILE%\AppData\LocalLow\Owlcat Games\Warhammer 40000 Rogue Trader\Modifications\MultiplayerStability

Extract the ZIP contents into that folder. The final manifest path must be:

...\Modifications\MultiplayerStability\OwlcatModificationManifest.json

Enable the mod from the title-screen Mods menu and restart when prompted.

Changes Since v0.8.32

  • Added a host-authored compatibility decision. Matching manifest versions and compiled module IDs
    enable simulation fixes and custom protocols together. Incompatible v0.9 peers use vanilla
    behavior; invalid or missing decisions stop the load.
  • Added protocol magic, versions, transfer IDs, ordered-offset and size checks, SHA-256 validation,
    receiver acceptance ACK/NACK, cancellation, idle timeout, and per-peer Photon fallback to the
    Steam save path.
  • Added sequence identity, retransmission, timeout, and abort handling to selected loading locks.
  • Removed transition-flap dialog suppression. The game's desync dialog is authoritative; transition
    state remains diagnostic context.
  • Hardened bucket attribution, tick and session resets, per-entity hash reporting, RNG leak budgets,
    reflection checks, transpiler match counts, finalizers, and logging failure paths.
  • Changed the Tactician diagnostic to read existing component data without creating savable state.
  • Preserved the frozen projectile endpoint after launch so the geometry fix cannot restore homing.

Multiplayer Check

At startup, confirm:

[MPStability] [Init] Patches applied (59 classes).

Do not continue if any peer reports FAILED, [Init][ERR], PATTERN NOT FOUND, or another
Multiplayer Stability component error. Before play begins, look for [Compat] Compatible on every
peer. Pre-v0.9 builds do not understand the compatibility decision and remain unsupported in mixed
sessions.

Artifact

Item Value
MultiplayerStability-0.9.0.zip 57,474 bytes, SHA-256 7C3951B59DA83168400F8D2390526DC6806EE70A512B58518BA7518EEF932CB2
Assemblies/MultiplayerStability.dll 131,584 bytes, SHA-256 29408CF65919FF7ED40CBB495851C35285A752D2F1DD8B34649DE7C5C403FF7D
Built from tag v0.9.0, commit 009f4085644688ff43f818429ae61ce5e4d5edb3

Read the installation and troubleshooting guide
or the design notes for
component status, evidence, and known limitations.

Multiplayer Stability v0.8.32

Choose a tag to compare

@Sternab Sternab released this 25 Jul 00:54

Co-op desync fixes, diagnostics, and faster save transfers for
Warhammer 40,000: Rogue Trader build 1.6.1.514.

This is an experimental release. Every player in a session must install the same version. The mod
does not start resyncs automatically.

Installation

ModFinder

  1. Install ModFinder.
  2. Download MultiplayerStability-0.8.32.zip below.
  3. Drag the unchanged ZIP onto ModFinder's Drag zips here to install area.
  4. Confirm the mod is enabled on every player's machine, then restart the game.

Manual

Create:

%USERPROFILE%\AppData\LocalLow\Owlcat Games\Warhammer 40000 Rogue Trader\Modifications\MultiplayerStability

Extract the ZIP contents into that folder. The final manifest path must be:

...\Modifications\MultiplayerStability\OwlcatModificationManifest.json

Enable the mod from the title-screen Mods menu and restart when prompted.

Highlights

  • Targeted fixes for confirmed view, fog, UI, physics, cache, weather, projectile, dialogue, trap,
    charge, and preview-unit desync paths.
  • Steam Networking Messages save transfer with Photon control and fallback. Test sessions measured
    an improvement of about 8x.
  • Desync reports with state buckets, RNG fingerprints, entity hashes, and recent creation history.
  • Sequenced loading barriers and high-volume disconnect log filtering.

Startup Check

Search GameLogFull.txt for:

[MPStability] [Init] Patches applied (45 classes)

Do not use the build in multiplayer if any peer has [Init][ERR] or PATTERN NOT FOUND lines.

Artifact

Item Value
MultiplayerStability-0.8.32.zip 48,500 bytes, SHA-256 95CCBD1C1B02C0BEB6C807C2F1F1FE36C1EF86A409B30DF6E1841DA9BBA02B89
Assemblies/MultiplayerStability.dll 111,104 bytes, SHA-256 B954483BB63C53C2F25910F32CDB69340CDE2A7BDFA5B205AB5880722B596B05
Built from tag v0.8.32, commit 3ab7a4a

Read the installation and troubleshooting guide
or the design notes for
component status and known limitations.