Jump to content

Ascension mod compatibility


DavidW

Recommended Posts

Here's a thread to track my current state of knowledge of compatibility between the current version of Ascension and other mods. Currently I'm discussing:

- Edwin Romance

- Imoen Romance

- Iylos

- Wheels of Prophecy

- Longer Road

By all means let me know of other mods that seem to have compatibility problems. Potential compatibility issues will arise for:

- any mod that explicitly tries to allow for and interact with Ascension

- any mod that modifies Chapter 10 (the final battle at the Throne of Blood)

- potentially, any NPC mod that edits the final conversation with the Solar too enthusiastically (because Ascension patches conversations with/about Balthazar, Sarevok and Bodhi into that conversation).

Link to comment

Imoen Romance

The most recent release of Imoen Romance should be fully compatible with Ascension 2.0.

This is a bit complex because it redirects various of Imoen's dialog lines in finsol01.dlg to new lines. If Ascension is installed after Imoen Romance, that's not a problem: Ascension 2.0 uses interject-copy-trans and works around it fine. But it's a problem the other way around: if you install Ascension first then in some circumstances Imoen's new dialog lines are skipped. Specifically, if Balthazar (or, as of 2.0, non-in-party, good-aligned Sarevok) interjects, and the next interject should be Imoen, you get the old version.

This is being addressed by the Imoen Romance maintainer.

 

Best guess at current status: Fully compatible; install in either order.

Link to comment

Iylos

Iylos is now updated to be fully compatible with Ascension 2.0

Iylos interjects into a couple of Balthazar's dialogs if Ascension is installed. That's done by hardcoded dialog numbers, which worked fine when Ascension was a big hardcoded block, but doesn't work for Ascension 2.0: some the dialog numbers have changed, and they aren't guaranteed to be the same on every install (install order may affect them, now that the main component is broken down into smaller pieces).

If Iylos is installed first, Ascension actually adds those interjections back in itself; this seems to work fine (it does assume that the player has not removed the Iylos folder from the BG2 directory after installing Iylos, but I think that's a reasonable assumption). If Ascension is installed first, I suspect Iylos's existing hardcoded interjections will come out wrong. (They're all Interjects, so I don't think they can break anything else, but they might happen in inappropriate places.)

It shouldn't be too difficult for Iylos's maintainer (Jastey?) to borrow Ascension's code to allow Iylos to interject into Ascension if installed after. (It does require one of Ascension's function libraries, though.) Let me know if this is of interest and I'll talk you through it.

Best guess at current status: Compatible if Ascension is installed first (and Ascension will enforce this order).

Link to comment

Wheels of Prophecy

This is a bit of a mess. WoP (which I also wrote) is a horrible mess of spaghetti code written when I had much less idea how to organize complex mods. There are clearly significant bugs in its logic but I can't tell which are internal to WoP and which are clashes with new Ascension. I need to do some serious surgery on it; it's at the top of my to-do list but it's difficult to find time.

Best guess at current status: Use at own risk. (Install Ascension first: Ascension itself will enforce this.)

Link to comment

Longer Road

LR interacts quite significantly with Ascension, and there will definitely be problems - but it's too complex for me to realistically do much about it, and its current maintainer (Roxanne) doesn't participate on these boards and has a history that makes me reluctant to reach out. It seems to have been updated to allow for 2.0 but I'm not in a position to comment on whether those updates are successful.

Best guess at current status: I don't know. (But install Ascension first.) 

Link to comment
1 hour ago, DavidW said:

Edwin romance

I think that as of its current version, it doesn't do anything in particular to clash with Ascension.

Best guess at current status: Fully compatible; install in either order

That would be my guess, too.

I removed the compatibility code with Ascanesion in Edwin Romance because it was no longer necessary. (I think it was for Edwin's original Solar interjections. I recoded his romance Solar interjections so they are compatible and his original ones no longer need to be deactivated for this to work.

Link to comment
1 hour ago, DavidW said:

If Iylos is installed first, Ascension actually adds those interjections back in itself; this seems to work fine (it does assume that the player has not removed the Iylos folder from the BG2 directory after installing Iylos, but I think that's a reasonable assumption). If Ascension is installed first, I suspect Iylos's existing hardcoded interjections will come out wrong. (They're all Interjects, so I don't think they can break anything else, but they might happen in inappropriate places.)

It shouldn't be too difficult for Iylos's maintainer (Jastey?) to borrow Ascension's code to allow Iylos to interject into Ascension if installed after. (It does require one of Ascension's function libraries, though.) Let me know if this is of interest and I'll talk you through it.

That should be possible. If you tell me how the interjection points move with Ascension then I can adjust Iylos.

Although question is: why does Ascension move around existing dialogue states at all? It sounds as if dialogues are doubled, which usually leads to problems with compatibility.

Link to comment
1 hour ago, DavidW said:

Imoen Romance

The autor recently contact me and asked about where to look for Ascension code so he can look how to make it more compatible.

The rules which you establish are perfect for 

 

Edited by AL|EN
Link to comment
3 hours ago, DavidW said:

Longer Road

LR interacts quite significantly with Ascension, and there will definitely be problems - but it's too complex for me to realistically do much about it, and its current maintainer (Roxanne) doesn't participate on these boards and has a history that makes me reluctant to reach out. It seems to have been updated to allow for 2.0 but I'm not in a position to comment on whether those updates are successful.

Best guess at current status: I don't know. (But install Ascension first.) 

Check https://github.com/InfinityMods/LongerRoadEE/

You can inspect this commit: https://github.com/InfinityMods/LongerRoadEE/commit/8c27c3c3bf3bae0301d75e7d07f41482ef2c03a8

Edited by AL|EN
split reply
Link to comment

Ok i think i understand the cause.

So Ascension essentially has new NPC's, in theory 'new npc mods' should always be the last mods to install to solve these kind of tricky situations but Ascension is kind of unique since its not a mod that you use for new npc's  necessarily(people may not get them).

Then the only solution if we want the flexibility of compatibility no matter which order to install is i would need to do the same changes targetting balthazar (and new sarevok??) as i did in modifying every npc for that complex finsol01.dlg dialogue branch

 

//the mirror of finsol01.dlg 27

ALTER_TRANS balth2
BEGIN 2 3 END   //these are dummy values, i need to know the number state of this dialogue
BEGIN 11 END
BEGIN
"EPILOGUE" ~EXTERN IMOEN25J FD~  END

//the mirror of finsol1.dlg 29/30/31/32

ALTER_TRANS balth2
BEGIN 84 86 END //these are dummy values, i need to know the number state of this dialogue
BEGIN 6 END
BEGIN
 "EPILOGUE" ~EXTERN IMOEN25J finalbreak~ 
END

//the mirror of finsol01.dlg 27

ALTER_TRANS FINSARE2
BEGIN 2 3 END   //these are dummy values, i need to know the number state of this dialogue
BEGIN 11 END
BEGIN
"EPILOGUE" ~EXTERN IMOEN25J FD~  END

//the mirror of finsol1.dlg 29/30/31/32

ALTER_TRANS FINSARE2
BEGIN 84 86 END //these are dummy values, i need to know the number state of this dialogue
BEGIN 6 END
BEGIN
 "EPILOGUE" ~EXTERN IMOEN25J finalbreak~ 
END

 

@DavidW does this make sense?

Link to comment

Conderning Edwin compatibility:

Please remove from balthazar_compatibility.tpa:

DEFINE_ACTION_FUNCTION balthazar_compatibility BEGIN

   // Edwin - we just need to turn off his Solar banter if he's romanced

   ACTION_IF MOD_IS_INSTALLED "setup-edwinromance.tp2" 0 BEGIN
      LAF ALTER_DLG_BLOCK 
                STR_VAR dialog=balth2
                        match="EXTERN ~FINSOL01~ 28" 
                        swap_out=~IsValidForPartyDialog?u?e("Edwin")~ 
                        swap_in=~IsValidForPartyDialog("Edwin")!Global("EdwinRomanceActive","GLOBAL",2)~ 
      END
   END

Edwin romance finsol01.dlg interjection was recoded so it splits from his original one, so no extra check is needed (on the contrary, it would prevent any interjection in romance case).

Link to comment
1 hour ago, vanatos said:

as i did in modifying every npc for that complex finsol01.dlg dialogue branch

Unless Imoen Romance gets installed before any NPC mods you will never be able to catch all of them. Would be recoding so that Imoen says her first original line and then romance added content would play an option for you?

This is what I did for Edwin Romance (and also Keldorn): For the Finsol01 intrjections, he says his first original line. Then, in romance case, I do INTERJECT with the romance stuff and at the end COPY_TRANS edwin25J xx (xx being his original interjection state so the other interjections can go on as they would originally).

This way, I do not have to worry about other NPC mods installed before the romance mods and having wrong transitions in their dialogues I will never be able to catch and change. The finsol01 dialogue branch gets very simple because it doesn't interest me at all, I add Edwin's Romance content to Edwin25J and am done with it!

And also, it ensures that all other NPCs get to say their piece, as well, because not using COPY_TRANS would lead to new added NPCs being skipped.

 

Link to comment
6 hours ago, jastey said:

Although question is: why does Ascension move around existing dialogue states at all? It sounds as if dialogues are doubled, which usually leads to problems with compatibility.

I’m not moving existing dialog states. Iylos interjects into dialog states that are added by Ascension.

I’ll describe how to do that on new Ascension shortly.

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...