FakeFishGames / Barotrauma

A 2D online multiplayer game taking place in a submarine travelling through the icy depths of Jupiter's moon Europa.
http://www.barotraumagame.com/
1.75k stars 407 forks source link

[UNSTABLE] Swarmfeeders cause immense lag #12740

Closed PanmanS closed 1 year ago

PanmanS commented 1 year ago

Disclaimers

What happened?

Approaching ruins on "Scan Ruins" mission cause immense lag throughout whole level because of swarmfeeders failed to be removed???? image log.txt

Mods used and the save file: Barotrauma_NSQyhtuGbq Save.zip

Reproduction steps

  1. install all mods in order provided on image
  2. load up save file on unstable version of game
  3. approach ruins close enough (like on screenshot above)
  4. observe the issue

Bug prevalence

Happens every time I play

Single player or multiplayer?

Single player

-

No response

Version

Unstable (v1.1.14.0)

-

No response

Which operating system did you encounter this bug on?

Windows

Relevant error messages and crash reports

Coroutine Barotrauma.CoroutineManager+<DoInvokeAfter>d__11 threw an exception: Object reference not set to an instance of an object.
   at Barotrauma.Ragdoll.SetPosition(Vector2 simPosition, Boolean lerp, Boolean ignorePlatforms, Boolean forceMainLimbToCollider, Boolean detachProjectiles) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1809
   at Barotrauma.MonsterEvent.<>c__DisplayClass35_1.<Update>b__5() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Events\MonsterEvent.cs:line 634
   at Barotrauma.CoroutineManager.DoInvokeAfter(Action action, Single delay)+MoveNext() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 155
   at Barotrauma.CoroutineManager.PerformCoroutineStep(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 214
   at Barotrauma.CoroutineManager.IsDone(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 236
Attempted to access a potentially removed ragdoll. Character: Swarmfeeder, id: 8526, removed: True, ragdoll removed: True
   at System.Environment.get_StackTrace()
   at Barotrauma.Ragdoll.LogAccessedRemovedCharacterError() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1494
   at Barotrauma.GameScreen.Draw(Double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Screens\GameScreen.cs:line 104
   at Barotrauma.GameMain.Draw(GameTime gameTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 957
   at Microsoft.Xna.Framework.Game.DoDraw(GameTime gameTime) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 666
   at Microsoft.Xna.Framework.Game.Tick() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 508
   at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 93
   at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 397
   at Microsoft.Xna.Framework.Game.Run() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 367
   at Barotrauma.Program.Main(String[] args) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 58
Coroutine Barotrauma.CoroutineManager+<DoInvokeAfter>d__11 threw an exception: Object reference not set to an instance of an object.
   at Barotrauma.Ragdoll.SetPosition(Vector2 simPosition, Boolean lerp, Boolean ignorePlatforms, Boolean forceMainLimbToCollider, Boolean detachProjectiles) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1809
   at Barotrauma.MonsterEvent.<>c__DisplayClass35_1.<Update>b__5() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Events\MonsterEvent.cs:line 634
   at Barotrauma.CoroutineManager.DoInvokeAfter(Action action, Single delay)+MoveNext() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 155
   at Barotrauma.CoroutineManager.PerformCoroutineStep(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 214
   at Barotrauma.CoroutineManager.IsDone(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 236
Attempted to access a potentially removed ragdoll. Character: Swarmfeeder, id: 8527, removed: True, ragdoll removed: True
   at System.Environment.get_StackTrace()
   at Barotrauma.Ragdoll.LogAccessedRemovedCharacterError() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1494
   at Barotrauma.GameScreen.Draw(Double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Screens\GameScreen.cs:line 104
   at Barotrauma.GameMain.Draw(GameTime gameTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 957
   at Microsoft.Xna.Framework.Game.DoDraw(GameTime gameTime) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 666
   at Microsoft.Xna.Framework.Game.Tick() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 508
   at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 93
   at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 397
   at Microsoft.Xna.Framework.Game.Run() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 367
   at Barotrauma.Program.Main(String[] args) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 58
Coroutine Barotrauma.CoroutineManager+<DoInvokeAfter>d__11 threw an exception: Object reference not set to an instance of an object.
   at Barotrauma.Ragdoll.SetPosition(Vector2 simPosition, Boolean lerp, Boolean ignorePlatforms, Boolean forceMainLimbToCollider, Boolean detachProjectiles) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1809
   at Barotrauma.MonsterEvent.<>c__DisplayClass35_1.<Update>b__5() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Events\MonsterEvent.cs:line 634
   at Barotrauma.CoroutineManager.DoInvokeAfter(Action action, Single delay)+MoveNext() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 155
   at Barotrauma.CoroutineManager.PerformCoroutineStep(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 214
   at Barotrauma.CoroutineManager.IsDone(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 236
Attempted to access a potentially removed ragdoll. Character: Swarmfeeder, id: 8528, removed: True, ragdoll removed: True
   at System.Environment.get_StackTrace()
   at Barotrauma.Ragdoll.LogAccessedRemovedCharacterError() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1494
   at Barotrauma.GameScreen.Draw(Double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Screens\GameScreen.cs:line 104
   at Barotrauma.GameMain.Draw(GameTime gameTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 957
   at Microsoft.Xna.Framework.Game.DoDraw(GameTime gameTime) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 666
   at Microsoft.Xna.Framework.Game.Tick() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 508
   at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 93
   at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 397
   at Microsoft.Xna.Framework.Game.Run() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 367
   at Barotrauma.Program.Main(String[] args) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 58
Coroutine Barotrauma.CoroutineManager+<DoInvokeAfter>d__11 threw an exception: Object reference not set to an instance of an object.
   at Barotrauma.Ragdoll.SetPosition(Vector2 simPosition, Boolean lerp, Boolean ignorePlatforms, Boolean forceMainLimbToCollider, Boolean detachProjectiles) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1809
   at Barotrauma.MonsterEvent.<>c__DisplayClass35_1.<Update>b__5() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Events\MonsterEvent.cs:line 634
   at Barotrauma.CoroutineManager.DoInvokeAfter(Action action, Single delay)+MoveNext() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 155
   at Barotrauma.CoroutineManager.PerformCoroutineStep(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 214
   at Barotrauma.CoroutineManager.IsDone(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 236
Attempted to access a potentially removed ragdoll. Character: Swarmfeeder, id: 8529, removed: True, ragdoll removed: True
   at System.Environment.get_StackTrace()
   at Barotrauma.Ragdoll.LogAccessedRemovedCharacterError() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1494
   at Barotrauma.GameScreen.Draw(Double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Screens\GameScreen.cs:line 104
   at Barotrauma.GameMain.Draw(GameTime gameTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 957
   at Microsoft.Xna.Framework.Game.DoDraw(GameTime gameTime) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 666
   at Microsoft.Xna.Framework.Game.Tick() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 508
   at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 93
   at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 397
   at Microsoft.Xna.Framework.Game.Run() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 367
   at Barotrauma.Program.Main(String[] args) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 58
Coroutine Barotrauma.CoroutineManager+<DoInvokeAfter>d__11 threw an exception: Object reference not set to an instance of an object.
   at Barotrauma.Ragdoll.SetPosition(Vector2 simPosition, Boolean lerp, Boolean ignorePlatforms, Boolean forceMainLimbToCollider, Boolean detachProjectiles) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1809
   at Barotrauma.MonsterEvent.<>c__DisplayClass35_1.<Update>b__5() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Events\MonsterEvent.cs:line 634
   at Barotrauma.CoroutineManager.DoInvokeAfter(Action action, Single delay)+MoveNext() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 155
   at Barotrauma.CoroutineManager.PerformCoroutineStep(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 214
   at Barotrauma.CoroutineManager.IsDone(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 236
Attempted to access a potentially removed ragdoll. Character: Swarmfeeder, id: 8530, removed: True, ragdoll removed: True
   at System.Environment.get_StackTrace()
   at Barotrauma.Ragdoll.LogAccessedRemovedCharacterError() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1494
   at Barotrauma.GameScreen.Draw(Double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Screens\GameScreen.cs:line 104
   at Barotrauma.GameMain.Draw(GameTime gameTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 957
   at Microsoft.Xna.Framework.Game.DoDraw(GameTime gameTime) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 666
   at Microsoft.Xna.Framework.Game.Tick() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 508
   at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 93
   at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 397
   at Microsoft.Xna.Framework.Game.Run() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 367
   at Barotrauma.Program.Main(String[] args) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 58
Coroutine Barotrauma.CoroutineManager+<DoInvokeAfter>d__11 threw an exception: Object reference not set to an instance of an object.
   at Barotrauma.Ragdoll.SetPosition(Vector2 simPosition, Boolean lerp, Boolean ignorePlatforms, Boolean forceMainLimbToCollider, Boolean detachProjectiles) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1809
   at Barotrauma.MonsterEvent.<>c__DisplayClass35_1.<Update>b__5() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Events\MonsterEvent.cs:line 634
   at Barotrauma.CoroutineManager.DoInvokeAfter(Action action, Single delay)+MoveNext() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 155
   at Barotrauma.CoroutineManager.PerformCoroutineStep(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 214
   at Barotrauma.CoroutineManager.IsDone(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 236
Attempted to access a potentially removed ragdoll. Character: Swarmfeeder, id: 8531, removed: True, ragdoll removed: True
   at System.Environment.get_StackTrace()
   at Barotrauma.Ragdoll.LogAccessedRemovedCharacterError() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1494
   at Barotrauma.GameScreen.Draw(Double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Screens\GameScreen.cs:line 104
   at Barotrauma.GameMain.Draw(GameTime gameTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 957
   at Microsoft.Xna.Framework.Game.DoDraw(GameTime gameTime) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 666
   at Microsoft.Xna.Framework.Game.Tick() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 508
   at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 93
   at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 397
   at Microsoft.Xna.Framework.Game.Run() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 367
   at Barotrauma.Program.Main(String[] args) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 58
Coroutine Barotrauma.CoroutineManager+<DoInvokeAfter>d__11 threw an exception: Object reference not set to an instance of an object.
   at Barotrauma.Ragdoll.SetPosition(Vector2 simPosition, Boolean lerp, Boolean ignorePlatforms, Boolean forceMainLimbToCollider, Boolean detachProjectiles) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1809
   at Barotrauma.MonsterEvent.<>c__DisplayClass35_1.<Update>b__5() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Events\MonsterEvent.cs:line 634
   at Barotrauma.CoroutineManager.DoInvokeAfter(Action action, Single delay)+MoveNext() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 155
   at Barotrauma.CoroutineManager.PerformCoroutineStep(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 214
   at Barotrauma.CoroutineManager.IsDone(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 236
Attempted to access a potentially removed ragdoll. Character: Swarmfeeder, id: 8532, removed: True, ragdoll removed: True
   at System.Environment.get_StackTrace()
   at Barotrauma.Ragdoll.LogAccessedRemovedCharacterError() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1494
   at Barotrauma.GameScreen.Draw(Double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Screens\GameScreen.cs:line 104
   at Barotrauma.GameMain.Draw(GameTime gameTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 957
   at Microsoft.Xna.Framework.Game.DoDraw(GameTime gameTime) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 666
   at Microsoft.Xna.Framework.Game.Tick() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 508
   at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 93
   at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 397
   at Microsoft.Xna.Framework.Game.Run() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 367
   at Barotrauma.Program.Main(String[] args) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 58
Coroutine Barotrauma.CoroutineManager+<DoInvokeAfter>d__11 threw an exception: Object reference not set to an instance of an object.
   at Barotrauma.Ragdoll.SetPosition(Vector2 simPosition, Boolean lerp, Boolean ignorePlatforms, Boolean forceMainLimbToCollider, Boolean detachProjectiles) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1809
   at Barotrauma.MonsterEvent.<>c__DisplayClass35_1.<Update>b__5() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Events\MonsterEvent.cs:line 634
   at Barotrauma.CoroutineManager.DoInvokeAfter(Action action, Single delay)+MoveNext() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 155
   at Barotrauma.CoroutineManager.PerformCoroutineStep(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 214
   at Barotrauma.CoroutineManager.IsDone(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 236
Attempted to access a potentially removed ragdoll. Character: Swarmfeeder, id: 8533, removed: True, ragdoll removed: True
   at System.Environment.get_StackTrace()
   at Barotrauma.Ragdoll.LogAccessedRemovedCharacterError() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1494
   at Barotrauma.GameScreen.Draw(Double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Screens\GameScreen.cs:line 104
   at Barotrauma.GameMain.Draw(GameTime gameTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 957
   at Microsoft.Xna.Framework.Game.DoDraw(GameTime gameTime) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 666
   at Microsoft.Xna.Framework.Game.Tick() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 508
   at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 93
   at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 397
   at Microsoft.Xna.Framework.Game.Run() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 367
   at Barotrauma.Program.Main(String[] args) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 58
Coroutine Barotrauma.CoroutineManager+<DoInvokeAfter>d__11 threw an exception: Object reference not set to an instance of an object.
   at Barotrauma.Ragdoll.SetPosition(Vector2 simPosition, Boolean lerp, Boolean ignorePlatforms, Boolean forceMainLimbToCollider, Boolean detachProjectiles) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1809
   at Barotrauma.MonsterEvent.<>c__DisplayClass35_1.<Update>b__5() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Events\MonsterEvent.cs:line 634
   at Barotrauma.CoroutineManager.DoInvokeAfter(Action action, Single delay)+MoveNext() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 155
   at Barotrauma.CoroutineManager.PerformCoroutineStep(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 214
   at Barotrauma.CoroutineManager.IsDone(CoroutineHandle handle) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\CoroutineManager.cs:line 236
Attempted to access a potentially removed ragdoll. Character: Swarmfeeder, id: 8534, removed: True, ragdoll removed: True
   at System.Environment.get_StackTrace()
   at Barotrauma.Ragdoll.LogAccessedRemovedCharacterError() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Characters\Animation\Ragdoll.cs:line 1494
   at Barotrauma.GameScreen.Draw(Double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Screens\GameScreen.cs:line 104
   at Barotrauma.GameMain.Draw(GameTime gameTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 957
   at Microsoft.Xna.Framework.Game.DoDraw(GameTime gameTime) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 666
   at Microsoft.Xna.Framework.Game.Tick() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 508
   at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 93
   at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 397
   at Microsoft.Xna.Framework.Game.Run() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 367
   at Barotrauma.Program.Main(String[] args) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 58
Regalis11 commented 1 year ago

Fixed in https://github.com/Regalis11/Barotrauma-development/pull/4509/commits/b576006a04196656a104be6a543440790a2f7b7c

Note for testing: the mods don't seem necessary for reproducing this. Happens in any irradiated level with swarm feeders in it.

PanmanS commented 1 year ago

Nice

Regalis11 commented 1 year ago

Thank you for taking the time to close this, but we'll keep it open until we've reviewed and tested the fix internally. :)

Jasontti commented 1 year ago

Tested in https://github.com/Regalis11/Barotrauma-development/pull/4509/commits/b576006a04196656a104be6a543440790a2f7b7c

Did not get error and had good performance with save file provided Created a new save and no issues found.

Closing ticket.