RimWorld
Reunion
HacKan 22 Mar 2020 @ 11:35pm
[Bug] [Linux] Triggered event causes game to crash
Hi there! First of all, thanks for such an awesome mod! I've just started my new adventure and imagined a storyline where some friends joins along the way. This is my first time using this mod.

However, and here's the nasty part, the game crashes badly after an event is triggered. At first I didn't knew what was going on but after trying several things and going trough the FAQ y triggered "Wanderer Joins" from the dev tools and bang! crashed.

I'm running the latest RimWorld version and the latest version of every mod.

Here's the log (I tried pasting it here directly but Steam didn't let me create the post): https://0bin.net/paste/spNdcBB6amz2g46j#WkASSu9bAk14PPD5xeUhyWH0UchVqO4HlP-6aiJPdHv

I hope you can help me with this, for the moment I have to disable this mod to avoid the game from crashing :(

Thanks!


Update Tl;Dr: we found it's an issue with Mono in Linux, because it does work fine in Windows. We do not know how to fix it/if its fixable.
Terakhir diedit oleh HacKan; 23 Mar 2020 @ 7:51pm
< >
Menampilkan 1-15 dari 30 komentar
Kyrun  [pengembang] 23 Mar 2020 @ 7:31am 
Firstly I want to thank you for doing the following:
- Using the discussion section!
- Reading the FAQ!
- Pasting your debug log!

It really REALLY helps to give me a place to start debugging, I wish everyone would do it.

However, I created a game with the exact same mods, added some Reunion pawns with Prepare Carefully and triggered the Wanderer Join event multiple times and it didn't crash. At this moment, I'm not sure how else to proceed. Let me ask some questions first:

Are you playing with Royalty DLC?
Is that really the full mod list?
How many pawns did you start with, and how many did you add as Reunion Ally?
When this crash happened, how many people were in your colony and how many still waiting to join?

Can you try putting Reunion very high in the load list (e.g. right after Rimworld Core and Hugslib) and see if this thing is resolved?
HacKan 23 Mar 2020 @ 11:26am 
Diposting pertama kali oleh Kyrun:
Firstly I want to thank you for doing the following:
- Using the discussion section!
- Reading the FAQ!
- Pasting your debug log!

It really REALLY helps to give me a place to start debugging, I wish everyone would do it.

However, I created a game with the exact same mods, added some Reunion pawns with Prepare Carefully and triggered the Wanderer Join event multiple times and it didn't crash. At this moment, I'm not sure how else to proceed. Let me ask some questions first:

Are you playing with Royalty DLC?
Is that really the full mod list?
How many pawns did you start with, and how many did you add as Reunion Ally?
When this crash happened, how many people were in your colony and how many still waiting to join?

Can you try putting Reunion very high in the load list (e.g. right after Rimworld Core and Hugslib) and see if this thing is resolved?

Hi!

No, I'm not playing w/ Royalty DLC
The full list of the mods I use are in my collection: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=2022615253

I started with 1 pawn (♥♥♥♥♥ brutality) and added 2 to the world with the Ally trait. Both have in total 4 traits (including Ally), is that of any relevance? Also, one is brother and the other one step sister (don't know if its relevant at all).

The crash happens a few in-game hours after the game started, so I haven't done much and still have the first pawn. I assume it's due to the triggering of the first Reunion-related event in the playthrough.

I saved the loadout with prepare carefully, so I can give you both the world seed and the characters loadout if you think it might help.

I'm gonna put Reunion at the top and come back :)

Thanks!
Terakhir diedit oleh HacKan; 23 Mar 2020 @ 11:49am
HacKan 23 Mar 2020 @ 11:30am 
Tried putting Reunion at the top but it crashed the very same :(
Terakhir diedit oleh HacKan; 23 Mar 2020 @ 11:41am
HacKan 23 Mar 2020 @ 11:41am 
Here's my loadout file: https://send.firefox.com/download/268cff7a837d2e91/#zk5i7qZN7Q0rI8forHaAOQ

Since I'm in linux, this file is in "~/.config/unity3d/Ludeon Studios/RimWorld by Ludeon Studios/PrepareCarefully/Space Marines.pcp" but for windows it's probably at "C:\Users\%username%\AppData\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios\PrepareCarefully\Space Marines.pcp"

My world seed is: industries
HacKan 23 Mar 2020 @ 4:00pm 
Oh, one doubt that has ocurred me looking at the source code: does the starting colonist need to have the Reunion Ally trait??
HacKan 23 Mar 2020 @ 4:16pm 
I created a new game with totally different settings and happened the same, but this time I got a warning in the log that may indicate the culprit, check this: https://0bin.net/paste/NKWO3+OU7xFajLn+#JNJWEHc737EHyoFotUDZHoUyWmivzARDKquHqkUnYob

See this particular part of the log:

[Reunion] Reunion Event Probability: 15 [Reunion] Saving World pawn with Ally trait to Reunion list: Viktor 'Nails' Sosa Unloading 0 Unused Serialized files (Serialized files now loaded: 0) Unloading 0 unused Assets to reduce memory usage. Loaded Objects now: 20373. Total: 255.428172 ms (FindLiveObjects: 2.243717 ms CreateObjectMapping: 2.349471 ms MarkObjects: 250.758018 ms DeleteObjects: 0.071579 ms) Object with load ID Thing_Human354 is referenced (xml node name: otherPawn) but is not deep-saved. This will cause errors during loading. (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35) [Reunion] Roll failed: 59 vs 15, probability incremented to 35 Obtained 22 stack frames. #0 0x0000004098338a in (Unknown) ....

What is "not deep-saved"?
HacKan 23 Mar 2020 @ 4:29pm 
Diposting pertama kali oleh HacKan:
Oh, one doubt that has ocurred me looking at the source code: does the starting colonist need to have the Reunion Ally trait??
Scratch this, I've just tried giving the Ally trait to the main pawn but it failed again, so it's not this.

However, I think its related to the deep-save warning I got before, check this new log after loading the game: https://0bin.net/paste/DCpM6JGE8OhfGx60#dM00TnoWRMQMfTmpdxomIGEBrbDj6qKhygY76ypePFm

... Could not resolve reference to object with loadID Thing_Human354 of type Verse.Pawn. Was it compressed away, destroyed, had no ID number, or not saved/loaded right? curParent=RimWorld.DirectPawnRelation curPathRelToParent= (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35) Pawn Yuuka has relation "Parent" with null pawn after loading. This means that we forgot to serialize pawns somewhere (e.g. pawns from passing trade ships). (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35) [Reunion] Reunion Event Probability: 15 ... [Reunion] Roll failed: 19 vs 15, probability incremented to 35 Obtained 21 stack frames. ...

"Thing_Human354" is referenced in the previous log corresponding to the "allied" pawn.

What're your thoughts on this?
HacKan 23 Mar 2020 @ 4:48pm 
Also, at line 200[github.com] of the mod code you use "ListAllySpawned.Add(pawn.GetUniqueLoadID());" but at 213[github.com] you use "ListAllyAvailable.Add(pawn);"
Why store just id on one list but the whole obj at another list? And maybe storing the whole obj is what is failing?
Kyrun  [pengembang] 23 Mar 2020 @ 4:50pm 
I'm frustrated that I am using all your mods and started with your loadout and I don't get the crash.

does the starting colonist need to have the Reunion Ally trait
If your starting pawn has the Ally trait, it means they are also given the Reunion treatment, should they somehow be lost in an event that isn't death or vanilla kidnapping.

What is "not deep-saved"?
I assume you know a bit of programming since you tried to read my code and are using Linux hahahah. Deep-saving is like passing by value and reference saving is like passing by reference, in a sense. So, somewhere in your save file, Human354 was saved by reference, but no actual pawn data was saved in the file. When the game loaded, it's complaining it can't find the data to initialise the pawn since all it knows is there exists a pawn with the ID "Thing_Human354".

store just id on one list but the whole obj
Spawned pawns are stored by reference since they are already deep-saved by the game. Available (thus unspawned) are deep-saved, therefore I saved the whole object.

The crash happens a few in-game hours after the game started
This is likely the game giving you the Wanderer Joins event, which is the same as firing from the debug menu.

Pawn Yuuka has relation "Parent" with null pawn after loading.
I got this error ONCE while testing, I suspected it was due to assigning a "Temporary" character using Prepare Carefully as my pawns' parent. Later I created some other new game with Temporary parents again and could not replicate the issue. So I never thought about it again.

I'd say this the deep-saving problem and the null parent problem are unrelated to the crash, since they handle it gracefully by outputting some warning messages. But really only Tynan would know for sure.

ARRRGH. At this point I don't know what else to try. As much as I don't want to blame your OS, if it's not too difficult, maybe you could find some work/school Windows computer and load up your settings and see if that works?
HacKan 23 Mar 2020 @ 5:18pm 
I was thinking exactly somewhere around blaming Mono (the C lib used in Linux) for the crash. Maybe this happens in Linux and not in Windows. I'm gonna try that and see how it goes.

A recent test I did was firing RefugeePodCrash, which is disabled for the mod, and the game crashed. So it has something to do with Harmony patching those calls and the Mono library?
Terakhir diedit oleh HacKan; 23 Mar 2020 @ 5:18pm
Kyrun  [pengembang] 23 Mar 2020 @ 5:23pm 
It's possible. I'm sorry I can't be of any more help than this. Please keep me updated on your tests.
HacKan 23 Mar 2020 @ 7:49pm 
Well I tried again in Windows aaaand it worked!!
Damn, so it's some issue with Mono! Unbelievable. Well, I'm not sure we can fix this :S
Apparently I'm the sole Linux user of Reunion so far :P
I'm gonna edit the title to represent that, if Steam lets me.

Thanks for the help! :D
Kyrun  [pengembang] 24 Mar 2020 @ 6:01am 
Ah man, that sucks. Anyway thanks for changing the title, and really appreciate your meticulous bug reports and self-diagnosis.
HacKan 24 Mar 2020 @ 4:17pm 
Hey man, one question: can I emulate the actions of the mod using the dev console? I've been poking around with it and here's what I got so far:

When a triggering event happens (such as WandererJoins), I pop up the dev tools and:
0. Start a counter on 10
1. Throw a dice 0-100 and if bigger than counter, increase counter by 10 and break, else continue.
2. Destroy the new pawn
3. Spawn world pawn (as colonist) to spawn one of my allies
4. Recruit the new pawn
5. Remove trait "Ally"

The thing is, that as far as I can tell, my allies are not always available at the world pawn pool (lest to say if they somehow died). Is it there any command to make them available or to spawn them somehow?

What do you think?
Terakhir diedit oleh HacKan; 24 Mar 2020 @ 4:20pm
Kyrun  [pengembang] 24 Mar 2020 @ 4:25pm 
I'm not quite sure what you are asking for. Is it a command on the debug menu to trigger an event? Because choosing WandererJoins from the debug menu does the same thing.

The latest update no longer uses the World pawn pool so you can't see them there anymore. The sequence is more like this:

1. Start counter at 10.
2. Roll 0-100, if > counter, break. Otherwise continue.
3. Ignore vanilla function, instead spawn Ally pawn from list. (This means no pawns were created or destroyed).

Pawns will have their Ally trait removed immediately when the game starts, so after that, there will be no more Ally traits in the "wild".
< >
Menampilkan 1-15 dari 30 komentar
Per halaman: 1530 50