Space Engineers

Space Engineers

Advanced Welding - detaching and reattaching blocks!
nirnx 2020 年 11 月 1 日 下午 2:33
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
< >
正在显示第 1 - 6 条,共 6 条留言
Digi  [开发者] 2020 年 11 月 1 日 下午 8:27 
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?
最后由 Digi 编辑于; 2020 年 11 月 1 日 下午 8:27
nirnx 2020 年 11 月 4 日 上午 1:50 
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  [开发者] 2020 年 11 月 4 日 上午 11:49 
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 2020 年 11 月 5 日 上午 9:54 
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 2020 年 11 月 27 日 上午 9:58 
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  [开发者] 2020 年 12 月 14 日 上午 4:11 
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).
最后由 Digi 编辑于; 2020 年 12 月 14 日 上午 4:12
< >
正在显示第 1 - 6 条,共 6 条留言
每页显示数: 1530 50