RimWorld

RimWorld

Immortals
Migras 24 Apr, 2022 @ 3:57am
Reviving stops when reloading
Every time I reload a save all dead first death immortals stop healing and beheadding them doesn't trigger a quickening anymore. Atm the debug log shows 617 instances of:
System.NullReferenceException: Object reference not set to an instance of an object
at Immortals.GameCondition_QuickeningSky.GameConditionTick () [0x00074] in <93734d5a4fc6455091f266896b8abb2e>:0
at RimWorld.GameConditionManager.GameConditionManagerTick () [0x0002d] in <99518a644a3e4a7ea3fde566568df84a>:0
at (wrapper dynamic-method) Verse.Map.Verse.Map.MapPostTick_Patch1(Verse.Map)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch2 (string)
(wrapper dynamic-method) Verse.Map:Verse.Map.MapPostTick_Patch1 (Verse.Map)
(wrapper dynamic-method) Verse.TickManager:Verse.TickManager.DoSingleTick_Patch3 (Verse.TickManager)
Verse.TickManager:TickManagerUpdate ()
(wrapper dynamic-method) Verse.Game:Verse.Game.UpdatePlay_Patch1 (Verse.Game)
Verse.Root_Play:Update ()

...help...please?
< >
Showing 1-15 of 16 comments
alcon678 5 May, 2022 @ 2:58am 
it happens to me too
KR_man 6 May, 2022 @ 4:18am 
I have the same issue but I don't seem to be getting the debug message
Yeah, same problem. First Death immortals stop healing after reload.
Mr Icebag 8 May, 2022 @ 11:04am 
im currently also having the same issue and on top of that i just learned that apparently immortals aren't supposed to rot..... so thats another thing i have to look into i have a few mods i suspect that might be doing this like rimworld of magic but i'm not sure ill give it a test later
I don’t have something like rimworld of magic installed, and my modlistd didn’t change much recently. I can also confirm that before the whole mortalis/extractor update everything worked fine. I only noticed that something wrong after that. Even thought that chances for pawns to spawn as immortals got messed up somehow. Only later figured out that first death immortals stopped healing after reloading. I hope author fixes this soon. While existing immortals are fine, and heal and revive normally, I’m forced to babysit new ones and cut heads of any downed enemies immediately to not loose quickening. Before I had a special “filter” surrounded by turrets set up to have any normal enemies rot there and immortals revive and then ether recruit or behead them. Now I can’t do it.
alcon678 13 May, 2022 @ 9:26am 
Originally posted by Alexander Zagirov:
I don’t have something like rimworld of magic installed, and my modlistd didn’t change much recently. I can also confirm that before the whole mortalis/extractor update everything worked fine. I only noticed that something wrong after that. Even thought that chances for pawns to spawn as immortals got messed up somehow. Only later figured out that first death immortals stopped healing after reloading. I hope author fixes this soon. While existing immortals are fine, and heal and revive normally, I’m forced to babysit new ones and cut heads of any downed enemies immediately to not loose quickening. Before I had a special “filter” surrounded by turrets set up to have any normal enemies rot there and immortals revive and then ether recruit or behead them. Now I can’t do it.
Yeah, same here, my modlist have not changed and it started with the last update
I'm not sure if the dev will read these messages tho :steamsad:
BufflesTE 21 May, 2022 @ 7:15am 
Same issue as well. Had a bunch of pawns who were supposed to resurrect but because of the bug, they stop healing which prevents resurrection. Tried stuff like adding the Death Timer to them again, removing the injuries and nothing. Might have to use Dev mode to resurrect them and then kill to re-trigger the death timer. : /
Killface 24 May, 2022 @ 10:40am 
I might have found the solution.

in the private bool CanHeal(Pawn pawn) is a check
if (imDiff != null && imDiff.Severity > 0.5f)
Debug tells me that my dead pawn has a severity of exactly 0.5.
Code should be
if (imDiff != null && imDiff.Severity >= 0.5f)
or maybe set the value to > 0.1

I've built it locally and testing it.

// EDIT: Seems to be working, Thorhvatson is reviving :c)
Here's the link to a fixed dll, check set to > 0.1 https://we.tl/t-X2IB3hnZ90
Last edited by Killface; 24 May, 2022 @ 10:48am
Agusfer 24 May, 2022 @ 3:30pm 
Originally posted by Killface:
I might have found the solution.

in the private bool CanHeal(Pawn pawn) is a check
if (imDiff != null && imDiff.Severity > 0.5f)
Debug tells me that my dead pawn has a severity of exactly 0.5.
Code should be
if (imDiff != null && imDiff.Severity >= 0.5f)
or maybe set the value to > 0.1

I've built it locally and testing it.

// EDIT: Seems to be working, Thorhvatson is reviving :c)
Here's the link to a fixed dll, check set to > 0.1 https://we.tl/t-X2IB3hnZ90

If i wanted to see that one and other dll files and edit+save them, how would i go about doing so? What program would be the easiest?
Agusfer 25 May, 2022 @ 12:30am 
So uh i installed JetBrains' dotPeek to open and read the .dll, opened both yours and original, copied the entire text from both "CanHeal" bools, put them in notepad++ and compared them with the "compare" plugin, and from the changes i see it was more than a simple edit.
I have no idea what each change does but if i come back to the game i'll be sure to try your file :p
Killface 25 May, 2022 @ 10:08am 
Originally posted by Agusfer:
If i wanted to see that one and other dll files and edit+save them, how would i go about doing so? What program would be the easiest?
There's no way I know of editing dlls directly.
The mod contains the source code. In order to compile I've updated the references and removed Ms Utils (?) as they weren't present on my system and not needed for compiling. Only changes apart from that was editing the value to read 0.1 instead of 0.5.
Agusfer 25 May, 2022 @ 3:37pm 
Originally posted by Killface:
There's no way I know of editing dlls directly.
The mod contains the source code. In order to compile I've updated the references and removed Ms Utils (?) as they weren't present on my system and not needed for compiling. Only changes apart from that was editing the value to read 0.1 instead of 0.5.

Damn then i went on another direction without knowing lol, this coding world is strange sometimes when you are someone like me that doesn't know much. Thanks for telling me how you did it, i'll look into the compiling thing later i guess, just for curiosity :p
fiqusonnick 30 May, 2022 @ 11:12am 
Originally posted by Killface:
I might have found the solution.

in the private bool CanHeal(Pawn pawn) is a check
if (imDiff != null && imDiff.Severity > 0.5f)
Debug tells me that my dead pawn has a severity of exactly 0.5.
Code should be
if (imDiff != null && imDiff.Severity >= 0.5f)
or maybe set the value to > 0.1

I've built it locally and testing it.

// EDIT: Seems to be working, Thorhvatson is reviving :c)
Here's the link to a fixed dll, check set to > 0.1 https://we.tl/t-X2IB3hnZ90
This is actually amazing, thank you.

Now there's the issue of the hundreds of errors[gist.github.com]. Seems they're coming from trying to ressurect pawns, but i have no clue about the specific circumstances as it's not consistent at all. I'll try to put it lower in the load list and see what happens.
Killface 30 May, 2022 @ 1:06pm 
Originally posted by fiqusonnick:
This is actually amazing, thank you.

Now there's the issue of the hundreds of errors[gist.github.com]. Seems they're coming from trying to ressurect pawns, but i have no clue about the specific circumstances as it's not consistent at all. I'll try to put it lower in the load list and see what happens.
Weird. I have the clue that ReplaceStuff has issues with pawn ressurections. Maybe deactivate it till all dead pawns came back to life?
You can contact the author to check, so that "IsNewThingReplacement" is not activated on corpses.
fiqusonnick 30 May, 2022 @ 11:00pm 
Yeah moving immortals lower didn't help. I disabled replace stuff, will update if it still happens.
< >
Showing 1-15 of 16 comments
Per page: 1530 50