Space Engineers

Space Engineers

Advanced Welding - detaching and reattaching blocks!
nirnx 1 Nov, 2020 @ 2:33pm
Disable possibility to weld small and large grid
Hello,
I wonder if it is a way to disable the possibility of welding small to large grid?
It is crashing the server when player is trying to do this
< >
Showing 1-6 of 6 comments
Digi  [developer] 1 Nov, 2020 @ 8:27pm 
It's not intended to be able to do that, sounds like a bug, I'll see what I can do xD

Can you include the crash log (or just the stacktrace part) though?
Last edited by Digi; 1 Nov, 2020 @ 8:27pm
nirnx 4 Nov, 2020 @ 1:50am 
Hello,
I have something like this in logs. This happened when player was trying to weld small to large block.
03:02:26.8885 [FATAL] Initializer: System.NullReferenceException: Object reference not set to an instance of an object.
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroupBase.UpdateParenting(ParentingSetup parentingSetup, Int64 currentParentId)
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroup.UpdateEntitySupport()
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroup.Serialize(BitStream stream, Endpoint forClient, MyTimeSpan serverTimestamp, MyTimeSpan lastClientTimestamp, Byte packetId, Int32 maxBitPosition, HashSet`1 cachedData)
at VRage.Network.MyClient.Serialize(IMyStateGroup group, BitStream sendStream, MyTimeSpan timeStamp, Int32 messageBitSize)
at VRage.Network.MyClient.SendStateSync(MyStateDataEntry stateGroupEntry, Int32 mtuBytes, MyPacketDataBitStreamBase& data, MyTimeSpan serverTimeStamp)
at VRage.Network.MyReplicationServer.FilterStateSync(MyClient client)
at VRage.Network.MyReplicationServer.SendUpdate()
at Sandbox.Engine.Multiplayer.MyMultiplayerBase.Tick()
at Sandbox.Engine.Multiplayer.MyDedicatedServerBase.Tick()
at Sandbox.Game.World.MySession.Update(MyTimeSpan updateTime)
at Sandbox.MySandboxGame.Update()
at Sandbox.Engine.Platform.Game.UpdateInternal()
at Patched_Sandbox.Engine.Platform.GameRunSingleFrame_0(Object )
at Sandbox.Engine.Platform.FixedLoop.<>c__DisplayClass11_0.<Run>b__0()
at Sandbox.Engine.Platform.GenericLoop.Run(VoidAction tickCallback)
at Sandbox.Engine.Platform.Game.RunLoop()
at Sandbox.MySandboxGame.Run(Boolean customRenderLoop, Action disposeSplashScreen)
at Torch.VRageGame.DoStart() in C:\jenkins\workspace\Torch_Torch_master\Torch\VRageGame.cs:line 246
at Torch.VRageGame.Run() in C:\jenkins\workspace\Torch_Torch_master\Torch\VRageGame.cs:line 125
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
System.NullReferenceException: Object reference not set to an instance of an object.
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroupBase.UpdateParenting(ParentingSetup parentingSetup, Int64 currentParentId)
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroup.UpdateEntitySupport()
at Sandbox.Game.Replication.StateGroups.MyEntityPhysicsStateGroup.Serialize(BitStream stream, Endpoint forClient, MyTimeSpan serverTimestamp, MyTimeSpan lastClientTimestamp, Byte packetId, Int32 maxBitPosition, HashSet`1 cachedData)
at VRage.Network.MyClient.Serialize(IMyStateGroup group, BitStream sendStream, MyTimeSpan timeStamp, Int32 messageBitSize)
at VRage.Network.MyClient.SendStateSync(MyStateDataEntry stateGroupEntry, Int32 mtuBytes, MyPacketDataBitStreamBase& data, MyTimeSpan serverTimeStamp)
at VRage.Network.MyReplicationServer.FilterStateSync(MyClient client)
at VRage.Network.MyReplicationServer.SendUpdate()
at Sandbox.Engine.Multiplayer.MyMultiplayerBase.Tick()
at Sandbox.Engine.Multiplayer.MyDedicatedServerBase.Tick()
at Sandbox.Game.World.MySession.Update(MyTimeSpan updateTime)
at Sandbox.MySandboxGame.Update()
at Sandbox.Engine.Platform.Game.UpdateInternal()
at Patched_Sandbox.Engine.Platform.GameRunSingleFrame_0(Object )
at Sandbox.Engine.Platform.FixedLoop.<>c__DisplayClass11_0.<Run>b__0()
at Sandbox.Engine.Platform.GenericLoop.Run(VoidAction tickCallback)
at Sandbox.Engine.Platform.Game.RunLoop()
at Sandbox.MySandboxGame.Run(Boolean customRenderLoop, Action disposeSplashScreen)
at Torch.VRageGame.DoStart() in C:\jenkins\workspace\Torch_Torch_master\Torch\VRageGame.cs:line 246
at Torch.VRageGame.Run() in C:\jenkins\workspace\Torch_Torch_master\Torch\VRageGame.cs:line 125
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Digi  [developer] 4 Nov, 2020 @ 11:49am 
I looked at the code and I am checking if both pads are the same grid size.
I also tested it and it does not want to recognize a small pad near a large pad, let alone merge it.

So I don't know what's going on for you there...

Can you send the grids they used (or the world with everything else deleted from it)?
nirnx 5 Nov, 2020 @ 9:54am 
Hello,
Apologize but turns out this happened when Player was trying to use weld pad on the rotor with small head, but I'm not able to reproduce it either :(
If I spot this issue again I will send world + details
Thanks
opticsponge 27 Nov, 2020 @ 9:58am 
We had same issue causing server crash. Small Grid craft welding to Large Grid Station with rotor and smll head. Happened two times in a row
Digi  [developer] 14 Dec, 2020 @ 4:11am 
Someone else contacted me with a world that I was able to replicate with.

After lots of debugging I can't find the issue in my mod (it also doesn't happen with vanilla merges), but I did find the issue in their code: the NRE happens from them trying to read a grid that's MarkedForClose and its physics are null, and they're accessing Physics without nullcheck.

I've reported this to the devs and hopefully they'll change one word in their code to fix this (as I've provided the cause and fix xD).
Last edited by Digi; 14 Dec, 2020 @ 4:12am
< >
Showing 1-6 of 6 comments
Per page: 1530 50