Skip to content

ToB Bug - Imoen keeps triggering dialogue

rost400rost400 Member Posts: 13
edited June 2019 in BGII:EE Mods
So I have a rather annoying bug in ToB where Imoen comes up to me and triggers a dialogue over, and over.

The dialogue in question has Charname asking Imoen about memories of Spellhold, or whether she worships any god. And when I select one it doesn't appear the next time, so it seems to be repeatable dialogue that pops up periodically (though not every 2 seconds).

First time it triggered after the party got teleported to the Pocket Dimension and did the first challenge. Imoen triggered a dialogue reacting to that encounter and after a while triggered the dialogue in question. I managed to get rid of it by incrementing a global variable I#IMOENTOBPP1 from 2 to 3. It changed from 1 to 2 before and after the dialogue first triggered so I assumed it might indicate which dialogue should trigger and skip to the next one (being 3).
Second time it started triggering after killing Yaga-Shura and having Solar reveal Charname's origins and now it just keeps going regardless of what I do.

It's not voiced whatsoever so I assume it's from a mod, of which I have 4 Imoen related:
Chatty Imoen v1.3
Imoen Romance v3.9
Imoen Friendship v3.3
IEP Extended Banters v5.4 (Imoen "Retrospection" dialogue for BGII: ToB)

The "retrospection" seems like a possibility given the topic of the dialogue, but just a wild guess.
Post edited by rost400 on

Comments

  • megamike15megamike15 Member Posts: 2,666
    it's due to retrospective dialog being installed along side the romance mod. that part of iep actually breaks the romance mod and causes a stutter.
  • rost400rost400 Member Posts: 13
    That's good to know, luckily I'm romancing Neera right now, have the romance mod only for the friendship dialogues. but I was planning on trying a playthrough with Imoen later, will have to get rid of the Retrospection then.

    Alternatively, you think it will break my save if I remove this part of the mod and reload a save before it first triggered? Though I'm also using EET so it could break something else anyway.
  • rost400rost400 Member Posts: 13
    Okay, so uninstalling the IEP "Retrospection" didn't help so I tried browsing through the scripts and dialogue files of the mods. Now, I have no idea how the game actually processes the scripts and dialogues so from this point on it's all just a speculation.

    The Friendship mod has 3 scripts which make Imoen come up to Charname and start a dialogue. They trigger after the 1st challenge, after Saradush has been sacked/Yaga-Shura killed, and after the 3rd challenge. This aligns with the triggers in my original post and the changes in global variables correspond to that as well.
    The issue seems to be that when these scripts are triggered the dialogue goes to a Player Initiated Dialogue (PID), which is part of the Romance mod, instead of the intended dialogue. That means variables don't get updated and the script fires off again and again.

    I'm just gonna assume that the game goes through the Imoen dialogue file (with all the mods appended) sequentially and triggers the first dialogue/condition that is applicable (meaning all conditions must be unique). So the condition used for the Romance mod PID is applicable as well when the Friendship mod triggers its specific dialogue for Imoen, thus it's not unique.

    This is the code of the script in Friendship mod:
    IF
        InParty(Myself)
        See(Player1)
        !StateCheck(Myself,CD_STATE_NOTVALID)
        !StateCheck(Player1,CD_STATE_NOTVALID)
        CombatCounter(0)
        !See([ENEMY])
        Global("I#ImoenToBPP1","GLOBAL",2)
    THEN
      RESPONSE #100
        MoveToObject(Player1)
        Dialogue(Player1)
    END
    
    And this is the code of PID condition in Romance mod:
    IF WEIGHT #999 ~IsGabber(Player1) !Global("ImoenRomanceActive","GLOBAL",3) !Global("IRTQuarrelDue","GLOBAL",1) !Global("IRTCooldownDue","GLOBAL",1) 
    !Global("IRTBrokeUpTalk","GLOBAL",1) !AreaCheck("AR5203") !ActuallyInCombat() !AreaCheck("AR5000") !AreaCheck("AR5203")~ NormalPID
    

    If a dialogue is initiated like this, will it satisfy the condition?
    Dialogue(Player1) -> ~IsGabber(Player1) seems like the candidate.

    Assuming the game really does go through the file until the first applicable condition, appending the Friendship dialogues in question before the Romance mod dialogue should solve the issue (and likely cause a dozen others).
  • TheGreatJabuTheGreatJabu Member Posts: 1
    edited July 2019
    Was anyone able to find a solution to resolve this particular bug? I'm having the exact same issue and I've basically just spent my entire time in Saradush sending Imoen to the far side of the map so that I can continue to make forward progress. :'(

    Edit: AS I WAS - I found a solution at the following website: http://baldursextendedworld.com/Vanilla_Forums/discussion/308/imoen-continually-initiates-dialogue-with-player-character-not-sure-if-bug-or

    TL;DR, use this console code: C:SetGlobal("LK#ImmyImpish","GLOBAL",3)
  • megamike15megamike15 Member Posts: 2,666
    the only way to solve it is not haveing iep inomen retrospective dialogue installed alongside imoen romance.
Sign In or Register to comment.