diff --git a/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs b/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs index 490e1bfea..cc51749cb 100644 --- a/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs +++ b/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs @@ -963,8 +963,9 @@ namespace Barotrauma.Networking WriteChatMessages(outmsg, c); - //write as many position updates as the message can fit - while (outmsg.LengthBytes < config.MaximumTransmissionUnit - 20 && + //write as many position updates as the message can fit (only after midround syncing is done) + while (!c.NeedsMidRoundSync && + outmsg.LengthBytes < config.MaximumTransmissionUnit - 20 && c.PendingPositionUpdates.Count > 0) { var entity = c.PendingPositionUpdates.Dequeue(); diff --git a/Barotrauma/BarotraumaShared/Source/Networking/NetEntityEvent/ServerEntityEventManager.cs b/Barotrauma/BarotraumaShared/Source/Networking/NetEntityEvent/ServerEntityEventManager.cs index 648b28c43..69413017a 100644 --- a/Barotrauma/BarotraumaShared/Source/Networking/NetEntityEvent/ServerEntityEventManager.cs +++ b/Barotrauma/BarotraumaShared/Source/Networking/NetEntityEvent/ServerEntityEventManager.cs @@ -305,7 +305,7 @@ namespace Barotrauma.Networking else { double midRoundSyncTimeOut = uniqueEvents.Count / MaxEventsPerWrite * server.UpdateInterval.TotalSeconds; - midRoundSyncTimeOut = Math.Max(5.0f, midRoundSyncTimeOut * 2.0f); + midRoundSyncTimeOut = Math.Max(10.0f, midRoundSyncTimeOut * 2.0f); client.UnreceivedEntityEventCount = (UInt16)uniqueEvents.Count; client.FirstNewEventID = 0;