Space Engineers

Space Engineers

Energy Shields
Kam Solastor 2023 年 2 月 18 日 下午 6:39
-Resolved- Crash when placing small-grid large shield generator
I'm getting a crash when I try to place a small-grid large shield generator - here's the last bit of the crash log (as the whole game log is about 20Mb):

2023-02-18 21:08:59.582 - Thread: 1 -> Exception occurred: System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Enumerator.MoveNext()
at VRage.Game.Components.MyComponentContainer.Serialize(Boolean copy)
at Sandbox.Game.Entities.MyCubeBlock.GetObjectBuilderCubeBlock(Boolean copy)
at Sandbox.Game.Entities.Cube.MyTerminalBlock.GetObjectBuilderCubeBlock(Boolean copy)
at Sandbox.Game.Entities.Cube.MyFunctionalBlock.GetObjectBuilderCubeBlock(Boolean copy)
at Sandbox.Game.Entities.Cube.MyProductionBlock.GetObjectBuilderCubeBlock(Boolean copy)
at Sandbox.Game.Entities.Cube.MySlimBlock.GetObjectBuilderInternal(Boolean copy)
at Sandbox.Game.Entities.MyCubeGrid.GetObjectBuilderInternal(MyObjectBuilder_CubeGrid ob, Boolean copy)
at Sandbox.Game.Entities.MyCubeGrid.GetObjectBuilder(Boolean copy)
at ttrcrwm.grid_logic..ctor(IMyCubeGrid new_grid)
at ttrcrwm.session_handler.on_entity_added(IMyEntity entity)
at System.Action`1.Invoke(T obj)
at Sandbox.Game.Entities.MyEntities.RaiseEntityAdd(MyEntity entity)
at Sandbox.Game.Entities.MyEntities.Add(MyEntity entity, Boolean insertIntoScene)
at Sandbox.Game.Entities.MyEntities.InitEntityData.OnEntityInitialized()
at Sandbox.MySandboxGame.ProcessInvoke()
at Sandbox.MySandboxGame.Update()
at Sandbox.Engine.Platform.Game.UpdateInternal()
at Sandbox.Engine.Platform.Game.RunSingleFrame()
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 SpaceEngineers.MyProgram.Main(String[] args)
2023-02-18 21:08:59.582 - Thread: 1 -> Showing message
2023-02-18 21:09:05.294 - Thread: 1 ->
================================== CRASH INFO ==================================
AppVersion: 01_201_014
GameName: Space Engineers
IsOutOfMemory: False
IsGPU: False
IsNative: False
IsTask: False
IsExperimental: True
ProcessRunTime: 699
PCUCount: 118390
IsHang: False
GCMemory: 9362
GCMemoryAllocated: 9362
HWAvailableMemory: 9771
ProcessPrivateMemory: 22321
AnalyticId: SE
================================== OFNI HSARC ==================================

2023-02-18 21:09:05.294 - Thread: 1 -> Log Closed
最后由 Kam Solastor 编辑于; 2023 年 2 月 21 日 下午 3:45
< >
正在显示第 1 - 8 条,共 8 条留言
Kam Solastor 2023 年 2 月 18 日 下午 7:20 
I adjusted the slot in my load order where Energy Shields is placed, with it at the top or bottom now results in just putting the large energy shield into my toolbar being enough to crash instantly after.
Kam Solastor 2023 年 2 月 19 日 下午 2:16 
Update: Have tried deleting/re-downloading all my workshop items from SE - issue persists.

Tried a new world with just the Energy Shields mod - seems to work without issue.

Figuring it was a potential mod conflict, tried to narrow it down by taking my current save, making copies of it, then removing chunks of mods at a time - results inconclusive, and unable to narrow down a likely culprit.

Also, found that even just putting the shield onto the toolbar (without placing it in world) will cause the crash, which can happen anywhere from immediately to 30 seconds or so after placing the shield block onto my toolbar.
Kam Solastor 2023 年 2 月 19 日 下午 2:17 
Here's a message link to a full log posted to the official Space Engineers discord server: https://discord.com/channels/125011928711036928/136097351134740480/1076979289838325802
Kam Solastor 2023 年 2 月 19 日 下午 7:00 
Tested on a new world - same issue.
Kam Solastor 2023 年 2 月 21 日 下午 3:44 
Found the issue - mod conflict:

MA Maneuvering Aerospike Thruster

https://psteamcommunity.yuanyoumao.com/sharedfiles/filedetails/?id=1577406211
SoulDragonWithFlow 2023 年 8 月 7 日 上午 7:59 
引用自 Kam Solastor
Found the issue - mod conflict:

MA Maneuvering Aerospike Thruster

https://psteamcommunity.yuanyoumao.com/sharedfiles/filedetails/?id=1577406211

Legend. Thanks for your work in diagnosing this; probably saved me a LOT of time. :D
lyneca 2023 年 10 月 26 日 下午 6:01 
Having the same issue, looks like it's another mod though as I don't have the manoeuvring aerospike mod :/ are there any broad categories of mod that are likely to be causing the crash?
lyneca 2023 年 10 月 26 日 下午 6:15 
Okay, I found the issue. The game crashes when you place a shield emitter while using the Mirror mod.

2023-10-27 12:13:56.331 - Thread: 1 -> Exception occurred: System.InvalidOperationException: Collection was modified; enumeration operation may not execute. at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Enumerator.MoveNext() at VRage.Game.Components.MyComponentContainer.Serialize(Boolean copy) at Sandbox.Game.Entities.MyCubeBlock.GetObjectBuilderCubeBlock(Boolean copy) at Sandbox.Game.Entities.Cube.MyTerminalBlock.GetObjectBuilderCubeBlock(Boolean copy) at Sandbox.Game.Entities.Cube.MyFunctionalBlock.GetObjectBuilderCubeBlock(Boolean copy) at Sandbox.Game.Entities.Cube.MyProductionBlock.GetObjectBuilderCubeBlock(Boolean copy) at Sandbox.Game.Entities.Cube.MySlimBlock.GetObjectBuilderInternal(Boolean copy) at Sandbox.Game.Entities.Cube.MySlimBlock.VRage.Game.ModAPI.IMySlimBlock.GetObjectBuilder(Boolean copy) at SurvivalMirror.SurvivalMirror.TryAddMirrorBlock(Vector3I pos, IMySlimBlock block) at SurvivalMirror.SurvivalMirror.CreateMirrors(IMySlimBlock block) at SurvivalMirror.SurvivalMirror.OnBlockAddToGrid(IMySlimBlock block) at System.Action`1.Invoke(T obj) at System.DelegateExtensions.InvokeIfNotNull[T1](Action`1 handler, T1 arg1) at Sandbox.Game.Entities.MyCubeGrid.NotifyBlockAdded(MySlimBlock block) at Sandbox.Game.Entities.MyCubeGrid.AddCubeBlock(MyObjectBuilder_CubeBlock objectBuilder, Boolean testMerge, MyCubeBlockDefinition blockDefinition) at Sandbox.Game.Entities.MyCubeGrid.AddBlock(MyObjectBuilder_CubeBlock objectBuilder, Boolean testMerge) at Sandbox.Game.Entities.MyCubeGrid.BuildBlock(MyCubeBlockDefinition blockDefinition, Vector3 colorMaskHsv, MyStringHash skinId, Vector3I min, Quaternion orientation, Int64 owner, Int64 entityId, MyEntity builderEntity, MyObjectBuilder_CubeBlock blockObjectBuilder, Boolean updateVolume, Boolean testMerge, Boolean buildAsAdmin, String localizedDisplayNameBase) at Sandbox.Game.Entities.MyCubeGrid.BuildBlocksSuccess(Vector3 colorMaskHsv, MyStringHash skinId, HashSet`1 locations, HashSet`1 resultBlocks, MyEntity builder, Boolean instantBuilt, Int64 ownerId, UInt64 placingPlayer) at Sandbox.Game.Entities.MyCubeGrid.BuildBlocksRequest(MyBlockVisuals visuals, HashSet`1 locations, Int64 builderEntityId, Boolean instantBuild, Int64 ownerId) at Sandbox.Game.Entities.MyCubeGrid.BuildBlocksRequest<>Sandbox_Game_Entities_MyCubeGrid<>MyBlockVisuals#System_Collections_Generic_HashSet`1<Sandbox_Game_Entities_MyCubeGrid<>MyBlockLocation>#System_Int64#System_Boolean#System_Int64.Invoke(MyCubeGrid& this, MyBlockVisuals& visuals, HashSet`1& locations, Int64& builderEntityId, Boolean& instantBuild, Int64& ownerId, DBNull& arg6) at VRage.Network.MyReplicationLayerBase.InvokeLocally[T1,T2,T3,T4,T5,T6,T7](CallSite`7 site, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7) at VRage.Network.MyReplicationLayer.DispatchEvent[T1,T2,T3,T4,T5,T6,T7,T8](CallSite callSite, EndpointId recipient, Nullable`1 position, T1& arg1, T2& arg2, T3& arg3, T4& arg4, T5& arg5, T6& arg6, T7& arg7, T8& arg8) at VRage.Network.MyReplicationLayerBase.RaiseEvent[T1,T2,T3,T4,T5,T6,T7](T1 arg1, T7 arg7, Func`2 action, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, EndpointId endpointId, Nullable`1 position) at Sandbox.Game.Entities.MyCubeGrid.BuildBlocks(Vector3 colorMaskHsv, MyStringHash skinId, HashSet`1 locations, Int64 builderEntityId, Int64 ownerId) at Sandbox.Game.Entities.MyCubeBuilder.AddConstruction(MyEntity builder) at Sandbox.Game.Weapons.MyBlockPlacerBase.Shoot(MyShootActionEnum action, Vector3 direction, Nullable`1 overrideWeaponPos, String gunAction) at SpaceEngineers.Game.Entities.Weapons.MyCubePlacer.Shoot(MyShootActionEnum action, Vector3 direction, Nullable`1 overrideWeaponPos, String gunAction) at Sandbox.Game.Entities.Character.MyCharacter.ShootInternal() at Sandbox.Game.Entities.Character.MyCharacter.UpdateShooting() at Sandbox.Game.Entities.Character.MyCharacter.UpdateAfterSimulation() at Sandbox.Game.Entities.MyParallelEntityUpdateOrchestrator.UpdateAfterSimulation() at Sandbox.Game.Entities.MyParallelEntityUpdateOrchestrator.DispatchAfterSimulation() at Sandbox.Game.Entities.MyEntities.UpdateAfterSimulation() at Sandbox.Game.World.MySector.UpdateAfterSimulation() at Sandbox.Game.World.MySession.UpdateComponents() at Sandbox.Game.World.MySession.Update(MyTimeSpan updateTime) at Sandbox.MySandboxGame.Update() at Sandbox.Engine.Platform.Game.UpdateInternal() at Sandbox.Engine.Platform.Game.RunSingleFrame() 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 SpaceEngineers.MyProgram.Main(String[] args)
< >
正在显示第 1 - 8 条,共 8 条留言
每页显示数: 1530 50