- Every bolt (Screw FSM, stage 0-8) and every part's tightness (BoltCheck/Use "Tightness", counted
by the tool) is synced as state - before only the bolt turned on other clients, the part stayed
loose or tight there
- Tightening a part (tool, admin, other player) snaps it exactly onto its pivot (installed parts
sit at local 0), except screw-in parts and hinged doors/hoods
- Admin VEHICLE tab: TIGHTEN/LOOSEN per part, TIGHTEN ALL/LOOSEN ALL, bolted/loose state
- fsmdump "pivots": installed part offsets
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Passenger: auto ride-along only when the vehicle moves (speed from its motion, also for
kinematic remote cars) - no more getting stuck while working in the engine bay or re-captured
- Bolts with a function (drain plug: stage 0-5 = oil leak on) are synced as stage and applied
through the bolt's own stage logic; world authority sends its state once after joining.
Fixes endless oil leaking when players had the drain plug in different states
- Admin menu VEHICLE tab: fluids with FILL/EMPTY, all Database parts with wear/damage,
REPAIR/BREAK per part, REPAIR ALL, filter
- Server profile: info and players as two equal cards, no wrapping
- fsmdump also lists FSM variables
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Bootstrap: Doorstop entry point, loads Harmony/Newtonsoft from the MSCO folder, hooks
PlayMakerArrayListProxy.Awake and starts MSCO in the main menu; skips the news screen
- No MSCLoader reference anymore; key bindings in PlayerPrefs, bind console command
- Harmony 1.2 and Newtonsoft.Json in lib/ (MIT notices); build copies to <game>\MSCO
- README/CHANGELOG updated
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- VehicleStateSync also tracks the CARPARTS and Database roots (wear, damaged
parts, tire wear, oilpan oil, battery charge, carb/ignition settings,
suspension, odometer); the Satsuma's driver is authoritative for them
- Paint colors (FsmColor) as four float channels (compatible with old servers)
and applied to the part's material
- FSMs are re-examined when a part is installed/removed (path changes);
before, anything not on the car at the first scan was never synced
- ControlSync: handbrake, sun visors, seat recline, seat belt, CD player,
interior light; pending states for controls not found yet
- Late joiners: job/shop values and switch states from the server snapshot;
P2P host resends all switch states every 15 s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>