Known Solutions to crashes or errors
These are found in the SE log after a crash. Errors can also occur without the game crashing.
If you can't find your error in this list, refer to Modding/Troubleshooting page.
Game errors
SaveFinished: failed to save the world / at System.Environment.GetStackTrace
Thread: 1 -> SaveFinished: failed to save the world at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
at System.Environment.get_StackTrace()
at Sandbox.Game.Screens.Helpers.MyAsyncSaving.SaveFinished(MySessionSnapshot snapshot)
at ParallelTasks.Parallel.RunCallbacks()
at Sandbox.Game.World.MySession.Update(MyTimeSpan updateTime)
One cause is that the world name has a trailing space, check VRage log to see if it complains about being unable to write the screenshot.
NullReferenceException / PasteGridData.Callback
Thread: 1 -> Exception occurred: System.NullReferenceException: Object reference not set to an instance of an object.
at Sandbox.Game.Entities.MyCubeGrid.PasteGridData.Callback()
at ParallelTasks.Parallel.RunCallbacks()
at Sandbox.Game.World.MySession.Update(MyTimeSpan updateTime)
One cause can be that there's an armor skin id that no longer exists (added by a mod?), on the blocks in the pasted grid.
There may be lots of other causes as this code does lots of things and the error is one of the most common kinds of errors.
NullReferenceException / MySession.GatherVicinityInformation
Thread: 1 -> Exception occurred: System.NullReferenceException: Object reference not set to an instance of an object.
at Sandbox.Game.World.MySession.<>c__DisplayClass613_1.<GatherVicinityInformation>b__0()
at System.DelegateExtensions.InvokeIfNotNull(Action handler)
at Sandbox.Game.World.MySession.GatherVicinityInformation(BoundingSphereD bs, HashSet`1 voxelMaterials, HashSet`1 models, HashSet`1 armorModels, Action completion)
at Sandbox.Game.World.MySession.GatherVicinityInformation(MyObjectBuilder_Checkpoint checkpoint)
at Sandbox.Game.World.MySession.Save(MySessionSnapshot& snapshot, String customSaveName)
One known cause is using a modded character in another world causing its subtype to be saved to ActiveInventory.sbl where it attempts to use it in all worlds, and causes this error when the modded character no longer exists.
Workaround is:
- Go to SE's saves folder
%appdata%/SpaceEngineers/Saves
(can be pasted in explorer address bar). - Open ActiveInventory.sbl (any text editor works).
- Change
<Model>
to be Default_Astronaut or Default_Astronaut_Female.
Generic modding errors
MOD_CRITICAL_ERROR / LOADED ONLY n/6 PHASES
MOD_CRITICAL_ERROR: <ModName>, in file:
MOD PARTIALLY SKIPPED, LOADED ONLY 1/6 PHASES, Following Error occured:
Object reference not set to an instance of an object.
Sandbox.Game
at Sandbox.Definitions.MyDefinitionManager.LoadDefinitions(List`1 contexts, List`1 definitionSets, Boolean failOnDebug, Boolean isPreload)
MOD_CRITICAL_ERROR: <ModName>, in file:
MOD PARTIALLY SKIPPED, LOADED ONLY 2/6 PHASES, Following Error occured:
Object reference not set to an instance of an object.
Sandbox.Game
at Sandbox.Definitions.MyDefinitionManager.LoadDefinitions(List`1 contexts, List`1 definitionSets, Boolean failOnDebug, Boolean isPreload)
MOD_CRITICAL_ERROR: <ModName>, in file:
MOD PARTIALLY SKIPPED, LOADED ONLY 3/6 PHASES, Following Error occured:
Object reference not set to an instance of an object.
Sandbox.Game
at Sandbox.Definitions.MyDefinitionManager.LoadDefinitions(List`1 contexts, List`1 definitionSets, Boolean failOnDebug, Boolean isPreload)
MOD_CRITICAL_ERROR: <ModName>, in file:
MOD PARTIALLY SKIPPED, LOADED ONLY 4/6 PHASES, Following Error occured:
Object reference not set to an instance of an object.
Sandbox.Game
at Sandbox.Definitions.MyDefinitionManager.LoadDefinitions(List`1 contexts, List`1 definitionSets, Boolean failOnDebug, Boolean isPreload)
MOD_CRITICAL_ERROR: <ModName>, in file:
MOD PARTIALLY SKIPPED, LOADED ONLY 5/6 PHASES, Following Error occured:
Object reference not set to an instance of an object.
Sandbox.Game
at Sandbox.Definitions.MyDefinitionManager.LoadDefinitions(List`1 contexts, List`1 definitionSets, Boolean failOnDebug, Boolean isPreload)
MOD_CRITICAL_ERROR: <ModName>, in file:
MOD PARTIALLY SKIPPED, LOADED ONLY 6/6 PHASES, Following Error occured:
Object reference not set to an instance of an object.
This is caused by too many things, lots unknown, here's some known ones:
- Does not contain a Data folder:
- It's not a mod. Worlds, blueprints and PB scripts should not be added to the mods list.
- Zipped wrong for mod.io, Data folder has to be directly as you open the zip file.
- It's a local mod that no longer exists (renamed or deleted).
- Download corruption Fixing download corruption caused the mod to not have said Data folder.
Value cannot be null / MyObjectFactory.GetProducedType
Value cannot be null.
Parameter name: key
mscorlib
at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at VRage.ObjectBuilders.MyObjectFactory`2.GetProducedType(MyObjectBuilderType objectBuilderType)
This one can happen on any definition and it means its TypeId
does not exist.
Mods cannot invent TypeId, only SubTypeId.
Input string was not in a correct format. / MyBlueprintDefinitionBase.ToString
MOD_CRITICAL_ERROR: <ModName>, in file: <File>
MOD PARTIALLY SKIPPED, LOADED ONLY 2/6 PHASES, Following Error occured:
Input string was not in a correct format.
mscorlib
at System.Text.StringBuilder.FormatError()
at System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args)
at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)
at Sandbox.Definitions.MyBlueprintDefinitionBase.ToString()
at System.String.Concat(Object[] args)
at Sandbox.Definitions.MyDefinitionManager.InitBlueprints(MyModContext context, Dictionary2 output, DefinitionDictionary1 blueprintsByResult, MyObjectBuilder_BlueprintDefinition[] blueprints, Boolean failOnDebug)
at Sandbox.Definitions.MyDefinitionManager.LoadPhase1(MyObjectBuilder_Definitions objBuilder, MyModContext context, DefinitionSet definitionSet, Boolean failOnDebug)
at Sandbox.Definitions.MyDefinitionManager.LoadDefinitions(List1 contexts, List1 definitionSets, Boolean failOnDebug, Boolean isPreload)
Caused by having { or } in the <DisplayName>
of a blueprint that has same result as another blueprint, causing the game to print a message in log and that's where it crashes, because it weirdly mixes formatting techniques causing a format exception from the presence of those characters (which are used for the formatting).
TL;DR it's a game bug.
Solutions:
- Remove { and } from the blueprint
<DisplayName>
. - Replace { and } with
{{
and}}
which will show up as {Actual Blueprint Name} in-game. - Use a localization script to load .resx and then you can use localization keys directly without surrounding {LOC: and }, just like Keen uses them.
Exception during loading of type : MyEmoteSwitcher
Exception during loading of type : MyEmoteSwitcher
...
System.NullReferenceException: Object reference not set to an instance of an object.
at Sandbox.Game.Screens.Helpers.MyGuiControlDPad..ctor(MyObjectBuilder_DPadControlVisualStyle style)
Caused by emote icon missing, apparently it is quite strict about those.
Block errors
Mainly mod blocks.
NullReferenceException / (AnyBlockClass).Init
Thread: 1 -> ERROR Entity init!: System.NullReferenceException: Object reference not set to an instance of an object.
at (AnyBlockClass).Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid)
at Sandbox.Game.Entities.Cube.MySlimBlock.Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid, MyCubeBlock fatBlock)
Missing or wrong xsi:type
in <Definition xsi:type="MyObjectBuilder_???Definition">
from the sbc, check with the vanilla counterpart to copy the right objectbuilder name.
KeyNotFoundException / MyLargeGatlingTurret.OnModelChange
Thread: 12 -> ERROR Entity init!: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.ThrowHelper.ThrowKeyNotFoundException()
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at SpaceEngineers.Game.Weapons.Guns.MyLargeGatlingTurret.OnModelChange()
Gatling turret's model does not contain the expected subpart chain:
- In main model:
subpart_GatlingTurretBase1
pointing to yaw model - In yaw subpart model:
subpart_GatlingTurretBase2
pointing to pitch model - In pitch subpart model optional:
subpart_GatlingBarrel
pointing to a barrel model; otherwise uses pitch subpart as barrel
NOTE: gatling turret has the <SubpartPairing>
feature which can change the required empty names! Refer to game's CubeBlocks_Weapons.sbc for how it's used if you want to avoid renaming the subpart empties or you don't want to use a rotating barrel.
KeyNotFoundException / MyLargeMissileTurret.OnModelChange
Thread: 15 -> ERROR Entity init!: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.ThrowHelper.ThrowKeyNotFoundException()
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at SpaceEngineers.Game.Weapons.Guns.MyLargeMissileTurret.OnModelChange()
Missile turret's model does not contain the expected subpart chain:
- In main model:
subpart_MissileTurretBase1
pointing to yaw model - In yaw subpart model:
subpart_MissileTurretBarrels
pointing to pitch model
NullReferenceException / MyLargeTurretBase.GetWorldMatrix
Thread: 1 -> Exception occurred: System.NullReferenceException: Object reference not set to an instance of an object.
at Sandbox.Game.Weapons.MyLargeTurretBase.GetWorldMatrix()
This can happen to any type of turret it's because the model is lacking one of the expected subparts.
For gatling turret and missile turret you can see the errors directly above for info on their expected empties.
For interior turret:
- In main model:
subpart_InteriorTurretBase1
pointing to yaw model - In yaw subpart model:
subpart_InteriorTurretBase2
pointing to pitch model
MOD_CRITICAL_ERROR / MyCubeBlockDefinition.Init
MOD_CRITICAL_ERROR: <ModName>, in file: <FileNameButProbablyALie>
MOD PARTIALLY SKIPPED, LOADED ONLY 4/6 PHASES, Following Error occured:
Object reference not set to an instance of an object.
Sandbox.Game
at Sandbox.Definitions.MyCubeBlockDefinition.Init(MyObjectBuilder_DefinitionBase builder)
at Sandbox.Definitions.MyDefinitionManager.InitDefinition[T](MyModContext context, MyObjectBuilder_DefinitionBase builder)
at Sandbox.Definitions.MyDefinitionManager.ToDefinitions(MyModContext context, DefinitionDictionary`1 outputDefinitions, DefinitionDictionary`1[] outputCubeBlocks, MyObjectBuilder_CubeBlockDefinition[] cubeBlocks, Boolean failOnDebug)
at Sandbox.Definitions.MyDefinitionManager.LoadPhase3(MyObjectBuilder_Definitions objBuilder, MyModContext context, DefinitionSet definitionSet, Boolean failOnDebug)
This MyCubeBlockDefinition.Init()
in general is from generic block definition being initialized, stuff that all blocks have.
Most common causes:
- one or more component subtypes don't exist (if you use a component from another mod, have that mod be loaded before yours, by it being lower in the mods window list)
- the
<CriticalComponent ... />
tag is not declared or its component also does not exist. - any of the other common block tags might be missing or have an unexpected value, ensure you're copying the vanilla counterpart for the block type you want to use, don't transform definitions from one type to another!
TargetInvocationException / Unable to cast ... to type 'Sandbox.Game.Entities.Blocks.MyTextPanel'
Thread: 14 -> ERROR Entity init!: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidCastException: Unable to cast object of type '(AnyOtherBlockClass)' to type 'Sandbox.Game.Entities.Blocks.MyTextPanel'.
at Sandbox.Game.Entities.Cube.MyUseObjectTextPanel..ctor(IMyEntity owner, String dummyName, MyModelDummy dummyData, UInt32 key)
The detector_textpanel
empty in the model is causing this, it only works on TextPanel block type.
IndexOutOfRangeException / MyConveyorLine.GetBlockLinePositions
Thread: 1 -> Exception occurred: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at VRageMath.Base6Directions.GetDirection(Vector3& vec)
at Sandbox.Game.GameSystems.Conveyors.MyConveyorLine.GetBlockLinePositions(MyCubeBlock block)
at Sandbox.Game.GameSystems.Conveyors.MyMultilineConveyorEndpoint..ctor(MyCubeBlock myBlock)
Caused by having a conveyor dummy span over multiple directions.
KeyNotFoundException / MyResourceDistributorComponent.GetTypeIndex
Thread: 1 -> Exception occurred: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.ThrowHelper.ThrowKeyNotFoundException()
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Sandbox.Game.EntityComponents.MyResourceDistributorComponent.GetTypeIndex(MyDefinitionId& typeId)
at Sandbox.Game.EntityComponents.MyResourceDistributorComponent.source_MaxOutputChanged(MyDefinitionId changedResourceTypeId, Single oldOutput, MyResourceSourceComponent obj)
at Sandbox.Game.EntityComponents.MyResourceSourceComponent.SetMaxOutputByType(MyDefinitionId resourceTypeId, Single newMaxOutput)
at Sandbox.Game.Entities.Blocks.MyGasGenerator.SetRemainingCapacities()
at Sandbox.Game.Entities.Blocks.MyGasGenerator.UpdateAfterSimulation()
Caused when all these are true: 1. EnableOxygen turned off in world settings. 2. A GasGenerator block that does not have oxygen in its definitions. 3. Said GasGenerator being placed on a grid that does not have any oxygen-related blocks (placing it in mid-air qualifies).
NullReferenceException / MyMotorSuspension.CanPlaceRotor
Thread: 1 -> Exception occurred: System.NullReferenceException: Object reference not set to an instance of an object.
at Sandbox.Game.Entities.Cube.MyMotorSuspension.CanPlaceRotor(MyAttachableTopBlockBase rotorBlock, Int64 builtBy)
at Sandbox.Game.Entities.Blocks.MyMechanicalConnectionBlockBase.CreateTopPart(MyAttachableTopBlockBase& topBlock, Int64 builtBy, MyCubeBlockDefinitionGroup topGroup, Boolean smallToLarge, Boolean instantBuild)
at Sandbox.Game.Entities.Blocks.MyMechanicalConnectionBlockBase.CreateTopPartAndAttach(Int64 builtBy, Boolean smallToLarge, Boolean instantBuild)
at Sandbox.Game.Entities.Blocks.MyMechanicalConnectionBlockBase.OnBuildSuccess(Int64 builtBy, Boolean instantBuild)
at Sandbox.Game.Entities.MyCubeBuilder.AfterGridBuild(MyEntity builder, MyCubeGrid grid, Boolean instantBuild, UInt64 senderId)
Likely caused by the wheel model not having a collider.
NullReferenceException / MyAutopilotComponent.UpdateGyro
Thread: 1 -> Exception occurred: System.NullReferenceException: Object reference not set to an instance of an object.
at Sandbox.Game.EntityComponents.MyAutopilotComponent.UpdateGyro(Vector3D deltaPos, Vector3D perpDeltaPos, Boolean& rotating, Boolean& isLabile, Double& angleRadians, Boolean preciseRotation)
at Sandbox.Game.EntityComponents.MyAutopilotComponent.UpdateAutopilot()
at Sandbox.Game.Entities.MyRemoteControl.UpdateBeforeSimulationParallel()
In Automatons Beta update (might not still be an issue later) the remote control blocks require an entity component or enabling autopilot on them will crash the game.
See EntityComponents.sbc for AutopilotComponent (and reminder that EntityContainers.sbc links components to blocks).
ArgumentNullException / MyDefinitionManager.InitBlockGroups
Thread: 1 -> Error: Error during loading session:System.ArgumentNullException: Value cannot be null.
Parameter name: key
at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
at System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value)
at Sandbox.Definitions.MyDefinitionManager.InitBlockGroups()
at Sandbox.Definitions.MyDefinitionManager.LoadPostProcess()
at Sandbox.Definitions.MyDefinitionManager.LoadData(List`1 mods)
Caused by a block definition without a <BlockPairName>
declared.
This is probably no longer an issue because if BlockPairName is missing then it will copy the DisplayName to BlockPairName.
NullReferenceException / MyBlockBuilderBase.AddFastBuildModelWithSubparts
Thread: 1 -> Exception occurred: System.NullReferenceException: Object reference not set to an instance of an object.
at Sandbox.Game.Entities.MyBlockBuilderBase.AddFastBuildModelWithSubparts(MatrixD& matrix, List1 matrices, List1 models, MyCubeBlockDefinition blockDefinition, Single gridScale)
at Sandbox.Game.Entities.MyCubeBuilder.AddFastBuildModels(MatrixD baseMatrix, Matrix& localMatrixAdd, List1 matrices, List1 models, MyCubeBlockDefinition definition, Nullable1 startBuild, Nullable1 continueBuild)
at Sandbox.Game.Entities.MyCubeBuilder.UpdateGizmo_Grid(MyGizmoSpaceProperties gizmoSpace, Boolean add, Boolean remove, Boolean draw)
at Sandbox.Game.Entities.MyCubeBuilder.UpdateGizmos(Boolean addPos, Boolean removePos, Boolean draw)
One known cause for this is <MirroringBlock>
not being the same type as the held block.
ArgumentNullException / FirstOrDefault() at PostprocessRadialMenus
Thread: 1 -> Error: Error during loading session:System.ArgumentNullException: Value cannot be null.
Parameter name: source
at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
at Sandbox.Definitions.MyDefinitionManager.PostprocessRadialMenus()
at Sandbox.Definitions.MyDefinitionManager.LoadPostProcess()
at Sandbox.Definitions.MyDefinitionManager.LoadData(List`1 mods)
This is caused by a block that does not have any <Icon>
defined.
NullReferenceException / MyGuiControlBlockGroupInfo.RecreateDetail()
Thread: 1 -> Exception: System.NullReferenceException: Object reference not set to an instance of an object.
at Sandbox.Game.Screens.Helpers.MyGuiControlBlockGroupInfo.<>c__DisplayClass46_0.<AddItemVariantDefinition>b__0()
at Sandbox.Game.Screens.Helpers.MyGuiControlBlockGroupInfo.RecreateDetail()
at System.Action`2.Invoke(T1 arg1, T2 arg2)
at Sandbox.Graphics.GUI.MyGuiControlGrid.set_SelectedIndex(Nullable`1 value)
at Sandbox.Graphics.GUI.MyGuiControlGrid.SelectMouseOverItem(Nullable`1 mouseOverIndex)
at Sandbox.Graphics.GUI.MyGuiControlGrid.HandleNewMousePress(MyGuiControlBase& captureInput)
This crash happens when you select an "N/A" icon block from a block variant (in g-menu) while the block is "N/A" on both sizes.
One of the reasons is the block has <Public>false</Public>
, remove that tag (or set true) to fix.
Render errors
IndexOutOfRangeException / MyHwBuffers.GetVertexBuffer
Thread: 22 -> Exception occured: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at VRage.Render11.Resources.MyHwBuffers.GetVertexBuffer(VertexBufferId id)
at VRageRender.MyRenderingPass.BindProxyGeometry(MyRenderableProxy proxy, MyRenderContext rc)
at VRageRender.MyGBufferPass.RecordCommandsInternal(MyRenderableProxy proxy)
One cause is model not UV mapped.
KeyNotFoundException / MyMeshes.CreateSections
Thread: 10 -> Exception occured: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at VRageRender.MyMeshes.CreateSections(MyMeshData meshData, MyMeshPartInfo1[] parts, MyMeshSectionInfo1[]& sections)
at VRageRender.MyMeshes.CreatePartInfos(String assetName, String contentPath, MyMeshData meshData, MyLodMeshInfo& lodMeshInfo, MyMeshPartInfo1[]& parts, MyMeshSectionInfo1[]& sections)
at VRageRender.MyMeshes.LoadMwm(MyLodMeshInfo& lodMeshInfo, MyMeshPartInfo1[]& parts, MyMeshSectionInfo1[]& sections, MyLODDescriptor[]& lodDescriptors, Single rescale)
One cause is a model has UV maps but it's improperly unwrapped (zero size UV?)
ArgumentNullException / MyBillboardRenderer.GatherInternal
Thread: 11 -> Exception occured: System.ArgumentNullException: Value cannot be null.
Parameter name: key
at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
at System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value)
at VRageRender.MyBillboardRenderer.GatherInternal()
A transparent material definition's file doesn't actually exist.
Mod script errors
Exception during loading of type
Exception during loading of type : <YourClassName>
There's an exception thrown in the constructor of that class or inside the fields (like trying to access something null, for example MyAPIGateway.Session
), and the game eats it up and shows this instead.
Attach a debugger (like dnSpy) to catch the actual exception.
Fatal error compiling / MyBlacklistSyntaxVisitor.VisitAttribute
Fatal error compiling Steam:<ModName> - <FolderName>. This item is likely not a mod and should be removed from the mod list.
Exception occurred: System.AggregateException: One or more errors occurred. > System.NullReferenceException: Object reference not set to an instance of an object.
at VRage.Scripting.MyBlacklistSyntaxVisitor.VisitAttribute(AttributeSyntax node)
at VRage.Scripting.MyBlacklistSyntaxVisitor.Visit(SyntaxNode node)
...
at VRage.Scripting.MyScriptCompiler.<Compile>d__37.MoveNext()
End of inner exception stack trace
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at Sandbox.Game.World.MyScriptManager.Compile(IEnumerable`1 scriptFiles, String assemblyName, Boolean zipped, MyModContext context)
at Sandbox.Game.World.MyScriptManager.LoadScripts(String path, MyModContext mod)
at Sandbox.Game.World.MyScriptManager.LoadData()
> (Inner Exception #0) System.NullReferenceException: Object reference not set to an instance of an object.
at VRage.Scripting.MyBlacklistSyntaxVisitor.VisitAttribute(AttributeSyntax node)
at VRage.Scripting.MyBlacklistSyntaxVisitor.Visit(SyntaxNode node)
...
at VRage.Scripting.MyScriptCompiler.<Compile>d__37.MoveNext()<
The message of "likely not a mod" is generally from adding PB scripts, ship blueprints or worlds as mods, but in this particular exception with MyBlacklistSyntaxVisitor.VisitAttribute
it's caused by an attribute in C# code syntax.
One example that triggers this error:
[MyEntityComponentDescriptor(typeof(MyObjectBuilder_CargoContainer), false), "SomeSubtype"]
The MyEntityComponentDescriptor's closing paranthesis closes before the last string, which seems to break the game's script analyzer.
IndexOutOfRangeException / MyConcurrentTwoLevelQueue.Enqueue
Thread: 1 -> var exception = System.IndexOutOfRangeException: Index was outside the bounds of the array.
at VRageRender.MyUpdateFrame.MyConcurrentTwoLevelQueue.Enqueue(MyRenderMessageBase message)
at VRageRender.MyRender11.EnqueueMessage(MyRenderMessageBase message)
at ...
This is primarily caused by script mods, but nothing is truly excluded.
Usually means there were too many render messages queued that frame. The code at the 3rd "at ..." might not be the underlying cause.
If you're a player, first find a way to reliably cause it then narrow it down by removing script mods and report to the author once you found it.
If you're the author and you're out of ideas on what might be spamming render messages then one way to find out is to attach a debugger (like dnSpy and ensure the IndexOutOfRangeException is enabled in exceptions tab) and trigger the crash. Once it pauses execution you can peek around the code (and jump the callstack) and see if you can get the current queue's entries to see what message type appears a lot of times, then find what that message is queued by.
One thing indirectly causing this coloring blocks, it will trigger all emissive blocks on the grid to get recolored (it calls GridSystems.EmissiveSystem?.UpdateEmissivity()
). The MyCubeGrid's ChangeColorAndSkin()
does not trigger that so it can be used instead but it also does not sync.
Errors with unknown causes
(None)