Jump to content

Reflections - Let's Make a Mod for EET


Recommended Posts

Posted (edited)
2 hours ago, Trouveur80 said:

Alatos is dead, most thieves are either imprisoned, killed, or have flee the city because of Flaming Fist brutality under Angelo's rule.

Is that actually shown or described? (Runs off to savegame) Okay so Alatos is not there but several rogues are in the guild and Black Lily is there with the guild’s most powerful and valuable gear. Nobody has anything to say about Alatos.

I got arrested and Angelo has nothing to say about it. 

Is this another thing Bioware did half-assedly (presumably they were under time pressure at the end) and the story of what happened was filled in by out-of-game sources? 

I don’t love it. Why would one new commander - and a particularly corrupt one at that - be an existential threat to a thieves’ guild? Wouldn’t every new commander be incentivized to eliminate them? Why is Black Lily still there? Wouldn’t she just step up and become the new head of the guild?

Honestly, sounds like another thing in the late game that needs fixing. 

EDIT - might be as simple as changing a line from

Quote

Rumor has it one such passage is in the thieves’ guild. Of course, our troops are not welcome there. But an independent agent like you could go investigate.

…to something like:

Quote

…in the thieves’ guild. We dare not send troops in force - Angelo was quite cruel in dealing with the guild, and it has created a volatile situation. I fear reprisals if we were to send Flaming Fist soldiers into the heart of their domain. Especially given the rumors from the north, it is important to promote unity and normalcy, not ridk further strife. Better that an independent agent investigate the rumored passage… we will decide how to deploy the Flaming Fist once you report back.

Or something like that. 

Edited by subtledoctor
Link to comment
Posted (edited)
On 4/5/2024 at 10:03 AM, Trouveur80 said:

I'm almost in chapter 7 in my current unmodded run. I will do some captures from the banters about the thieves guild. 

Cool, that would be helpful. I see in the area script that most of the occupants of the guild are set to disappear in chapter 7. But neither Black Lily nor Denkod has anything to say about it, and in my recent playthrough I did not meet anyone who gave more information about it. It is a nice enough plot point, but if the game does not actually present it to players, then what is the use of it?

I don't really like the idea that the guild has been completely eliminated. (And after all Denkod, Black Lily, and Voleta Stiletto are still there.) So I might reintroduce some nameless thieves to the area, just to have bodies there. I am going to write out a small conversation with Denkod, and if the player gets needlessly murderous and attacks him, I want others around to help him.

I've got the post-Korlasz palace dialogue all written up and tested. (...Pending any necessary adjustments for addressing the current stat of the Thieves' Guild. Which, if it really comes to that, could also be addressed by simply moving the maze entrance as discussed earlier.)

Meantime, it occurs to me that this is probably the appropriate time to re-introduce Imoen, if she is not already in the party. It is going to be complicated - need to go back to earlier chapters and add global variable to mark the last time she was in the party, and add appropriate dialogue now. And a further complication: what if Imoen was never in the party, and shows up at the palace now, and Liia says she wants to keep Imoen in protective custody until the threat of Sarevok has passed... should the player be able to recruit Imoen, ust for the last fight? Or should we say, if she is not in your party going at this point, then it is too late.

I'll tinker with it. But it means this step will take a while longer.

Edited by subtledoctor
Link to comment

The game does present it to players if you did Narlen's thieving quests in chapter 5 - in that case, in chapter 7 (in the shop of Silence), you'll meet Narlen's formerly silent partner Rededge, who tells you that Narlen got hanged when the crackdown started.

It's a bit barebones, admittedly, but it is there.

Link to comment

That’s fine. That doesn’t mean the guild has to be completely nonexistent. Rededge, Lily, Denkod, and Voleta are still around. Everything doesn’t have to be explicit - sometimes leaving things vague is more compelling. A line or two about not wanting to make a volatile situation worse should be sufficient. 

Link to comment
Posted (edited)

Part 5: The Boy Who Lived

With Korlasz' dungeon cleared and having found a letter from Sarevok to Korlasz mentioning his intent to regroup in a place called 'The Undercity,' the player should report back to Dukes Belt and Liia. There will be a scene in the Ducal Palace with a lot of exposition to click through (veering toward PS:T levels of reading here, need to keep it brief). Duke Liia will direct you to the next step to finding Sarevok, and Duke Entar (a.k.a. The Boy Who Lived) will appear and make some wild accusations against you, and then, if Imoen is not in the party, she will appear in the palace and begin her friendship with Duke Liia. We are just getting the various pieces in position for the end of this campaign and the beginning of the next one.

Then the player will go to the Thieves' Guild, and speak to Denkod, and then descend to the maze. The Denkod dialogue is a bit wacky, but honestly I don't think a bit of levity is out of order at this juncture.

Most of Part 5 has been writing, writing, writing. I got a bit tired of it by the end. Maybe that comes through, maybe not. In any event this is a beta so the first draft is going in and I am pressing forward. Everything is subject to later revision.

The first order of business is dealing with Journal entries, which I have never done before. I think I got it right...?

Spoiler
ADD_JOURNAL TITLE (~The Hunt for Sarevok~) @50035 @50079

I also added similar lines back to the top of Step 3 and Step 4 in my local version. That should allow AddJournalEntry() script actions to lump all my journal entries into a proper quest log.

Next, I add some checks to BALDUR.BCS to constantly check whether Imoen is in the party, and if so, what chapter it is. This should therefore set a variable value to the last chapter Imoen was in the party.

Spoiler
<<<<<<<< d5/baldur+.baf
IF
	Global("CHAPTER","GLOBAL",1)
	InParty("IMOEN")
	GlobalLT("D5ImoenChap","GLOBAL",1)
THEN
	RESPONSE #100
		SetGlobal("D5ImoenChap","GLOBAL",1)
END

IF
	Global("CHAPTER","GLOBAL",2)
	InParty("IMOEN")
	GlobalLT("D5ImoenChap","GLOBAL",2)
THEN
	RESPONSE #100
		SetGlobal("D5ImoenChap","GLOBAL",2)
END

IF
	Global("CHAPTER","GLOBAL",3)
	InParty("IMOEN")
	GlobalLT("D5ImoenChap","GLOBAL",3)
THEN
	RESPONSE #100
		SetGlobal("D5ImoenChap","GLOBAL",3)
END

IF
	Global("CHAPTER","GLOBAL",4)
	InParty("IMOEN")
	GlobalLT("D5ImoenChap","GLOBAL",4)
THEN
	RESPONSE #100
		SetGlobal("D5ImoenChap","GLOBAL",4)
END

IF
	Global("CHAPTER","GLOBAL",5)
	InParty("IMOEN")
	GlobalLT("D5ImoenChap","GLOBAL",5)
THEN
	RESPONSE #100
		SetGlobal("D5ImoenChap","GLOBAL",5)
END

IF
	Global("CHAPTER","GLOBAL",6)
	InParty("IMOEN")
	GlobalLT("D5ImoenChap","GLOBAL",6)
THEN
	RESPONSE #100
		SetGlobal("D5ImoenChap","GLOBAL",6)
END

IF
	Global("CHAPTER","GLOBAL",7)
	InParty("IMOEN")
	GlobalLT("D5ImoenChap","GLOBAL",7)
THEN
	RESPONSE #100
		SetGlobal("D5ImoenChap","GLOBAL",7)
END
>>>>>>>>
COPY ~d5/baldur+.baf~ ~weidu_external/%MOD_FOLDER%/compile/baldur+.baf~
EXTEND_TOP ~baldur.BCS~ ~weidu_external/%MOD_FOLDER%/compile/baldur+.baf~

I have four different lines of explanatory dialogue from Imoen, depending on her status:

  • Only in the party in chapter 1 or not at all
  • Last in the party in chapter 2, 3, or 4
  • In the party during chapter 5, 6, or 7
  • Dead

Next, I will add some trigger in the Ducal Palace area script to set up the three cut scenes that will occur here, and script those cut scenes themselves:

Spoiler
<<<<<<<< d5/ar108+5.baf
IF
	Global("D5EntarCut","GLOBAL",1)
THEN
	RESPONSE #100
		SetGlobal("D5EntarCut","GLOBAL",2)
		CreateCreature("BDENTAR",[520.615],E)
		ClearAllActions()
		StartCutSceneMode()
		StartCutScene("D5ENCUT1")
END

IF
	Global("D5EntarCut","GLOBAL",4)
THEN
	RESPONSE #100
		SetGlobal("D5EntarCut","GLOBAL",5)
		ClearAllActions()
		StartCutSceneMode()
		StartCutScene("D5ENCUT2")
END

IF
	Global("D5MazeOpen","GLOBAL",1)
	Global("D5ImoenPalace","GLOBAL",0)
	!InParty("%IMOEN_DV%")
THEN
	RESPONSE #100
		SetGlobal("D5ImoenPalace","GLOBAL",1)
		CreateCreature("BDIMOEN",[230.380],SE)
		ClearAllActions()
		StartCutSceneMode()
		StartCutScene("D5IMCUT1")
END
>>>>>>>>
COPY ~d5/ar108+5.baf~ ~weidu_external/%MOD_FOLDER%/compile/ar108+5.baf~

ACTION_IF (FILE_EXISTS_IN_GAME ~%bg1_area_prefix%0108.bcs~) BEGIN
  EXTEND_TOP ~%bg1_area_prefix%0108.BCS~ ~weidu_external/%MOD_FOLDER%/compile/ar108+5.baf~ EVALUATE_BUFFER
END

<<<<<<<< d5/d5encut1.baf
IF
	True()
THEN
	RESPONSE #100
		CutSceneId("BDENTAR")
		DisplayStringHead(Myself,~What is going on here??~)
		MoveToPoint([705.560])
		SmallWait(1)
		SetGlobal("D5EntarCut","GLOBAL",3)
		SmallWait(2)
		EndCutSceneMode()
		ActionOverride("BDENTAR",StartDialogueNoSet(Player1))
END
>>>>>>>>
COPY ~d5/d5encut1.baf~ ~weidu_external/%MOD_FOLDER%/compile/d5encut1.baf~
COMPILE ~weidu_external/%MOD_FOLDER%/compile/d5encut1.baf~

<<<<<<<< d5/d5encut2.baf
IF
	True()
THEN
	RESPONSE #100
		CutSceneId("BDENTAR")
		DisplayStringHead(Myself,~This is not over!~)
		MoveToPoint([520.615])
		SetGlobal("D5EntarCut","GLOBAL",6)
		SmallWait(1)
		EndCutSceneMode()
		ActionOverride("BDENTAR",EscapeArea())
/*		ActionOverride("BELT",StartDialogueNoSet(Player1)) */
END

>>>>>>>>
COPY ~d5/d5encut2.baf~ ~weidu_external/%MOD_FOLDER%/compile/d5encut2.baf~
COMPILE ~weidu_external/%MOD_FOLDER%/compile/d5encut2.baf~

<<<<<<<< d5/d5imcut1.baf
IF
	True()
THEN
	RESPONSE #100
		CutSceneId("%IMOEN_DV%")
		DisplayStringHead(Myself,~Heya! It's me, Imoen!~)
		MoveToPoint([530.360])
		SmallWait(1)
		SetGlobal("D5ImoenPalace","GLOBAL",2)
		SmallWait(2)
		EndCutSceneMode()
		ActionOverride("LIIA",StartDialogueNoSet(Player1))
END
>>>>>>>>
COPY ~d5/d5imcut1.baf~ ~weidu_external/%MOD_FOLDER%/compile/d5imcut1.baf~
COMPILE ~weidu_external/%MOD_FOLDER%/compile/d5imcut1.baf~ EVALUATE_BUFFER

<<<<<<<< d5/belt+.baf
IF
	!See([ENEMY])
	CombatCounter(0)
	Global("D5EntarCut","GLOBAL",6)
THEN
	RESPONSE #100
		Dialogue([PC])
END
>>>>>>>>
COPY ~d5/belt+.baf~ ~weidu_external/%MOD_FOLDER%/compile/belt+.baf~
EXTEND_TOP ~BELT.BCS~ ~weidu_external/%MOD_FOLDER%/compile/belt+.baf~

The first has Duke Entar enter and get in a conversation with Liia; the second has Entar leave in a huff; and the third has Imoen (the SoD BDIMOEN version) enter the area if she is not already in the party.

Then I will add a bunch of dialogue to Belt and Liia. (I'm still duplicating the same dialogue for both of them, sue me... anyway here again, the player will never know because the dialogue only triggers once.) And also some lines for Entar and Imoen, and a couple short interjections from Skie in case she is in the party when Entar accuses you of murder.

Spoiler
<<<<<<<< d5/palace+.d
APPEND BELT

IF ~Global("D5KorlaszDone","GLOBAL",1) Global("D5MazeOpen","GLOBAL",0) Global("D5EntarCut","GLOBAL",0)~ BEGIN d5beltkd_0
  SAY ~You have returned! A Flaming Fist messenger has informed us of your success.~
  IF ~Dead("BDKORLAS")~ GOTO d5beltkd_2
  IF ~!Dead("BDKORLAS")~ GOTO d5beltkd_3
END

IF ~Global("D5KorlaszDone","GLOBAL",2) Global("D5MazeOpen","GLOBAL",0)~ BEGIN d5beltkd_1
  SAY ~Tell me, did you find any information about Sarevok or his whereabouts?~
  IF ~!PartyHasItem("D5SCRLSK")~ REPLY ~We have found nothing useful.~ GOTO d5beltkd_5
  IF ~PartyHasItem("D5SCRLSK")~ REPLY ~We found this letter from Sarevok to Korlasz. It mentions an Undercity? A place inside Baldur's Gate? Do you know what he is talking about?~ GOTO d5beltkd_6
END

IF ~~ BEGIN d5beltkd_2
  SAY ~It is a shame that Korlasz felt she had to die. I wonder that a knave like Sarevok can engender such stubborn loyalty...~
  IF ~~ GOTO d5beltkd_4
END

IF ~~ BEGIN d5beltkd_3
  SAY ~Korlasz is in custody. She is, for now, refusing to tell us anything about Sarevok. I wonder that a knave like Sarevok can engender such stubborn loyalty...~
  IF ~~ GOTO d5beltkd_4
END

IF ~~ BEGIN d5beltkd_4
  SAY ~Tell me, did you find any information about Sarevok or his whereabouts?~
  IF ~!PartyHasItem("D5SCRLSK")~ REPLY ~We have found nothing useful.~ GOTO d5beltkd_5
  IF ~PartyHasItem("D5SCRLSK")~ REPLY ~We found this letter from Sarevok to Korlasz. It mentions an Undercity? A place inside Baldur's Gate? Do you know what he is talking about?~ GOTO d5beltkd_6
END

IF ~~ BEGIN d5beltkd_5
  SAY ~Well, you should make sure you scour the crypt, it is our best lead at the moment. Korlasz is an important ally of Sarevok, she is sure to have some information.~
  IF ~~ DO ~SetGlobal("D5KorlaszDone","GLOBAL",2)~ EXIT
END

IF ~~ BEGIN d5beltkd_6
  SAY ~Liia is the history expert here, I will defer to her on this.~
  IF ~~ EXTERN LIIA d5liiakd_6
END

IF ~Global("D5EntarCut","GLOBAL",6)~ BEGIN d5beltkd_7
  SAY ~I apologize for that outburst. Do not worry, he will come around. While his accusation is disturbing, I am sure our explanation is the correct one. What else would it be? For now, please focus on the task at hand: it is imperative that Sarevok be found, and brought to justice. Do not confront him if you can help it. Let us know his location and we can arrange for a squadron of Flaming Fist soldiers to accompany you to detain him. We want him back here alive, if possible. But, even if dead, we can work with that. Just be sure to bring his body back here, so we can resurrect him, or in the worst case just commune with his spirit.~
  IF ~~ DO ~SetGlobal("D5EntarCut","GLOBAL",7)~ GOTO d5beltkd_8
END

IF ~~ BEGIN d5beltkd_8
  SAY ~You can prove Entar wrong, and show your loyalty to the city, by getting this task done.~
  IF ~~ DO ~SetGlobal("D5MazeOpen","GLOBAL",1)~ DO ~AddJournalEntry(~The Hunt for Sarevok
Duke Liia Jannath has given me a clue to where to look for the Undercity. She mentioned passages underground which were specially warded long ago, but apparently the dukes have the power to bypass those wards. She inscribed a rune on my hand, in case I find such a passage. I have been directed to investigate the rumor of an old disused passage to the Undercity inside the Baldur's Gate Thieves' Guild. The dukes asked that I not confront Sarevok, directly, but only find his location and report back so they can send reinforcements. The situation still seems volatile...~,QUEST)~ EXIT
END

IF ~Global("D5EntarCut","GLOBAL",7)~ BEGIN d5beltkd_9
  SAY ~Please do not delay in finding Sarevok, and if you cannot avoid a fight, remember to bring his body back here.~
  IF ~~ EXIT
END

END

APPEND LIIA

IF ~Global("D5KorlaszDone","GLOBAL",1) Global("D5MazeOpen","GLOBAL",0) Global("D5EntarCut","GLOBAL",0)~ BEGIN d5liiakd_0
  SAY ~You have returned! A Flaming Fist messenger has informed us of your success.~
  IF ~Dead("BDKORLAS")~ GOTO d5liiakd_2
  IF ~!Dead("BDKORLAS")~ GOTO d5liiakd_3
END

IF ~Global("D5KorlaszDone","GLOBAL",2) Global("D5MazeOpen","GLOBAL",0)~ BEGIN d5liiakd_1
  SAY ~Tell me, did you find any information about Sarevok or his whereabouts?~
  IF ~!PartyHasItem("D5SCRLSK")~ REPLY ~We have found nothing useful.~ GOTO d5liiakd_5
  IF ~PartyHasItem("D5SCRLSK")~ REPLY ~We found this letter from Sarevok to Korlasz. It mentions an Undercity? A place inside Baldur's Gate? Do you know what he is talking about?~ GOTO d5liiakd_6
END

IF ~~ BEGIN d5liiakd_2
  SAY ~It is a shame that Korlasz felt she had to die. I wonder that a knave like Sarevok can engender such stubborn loyalty...~
  IF ~~ GOTO d5liiakd_4
END

IF ~~ BEGIN d5liiakd_3
  SAY ~Korlasz is in custody. She is, for now, refusing to tell us anything about Sarevok. I wonder that a knave like Sarevok can engender such stubborn loyalty...~
  IF ~~ GOTO d5liiakd_4
END

IF ~~ BEGIN d5liiakd_4
  SAY ~Tell me, did you find any information about Sarevok or his whereabouts?~
  IF ~!PartyHasItem("D5SCRLSK")~ REPLY ~We have found nothing useful.~ GOTO d5liiakd_5
  IF ~PartyHasItem("D5SCRLSK")~ REPLY ~We found this letter from Sarevok to Korlasz. It mentions an Undercity? A place inside Baldur's Gate? Do you know what he is talking about?~ GOTO d5liiakd_6
END

IF ~~ BEGIN d5liiakd_5
  SAY ~Well, you should make sure you scour the crypt, it is our best lead at the moment. Korlasz is an important ally of Sarevok, she is sure to have some information.~
  IF ~~ DO ~SetGlobal("D5KorlaszDone","GLOBAL",2)~ EXIT
END

IF ~~ BEGIN d5liiakd_6
  SAY ~Ah yes. The city's history is quite old. Older than the bricks of these buildings, older than Balduran. There have been rumors that the decaying remains of the original city still lie somewhere beneath us.~
  IF ~~ GOTO d5liiakd_7
END

IF ~~ BEGIN d5liiakd_7
  SAY ~Of course the rumors also say the old city is exceedingly dangerous. Who knows what evils might be buried down there? The truth is, as dukes of the city we have a responsibility to protect our citizens from dangers below. So, we were told that our predecessors magically warded any known passages. And, being unusable, they were mostly forgotten.~
  IF ~~ GOTO d5liiakd_8
END

IF ~~ BEGIN d5liiakd_8
  SAY ~I don't know what passage Sarevok found, or how he bypassed the wards. Maybe he found a route nobody ever knew about. I can only guess that he has found some source of power there - that could explain his extraordinary success in his schemes. In my lifetime, the only rumors I have heard of such things is of a blocked-off area in the thieves' guild, inaccessible even to its own members. That certainly conforms to the stories of those ancient warrens.~
  IF ~~ GOTO d5liiakd_9
END

IF ~~ BEGIN d5liiakd_9
  SAY ~We dare not send troops in force - Angelo was quite cruel in dealing with the guild, and it has created a volatile situation. I fear reprisals if we were to send Flaming Fist soldiers into the heart of their domain. Especially given the rumors from the north, it is important to promote unity and normalcy, not risk further strife. Better that an independent agent investigate the rumored passage. Here, I will apply a magical rune on your hand. Sort of a 'key to the city.' If you can find a way to the Undercity, this tattoo will allow you to traverse it.~
  IF ~~ DO ~SetGlobal("D5EntarCut","GLOBAL",1)~ EXIT
END

IF ~Global("D5EntarCut","GLOBAL",3)~ BEGIN d5liiakd_10
  SAY ~Duke Silvershield! You're back! How are you feeling?~
  IF ~~ EXTERN BDENTAR d5entarkd_1
END

IF ~Global("D5EntarCut","GLOBAL",3)~ BEGIN d5liiakd_11
  SAY ~<CHARNAME>? <PRO_HESHE> just returned from a mission for us- ~
  IF ~~ EXTERN BDENTAR d5entarkd_2
END

IF ~Global("D5EntarCut","GLOBAL",3)~ BEGIN d5liiakd_12
  SAY ~Entar, you have been... er, away, these recent days. You are not aware of the threat: doppelgangers, posing as citizens, were infiltrating parts of the city. It was all part of Sarevok's plan. The iron crisis, the bandit raids, the Seven Suns and the Iron Throne - it was Sarevok all along.~
  IF ~~ EXTERN BDENTAR d5entarkd_3
END

IF ~Global("D5EntarCut","GLOBAL",3)~ BEGIN d5liiakd_13
  SAY ~Entar... they killed a lot of people. Listen, you are not fully caught up on the situation. Resurrection takes a lot out of you. And this isn't your first. You need rest. The situation here is in hand. We have a lead on Sarevok's whereabouts. <CHARNAME> is going to find him, and report back to use so we can send the Flaming Fist to bring him to justice. Once he is in our custody, all will be made clear. Now please, go rest.~
  IF ~~ EXTERN BDENTAR d5entarkd_4
END

IF ~Global("D5EntarCut","GLOBAL",3)~ BEGIN d5liiakd_14
  SAY ~Entar, please. You are back with us. Duke Eltan is on the mend. Emissaries have already been dispatched to sue for peace with Amn. The threat to the city has been eliminated - thanks in no small part to Charname. Now please, get some rest.~
  IF ~~ DO ~SetGlobal("D5EntarCut","GLOBAL",4)~ JOURNAL ~Duke Silvershield's Accusation
Duke Entar Silvershield was resurrected and has returned to the Ducal Palace after having been murdered by agents of Sarevok. He appeared quite out of sorts, making angry accusations that *I* had murdered him. That of course is not possible, and the doppelganger situation was explained to him. Still, he seems adamant that his attacker was no doppelganger. I cannot say why he is so sure. Maybe after he has rested and fully recovered, he will see reason.~ EXIT
END

IF ~Global("D5EntarCut","GLOBAL",7) !Global("D5ImoenPalace","GLOBAL",2)~ BEGIN d5liiakd_15
  SAY ~Please do not delay in finding Sarevok, and if you cannot avoid a fight, remember to bring his body back here.~
  IF ~~ EXIT
END

IF ~Global("D5ImoenPalace","GLOBAL",2)~ BEGIN d5liiakd_16
  SAY ~Before you go, <CHARNAME>, a small surprise. An old companion of yours would like to say hello.~
  IF ~!Dead("IMOEN") GlobalLT("D5ImoenChap","GLOBAL",2)~ EXTERN BDIMOEN d5imoenkd_0
  IF ~!Dead("IMOEN") GlobalGT("D5ImoenChap","GLOBAL",1) GlobalLT("D5ImoenChap","GLOBAL",5)~ EXTERN BDIMOEN d5imoenkd_1
  IF ~!Dead("IMOEN") GlobalGT("D5ImoenChap","GLOBAL",4)~ EXTERN BDIMOEN d5imoenkd_2
  IF ~Dead("IMOEN")~ EXTERN BDIMOEN d5imoenkd_3
END

IF ~Global("D5ImoenPalace","GLOBAL",2)~ BEGIN d5liiakd_17
  SAY ~Imoen here is a very interesting young woman. It has been enjoyable getting to know her. She told me all about how you both came to be raised in Candlekeep. I believe that beyond her childlike exuberance is an unusually sharp mind.~
  IF ~~ EXTERN BDIMOEN d5imoenkd_5
END

IF ~Global("D5ImoenPalace","GLOBAL",2)~ BEGIN d5liiakd_18
  SAY ~We shall see. There is certainly a depth of... potential in you that most cannot see. I think I would very much like to explore that together. In the meantime, I think it is best that close associates of <CHARNAME> stay here with us, under the watch of our guards. Until the machinations of Sarevok are well and truly ended, we would do well to keep Imoen secure.~
  IF ~~ REPLY ~We are going after Sarevok now. Imoen, why don't you join me, and help me take him down for good?~ EXTERN BDIMOEN d5imoenkd_6
  IF ~~ REPLY ~That makes sense.~ GOTO d5liiakd_19
  IF ~~ REPLY ~Whatever. Imoen is not my concern.~ GOTO d5liiakd_19
END

IF ~Global("D5ImoenPalace","GLOBAL",2)~ BEGIN d5liiakd_19
  SAY ~There are many moving parts here. You have your mission, and Imoen has hers. Once you know Sarevok's location, we can discuss the matter further. Now go with haste, please. It would not do well to allow Sarevok to spend too much time fortifying whatever hole he has fled to.~
  IF ~~ DO ~SetGlobal("D5ImoenPalace","GLOBAL",3)~ JOURNAL ~Imoen's Return
I have not seen Imoen in some time, but she has apparently made her own way to the Ducal Palace and befriended Duke Liia Jannath. Duke Liia seems interested in helping Imoen discover her full potential. While I search out Sarevok to put an end to his schemes at last, Imoen will stay at the palace under the dukes' protection.~ EXIT
END

END

APPEND BDENTAR

IF ~Global("D5EntarCut","GLOBAL",3)~ BEGIN d5entarkd_0
  SAY ~What in the Abyss is going on here?? Do you know who you are talking to?~
  IF ~~ EXTERN LIIA d5liiakd_10
END

IF ~Global("D5EntarCut","GLOBAL",3)~ BEGIN d5entarkd_1
  SAY ~Never mind that! I want to know what this person is doing here in the palace, unguarded!~
  IF ~~ EXTERN LIIA d5liiakd_11
END

IF ~Global("D5EntarCut","GLOBAL",3)~ BEGIN d5entarkd_2
  SAY ~A mission?! For you? How are you letting this happen? Don't you understand - Charname murdered me!~
  IF ~!IsValidForPartyDialogue("SKIE")~ EXTERN LIIA d5liiakd_12
  IF ~IsValidForPartyDialogue("SKIE") Alignment(Player1,MASK_GOOD)~ EXTERN SKIE d5skiekd_0
  IF ~IsValidForPartyDialogue("SKIE") Alignment(Player1,MASK_GENEUTRAL)~ EXTERN SKIE d5skiekd_0
  IF ~IsValidForPartyDialogue("SKIE") Alignment(Player1,MASK_EVIL)~ EXTERN SKIE d5skiekd_1
END

IF ~Global("D5EntarCut","GLOBAL",3)~ BEGIN d5entarkd_3
  SAY ~Nonsense! Do you think a slimy hissing doppelganger could kill me?~
  IF ~~ EXTERN LIIA d5liiakd_13
END

IF ~Global("D5EntarCut","GLOBAL",3)~ BEGIN d5entarkd_4
  SAY ~Yes, indeed, all will be made very clear. I tell you, that was no doppelganger. I know what I saw. This is not over!~
  IF ~~ EXTERN LIIA d5liiakd_14
END

END

APPEND SKIE

IF ~Global("D5EntarCut","GLOBAL",3)~ BEGIN d5skiekd_0
  SAY ~What? Daddy no! You don't understand - Charname is my friend. HESHE has been with me. There's no way HESHE could have killed you we were nowhere near the estate.~
  IF ~~ EXTERN LIIA d5liiakd_12
END

IF ~Global("D5EntarCut","GLOBAL",3)~ BEGIN d5skiekd_1
  SAY ~Is... is this true? Did you murder my dad? Wait, when could that even have happened?~
  IF ~~ EXTERN LIIA d5liiakd_12
END

END

APPEND BDIMOEN

IF ~Global("D5ImoenPalace","GLOBAL",2)~ BEGIN d5imoenkd_0
  SAY ~Heya <CHARNAME>! It's been a while. I hear you've been having lots of adventures, without me. That's fine. Really! They sound like amazing fun. Anyway, I've had a bit of a journey myself. I was back at Candlekeep, you know, and there was some real creepy stuff going on there. People changing faces. Most of the monks are so clueless, they had no idea. But I did! Only, I didn't really know what to do about it. And then I heard you were back! But you got arrested before I could see you. That wasn't very smart of you!~
  IF ~~ GOTO d5imoenkd_4
END

IF ~Global("D5ImoenPalace","GLOBAL",2)~ BEGIN d5imoenkd_1
  SAY ~Heya <CHARNAME>! It's been a while. I hear you've been having lots of adventures, without me. That's fine. Really! I hung around Beregost and the Friendly Arm Inn for a while - Bentley has some really great stories, from when he was an adventurer. Only, I got bored pretty quick, you know? So, once news reached us of the murders at Candlekeep, I figured you probably got yourself into trouble and needed me to come help! It wasn't hard to see that the Iron Throne was probably at the heart of everything that was going on, so you would probably come to the city.~
  IF ~~ GOTO d5imoenkd_4
END

IF ~Global("D5ImoenPalace","GLOBAL",2)~ BEGIN d5imoenkd_2
  SAY ~Heya <CHARNAME>! Have you taken down Sarevok yet, or what? Heh, just jokin'. I've been, you know, hanging around the city. Got kind of bored, to be honest. But then I met this halfling, and she can get into all kinds of places, and - er, maybe we shouldn't talk about that here. I'll tell you more about it later, I guess.~
  IF ~~ GOTO d5imoenkd_4
END

IF ~Global("D5ImoenPalace","GLOBAL",2)~ BEGIN d5imoenkd_3
  SAY ~Heya <CHARNAME>! It's me! I was dead. I mean, mostly dead? I'm not *exactly* sure what happened, but I remember this nice cleric was talking to me, said he was a miracle worker (I think that means cleric) and he said there's a big difference between mostly dead and all dead, and I guess I was just mostly dead. It sounds a bit weird to me, but, here I am!~
  IF ~~ GOTO d5imoenkd_4
END

IF ~Global("D5ImoenPalace","GLOBAL",2)~ BEGIN d5imoenkd_4
  SAY ~Anyway, I eventually heard about the doppelganger attack at the coronation, and tracked you down here! And that's how I met Duke Liia. She's super nice!~
  IF ~~ EXTERN LIIA d5liiakd_17
END

IF ~Global("D5ImoenPalace","GLOBAL",2)~ BEGIN d5imoenkd_5
  SAY ~Duke Liia says she thinks I can do magic! I mean, not just do it, but that I could be really good at it!~
  IF ~~ EXTERN LIIA d5liiakd_18
END

IF ~Global("D5ImoenPalace","GLOBAL",2)~ BEGIN d5imoenkd_6
  SAY ~Aw, I really want to! I would love to give him a good smack when he's not looking. But Liia thinks it would be a bad idea. Something about 'not committing all one's resources in times of chaos.' I dunno, it made sense at the time. Anyway, she's teaching me magic, and Liia is, like, the BEST at magic. Just think how much stronger I'll be once I'm properly instructed!~
  IF ~~ EXTERN LIIA d5liiakd_19
END

IF ~Global("D5ImoenPalace","GLOBAL",3) !Dead("SAREVOK")~ BEGIN d5imoenkd_7
  SAY ~Heya. Do you believe this place? Liia gave me a room of my own. It's WAY nicer than anything in Candlekeep. The food's a lot better too. ...I really wanted to be traveling with you these past days. But, it's okay, I don't hold it against you. Liia says I've got to walk my own path for a while, and I think I agree with her. Good luck with Sarevok!~
  IF ~~ REPLY ~Thanks Imoen. I'm glad you are okay. Don't get into too much trouble here in the palace, okay?~ GOTO d5imoenkd_8
  IF ~~ REPLY ~I can't believe you aren't coming along to help.~ GOTO d5imoenkd_9
END

IF ~Global("D5ImoenPalace","GLOBAL",3) !Dead("SAREVOK")~ BEGIN d5imoenkd_8
  SAY ~Oh, don't worry, I'll get into just the right amount of trouble. I'm an expert.~
  IF ~~ EXIT
END

IF ~Global("D5ImoenPalace","GLOBAL",3) !Dead("SAREVOK")~ BEGIN d5imoenkd_9
  SAY ~Didn't you hear me, ya bufflehead? Not everything is about you!~
  IF ~~ EXIT
END

IF ~Global("D5ImoenPalace","GLOBAL",3) Dead("SAREVOK")~ BEGIN d5imoenkd_10
  SAY ~You got him! Great job! Now maybe things can get back to normal.~
  IF ~~ EXIT
END

END

REPLACE_STATE_TRIGGER DENKOD 0 ~Global("D5MazeOpen","GLOBAL",99)~

APPEND DENKOD

IF ~Global("D5MazeOpen","GLOBAL",1) !Dead("SAREVOK")~ BEGIN d5denkod_0
  SAY ~Here now, who are you?? I warn you we have very little tolerance for trespassers at the moment!~
  IF ~~ REPLY ~Well, I have little tolerance for thieves who get in my way. Draw steel!~ DO ~Enemy()~ DO ~SetGlobal("AttackedThieves","GLOBAL",1)~ EXIT
  IF ~~ REPLY ~Don't worry, we are not here to attack you. This might sound odd but, is there are area here that you cannot access?~ GOTO d5denkod_1
END

IF ~Global("D5MazeOpen","GLOBAL",1) !Dead("SAREVOK")~ BEGIN d5denkod_1
  SAY ~Well. That is an odd question. And I have an odder answer, because I think there might be such a place.~
  IF ~~ GOTO d5denkod_2
END

IF ~Global("D5MazeOpen","GLOBAL",1) !Dead("SAREVOK")~ BEGIN d5denkod_2
  SAY ~Sometimes, especially when I have a Potion of Perception in my system, out of the corner of my eye, I have the most fleeting idea that I saw something over there. A staircase, maybe? But then I look, and of course there is nothing. Just a trick of the light, for sure.~
  IF ~~ REPLY ~What, you mean that staircase?~ GOTO d5denkod_3
END

IF ~Global("D5MazeOpen","GLOBAL",1) !Dead("SAREVOK")~ BEGIN d5denkod_3
  SAY ~What staircase.~
  IF ~~ REPLY ~That staircase right there.~ GOTO d5denkod_4
END

IF ~Global("D5MazeOpen","GLOBAL",1) !Dead("SAREVOK")~ BEGIN d5denkod_4
  SAY ~Friend, I have no idea what you are talking... wait. Are you telling me you see a staircase there?~
  IF ~~ REPLY ~Yes, right there, a staircase going down into the basement. It must be the one you just mentioned.~ GOTO d5denkod_5
END

IF ~Global("D5MazeOpen","GLOBAL",1) !Dead("SAREVOK")~ BEGIN d5denkod_5
  SAY ~Well this is getting odder and odder, friend, because this building has no basement. There is naught beneath our feet but earth. The sewers don't even reach this corner of the city.~
  IF ~~ REPLY ~I plainly see stairs going down. And if it is all the same to you, I am going to go down there.~ GOTO d5denkod_6
END

IF ~Global("D5MazeOpen","GLOBAL",1) !Dead("SAREVOK")~ BEGIN d5denkod_6
  SAY ~Go down... you know what, you are acting very weird, and I just don't have time for it right now. If you don't start making sense then I am going to insist you leave.~
  IF ~~ DO ~AddJournalEntry(~The Hunt for Sarevok
I have discovered a staircase inside the Thieves' Guild which leads underground. The Past it is an old maze. From the corridors I can hear the sounds of shuffling bones and shifting slimes. I should be on guard - wherever this path leads, it is clearly not meant to be easy to reach.~,QUEST)~ EXIT
END

IF ~Global("D5MazeOpen","GLOBAL",2)~ BEGIN d5denkod_7
  SAY ~By Helm's bollocks! Where were you off to just then?? I saw you here with me, and then you were nowhere at all. But no trace of teleporting or dimension-dooring! And you weren't invisible neither - I felt all around for you! Felt reeeal hard. Mask perserve us, that's a neat trick! I don't... eh... don't suppose you can teach it to me, could you?~
  IF ~~ EXIT
END

END
>>>>>>>> 
COPY ~d5/palace+.d~ ~weidu_external/%MOD_FOLDER%/compile/palace+.d~
COMPILE ~weidu_external/%MOD_FOLDER%/compile/palace+.d~

That all goes into a single .D file, because various lines from one person EXTERN out to added lines for another person, and the variables that represent the new line numbers need to be resolved at the same time, in a single COMPILE command.

Next I will modify the area script for the Thieves' Guild. I understand the issues mentioned about Angelo having come down hard on the thieves, but I don't want the Guild to be completely empty, so I will edit the script so that only named thieves get removed in chapter 7. Now, a handful of nameless "Rogue" thieves will still be present in the guild, and Denkod will appear and speak to Charname when you enter. And the stairs down to the maze will be enabled by my new global variables instead of the original ones.

Spoiler
ACTION_IF (FILE_EXISTS_IN_GAME ~%bg1_area_prefix%0153.bcs~) BEGIN
  COPY_EXISTING ~%bg1_area_prefix%0153.bcs~ ~override~
	DECOMPILE_AND_PATCH BEGIN
		SPRINT textToReplace ~\(Global("DukeThanks","GLOBAL",1)\)~
		COUNT_REGEXP_INSTANCES ~%textToReplace%~ num_matches
		PATCH_IF (num_matches > 0) BEGIN
			REPLACE_TEXTUALLY ~%textToReplace%~ ~Global("D5MazeOpen","GLOBAL",1)~
			PATCH_PRINT ~Patching: %num_matches% matches found in %SOURCE_FILESPEC% for REPLACE_TEXTUALLY: %textToReplace%~
		END ELSE BEGIN
			PATCH_WARN ~WARNING: could not find %textToReplace% in %SOURCE_FILESPEC%~
		END
		SPRINT textToReplace ~\(Global("DukeThanks","GLOBAL",0)\)~
		COUNT_REGEXP_INSTANCES ~%textToReplace%~ num_matches
		PATCH_IF (num_matches > 0) BEGIN
			REPLACE_TEXTUALLY ~%textToReplace%~ ~Global("D5MazeOpen","GLOBAL",0)~
			PATCH_PRINT ~Patching: %num_matches% matches found in %SOURCE_FILESPEC% for REPLACE_TEXTUALLY: %textToReplace%~
		END ELSE BEGIN
			PATCH_WARN ~WARNING: could not find %textToReplace% in %SOURCE_FILESPEC%~
		END
		SPRINT textToReplace ~\(!Exists("DENKOD")\)~
		COUNT_REGEXP_INSTANCES ~%textToReplace%~ num_matches
		PATCH_IF (num_matches > 0) BEGIN
			REPLACE_TEXTUALLY ~%textToReplace%~ ~!InMyArea("DENKOD")~
			PATCH_PRINT ~Patching: %num_matches% matches found in %SOURCE_FILESPEC% for REPLACE_TEXTUALLY: %textToReplace%~
		END ELSE BEGIN
			PATCH_WARN ~WARNING: could not find %textToReplace% in %SOURCE_FILESPEC%~
		END
		SPRINT textToReplace ~\(!Dead("DENKOD")\)~
		COUNT_REGEXP_INSTANCES ~%textToReplace%~ num_matches
		PATCH_IF (num_matches > 0) BEGIN
			REPLACE_TEXTUALLY ~%textToReplace%~ ~~
			PATCH_PRINT ~Patching: %num_matches% matches found in %SOURCE_FILESPEC% for REPLACE_TEXTUALLY: %textToReplace%~
		END ELSE BEGIN
			PATCH_WARN ~WARNING: could not find %textToReplace% in %SOURCE_FILESPEC%~
		END
		SPRINT textToReplace ~\(ApplySpellRES("ohdest","Rogue_\).+$~
		COUNT_REGEXP_INSTANCES ~%textToReplace%~ num_matches
		PATCH_IF (num_matches > 0) BEGIN
			REPLACE_TEXTUALLY ~%textToReplace%~ ~~
			PATCH_PRINT ~Patching: %num_matches% matches found in %SOURCE_FILESPEC% for REPLACE_TEXTUALLY: %textToReplace%~
		END ELSE BEGIN
			PATCH_WARN ~WARNING: could not find %textToReplace% in %SOURCE_FILESPEC%~
		END
	END
  BUT_ONLY
END

<<<<<<<< d5/area0153.baf
IF
	Allegiance("DENKOD",[EVILCUTOFF])
THEN
	RESPONSE #100
		SetGlobal("AttackedThieves","GLOBAL",1)
END
>>>>>>>>
COPY ~d5/area0153.baf~ ~weidu_external/%MOD_FOLDER%/compile/%bg1_area_prefix%0153.baf~

ACTION_IF (FILE_EXISTS_IN_GAME ~%bg1_area_prefix%0153.bcs~) BEGIN
  EXTEND_TOP ~%bg1_area_prefix%0153.bcs~ ~weidu_external/%MOD_FOLDER%/compile/%bg1_area_prefix%0153.baf~
END

ACTION_IF !(FILE_EXISTS_IN_GAME ~%bg1_area_prefix%0153.bcs~) BEGIN
  COMPILE ~weidu_external/%MOD_FOLDER%/compile/%bg1_area_prefix%0153.baf~
END

Finally, for now at least, I will remove Voleta Stiletto from the entrance to the maze. The original dialogue - that Sarevok passed by moments earlier and ran her through - make no sense anymore. I will think it over... maybe it would be best to leave her there, injured at the entrance to the maze, but change her dialogue to talk about being injured by the undead in the maze. It only wouldn't make much sense because the maze should not be accessible to anyone without the Dukes' rune. Need to think about it a bit.

Spoiler
COPY_EXISTING ~voleta.cre~ ~override~
	WRITE_ASCII 0x280 ~VOLETA~ #20
IF_EXISTS BUT_ONLY

<<<<<<<< d5/area0146.baf
IF
	GlobalGT("D5MazeOpen","GLOBAL",0)
	Global("D5VoletaGone","GLOBAL",0)
THEN
	RESPONSE #100
		ActionOverride("VOLETA",DestroySelf())		
		SetGlobal("D5VoletaGone","GLOBAL",1)
END

IF
	GlobalGT("D5MazeOpen","GLOBAL",1)
THEN
	RESPONSE #100
		SetGlobal("D5MazeOpen","GLOBAL",2)
END
>>>>>>>>
COPY ~d5/area0146.baf~ ~weidu_external/%MOD_FOLDER%/compile/%bg1_area_prefix%0146.baf~

ACTION_IF (FILE_EXISTS_IN_GAME ~%bg1_area_prefix%0146.bcs~) BEGIN
  EXTEND_TOP ~%bg1_area_prefix%0146.bcs~ ~weidu_external/%MOD_FOLDER%/compile/%bg1_area_prefix%0146.baf~
END

ACTION_IF !(FILE_EXISTS_IN_GAME ~%bg1_area_prefix%0146.bcs~) BEGIN
  COMPILE ~weidu_external/%MOD_FOLDER%/compile/%bg1_area_prefix%0146.baf~
END

And, that's it for Part 5! Basically, as I said, just a lot of exposition and moving pieces into place for the endgame. Imoen is in the palace, and we are on the way to confronting Sarevok. In fact this right here could be a fully-functioning mod. We have stretched out the end of BG1 and added some content and improved the narrative. Just point the start of SoD to the palace assassination scene instead of Korlasz’ dungeon, and job done! 

But, Entar has claimed that someone looking just like Charname brutally murdered him. :hm:  We want to come back and address this mystery after dealing with Sarevok.

So, we will do a bit more:

  • Make sure the game doesn't end when Sarevok dies
  • Write some closeout dialogues with the dukes, and arrange for the new transition to SoD
  • Set up the cut scene for the optional transition directly to SoA, and connect it to the SoD abduction scene
  • Possibly, modify the very end of SoD itself
  • Work on compatibility with EndlessBG1
Edited by subtledoctor
Link to comment
Posted (edited)

Part 6: It's Not the End of the World

This one came together extremely quickly, largely because it was already done in EndlessBG1. I just borrowed two bits of code to 1) prevent the game from ending when Sarevok dies, and 2) play the original BG1 game-end video when the combat ends:

Spoiler
ACTION_IF GAME_IS ~bgee~ THEN BEGIN
  COPY_EXISTING ~%Undercity_TempleofBhaal%.BCS~ ~override~
	DECOMPILE_AND_PATCH BEGIN
		SPRINT textToReplace ~Dead("Sarevok")[%newline%]*GlobalLT("EndOfBG1","GLOBAL",2)~
		COUNT_REGEXP_INSTANCES ~%textToReplace%~ num_matches
		PATCH_IF (num_matches > 0) BEGIN
			REPLACE_TEXTUALLY ~%textToReplace%~ ~False()~
			PATCH_PRINT ~Patching: %num_matches% matches found in %SOURCE_FILESPEC% for REPLACE_TEXTUALLY: %textToReplace%~
		END ELSE BEGIN
			PATCH_WARN ~WARNING: could not find %textToReplace% in %SOURCE_FILESPEC%~
		END
	END
  BUT_ONLY
END

ACTION_IF GAME_IS ~eet~ THEN BEGIN
  COPY_EXISTING ~%Undercity_TempleofBhaal%.BCS~ ~override~
	DECOMPILE_AND_PATCH BEGIN
		SPRINT textToReplace ~Dead("Sarevok")[%newline%]*Global("EndOfBG1","GLOBAL",0)~
		COUNT_REGEXP_INSTANCES ~%textToReplace%~ num_matches
		PATCH_IF (num_matches > 0) BEGIN
			REPLACE_TEXTUALLY ~%textToReplace%~ ~False()~
			PATCH_PRINT ~Patching: %num_matches% matches found in %SOURCE_FILESPEC% for REPLACE_TEXTUALLY: %textToReplace%~
		END ELSE BEGIN
			PATCH_WARN ~WARNING: could not find %textToReplace% in %SOURCE_FILESPEC%~
		END
	END
  BUT_ONLY
END

<<<<<<<< .../ar0125-et.baf
IF
	Dead("Sarevok")  // Armored Figure (Sarevok)
	OR(2)
		Dead("GALDOR")   //Angelo
		!Exists("GALDOR")   //Angelo
	OR(2)
		Dead("SEMAJ")    // Semaj
		!Exists("SEMAJ")    // Semaj
	OR(2)
		Dead("Tazok")    //Tazok
		!Exists("Tazok")    //Tazok
	Global("C#st_BG1End","GLOBAL",0)
THEN
	RESPONSE #100
		SetInterrupt(FALSE)
		SaveGame(0)
		SmallWait(1)
		ClearAllActions()
		StartCutSceneMode()
		SetGlobal("C#st_BG1End","GLOBAL",1)
		SetGlobal("SarevokBehavior","GLOBAL",5)
		TriggerActivation("Door0123",TRUE)
		Wait(2)
		FadeToColor([30.0],0)
		Wait(2)
		StartMovie("ENDMOVIE")
		FadeFromColor([30.0],0)
		EndCutSceneMode()
		SetInterrupt(TRUE)
END
>>>>>>>>
COPY ~.../ar0125-et.baf~ ~weidu_external/%MOD_FOLDER%/compile/ar0125-et.baf~
EXTEND_TOP ~%Undercity_TempleofBhaal%.BCS~ ~weidu_external/%MOD_FOLDER%/compile/ar0125-et.baf~ EVALUATE_BUFFER

The only other thing I wanted to add for this fight is to disable the exit from the temple of Bhaal when you enter, and reenable it after you defeat Sarevok:

Spoiler
<<<<<<<< d5/area0125.baf
IF
	!Dead("SAREVOK")
	Global("D5TempleLock","GLOBAL",0)
THEN
	RESPONSE #100
		TriggerActivation("Door0123",FALSE)
		SetGlobal("D5TempleLock","GLOBAL",1)
END

IF
	Dead("SAREVOK")
	Global("D5TempleLock","GLOBAL",1)
THEN
	RESPONSE #100
		TriggerActivation("Door0123",TRUE)
		SetGlobal("D5TempleLock","GLOBAL",2)
		AddJournalEntry(~The Hunt for Sarevok
Sarevok has been defeated once and for all. He had prepared some kind of ritual in an old temple of Bhaal, trapping me there and hoping to gain power from my death somehow. Thankfully it was he who died. The ritual must have affected him instead, because his body disintegrated in an obviously magical way. I do not know what to make of that. In any event, I should report what happened to Dukes Belt and Liia. Maybe now that Sarevok is gone, things on the Sword Coast can go back to normal.~,QUEST)
END
>>>>>>>>
COPY ~d5/area0125.baf~ ~weidu_external/%MOD_FOLDER%/compile/%bg1_area_prefix%0125.baf~
EXTEND_TOP ~%bg1_area_prefix%0125.bcs~ ~weidu_external/%MOD_FOLDER%/compile/%bg1_area_prefix%0125.baf~

The idea is, the dukes quite sensibly told you not to engage Sarevok in combat without any backup. They wanted him alive, or at the very least they wanted his body. But Sarevok laid a trap and locked you in the temple with him. He has set up the arena beforehand such that he can absorb your divine essence and double the strength of his own. So you are forced to fight him, and when he dies his body disappears in a cloud of golden particles.

Now you will go back to the dukes to report your success... but you went fairly directly against their orders (even if through no fault of your own), and you don't have the body. So you are a hero... but they are not going to be very happy with you. That tension will set the stage for the final dialogues and cut scenes as the game moves to the next chapter.

Edited by subtledoctor
Link to comment
Posted (edited)

Another conundrum: I want to get across in dialogue that the dukes are grappling in real-time with the contents of Sarevok's diary. Alaundo's prophecy did not specify a time when it would occur, only "when Bhaal's bastard children come of age." This has not been on anyone's front burner; but the realization that Sarevok is a Bhaalspawn means that this prophesied era is suddenly upon them. There are a score of such children, or several score - they could be anywhere! (Dun dun dun!) The prophesy says their conflict will unfold in the Sword Coast, so the dukes of Baldur's Gate should be extremely concerned about their city. The threat of Sarevok, in other words, goes well beyond the man himself and his schemes - the dukes are now realizing that the greater threat by far is what Sarevok's existence portends.

Spoiler
Quote

 @70020  = ~[Liia] I do not know... Since Sarevok's attack I have immersed myself in research about Bhaal's actions during the Time of Troubles, and the prophecies surrounding Sarevok and others of his ilk. Sarevok was not alone - there are scores of these... Bhaal-spawn... in the world. Prophecy holds that they will converge on the Sword Coast. Alaundo did not predict when it would happen... but what if Sarevok's actions have lit the flame that draws these beings to us, with chaos in their wake?~
 @70021  = ~This crusade in the north - do you think it is unrelated? Coincidental? Its leader, Caelar Argent... she is from a well-known family, but who is to say what may have happened. What if the concerns inside our city and outside it are connected? I fear the peril faced by our city has not ended, but will only intensify.~

This is great moment for Charname to pipe up and volunteer "hey, so just to show I am being fully honest with you guys, I got this letter from my foster-father, who found me as a baby in a temple of Bhaal at the same time Sarevok was born..." But how would the dukes respond to that? How would that change how they see you - especially given that the ultimate result has to be the same, with you accompanying their army in a place of pride, marching out to challenge the Crusade?

At the same time, Charname might very well want to keep that a secret! If it was me I surely would not tell anyone. But SoD seems to operate on the assumption that everyone knows about you. I really dislike that.

This one dialogue between Charname, Belt, Liia, and Entar is where that has to play out. And whether you disclose it or not, you still have to end up with a choice between marching against the Crusade, or investigating Entar's report that his killer had your face. Basically, the scene has to get railroaded to identical optional outcomes... but man, that is a BIG choice to incorporate while still getting to the same place(s) in the end.

Thinking about it now, it is kind of shocking that the games never wrestled with this. You never have an option to disclose it, or keep it secret, or face any consequences either way. I suppose that wasn't very noticeable when the first game ended in a cut scene in the final battle, and the second game opened with you kidnapped in a dungeon by someone who knows all about you. But now, if we are to actually deal with the fallout from Sarevok's scheme, on-screen... this becomes rather important.

Edited by subtledoctor
Link to comment
On 4/5/2024 at 10:47 PM, subtledoctor said:

Cool, that would be helpful. I see in the area script that most of the occupants of the guild are set to disappear in chapter 7. But neither Black Lily nor Denkod has anything to say about it, and in my recent playthrough I did not meet anyone who gave more information about it. It is a nice enough plot point, but if the game does not actually pr

esent it to players, then what is the use of it?

I don't really like the idea that the guild has been completely eliminated. (And after all Denkod, Black Lily, and Voleta Stiletto are still there.) So I might reintroduce some nameless thieves to the area, just to have bodies there. I am going to write out a small conversation with Denkod, and if the player gets needlessly murderous and attacks him, I want others around to help him.

Here we go :

Chapter-7-thieves-guild-1.jpg

Chapter-7-thieves-guild-2.jpg

Chapter-7-thieves-guild-3.jpg

Chapter-7-thieves-guild-4.jpg

Chapter-7-thieves-guild-5.jpg

Link to comment

I read that more as the Flaming Fist putting pressure on the guild and having some success, with some killed and jailed members and many others going dark and waiting for things to calm down (so... standard operation, kind of)

Not really the same thing as the guild disbanding or being destroyed.

Link to comment

I think it’s fine. What I have set up in step 5 leaves some thieves in the Guild, but not as many, and the ones named in those dialogues (Alatos, Narlen, Rededge, etc.) are no longer there. Just Denkod, Lily, and a skeleton crew of nameless thieves. It fits the narrative while allowing the Thieves’ Guild location  to remain, you know, the Thieves’ Guild. 

I have to get this thing done, at least a playable beta. It is taking up time I should be putting toward other projects. I am writing up the dialogue in step 7, and I have looked at how EndlessBG1 handles the transition to SoD. I should be able to use the same technique, and make it compatible, without much trouble. I will even support optional EndlessBG1 components like the hero tribute cut scene - though, that will be a bit more nuanced with this mod. 

Link to comment
1 hour ago, mickabouille said:

I read that more as the Flaming Fist putting pressure on the guild and having some success, with some killed and jailed members and many others going dark and waiting for things to calm down (so... standard operation, kind of)

Not really the same thing as the guild disbanding or being destroyed.

"The guild is all but lost to the Flaming Fist." line seems to imply more than some success.

Link to comment
24 minutes ago, subtledoctor said:

I think it’s fine. What I have set up in step 5 leaves some thieves in the Guild, but not as many, and the ones named in those dialogues (Alatos, Narlen, Rededge, etc.) are no longer there. Just Denkod, Lily, and a skeleton crew of nameless thieves. It fits the narrative while allowing the Thieves’ Guild location  to remain, you know, the Thieves’ Guild. 

I have to get this thing done, at least a playable beta. It is taking up time I should be putting toward other projects. I am writing up the dialogue in step 7, and I have looked at how EndlessBG1 handles the transition to SoD. I should be able to use the same technique, and make it compatible, without much trouble. I will even support optional EndlessBG1 components like the hero tribute cut scene - though, that will be a bit more nuanced with this mod. 

All good then. 🙂

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...