RimWorld

RimWorld

Ratkin Anomaly+
Dark Knight Commander seems to be broken.
Was testing out RA+ and Dark Knight spawned. She was easy to deal with, but when after death it spawned Dark Knight Commander. She looked cool and nice, till I realized I can't kill her at all. She just went through everything and everyone on the way. At some point she started sending this red particle effect upwards, which started slowing down the game. In the end game started working at 1 fps with red pillar of effects coming from her (can provide a video, if want).

Found few errors related to her in logs all of which is showing that RatkinAnomaly.DarkKnightCommander.Kill have some sort of null reference. So my guess is that she triggering death effect, but not dying for some reason, which cause all this lag with effects stacking on to of each other.

Related and the only errors in log file:

Exception ticking Bullet_MiniTurret75822: System.NullReferenceException: Object reference not set to an instance of an object [Ref 49C3443C] at RatkinAnomaly.DarkKnightCommander.Kill (System.Nullable`1[T] dinfo, Verse.Hediff exactCulprit) [0x00099] in <108c059923f34d1587d0311cfc3704ab>:0 at Verse.Pawn_HealthTracker.CheckForStateChange (System.Nullable`1[T] dinfo, Verse.Hediff hediff) [0x000f2] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Pawn_HealthTracker.Notify_HediffChanged (Verse.Hediff hediff) [0x0000b] in <69945a8ed6c540cf90b578de735e0605>:0 - POSTFIX Andromeda.NiceHealthTab: Void NiceHealthTab.Patches+Pawn_HealthTracker_Notify_HediffChanged:Postfix(Pawn_HealthTracker __instance) - POSTFIX rimworld.erdelf.alien_race.main: Void AlienRace.HarmonyPatches:HediffChangedPostfix(Pawn ___pawn, HediffSet ___hediffSet) at Verse.Hediff.set_Severity (System.Single value) [0x000bf] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Hediff.TryMergeWith (Verse.Hediff other) [0x0002e] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.HediffWithComps.TryMergeWith (Verse.Hediff other) [0x00000] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Hediff_Injury.TryMergeWith (Verse.Hediff other) [0x0005a] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.HediffSet.AddDirect (Verse.Hediff hediff, System.Nullable`1[T] dinfo, Verse.DamageWorker+DamageResult damageResult) [0x00081] in <69945a8ed6c540cf90b578de735e0605>:0 - TRANSPILER rimworld.erdelf.alien_race.main: IEnumerable`1 AlienRace.HarmonyPatches:BodyReferenceTranspiler(IEnumerable`1 instructions) at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff hediff, Verse.BodyPartRecord part, System.Nullable`1[T] dinfo, Verse.DamageWorker+DamageResult result) [0x00076] in <69945a8ed6c540cf90b578de735e0605>:0 - TRANSPILER rimworld.erdelf.alien_race.main: IEnumerable`1 AlienRace.HarmonyPatches:BodyReferenceTranspiler(IEnumerable`1 instructions) - POSTFIX Andromeda.NiceHealthTab: Void NiceHealthTab.Patches+Pawn_HealthTracker_AddHediff:Postfix(Pawn_HealthTracker __instance) - POSTFIX rimworld.erdelf.alien_race.main: Void AlienRace.HarmonyPatches:AddHediffPostfix(Pawn ___pawn, Hediff hediff) at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn pawn, Verse.Hediff_Injury injury, Verse.DamageInfo dinfo, Verse.DamageWorker+DamageResult result) [0x00159] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn pawn, System.Single totalDamage, Verse.DamageInfo dinfo, Verse.DamageWorker+DamageResult result) [0x00168] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.ApplySpecialEffectsToPart (Verse.Pawn pawn, System.Single totalDamage, Verse.DamageInfo dinfo, Verse.DamageWorker+DamageResult result) [0x0000b] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.ApplyDamageToPart (Verse.DamageInfo dinfo, Verse.Pawn pawn, Verse.DamageWorker+DamageResult result) [0x00146] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.ApplyToPawn (Verse.DamageInfo dinfo, Verse.Pawn pawn) [0x00100] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.Apply (Verse.DamageInfo dinfo, Verse.Thing thing) [0x00013] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Thing.TakeDamage (Verse.DamageInfo dinfo) [0x000cb] in <69945a8ed6c540cf90b578de735e0605>:0 at RimWorld.Bullet.Impact (Verse.Thing hitThing, System.Boolean blockedByShield) [0x000da] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Projectile.ImpactSomething () [0x00167] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Projectile.Tick () [0x000fb] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.TickList.Tick () [0x0015c] in <69945a8ed6c540cf90b578de735e0605>:0 (Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39) ... Explosion could not affect cell (70, 0, 114): System.NullReferenceException: Object reference not set to an instance of an object [Ref FF1B9737] at RatkinAnomaly.DarkKnightCommander.Kill (System.Nullable`1[T] dinfo, Verse.Hediff exactCulprit) [0x00099] in <108c059923f34d1587d0311cfc3704ab>:0 at Verse.Pawn_HealthTracker.CheckForStateChange (System.Nullable`1[T] dinfo, Verse.Hediff hediff) [0x000f2] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff hediff, Verse.BodyPartRecord part, System.Nullable`1[T] dinfo, Verse.DamageWorker+DamageResult result) [0x0007c] in <69945a8ed6c540cf90b578de735e0605>:0 - TRANSPILER rimworld.erdelf.alien_race.main: IEnumerable`1 AlienRace.HarmonyPatches:BodyReferenceTranspiler(IEnumerable`1 instructions) - POSTFIX Andromeda.NiceHealthTab: Void NiceHealthTab.Patches+Pawn_HealthTracker_AddHediff:Postfix(Pawn_HealthTracker __instance) - POSTFIX rimworld.erdelf.alien_race.main: Void AlienRace.HarmonyPatches:AddHediffPostfix(Pawn ___pawn, Hediff hediff) at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn pawn, Verse.Hediff_Injury injury, Verse.DamageInfo dinfo, Verse.DamageWorker+DamageResult result) [0x00159] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn pawn, System.Single totalDamage, Verse.DamageInfo dinfo, Verse.DamageWorker+DamageResult result) [0x00168] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.ApplySpecialEffectsToPart (Verse.Pawn pawn, System.Single totalDamage, Verse.DamageInfo dinfo, Verse.DamageWorker+DamageResult result) [0x0000b] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.ApplyDamageToPart (Verse.DamageInfo dinfo, Verse.Pawn pawn, Verse.DamageWorker+DamageResult result) [0x00146] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.ApplyToPawn (Verse.DamageInfo dinfo, Verse.Pawn pawn) [0x00100] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.Apply (Verse.DamageInfo dinfo, Verse.Thing thing) [0x00013] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Thing.TakeDamage (Verse.DamageInfo dinfo) [0x000cb] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker.ExplosionDamageThing (Verse.Explosion explosion, Verse.Thing t, System.Collections.Generic.List`1[T] damagedThings, System.Collections.Generic.List`1[T] ignoredThings, Verse.IntVec3 cell) [0x00129] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker.ExplosionAffectCell (Verse.Explosion explosion, Verse.IntVec3 c, System.Collections.Generic.List`1[T] damagedThings, System.Collections.Generic.List`1[T] ignoredThings, System.Boolean canThrowMotes) [0x0021d] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Explosion.AffectCell (Verse.IntVec3 c) [0x0007d] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Explosion.Tick () [0x0003d] in <69945a8ed6c540cf90b578de735e0605>:0 (Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39) ... Exception ticking RA_DarkKnight_Commander72115 (at (66, 0, 115)): System.NullReferenceException: Object reference not set to an instance of an object [Ref FD63150D] at RatkinAnomaly.DarkKnightCommander.Kill (System.Nullable`1[T] dinfo, Verse.Hediff exactCulprit) [0x00099] in <108c059923f34d1587d0311cfc3704ab>:0 at Verse.Pawn_HealthTracker.CheckForStateChange (System.Nullable`1[T] dinfo, Verse.Hediff hediff) [0x000f2] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Pawn_HealthTracker.Notify_HediffChanged (Verse.Hediff hediff) [0x0000b] in <69945a8ed6c540cf90b578de735e0605>:0 - POSTFIX Andromeda.NiceHealthTab: Void NiceHealthTab.Patches+Pawn_HealthTracker_Notify_HediffChanged:Postfix(Pawn_HealthTracker __instance) - POSTFIX rimworld.erdelf.alien_race.main: Void AlienRace.HarmonyPatches:HediffChangedPostfix(Pawn ___pawn, HediffSet ___hediffSet) at Verse.Pawn_HealthTracker.RemoveHediff (Verse.Hediff hediff) [0x0001e] in <69945a8ed6c540cf90b578de735e0605>:0 - POSTFIX rimworld.erdelf.alien_race.main: Void AlienRace.HarmonyPatches:RemoveHediffPostfix(Pawn ___pawn, Hediff hediff) at Verse.Pawn_HealthTracker.HealthTick () [0x00124] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Pawn.Tick () [0x000ce] in <69945a8ed6c540cf90b578de735e0605>:0 at RatkinAnomaly.DarkKnightCommander.Tick () [0x00001] in <108c059923f34d1587d0311cfc3704ab>:0 at Verse.TickList.Tick () [0x0015c] in <69945a8ed6c540cf90b578de735e0605>:0 (Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39) ... Exception ticking Bullet_TurretSniper82886: System.NullReferenceException: Object reference not set to an instance of an object [Ref 36F5E89D] at RatkinAnomaly.DarkKnightCommander.Kill (System.Nullable`1[T] dinfo, Verse.Hediff exactCulprit) [0x00099] in <108c059923f34d1587d0311cfc3704ab>:0 at Verse.Pawn_HealthTracker.CheckForStateChange (System.Nullable`1[T] dinfo, Verse.Hediff hediff) [0x000f2] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff hediff, Verse.BodyPartRecord part, System.Nullable`1[T] dinfo, Verse.DamageWorker+DamageResult result) [0x0007c] in <69945a8ed6c540cf90b578de735e0605>:0 - TRANSPILER rimworld.erdelf.alien_race.main: IEnumerable`1 AlienRace.HarmonyPatches:BodyReferenceTranspiler(IEnumerable`1 instructions) - POSTFIX Andromeda.NiceHealthTab: Void NiceHealthTab.Patches+Pawn_HealthTracker_AddHediff:Postfix(Pawn_HealthTracker __instance) - POSTFIX rimworld.erdelf.alien_race.main: Void AlienRace.HarmonyPatches:AddHediffPostfix(Pawn ___pawn, Hediff hediff) at Verse.HediffSet.AddDirect (Verse.Hediff hediff, System.Nullable`1[T] dinfo, Verse.DamageWorker+DamageResult damageResult) [0x001bc] in <69945a8ed6c540cf90b578de735e0605>:0 - TRANSPILER rimworld.erdelf.alien_race.main: IEnumerable`1 AlienRace.HarmonyPatches:BodyReferenceTranspiler(IEnumerable`1 instructions) at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff hediff, Verse.BodyPartRecord part, System.Nullable`1[T] dinfo, Verse.DamageWorker+DamageResult result) [0x00076] in <69945a8ed6c540cf90b578de735e0605>:0 - TRANSPILER rimworld.erdelf.alien_race.main: IEnumerable`1 AlienRace.HarmonyPatches:BodyReferenceTranspiler(IEnumerable`1 instructions) - POSTFIX Andromeda.NiceHealthTab: Void NiceHealthTab.Patches+Pawn_HealthTracker_AddHediff:Postfix(Pawn_HealthTracker __instance) - POSTFIX rimworld.erdelf.alien_race.main: Void AlienRace.HarmonyPatches:AddHediffPostfix(Pawn ___pawn, Hediff hediff) at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn pawn, Verse.Hediff_Injury injury, Verse.DamageInfo dinfo, Verse.DamageWorker+DamageResult result) [0x00159] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn pawn, System.Single totalDamage, Verse.DamageInfo dinfo, Verse.DamageWorker+DamageResult result) [0x00168] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.ApplySpecialEffectsToPart (Verse.Pawn pawn, System.Single totalDamage, Verse.DamageInfo dinfo, Verse.DamageWorker+DamageResult result) [0x0000b] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.ApplyDamageToPart (Verse.DamageInfo dinfo, Verse.Pawn pawn, Verse.DamageWorker+DamageResult result) [0x00146] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.ApplyToPawn (Verse.DamageInfo dinfo, Verse.Pawn pawn) [0x00100] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.DamageWorker_AddInjury.Apply (Verse.DamageInfo dinfo, Verse.Thing thing) [0x00013] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Thing.TakeDamage (Verse.DamageInfo dinfo) [0x000cb] in <69945a8ed6c540cf90b578de735e0605>:0 at RimWorld.Bullet.Impact (Verse.Thing hitThing, System.Boolean blockedByShield) [0x000da] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Projectile.ImpactSomething () [0x00167] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Projectile.Tick () [0x000fb] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.TickList.Tick () [0x0015c] in <69945a8ed6c540cf90b578de735e0605>:0 (Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39) ... Exception ticking Yuuki (at (49, 0, 114)): System.NullReferenceException: Object reference not set to an instance of an object [Ref 5E6C782F] at RatkinAnomaly.DarkKnightCommander.Kill (System.Nullable`1[T] dinfo, Verse.Hediff exactCulprit) [0x00099] in <108c059923f34d1587d0311cfc3704ab>:0 at Verse.Pawn_HealthTracker.PostApplyDamage (Verse.DamageInfo dinfo, System.Single totalDamageDealt) [0x00038] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Pawn.PostApplyDamage (Verse.DamageInfo dinfo, System.Single totalDamageDealt) [0x00092] in <69945a8ed6c540cf90b578de735e0605>:0 - PREFIX fxz.ratkinanomaly: Void RatkinAnomaly.Wounded_Patch:Prefix(Pawn __instance, DamageInfo dinfo) - POSTFIX fxz.ratkinanomaly: Void RatkinAnomaly.Prophecy_Patch:Postfix(Pawn __instance, DamageInfo dinfo, Single totalDamageDealt) at Verse.Thing.TakeDamage (Verse.DamageInfo dinfo) [0x001c3] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Verb_ShootBeam.ApplyDamage (Verse.Thing thing, Verse.IntVec3 sourceCell, System.Single damageFactor) [0x00175] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Verb_ShootBeam.HitCell (Verse.IntVec3 cell, Verse.IntVec3 sourceCell, System.Single damageFactor) [0x00038] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Verb_ShootBeam.TryCastShot () [0x000dc] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Verb_ArcSprayIncinerator.TryCastShot () [0x00000] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Verb.TryCastNextBurstShot () [0x00012] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Verb.VerbTick () [0x00056] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.VerbTracker.VerbsTick () [0x00019] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Pawn_EquipmentTracker.EquipmentTrackerTick () [0x00017] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.Pawn.Tick () [0x0016a] in <69945a8ed6c540cf90b578de735e0605>:0 at Verse.TickList.Tick () [0x0015c] in <69945a8ed6c540cf90b578de735e0605>:0 (Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39)

Every other error in log file was just duplicate of one of those ^.
< >
Showing 1-2 of 2 comments
The issue seems to be with:
controledPawn.mindState.mentalStateHandler.Reset();
Which trying to reset mind state, while pawn don't have it. If you just check for null values before calling function, then it should fix the issue.
Feng Xinzi  [developer] 11 Feb @ 7:50pm 
I see it, thanks.
< >
Showing 1-2 of 2 comments
Per page: 1530 50