May i know how do you add "PlayerCompanionSavename" string array. It would be very helpful if you could give me an example of how to do that. Thanks
It is quite tedious, but if you want to know here is a little guide.
First you need to open your save file in a hex editor. Make sure that it contains
"PlayerCompanionSavename". If it doesn't then play the game, get at least one follower, save the game and re-open the file.
Now you need to look for the name of the NPC you want to add. You can do this by searching for
"Name_2_7D45A81E43BF278FF5C102A8248D7A03", which will give you something like this:
Name_2_7D45A81E43BF278FF5C102A8248D7A03|00|12|00|00|00|StrProperty|00|16|00|00|00|00|00|00|00|00|12|00|00|00|BeastAsleep|00
Here the name is
"BeastAsleep", which is the Beast. To make him a follower you need to copy the 4 bytes in front of the name (length of the name), the name itself and the 1 byte behind it:
12|00|00|00|BeastAsleep|00
Now you can change
"PlayerCompanionSavename". Here is an example of how it looks like with the Raving Fan and Alexander, followed by its structure:
PlayerCompanionSavename|00|14|00|00|00|ArrayProperty|00|3E|00|00|00|00|00|00|00|12|00|00|00|StrProperty|00|00|02|00|00|00|18|00|00|00|LesserFollowerCompanion|00|1A|00|00|00|GrowthRPGTavernAlexander1|00
Structure:
PlayerCompanionSavename|00
14|00|00|00 = (length of "ArrayProperty|00" = 14) ArrayProperty|00
3E|00|00|00|00|00|00|00 (array length = 62, starting at the number of array elements and ending with the 00 of the last element)
12|00|00|00 = (length of "StrProperty|00" = 12) StrProperty|00
00 = (extra 00 for some reason)
02|00|00|00 = (number of array elements / followers)
18|00|00|00 = (length of "LesserFollowerCompanion|00" = 24) LesserFollowerCompanion|00
1A|00|00|00 = (length of "GrowthRPGTavernAlexander1|00" = 26) GrowthRPGTavernAlexander1|00
To add the Beast paste the part you copied at the end after
“Alexander1|00”. Now you need to change the
“number of array elements” from 2 to 3 and increase the
“array length” by 16, which is the length of the copied part (4 length bytes + 12 name bytes).
It should give you the following:
PlayerCompanionSavename|00|14|00|00|00|ArrayProperty|00|4E|00|00|00|00|00|00|00|12|00|00|00|StrProperty|00|00|03|00|00|00|18|00|00|00|LesserFollowerCompanion|00|1A|00|00|00|GrowthRPGTavernAlexander1|00|12|00|00|00|BeastAsleep|00
I hope you could make sense of it. Maybe I will try to write some sort of script to make this a bit easier.