![Haema](https://media.forgecdn.net/avatars/thumbnails/343/327/256/256/637488361229898986.png)
Seemingly random combinations of mods cause vampirism to not persist on relog.
Verbina29 opened this issue ยท 8 comments
I'm super sorry if I should be reporting this to the developer of another mod, but it seems like Haema is the mod it's most relevant to, considering that you can't have vampirism not persist on relog if vampirism doesn't exist in the first place. The mods I've consistently had while trying to find the specific mod doing this are Haema, Origins, Extra Origins, Origins Classes, and their dependencies. The only combination I've definitively encountered the issue with is Astromine and just about any other mod(ones I distinctly remember it happening with include Terrestria, Crusade, Alaska Native Craft), but there are definitely other combinations and possibly single mods that do it. However, I think I will die if I troubleshoot this issue any more.
Thanks. This is the third report I've had of this in a week or so, which makes me think that some other mod has changed something recently. Probably something JiJ'ing a new version of Cardinal Components which doesn't work with Haema. I'll look into it.
Able to reproduce with origins 0.4.6, astromine 1.11.5, extra origins 1.16.5-1, origins classes 1.16.5-1.1.1, Pehkui-1.7.1+21w03a, and terrestria-2.2.0.
The issue is a mixture of an Origins change and a mod load ordering issue.
For context, I handle my data using a library called Cardinal Components API (CCA), and Origins powers have a method called onRemoved
. Before Origins 0.4.6, onRemoved
was only called when the power was, well, removed from a player. After Origins 0.4.6, onRemoved
is also run when a player leaves the game.
I set isVampire
on my component to false in my power's onRemoved
.
If CCA is loaded before origins, everything's fine as CCA saves the isVampire
value to disk before my power's onRemoved
method sets it to false. Therefore, when it loads it from disk, it'll see it as true, and everything's fine.
However, if CCA loads after origins, it'll save isVampire
to disk after the onRemoved
method has set it to false. Therefore, when it loads it from disk, it'll see it as false and you won't be a vampire any more.