tModLoader

tModLoader

High FPS Support
She Moan 1 Sep, 2024 @ 9:46am
Game crash when playing with Calamity after beating WoF
As the title says. Specifically it crashes right when the Astral Infection biome is about to be spawned in; it does the notification sound of the meteor falling, and then when it is over the game crashes. When this happens, most likely you will reroll to the most recent save backup. Unfortunately for the case of me and my friend's world, this lead to the game loading up from when the meteor had already fallen, and in place of its biome all the blocks had been deleted. For anyone else that might experience this bug, I recommend that when you defeat WoF, take all its drops asap and then exit the game quickly before the astral biome begins to generate, then you can just re-enter. We both tried this in singeplayer worlds and it worked for both of us, even when the FPS mod was or wasn't enabled.

Here is the full crashlog:


[18:13:20.764] [.NET TP Worker/INFO] [StatusText]: Saving world data
[18:13:20.935] [.NET TP Worker/INFO] [StatusText]: Validating world save
[18:13:20.984] [.NET TP Worker/INFO] [StatusText]: Backing up world file
[18:13:21.011] [.NET TP Worker/INFO] [StatusText]: Saving modded world data
[18:13:50.946] [.NET TP Worker/INFO] [StatusText]: Saving map data
[18:13:51.516] [.NET TP Worker/INFO] [StatusText]: Saving world data
[18:13:51.677] [.NET TP Worker/INFO] [StatusText]: Validating world save
[18:13:51.723] [.NET TP Worker/INFO] [StatusText]: Backing up world file
[18:13:51.748] [.NET TP Worker/INFO] [StatusText]: Saving modded world data
[18:13:55.866] [.NET TP Worker/INFO] [Terraria]: Loading World: The Leafy Eater, IsCloud=False, Width: 8400, Height: 2400, Evil: 0, GameMode: 2
[18:13:55.871] [.NET TP Worker/INFO] [StatusText]: Clearing map data:
[18:13:55.951] [.NET TP Worker/INFO] [StatusText]: Loading world data
[18:13:56.685] [.NET TP Worker/INFO] [StatusText]: Settling liquids
[18:13:57.024] [.NET TP Worker/INFO] [StatusText]: Loading map data
[18:13:57.075] [.NET TP Worker/INFO] [StatusText]: Drawing map
[18:13:57.091] [Main Thread/INFO] [Terraria]: Entering world with player: Awooga, IsCloud=False, Width: 8400, Height: 2400, Evil: 0, GameMode: 2
[18:23:26.948] [.NET TP Worker/INFO] [StatusText]: Saving world data
[18:23:27.114] [.NET TP Worker/INFO] [StatusText]: Validating world save
[18:23:27.163] [.NET TP Worker/INFO] [StatusText]: Backing up world file
[18:23:27.191] [.NET TP Worker/INFO] [StatusText]: Saving modded world data
[18:27:34.420] [Main Thread/WARN] [tML]: Silently Caught Exception:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at CalamityMod.Graphics.Renderers.CalamityRenderers.MiracleBlightRenderer.ValidToDraw(NPC npc)
at CalamityMod.Graphics.Renderers.CalamityRenderers.MiracleBlightRenderer.DrawToTarget(SpriteBatch spriteBatch)
at CalamityMod.Graphics.Renderers.RendererManager.DrawToTargets(orig_CheckMonoliths orig)
at Hook<System.Void CalamityMod.Graphics.Renderers.RendererManager::DrawToTargets(Terraria.On_Main+orig_CheckMonoliths)>()
at SyncProxy<System.Void Terraria.Main:CheckMonoliths()>()
at DMD<System.Void Terraria.Main:DoDraw(Microsoft.Xna.Framework.GameTime)>(Main this, GameTime gameTime)
at HighFPSSupport.TickRateModifier.OnDraw(orig_DoDraw orig, Main self, GameTime gameTime)
at Hook<System.Void HighFPSSupport.TickRateModifier::OnDraw(Terraria.On_Main+orig_DoDraw,Terraria.Main,Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at SyncProxy<System.Void Terraria.Main:DoDraw(Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at Terraria.Main.Draw_Inner(GameTime gameTime)
at Terraria.Main.Draw(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.RunLoop()
at Microsoft.Xna.Framework.Game.Run()
at Terraria.Program.RunGame()
at Terraria.Program.LaunchGame_(Boolean isServer)
at Terraria.Program.LaunchGame(String[] args, Boolean monoArgs)
at Terraria.MonoLaunch.Main_End(String[] args)
at Terraria.MonoLaunch.<>c__DisplayClass1_0.<Main>b__1()

[18:27:34.478] [Main Thread/WARN] [tML]: Silently Caught Exception:
System.BadImageFormatException: Read out of bounds.
at System.Reflection.Throw.OutOfBounds()
at System.Reflection.Metadata.Ecma335.MethodDebugInformationTableReader.GetSequencePoints(MethodDebugInformationHandle handle)
at System.Reflection.Metadata.MethodDebugInformation.get_SequencePointsBlob()
at System.Diagnostics.StackTraceSymbols.GetSourceLineInfo(Assembly assembly, String assemblyPath, IntPtr loadedPeAddress, Int32 loadedPeSize, Boolean isFileLayout, IntPtr inMemoryPdbAddress, Int32 inMemoryPdbSize, Int32 methodToken, Int32 ilOffset, String& sourceFile, Int32& sourceLine, Int32& sourceColumn)
at System.Diagnostics.StackFrameHelper.InitializeSourceInfo(Int32 iSkip, Boolean fNeedFileInfo, Exception exception)
at DMD<System.Void System.Diagnostics.StackTrace:CaptureStackTrace(System.Int32, System.Boolean, System.Exception)>(StackTrace this, Int32 skipFrames, Boolean fNeedFileInfo, Exception e)
at Hook<System.Void Terraria.ModLoader.Engine.LoggingHooks::Hook_StackTrace_CaptureStackTrace(Terraria.ModLoader.Engine.LoggingHooks+orig_StackTrace_CaptureStackTrace,System.Diagnostics.StackTrace,System.Int32,System.Boolean,System.Exception)>(StackTrace , Int32 , Boolean , Exception )
at SyncProxy<System.Void System.Diagnostics.StackTrace:CaptureStackTrace(System.Int32, System.Boolean, System.Exception)>(StackTrace , Int32 , Boolean , Exception )
at System.Exception.get_StackTrace()
at System.Exception.ToString()
at log4net.ObjectRenderer.DefaultRenderer.RenderObject(RendererMap rendererMap, Object obj, TextWriter writer)
at log4net.ObjectRenderer.RendererMap.FindAndRender(Object obj, TextWriter writer)
at log4net.Util.PatternConverter.Format(TextWriter writer, Object state)
at log4net.Appender.AppenderSkeleton.RenderLoggingEvent(LoggingEvent loggingEvent)
at log4net.Appender.AppenderSkeleton.DoAppend(LoggingEvent loggingEvent)
at log4net.Util.AppenderAttachedImpl.AppendLoopOnAppenders(LoggingEvent loggingEvent)
at log4net.Repository.Hierarchy.Logger.CallAppenders(LoggingEvent loggingEvent)
at log4net.Repository.Hierarchy.Logger.Log(Type callerStackBoundaryDeclaringType, Level level, Object message, Exception exception)
at log4net.Core.LogImpl.Error(Object message)
at Terraria.Main.Draw(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.RunLoop()
at Microsoft.Xna.Framework.Game.Run()
at Terraria.Program.RunGame()
at Terraria.Program.LaunchGame_(Boolean isServer)
at Terraria.Program.LaunchGame(String[] args, Boolean monoArgs)
at Terraria.MonoLaunch.Main_End(String[] args)
at Terraria.MonoLaunch.<>c__DisplayClass1_0.<Main>b__1()

[18:27:34.479] [Main Thread/WARN] [tML]: Silently Caught Exception:
System.BadImageFormatException: Read out of bounds.
at System.Reflection.Throw.OutOfBounds()
at System.Reflection.Metadata.Ecma335.MethodDebugInformationTableReader.GetSequencePoints(MethodDebugInformationHandle handle)
at System.Reflection.Metadata.MethodDebugInformation.get_SequencePointsBlob()
at System.Diagnostics.StackTraceSymbols.GetSourceLineInfo(Assembly assembly, String assemblyPath, IntPtr loadedPeAddress, Int32 loadedPeSize, Boolean isFileLayout, IntPtr inMemoryPdbAddress, Int32 inMemoryPdbSize, Int32 methodToken, Int32 ilOffset, String& sourceFile, Int32& sourceLine, Int32& sourceColumn)
at System.Diagnostics.StackFrameHelper.InitializeSourceInfo(Int32 iSkip, Boolean fNeedFileInfo, Exception exception)
at DMD<System.Void System.Diagnostics.StackTrace:CaptureStackTrace(System.Int32, System.Boolean, System.Exception)>(StackTrace this, Int32 skipFrames, Boolean fNeedFileInfo, Exception e)
at Hook<System.Void Terraria.ModLoader.Engine.LoggingHooks::Hook_StackTrace_CaptureStackTrace(Terraria.ModLoader.Engine.LoggingHooks+orig_StackTrace_CaptureStackTrace,System.Diagnostics.StackTrace,System.Int32,System.Boolean,System.Exception)>(StackTrace , Int32 , Boolean , Exception )
at SyncProxy<System.Void System.Diagnostics.StackTrace:CaptureStackTrace(System.Int32, System.Boolean, System.Exception)>(StackTrace , Int32 , Boolean , Exception )
at System.Exception.get_StackTrace()
at System.Exception.ToString()
at log4net.ObjectRenderer.DefaultRenderer.RenderObject(RendererMap rendererMap, Object obj, TextWriter writer)
at log4net.ObjectRenderer.RendererMap.FindAndRender(Object obj, TextWriter writer)
at log4net.Util.PatternConverter.Format(TextWriter writer, Object state)
at log4net.Appender.AppenderSkeleton.RenderLoggingEvent(LoggingEvent loggingEvent)
at log4net.Appender.DebugAppender.Append(LoggingEvent loggingEvent)
at log4net.Appender.AppenderSkeleton.DoAppend(LoggingEvent loggingEvent)
at log4net.Util.AppenderAttachedImpl.AppendLoopOnAppenders(LoggingEvent loggingEvent)
at log4net.Repository.Hierarchy.Logger.CallAppenders(LoggingEvent loggingEvent)
at log4net.Repository.Hierarchy.Logger.Log(Type callerStackBoundaryDeclaringType, Level level, Object message, Exception exception)
at log4net.Core.LogImpl.Error(Object message)
at Terraria.Main.Draw(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.RunLoop()
at Microsoft.Xna.Framework.Game.Run()
at Terraria.Program.RunGame()
at Terraria.Program.LaunchGame_(Boolean isServer)
at Terraria.Program.LaunchGame(String[] args, Boolean monoArgs)
at Terraria.MonoLaunch.Main_End(String[] args)
at Terraria.MonoLaunch.<>c__DisplayClass1_0.<Main>b__1()

[18:27:34.421] [Main Thread/ERROR] [Terraria]: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at CalamityMod.Graphics.Renderers.CalamityRenderers.MiracleBlightRenderer.ValidToDraw(NPC npc) in CalamityMod\Graphics\Renderers\CalamityRenderers\MiracleBlightRenderer.cs:line 60
at CalamityMod.Graphics.Renderers.CalamityRenderers.MiracleBlightRenderer.DrawToTarget(SpriteBatch spriteBatch) in CalamityMod\Graphics\Renderers\CalamityRenderers\MiracleBlightRenderer.cs:line 98
at CalamityMod.Graphics.Renderers.RendererManager.DrawToTargets(orig_CheckMonoliths orig) in CalamityMod\Graphics\Renderers\RendererManager.cs:line 96
at Hook<System.Void CalamityMod.Graphics.Renderers.RendererManager::DrawToTargets(Terraria.On_Main+orig_CheckMonoliths)>()
at SyncProxy<System.Void Terraria.Main:CheckMonoliths()>()
at DMD<System.Void Terraria.Main:DoDraw(Microsoft.Xna.Framework.GameTime)>(Main this, GameTime gameTime)
at HighFPSSupport.TickRateModifier.OnDraw(orig_DoDraw orig, Main self, GameTime gameTime)
at Hook<System.Void HighFPSSupport.TickRateModifier::OnDraw(Terraria.On_Main+orig_DoDraw,Terraria.Main,Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at SyncProxy<System.Void Terraria.Main:DoDraw(Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at Terraria.Main.Draw_Inner(GameTime gameTime)
at Terraria.Main.Draw(GameTime gameTime)
[18:27:34.483] [Main Thread/WARN] [tML]: Silently Caught Exception:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Terraria.Main.Draw(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.RunLoop()
at Microsoft.Xna.Framework.Game.Run()
at Terraria.Program.RunGame()
at Terraria.Program.LaunchGame_(Boolean isServer)
at Terraria.Program.LaunchGame(String[] args, Boolean monoArgs)
at Terraria.MonoLaunch.Main_End(String[] args)
at Terraria.MonoLaunch.<>c__DisplayClass1_0.<Main>b__1()

[18:27:34.819] [Main Thread/WARN] [tML]: Silently Caught Exception:
System.BadImageFormatException: Read out of bounds.
at System.Reflection.Throw.OutOfBounds()
at System.Reflection.Metadata.MethodDebugInformation.get_SequencePointsBlob()
at System.Diagnostics.StackTraceSymbols.GetSourceLineInfo(Assembly assembly, String assemblyPath, IntPtr loadedPeAddress, Int32 loadedPeSize, Boolean isFileLayout, IntPtr inMemoryPdbAddress, Int32 inMemoryPdbSize, Int32 methodToken, Int32 ilOffset, String& sourceFile, Int32& sourceLine, Int32& sourceColumn)
at System.Diagnostics.StackFrameHelper.InitializeSourceInfo(Int32 iSkip, Boolean fNeedFileInfo, Exception exception)
at DMD<System.Void System.Diagnostics.StackTrace:CaptureStackTrace(System.Int32, System.Boolean, System.Exception)>(StackTrace this, Int32 skipFrames, Boolean fNeedFileInfo, Exception e)
at Hook<System.Void Terraria.ModLoader.Engine.LoggingHooks::Hook_StackTrace_CaptureStackTrace(Terraria.ModLoader.Engine.LoggingHooks+orig_StackTrace_CaptureStackTrace,System.Diagnostics.StackTrace,System.Int32,System.Boolean,System.Exception)>(StackTrace , Int32 , Boolean , Exception )
at SyncProxy<System.Void System.Diagnostics.StackTrace:CaptureStackTrace(System.Int32, System.Boolean, System.Exception)>(StackTrace , Int32 , Boolean , Exception )
at System.Exception.get_StackTrace()
at System.Exception.ToString()
at Terraria.ModLoader.Engine.ErrorReporting.FatalExit(String message, Exception e)
at Terraria.Program.RunGame()
at Terraria.Program.LaunchGame_(Boolean isServer)
at Terraria.Program.LaunchGame(String[] args, Boolean monoArgs)
at Terraria.MonoLaunch.Main_End(String[] args)
at Terraria.MonoLaunch.<>c__DisplayClass1_0.<Main>b__1()

[18:27:34.828] [Main Thread/FATAL] [tML]: Main engine crash

Tip: This is likely a mod's fault. Disable mods one by one and check if the issue persists

System.IndexOutOfRangeException: Index was outside the bounds of the array.
at CalamityMod.Graphics.Renderers.CalamityRenderers.MiracleBlightRenderer.ValidToDraw(NPC npc) in CalamityMod\Graphics\Renderers\CalamityRenderers\MiracleBlightRenderer.cs:line 60
at CalamityMod.Graphics.Renderers.CalamityRenderers.MiracleBlightRenderer.DrawToTarget(SpriteBatch spriteBatch) in CalamityMod\Graphics\Renderers\CalamityRenderers\MiracleBlightRenderer.cs:line 98
at CalamityMod.Graphics.Renderers.RendererManager.DrawToTargets(orig_CheckMonoliths orig) in CalamityMod\Graphics\Renderers\RendererManager.cs:line 96
at Hook<System.Void CalamityMod.Graphics.Renderers.RendererManager::DrawToTargets(Terraria.On_Main+orig_CheckMonoliths)>()
at SyncProxy<System.Void Terraria.Main:CheckMonoliths()>()
at DMD<System.Void Terraria.Main:DoDraw(Microsoft.Xna.Framework.GameTime)>(Main this, GameTime gameTime)
at HighFPSSupport.TickRateModifier.OnDraw(orig_DoDraw orig, Main self, GameTime gameTime)
at Hook<System.Void HighFPSSupport.TickRateModifier::OnDraw(Terraria.On_Main+orig_DoDraw,Terraria.Main,Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at SyncProxy<System.Void Terraria.Main:DoDraw(Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at Terraria.Main.Draw_Inner(GameTime gameTime)
at Terraria.Main.Draw(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.RunLoop()
at Microsoft.Xna.Framework.Game.Run()
at Terraria.Program.RunGame()
[18:27:34.832] [Main Thread/DEBUG] [TerrariaSteamClient]: Send: shutdown