Closed Tzucaza closed 4 years ago
Hate to tell you this, but CheatSheet is the source of the problem. CheatSheet works fine in single player, but crashes in multiplayer. It's crashing on a spriteBatchBegin, kRPG doesn't mess with the spritebatches, infact I don't start a Begin anywhere in the code. So the problem is with cheatsheet, not kRPG.
Mods to use to replicate the issue: Krpg Cheat Sheet Spirit Mod (Other Content Mods like Calamity, Dragonball, Thorium have the same Problem so far i tested)
What happens: -Activate the 3 Mods (or more) -Press reload -go into any world -Open Cheat Sheet and than the Item menu -it crashes
-after restarting the game i can open the menu without a problem. So to trigger the bug i need to reload all mods.
Crash log:
[20:41:48] [1/INFO] [tML]: Starting tModLoader v0.11.6.2 Windows client (13.02.2020) [20:41:48] [1/INFO] [tML]: Running on NetFramework 4.8 [20:41:48] [1/INFO] [tML]: Executable: E:\Steam\steamapps\common\Terraria\Terraria.exe [20:41:48] [1/INFO] [tML]: Working Directory: E:\Steam\steamapps\common\Terraria [20:41:48] [1/INFO] [tML]: Launch Parameters: [20:41:48] [1/DEBUG] [tML]: Assembly Resolve: -> MonoMod.RuntimeDetour, Version=19.12.19.1, Culture=neutral, PublicKeyToken=null [20:41:48] [1/DEBUG] [tML]: Assembly Resolve: MonoMod.RuntimeDetour, Version=19.12.19.1, Culture=neutral, PublicKeyToken=null -> MonoMod.Utils, Version=19.12.19.1, Culture=neutral, PublicKeyToken=null [20:41:48] [1/DEBUG] [tML]: Assembly Resolve: MonoMod.RuntimeDetour, Version=19.12.19.1, Culture=neutral, PublicKeyToken=null -> Mono.Cecil, Version=0.11.1.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e [20:41:49] [1/DEBUG] [tML]: Assembly Resolve: -> Ionic.Zip.Reduced, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c [20:41:49] [1/DEBUG] [tML]: Assembly Resolve: -> Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed [20:41:49] [1/DEBUG] [tML]: Assembly Resolve: -> Steamworks.NET, Version=9.1.0.0, Culture=neutral, PublicKeyToken=null [20:41:51] [1/DEBUG] [Terraria]: Graphics Device: NVIDIA GeForce GTX 1060 6GB {Width:1920 Height:1080 Format:Color AspectRatio:1.777778} [20:41:51] [1/DEBUG] [Terraria]: Device Reset, Profile: Reach -> HiDef, Width: 800, Height: 480, Fullscreen: False, Display: \.\DISPLAY1 [20:41:51] [1/INFO] [Terraria]: Loading Texture Pack: TexturePack.zip [20:41:55] [1/DEBUG] [Terraria]: Device Reset, Profile: HiDef, Width: 800 -> 720, Height: 480, Fullscreen: False -> True, Display: \.\DISPLAY1 [20:41:55] [1/DEBUG] [Terraria]: Device Reset, Profile: HiDef, Width: 720 -> 1920, Height: 480 -> 1080, Fullscreen: True, Display: \.\DISPLAY1 [20:42:00] [7/DEBUG] [tML]: Assembly Resolve: -> MP3Sharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null [20:42:00] [7/DEBUG] [tML]: Assembly Resolve: -> NVorbis, Version=0.8.4.0, Culture=neutral, PublicKeyToken=null [20:42:01] [7/DEBUG] [tML]: Assembly Resolve: -> Mono.Cecil.Mdb, Version=0.11.1.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e [20:42:01] [7/DEBUG] [tML]: Assembly Resolve: -> Mono.Cecil.Pdb, Version=0.11.1.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e [20:42:01] [7/INFO] [Terraria]: JIT loading finished [20:45:02] [1/DEBUG] [Terraria]: Device Reset, Profile: HiDef, Width: 1920, Height: 1080, Fullscreen: True, Display: \.\DISPLAY1 [20:45:05] [8/INFO] [tML]: Unloading mods [20:45:05] [8/INFO] [tML]: Finding Mods... [20:45:06] [8/INFO] [tML]: Sandboxing: CheatSheet [20:45:06] [8/INFO] [tML]: Sandboxing: kRPG [20:45:06] [8/INFO] [tML]: Sandboxing: SpiritMod [20:45:06] [8/INFO] [tML]: Instantiating Mods... [20:45:07] [8/INFO] [tML]: Initializing: ModLoader v0.11.6.2 [20:45:07] [8/INFO] [tML]: Initializing: CheatSheet v0.6.4 [20:45:07] [8/INFO] [tML]: Initializing: kRPG v2.0.5 [20:45:07] [8/INFO] [tML]: Initializing: SpiritMod v1.3.5.4 [20:45:08] [8/INFO] [tML]: Setting up... [20:45:08] [8/INFO] [tML]: Loading: ModLoader v0.11.6.2 [20:45:08] [8/INFO] [tML]: Loading: CheatSheet v0.6.4 [20:45:08] [8/INFO] [tML]: Loading: kRPG v2.0.5 [20:45:08] [8/INFO] [tML]: Loading: SpiritMod v1.3.5.4 [20:45:08] [8/INFO] [tML]: Adding Recipes... [20:45:21] [13/INFO] [tML]: Unloading mods [20:45:21] [13/INFO] [tML]: Unloading: Spirit Mod [20:45:21] [13/INFO] [tML]: Unloading: kRPG - Kalciphoz RPG Mod Updated [20:45:21] [13/INFO] [tML]: Unloading: Cheat Sheet [20:45:21] [13/INFO] [tML]: Unloading: tModLoader [20:45:22] [13/WARN] [tML]: kRPG not fully unloaded during unload. [20:45:22] [13/WARN] [tML]: SpiritMod not fully unloaded during unload. [20:45:22] [13/INFO] [tML]: Finding Mods... [20:45:22] [13/INFO] [tML]: Sandboxing: CheatSheet [20:45:22] [13/INFO] [tML]: Sandboxing: kRPG [20:45:22] [13/INFO] [tML]: Sandboxing: SpiritMod [20:45:22] [13/INFO] [tML]: Instantiating Mods... [20:45:22] [13/INFO] [tML]: Initializing: ModLoader v0.11.6.2 [20:45:22] [13/INFO] [tML]: Initializing: CheatSheet v0.6.4 [20:45:22] [13/INFO] [tML]: Initializing: kRPG v2.0.5 [20:45:22] [13/INFO] [tML]: Initializing: SpiritMod v1.3.5.4 [20:45:23] [13/INFO] [tML]: Setting up... [20:45:23] [13/INFO] [tML]: Loading: ModLoader v0.11.6.2 [20:45:23] [13/INFO] [tML]: Loading: CheatSheet v0.6.4 [20:45:23] [13/INFO] [tML]: Loading: kRPG v2.0.5 [20:45:23] [13/INFO] [tML]: Loading: SpiritMod v1.3.5.4 [20:45:23] [13/INFO] [tML]: Adding Recipes... [20:45:27] [18/INFO] [Terraria]: Loading World: test, IsCloud=False [20:45:27] [18/INFO] [StatusText]: Resetting game objects [20:45:28] [18/INFO] [StatusText]: Loading world data [20:45:28] [18/INFO] [StatusText]: Settling liquids [20:45:28] [18/INFO] [StatusText]: Loading map data [20:45:28] [18/INFO] [StatusText]: Drawing map [20:45:28] [1/INFO] [Terraria]: Entering world with player: test, IsCloud=False [20:45:28] [1/DEBUG] [tML]: Web Request: http://raw.githubusercontent.com/FairfieldTekLLC/kRPG/master/kRPG_VersionInfo.json [20:45:28] [39/DEBUG] [tML]: Web Request: https://raw.githubusercontent.com/FairfieldTekLLC/kRPG/master/kRPG_VersionInfo.json [20:45:31] [1/WARN] [tML]: Silently Caught Exception: System.ObjectDisposedException: Cannot access a disposed object. Object name: 'Texture2D'. at Microsoft.Xna.Framework.Helpers.CheckDisposed(Object obj, IntPtr pComPtr) at Microsoft.Xna.Framework.Graphics.TextureCollection.set_Item(Int32 index, Texture value) at Microsoft.Xna.Framework.Graphics.SpriteBatch.RenderBatch(Texture2D texture, SpriteInfo[] sprites, Int32 offset, Int32 count) at Microsoft.Xna.Framework.Graphics.SpriteBatch.InternalDraw(Texture2D texture, Vector4& destination, Boolean scaleDestination, Nullable`1& sourceRectangle, Color color, Single rotation, Vector2& origin, SpriteEffects effects, Single depth) at CheatSheet.Menus.Slot.Draw(SpriteBatch spriteBatch) in CheatSheet\Menus\Slot.cs:line 260 at CheatSheet.UI.UIView.Draw(SpriteBatch spriteBatch) in CheatSheet\UI\UIView.cs:line 503 at CheatSheet.UI.UIScrollView.Draw(SpriteBatch spriteBatch) in CheatSheet\UI\UIScrollView.cs:line 268 at CheatSheet.Menus.ItemView.Draw(SpriteBatch spriteBatch) in CheatSheet\Menus\ItemView.cs:line 78 at CheatSheet.UI.UIView.Draw(SpriteBatch spriteBatch) in CheatSheet\UI\UIView.cs:line 503 at CheatSheet.UI.UIWindow.Draw(SpriteBatch spriteBatch) in CheatSheet\UI\UIWindow.cs:line 115 at CheatSheet.Menus.ItemBrowser.Draw(SpriteBatch spriteBatch) in CheatSheet\Menus\ItemBrowser.cs:line 157 at CheatSheet.AllItemsMenu.DrawUpdateAll(SpriteBatch spriteBatch) in CheatSheet\AllItemsMenu.cs:line 45 at CheatSheet.CheatSheet.b__471() in CheatSheet.cs:line 402
at Terraria.UI.LegacyGameInterfaceLayer.DrawSelf()
at Terraria.UI.GameInterfaceLayer.Draw()
at Terraria.Main.DrawInterface(GameTime gameTime)
at Terraria.Main.DoDraw(GameTime gameTime)
at Terraria.Main.Draw(GameTime gameTime)
at Microsoft.Xna.Framework.Game.DrawFrame()
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e)
at Microsoft.Xna.Framework.GameHost.OnIdle()
at Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame()
at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at Microsoft.Xna.Framework.WindowsGameHost.Run()
at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)
at Terraria.Program.LaunchGame()
at Terraria.Program.LaunchGame(String[] args, Boolean monoArgs)
at Terraria.WindowsLaunch.Main(String[] args)
[20:45:31] [1/WARN] [tML]: Silently Caught Exception: System.InvalidOperationException: Nesting more than one SpriteBatch.Begin when using a SpriteBatch with SpriteSortMode.Immediate is not allowed. at Microsoft.Xna.Framework.Graphics.SpriteBatch.Begin(SpriteSortMode sortMode, BlendState blendState, SamplerState samplerState, DepthStencilState depthStencilState, RasterizerState rasterizerState, Effect effect, Matrix transformMatrix) at Terraria.Graphics.TileBatch.Begin() at Terraria.GameContent.Shaders.WaterShaderData.DrawWaves() at Terraria.GameContent.Shaders.WaterShaderData.StepLiquids() at Terraria.GameContent.Shaders.WaterShaderData.PreDraw(GameTime gameTime) at Terraria.Main.DoDraw(GameTime gameTime) at Terraria.Main.Draw(GameTime gameTime) at Microsoft.Xna.Framework.Game.DrawFrame() at Microsoft.Xna.Framework.Game.Tick() at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e) at Microsoft.Xna.Framework.GameHost.OnIdle() at Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame() at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e) at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef) at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(Form mainForm) at Microsoft.Xna.Framework.WindowsGameHost.Run() at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun) at Terraria.Program.LaunchGame_() at Terraria.Program.LaunchGame(String[] args, Boolean monoArgs) at Terraria.WindowsLaunch.Main(String[] args)
[20:45:31] [1/ERROR] [Terraria]: System.InvalidOperationException: Nesting more than one SpriteBatch.Begin when using a SpriteBatch with SpriteSortMode.Immediate is not allowed. at Microsoft.Xna.Framework.Graphics.SpriteBatch.Begin(SpriteSortMode sortMode, BlendState blendState, SamplerState samplerState, DepthStencilState depthStencilState, RasterizerState rasterizerState, Effect effect, Matrix transformMatrix) at Terraria.Graphics.TileBatch.Begin() at Terraria.GameContent.Shaders.WaterShaderData.DrawWaves() at Terraria.GameContent.Shaders.WaterShaderData.StepLiquids() at Terraria.GameContent.Shaders.WaterShaderData.PreDraw(GameTime gameTime) at Terraria.Main.DoDraw(GameTime gameTime) at Terraria.Main.Draw(GameTime gameTime) [20:45:31] [1/FATAL] [Terraria]: Main engine crash System.InvalidOperationException: Nesting more than one SpriteBatch.Begin when using a SpriteBatch with SpriteSortMode.Immediate is not allowed. at Microsoft.Xna.Framework.Graphics.SpriteBatch.Begin(SpriteSortMode sortMode, BlendState blendState, SamplerState samplerState, DepthStencilState depthStencilState, RasterizerState rasterizerState, Effect effect, Matrix transformMatrix) at Terraria.Graphics.TileBatch.Begin() at Terraria.GameContent.Shaders.WaterShaderData.DrawWaves() at Terraria.GameContent.Shaders.WaterShaderData.StepLiquids() at Terraria.GameContent.Shaders.WaterShaderData.PreDraw(GameTime gameTime) at Terraria.Main.DoDraw(GameTime gameTime) at Terraria.Main.Draw(GameTime gameTime) at Microsoft.Xna.Framework.Game.DrawFrame() at Microsoft.Xna.Framework.Game.Tick() at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e) at Microsoft.Xna.Framework.GameHost.OnIdle() at Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame() at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e) at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef) at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(Form mainForm) at Microsoft.Xna.Framework.WindowsGameHost.Run() at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun) at Terraria.Program.LaunchGame_()