diff --git a/Client/mods/deathmatch/logic/CNetAPI.cpp b/Client/mods/deathmatch/logic/CNetAPI.cpp index d88c826e659..c346cf8dfbe 100644 --- a/Client/mods/deathmatch/logic/CNetAPI.cpp +++ b/Client/mods/deathmatch/logic/CNetAPI.cpp @@ -1547,9 +1547,15 @@ void CNetAPI::WriteVehiclePuresync(CClientPed* pPlayerModel, CClientVehicle* pVe pPlayerModel->GetControllerState(ControllerState); WriteFullKeysync(ControllerState, BitStream); + // Use parent model ID for non-standard vehicle model IDs. + // This avoids a mismatch between client and server, ensuring doors and damage sync correctly. + int iModelID = pVehicle->GetModel(); + if (iModelID < 400 || iModelID > 611) + iModelID = pVehicle->GetModelInfo()->GetParentID(); + // Write the clientside model if (BitStream.Version() >= 0x05F) - BitStream.Write((int)pVehicle->GetModel()); + BitStream.Write(iModelID); // Grab the vehicle position CVector vecPosition;