Hi All!
I'm not sure BGT is particularly responsible, cause I have huge collection of mods installed (TobEx, BWS expert minus some), anyway...
Steps to reproduce:
1. run BGT
2. choose start new BG2 game single player
3. import any TOB character (13+ level)
4. cutscene starts, watch it
5. Imoen appears and starts dialogue
6. Finish dialogue with imoen inviting her to party
7. Imoen disappears from area but her image stays in right panel aka she is still in the party
I know you are not expected to start BG2 game within BGT, "why did you even mess with BGT then? Play pure BG2". But I have a very huge amount of installed mods so I wanted to perform smoke test.
I wanted to make sure the game would not crash or bug out upon transferring to BG2 when I've already spent couple of weeks completing BG1
Anyway, back to the bug...
If you click on Imoen portrait nothing happen, but you still can check her stats via player stats screen
After experimenting with scripts using Infinity engine I've stumbled upon the following piece of ar0602.bcs:
(I'm providing my comments to the right)
IF
Global("ImoenImport","GLOBAL",0) //Imoen is not imported yet
Global("ImoenPartyBG1","GLOBAL",0) //Its not "Import from BG1 to BG2" mode, Its "new BG2 game" mode
THEN
RESPONSE #100
SetGlobal("ImoenImport","GLOBAL",2) //Imoen import finished. This is required so we wont repeat this code again
CreateCreature("Imoen10",[3198.2837],6) // Creating IMOEN10, which is BG2 IMOEN multi class level 7/6 with no equipment and scripts of BG2
SetGlobal("SPRITE_IS_DEADIMOEN2","GLOBAL",0) //I suppose this is in case if in BG1 Imoen was killed and now we need to resurrect her, kinda
ActionOverride("Imoen2",MakeGlobal()) //Make newly created NPC global so she could travel with our team to different locations
Continue()
END
When I changed corresponding line to
ActionOverride("Imoen10",MakeGlobal()) //IMOEN10 instead of IMOEN2
The bug didn't appear any more.
I'm not sure if this line needed at all (because I suppose IMOEN10.DLG action JoinParty() would make sure all is correct anyway).
But original script definitely contains an error. Imoen2 was a NPC creature name before BGT.
Within BGT correct BG2 dungeon creature name is IMOEN10 (not imported from BG1 that is).
I haven't met any similar behavior within BG (NPC disappearing but staying in party), but I suppose if you tell Aurora engine to make creature (that is not active in current area) global (not to mention similar creature already exists in this area), it could as well behave like described above.
When I tried to find which mod introduced the line (simple text search within BG2 directory)
ActionOverride("Imoen2",MakeGlobal())
I could find only one file:
bgt/compat/bgt/replace/xar0602.baf
So I blame BGT
I hope someone could prove my theory right or wrong:
1. This is solely BGT bug
2. Offending line is ActionOverride("Imoen2",MakeGlobal())
3. Fix is replacing to ActionOverride("Imoen10",MakeGlobal()), or removing this line completely
If I'm right it would be nice to have the fix included in the next version of BGT
See ya!