The project is currently a joint venture with the heavy hitter Maceeiko behind BeerMP The Best (MY SUMMER CAR MULTIPLAYER) to date. Given his top-tier expertise, I’ve decided to lock in with a developer who is truly legendary in the space so we can effectively shut down the bad actors behind MSCO, which has now rebranded as MWCO. Although the receipts are still being compiled, our mission is to ensure the MWC community can vibe without the threat of scams, harassment, or the distractions of documented DDoS attacks.
JOIN DISCORD FOR MORE DETAILS AND PUBLIC DEMO IS ALREADY AVAILABLE
OFFICIAL DISCORD https://discord.gg/GQeC5tCH2w
NEWEST REPO VERSION 0.2.1 in development for public demos
0.1.8 - 2026-02-06
Highlights:
- Sorbet control sync extended to include turn signals, ignition, starter, and interior light in dashboard state payload.
- BUS nav payload (target speed/route/waypoint/start/end) is now serialized in realtime
NpcStatepackets, not only in world snapshots. - Scrape replication hardened with remote-baseline dedupe and remote-hold echo suppression to reduce scrape audio/state spam loops.
- Scrape finish states now drive
OFF/inside-reset handling to prevent lingering remote scrape audio loops. - Door PlayMaker spam reduced by filtering non-Sorbet/non-BUS vehicle event-only button loops and suppressing Sorbet dashboard EventOnly chatter (dashboard payload is authoritative).
- NPC animator discovery improved by matching both object name and hierarchy path tokens.
- Default NPC name filter expanded for pub/shop coverage (
nappo,pub,bar,npc,teimo,shop,seller,cashier,customer,bartender). - Pickup sync remains staged: stable set first (beer, cigarettes, sausage), metadata-filter expansion optional.
Known active WIP:
- Pub/teimo dialogue/ticket/order interaction parity is not complete yet.
- BUS route/ticket flow is partially synced and still under active tuning.
- Some AI/traffic edge cases still need dedicated FSM event replication per actor/system.
- My Winter Car (Windows).
- BepInEx 5 (Mono, x64).
- Steam P2P requires launching via Steam; local multi-instance testing uses LAN.
Host:
- Set
Mode = Host. - Pick
Transport = SteamP2PorTransport = TcpLan. - Click
Host Gamein the co-op panel (or pressF6). - Optional: press
F9to set a progress marker.
Client:
- Set
Mode = Client. - Steam P2P: set
SpectatorHostSteamIdto the host SteamID64. - LAN: use
Join LANor setSpectatorHostIP/HostPort. - Click
Join SteamorJoin LAN(or pressF7).
Then the host selects Continue/New Game; the client should load into the same level.
Local testing (two instances):
- Set
Compatibility/AllowMultipleInstances = trueand restart the game. - This skips Steam bootstrap, so use LAN transport only.
UI:
MainMenuPanelEnabled = true
Compatibility:
AllowMultipleInstances = false
Steam P2P:
SpectatorHostSteamId = 0AllowOnlySteamId = 0P2PChannel = 0ReliableForControl = true
TCP LAN:
HostBindIP = 0.0.0.0HostPort = 27055SpectatorHostIP = 127.0.0.1
LanDiscovery:
Enabled = truePort = 27056BroadcastIntervalSeconds = 1.5HostTimeoutSeconds = 5
DoorSync:
Enabled = truePlayMakerEvents = trueSendHz = 10AngleThreshold = 1NameFilter = door,ovi,tap,faucet,sink(empty = all hinges)
PickupSync:
Enabled = false(set true to sync cabin pickups like phone/props)ClientSend = falseSendHz = 12PositionThreshold = 0.02RotationThreshold = 2.0NameFilter =(optional filter, comma-separated)
VehicleSync:
Enabled = true(experimental, Sorbet sync WIP)ClientSend = trueOwnershipEnabled = trueSeatDistance = 1.2SendHz = 10PositionThreshold = 0.05RotationThreshold = 1.0
Avatar:
BundlePath = plugins\MyWinterCarMpMod\mpdataAssetName = assets/mpplayermodel/mpplayermodel.fbxScale = 3.8(tune)YOffset = 0.85(tune)
Networking:
ConnectionTimeoutSeconds = 10HelloRetrySeconds = 2KeepAliveSeconds = 2AutoReconnect = trueReconnectDelaySeconds = 3MaxReconnectAttempts = 5(0 = infinite)LevelSyncIntervalSeconds = 5
Spectator:
SpectatorLockdown = true(legacy, unused in co-op)
- BepInEx global log:
BepInEx/LogOutput.log - Per-instance mod log:
BepInEx/LogOutput_MyWinterCarMpMod_<pid>.log
- Build or provide an AssetBundle that contains a player prefab or mesh. The current default uses the MWCMP
mpdatabundle. - Set
Avatar.BundlePathto the bundle path andAvatar.AssetNameto the prefab/mesh name (default:assets/mpplayermodel/mpplayermodel.fbx). - Tune
Avatar.ScaleandAvatar.YOffsetif the model is too big/small or sinks into the ground (auto-ground offset is applied; scale/offset is configurable).