You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There's (at least) 2 ways to reach the packet size limit using vanilla RimWorld functionality:
The first (and fully vanilla way) to achieve this is trying to designate an area of at least 10918 cells (106 by 103 area). This will be met with an error due to packet size being too big, causing the interaction to not sync. If at least one of those cells was skipped (already designated before), syncing will work as intended. However, it may happen when designating smaller area depending on extra data that's synced (for example designator needing to sync extra data). This can be worked around by designating smaller areas, however - this is mildly annoying to do.
The second way to achieve this requires having significant enough amount of ThingDefs - at least 5054 (assuming all non-vanilla defs are included in stockpile configuration). Vanilla + DLCs have 2605 ThingDefs in total, so at the moment (and in the foreseeable future) this issue can only happen with extra mods (besides MP and Harmony). The issue itself happens when trying to copy/paste stockpile settings. There's no way to work around this besides manually changing the stockpile settings or removing some of the mods.
The 2 possible errors for designators (depending on how close the packet was to the size limit):
The first one (very close to packet size limit) - host only, a client will get remote packet read error.
Exception handling packet by LocalServerConn: Multiplayer.Common.PacketSendException: Packet Server_Command too big for sending (65538>65536)
at Multiplayer.Common.ConnectionBase.Send (Multiplayer.Common.Packets id, System.Byte[] message, System.Boolean reliable) [0x0003c] in <762e3bbc3a3648f0ac767508b9375a1d>:0
at Multiplayer.Common.CommandHandler.Send (Multiplayer.Common.CommandType cmd, System.Int32 factionId, System.Int32 mapId, System.Byte[] data, Multiplayer.Common.ServerPlayer sourcePlayer, Multiplayer.Common.ServerPlayer fauxSource) [0x00141] in <762e3bbc3a3648f0ac767508b9375a1d>:0
at Multiplayer.Common.ServerPlayingState.HandleClientCommand (Multiplayer.Common.ByteReader data) [0x0003e] in <762e3bbc3a3648f0ac767508b9375a1d>:0
at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.FastInvoke_HandleClientCommand_indirect(object,object[])
at Multiplayer.Common.ConnectionBase.HandleReceiveMsg (System.Int32 msgId, System.Int32 fragState, Multiplayer.Common.ByteReader reader, System.Boolean reliable) [0x000f6] in <762e3bbc3a3648f0ac767508b9375a1d>:0
at Multiplayer.Common.ConnectionBase.HandleReceiveRaw (Multiplayer.Common.ByteReader data, System.Boolean reliable) [0x00032] in <762e3bbc3a3648f0ac767508b9375a1d>:0
at Multiplayer.Client.Networking.LocalClientConnection+<>c__DisplayClass5_0.<SendRaw>b__0 () [0x00016] in <eeab71685d9f4a769b786d9dc34b45cf>:0
The second one, happens when not too close to packet size limit.
Root level exception in OnGUI(): Multiplayer.Common.PacketSendException: Packet Client_Command too big for sending (65861>65536)
at (wrapper dynamic-method) Verse.Designator.Verse.Designator.DesignateMultiCell_Patch2(Verse.Designator,System.Collections.Generic.IEnumerable`1<Verse.IntVec3>)
at Verse.DesignatorManager.ProcessInputEvents () [0x0012c] in <cd7169108ea74757aa50c5b33d275c15>:0
at (wrapper dynamic-method) RimWorld.MapInterface.RimWorld.MapInterface.HandleMapClicks_Patch2(RimWorld.MapInterface)
at (wrapper dynamic-method) RimWorld.UIRoot_Play.RimWorld.UIRoot_Play.UIRootOnGUI_Patch1(RimWorld.UIRoot_Play)
at Verse.Root.OnGUI () [0x0003d] in <cd7169108ea74757aa50c5b33d275c15>:0
The 2 possible errors for copy/pasting stockpile settings (depending on how close the packet was to the size limit):
The first one (very close to packet size limit) - host only, a client will get remote packet read error.
Exception handling packet by LocalServerConn: Multiplayer.Common.PacketSendException: Packet Server_Command too big for sending (65539>65536)
at Multiplayer.Common.ConnectionBase.Send (Multiplayer.Common.Packets id, System.Byte[] message, System.Boolean reliable) [0x0003c] in <762e3bbc3a3648f0ac767508b9375a1d>:0
at Multiplayer.Common.CommandHandler.Send (Multiplayer.Common.CommandType cmd, System.Int32 factionId, System.Int32 mapId, System.Byte[] data, Multiplayer.Common.ServerPlayer sourcePlayer, Multiplayer.Common.ServerPlayer fauxSource) [0x00141] in <762e3bbc3a3648f0ac767508b9375a1d>:0
at Multiplayer.Common.ServerPlayingState.HandleClientCommand (Multiplayer.Common.ByteReader data) [0x0003e] in <762e3bbc3a3648f0ac767508b9375a1d>:0
at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.FastInvoke_HandleClientCommand_indirect(object,object[])
at Multiplayer.Common.ConnectionBase.HandleReceiveMsg (System.Int32 msgId, System.Int32 fragState, Multiplayer.Common.ByteReader reader, System.Boolean reliable) [0x000f6] in <762e3bbc3a3648f0ac767508b9375a1d>:0
at Multiplayer.Common.ConnectionBase.HandleReceiveRaw (Multiplayer.Common.ByteReader data, System.Boolean reliable) [0x00032] in <762e3bbc3a3648f0ac767508b9375a1d>:0
at Multiplayer.Client.Networking.LocalClientConnection+<>c__DisplayClass5_0.<SendRaw>b__0 () [0x00016] in <eeab71685d9f4a769b786d9dc34b45cf>:0
The second one, happens when not too close to packet size limit.
Multiplayer.Common.PacketSendException: Packet Client_Command too big for sending (224097>65536)
at Multiplayer.Common.ConnectionBase.Send (Multiplayer.Common.Packets id, System.Byte[] message, System.Boolean reliable) [0x0003c] in <762e3bbc3a3648f0ac767508b9375a1d>:0
at Multiplayer.Client.Extensions.SendCommand (Multiplayer.Common.ConnectionBase conn, Multiplayer.Common.CommandType type, System.Int32 mapId, System.Byte[] data) [0x0002e] in <eeab71685d9f4a769b786d9dc34b45cf>:0
at Multiplayer.Client.SyncHandler.SendSyncCommand (System.Int32 mapId, Multiplayer.Common.ByteWriter data) [0x00014] in <eeab71685d9f4a769b786d9dc34b45cf>:0
at Multiplayer.Client.SyncMethod.DoSync (System.Object target, System.Object[] args) [0x001d8] in <eeab71685d9f4a769b786d9dc34b45cf>:0
at Multiplayer.Client.SyncTemplates.General (System.Int32 internalId, System.Object instance, System.Object[] args) [0x00012] in <eeab71685d9f4a769b786d9dc34b45cf>:0
at (wrapper dynamic-method) RimWorld.StorageSettings.RimWorld.StorageSettings.CopyFrom_Patch0(RimWorld.StorageSettings,RimWorld.StorageSettings)
at RimWorld.StorageSettingsClipboard.PasteInto (RimWorld.StorageSettings s) [0x00000] in <cd7169108ea74757aa50c5b33d275c15>:0
at RimWorld.StorageSettingsClipboard+<>c__DisplayClass6_0.<CopyPasteGizmosFor>b__1 () [0x0000b] in <cd7169108ea74757aa50c5b33d275c15>:0
at Verse.Command_Action.ProcessInput (UnityEngine.Event ev) [0x00007] in <cd7169108ea74757aa50c5b33d275c15>:0
at Verse.GizmoGridDrawer.DrawGizmoGrid (System.Collections.Generic.IEnumerable`1[T] gizmos, System.Single startX, Verse.Gizmo& mouseoverGizmo, System.Func`2[T,TResult] customActivatorFunc, System.Func`2[T,TResult] highlightFunc, System.Func`2[T,TResult] lowlightFunc) [0x00707] in <cd7169108ea74757aa50c5b33d275c15>:0
at RimWorld.InspectGizmoGrid.DrawInspectGizmoGridFor (System.Collections.Generic.IEnumerable`1[T] selectedObjects, Verse.Gizmo& mouseoverGizmo) [0x0017a] in <cd7169108ea74757aa50c5b33d275c15>:0 currentSelectable: null
The text was updated successfully, but these errors were encountered:
SokyranTheDragon
changed the title
Certain interactions can not sync and cause an error due to packet size being too big
Certain interactions can not sync and cause an error due to packet size being too big or cause remote packet read error
Jan 6, 2024
There's (at least) 2 ways to reach the packet size limit using vanilla RimWorld functionality:
The first (and fully vanilla way) to achieve this is trying to designate an area of at least 10918 cells (106 by 103 area). This will be met with an error due to packet size being too big, causing the interaction to not sync. If at least one of those cells was skipped (already designated before), syncing will work as intended. However, it may happen when designating smaller area depending on extra data that's synced (for example designator needing to sync extra data). This can be worked around by designating smaller areas, however - this is mildly annoying to do.
The second way to achieve this requires having significant enough amount of ThingDefs - at least 5054 (assuming all non-vanilla defs are included in stockpile configuration). Vanilla + DLCs have 2605 ThingDefs in total, so at the moment (and in the foreseeable future) this issue can only happen with extra mods (besides MP and Harmony). The issue itself happens when trying to copy/paste stockpile settings. There's no way to work around this besides manually changing the stockpile settings or removing some of the mods.
The 2 possible errors for designators (depending on how close the packet was to the size limit):
The first one (very close to packet size limit) - host only, a client will get remote packet read error.
The second one, happens when not too close to packet size limit.
The 2 possible errors for copy/pasting stockpile settings (depending on how close the packet was to the size limit):
The first one (very close to packet size limit) - host only, a client will get remote packet read error.
The second one, happens when not too close to packet size limit.
The text was updated successfully, but these errors were encountered: