Conversation
sviyh
force-pushed
the
fix/vehicle-framework-audit
branch
from
August 16, 2026 17:48
2fd64c6 to
eaa30f1
Compare
sviyh
force-pushed
the
fix/vehicle-framework-audit
branch
from
August 16, 2026 23:43
eaa30f1 to
7e4f24c
Compare
sviyh
force-pushed
the
fix/vehicle-framework-audit
branch
4 times, most recently
from
August 17, 2026 20:42
c90bae6 to
36ebf9a
Compare
sviyh
force-pushed
the
fix/vehicle-framework-audit
branch
2 times, most recently
from
September 14, 2026 17:13
213de88 to
ec2577c
Compare
sviyh
force-pushed
the
fix/vehicle-framework-audit
branch
from
September 14, 2026 17:20
ec2577c to
0d9dfe7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Root cause
The patch had accumulated low-level interception and reconstruction paths that duplicated Vehicle Framework or Multiplayer behavior or serialized transient UI state. The caravan integration also crossed the Multiplayer session boundary incompletely: tab initialization could skip VF's tab setup, seat commits omitted the vehicle transferable, route selection bypassed the MP session, and the final send path could bypass Vehicle Framework's vehicle-caravan action.
Vehicle Framework also maintains process-local asynchronous path/region work and a shuffled static edge-cell cache. Those can differ between peers and affect reachability and caravan exit selection.
Closes rwmt#561.
Approach
MP.RegisterSyncMethodregistrations for named VF actionsVehicleRoleHandlerISessionWithTransferables, including pawn counts, vehicle count, assignments, and notificationsVehicleRoutePlanner.ShouldStopTaskManager.Run(Action, CancellationToken)pathing call sites while in multiplayerTest plan and results
master(bcffd466)7435D804880E12F45AAC0BEFD48E4203564B22735FCB457A3133AAB3EE7108A7desynced=falseVehicleCaravanon both peersClientPlaying,desynced=false, with no new desync archiveTryFindExitSpotrejected every tested exit even though the connected water component reached the south edge; the rejection was synchronized and separate from the custom UI/session synchronizationRelated open work
This substantially overlaps the older caravan implementation in rwmt#592. PR rwmt#620 also edits
VehicleFramework.csand contains additional RimThunder/VF fixes; those are not presented as part of this PR and will need conflict resolution whichever change lands first.QA notes
The final automated caravan run completed 6/6 synchronization checkpoints through real host/client UI and MP command paths. A QA-only in-memory postfix tracer confirmed the Roadkill send reached VF's real validation, exit selection, packing, and formation methods successfully on both peers; no production logging or state repair was added.
An attempted manual path-grid normalization was removed before the successful run after it produced an
IndexOutOfRangeExceptioninside VF's region connector. The submitted patch relies on VF's lifecycle and changes only asynchronous scheduling boundaries.The known RimBridge reflection-only
UnityEngine.InputLegacyModulediagnostic is a QA-harness issue; it is not suppressed or handled by this production patch.