Jump to content
Sign in to follow this  

ToB: How the game tracks the PC's corruption

Recommended Posts

In the final dialogue with the solar (FINSOL01.dlg), the solar comments on the PC's alignment before his/her possible ascending to godhood, judging it into "evil", "not specified", and "good". Also, this is the same trigger the game uses to definde whether the Pocket Plane Challenges are for a "good" or "evil" behaving PC, and also for the ending it shows.

So, if you are designing an NPC who would not object to the actions the PC did to obtain the negative judgment, but you want him to react to the PC being an evil god, it is probably sufficient to include different interjections at the ascending dialogue and /or provide different epilogues in case the PC got corrupted using the triggers as used in the final solar's dialogue (as listed below).

But, if your NPC is a paladin or any other personality who you would wish to react to the ongoing corruption, the game provides triggers for that, too, although it is a bit more complex - unless you can live with a small disadvantage. This is what the game uses for it:

There exist two counters in ToB. The one used for tracking the PC's corruption is "PPEvilChoices", but there is also an (unused) "PPGoodChoices". Either of them is incremented at the same instance, so both could be used for tracking, theoretically.

These tracking variables are incremented after each of the Pocket Plane Challenges, but it's not the behavior in the challenges, but PC responses in certain dialogues that trigger this.

So, we have another set of tracking variables that define, whether the finished challenge will result into an increase of "PPEvilChoices" or "PPGoodChoices".

In the following, I will list the triggers I found and where they are set, sorted by the challenge it is used for:

First PP Challenge
For the first challenge, the game uses the PC's alignment and/or reputation points. So:

  • "PPEvilChoices" +1, if for evil alignment OR rep < 8
  • "PPGoodChoices" + 1, if not evil alignment and rep > 7


Second PP Challenge

  • "PPEvilChoices" +1, if GlobalLT("Bhaal25Dream1","GLOBAL",1)
  • "PPGoodChoices" +1, if GlobalGT("Bhaal25Dream1","GLOBAL",0)

The count "Bhaal25Dream1" is set in the dialogue with the solar, befor the second challenge (SOLAR.dlg): in the dialogue about his/her mother.

  • the variable is decreased, if the PC is selfish and/or denies the dept towards Gorion for not being at Sarevok's place
  • the varaible gets increased, if the PC is sorry for his/her mother, and acknowledges that Gorion's actions made an impact on the PC's outcome

Third PP Challange

  • "PPEvilChoices" +1, if GlobalLT("Bhaal25Dream2","GLOBAL",1)
  • "PPGoodChoices" +1, if GlobalGT("Bhaal25Dream2","GLOBAL",0)

The count "Bhaal25Dream2" is set in the dialogue with the solar (SOLAR.dlg), before the 3rd challenge: the dialogue with the "innocent" PC.

  • the variable is decreased, if the PC shows no interest in what the prophecy means to him/her or (s)he states to want the father's power, or shows selfish reasons for stopping the prophecy, or doesn't take the question seriously.
  • the variable is increased if the PC states the wish to avoid his/her destiny, or answeres righteously if asked for his/her motivation to prevent the prophecy.

4th PP Challenge

  • "PPEvilChoices" +1, if GlobalLT("Bhaal25Dream3","GLOBAL",1)
  • "PPGoodChoices" +1, if GlobalGT("Bhaal25Dream3","GLOBAL",0)

The count "Bhaal25Dream3" is set in the solar's dialogue (SOLAR.dlg), when the killed Yaga Shura will be summoned.

  • the variable will be decreased for selfish / brutal answeres of the PC and the wish to take on Bhaal's throne
  • the variable will be increased for the PC's asking for the Solar's help or stating to hold on to what is good and righteous, or states that he wants to prevent Bhaals raising.

5th PP Challenge

  • "PPEvilChoices" +1, if GlobalLT("Bhaal25Dream5","GLOBAL",1)
  • "PPGoodChoices" +1, if GlobalGT("Bhaal25Dream5","GLOBAL",0)

The count "Bhaal25Dream5" is set in Melissan's dialogue (MELISS01.dlg), after she revealed her true nature, before she goes to the throne essence to await the PC there.

  • The variable gets decreased if the PC claims the throne himself or threatens Melissan for using him/her, or gives reply options that imply that she is no match for him/her.
  • The variable gets decreased for the PC wanting to stop Melissan or calling her evil.

The "Bhaal25DreamX" conditions are also used to trigger the different cutscenes etc. for the PP Challenges.

Final solar dialogue - ascending


And with the "PPEvilChoices" count, the Solar judges the PC's alignment before ascending to godhood (FINSOL01.dlg, state no. 16):

  • for GlobalLT("PPEvilChoices","GLOBAL",2), the solar is impressed how the PC restrained the evil divine heritage and offers his further company
  • for ~GlobalGT("PPEvilChoices","GLOBAL",1) GlobalLT("PPEvilChoices","GLOBAL",4)~, the solar asserts the PC a great taint and that time will tell how corrupted the PC will become;
  • for ~GlobalGT("PPEvilChoices","GLOBAL",3) GlobalLT("PPEvilChoices","GLOBAL",6)~, the solar is disgusted by the PC's evilness and expects the other gods to interfere.


So what does this help me for my NPC creation?

If you want your NPC only to react to the NPC's corruption at the end of the game, this would be the triggers for different interjections / epilogues:

  • GlobalLT("PPEvilChoices","GLOBAL",2): the game treats the PC to be good and righteous, fighting the evil taint of Bhaals heritage in godhood
  • ~GlobalGT("PPEvilChoices","GLOBAL",1) GlobalLT("PPEvilChoices","GLOBAL",4)~: no corruption showed (yet) - neutral ending
  • ~GlobalGT("PPEvilChoices","GLOBAL",3) GlobalLT("PPEvilChoices","GLOBAL",6)~: the game treats the PC as a corrupted, evil god, regardless of the PC's alignment at this moment.

If you want your NPC to react while playing, noticing the slow corruption of, e.g. a good-aligned PC, the variables "Bhaal25Dream1", "Bhaal25Dream2", "Bhaal25Dream3", and "Bhaal25Dream5" would probably be the ones to consider (in addition to a low rep at the beginning of ToB, of course) - if you want your NPC to react right after the PC showed the signs.


The game uses them as follows ("X" stands for 1,2,3, or 5, accordingly):

  • GlobalLT("Bhaal25DreamX","GLOBAL",1): PC gets corrupted
  • GlobalGT("Bhaal25DreamX","GLOBAL",0): PC withstands the evil taint and shows righteous tendencies

Using these variables is fine if your NPC should react right after the dialogue where the evil tendencies showed. But if you want to track the tendencies, and only want your NPC to react if the PC accumulated, say, two or three "evil counting points", this gets messy, triggering-wise.


The overall triggers "PPEvilChoices" or "PPGoodChoices" could be used during the game, too, and it's much simpler for triggering reactions if the PC accumulates evil tendencies. In practice, this would mean that your NPC's reaction to the ongoing PC's corruption would not show after the dialogue(s) with the solar/Melissan, but only after the PP challenge was done, but the question is whether anyone would actually notice the time lag. I guess this is a design choice.

The variables could also be used to track "righteous" behavior of an evil PC, of course.

Edited by jastey

Share this post

Link to post

Thank you! Tracking these variables is a pain indeed, and it's good to have a simple source for the reactions.


I would caution the future hypothetical modder/writer, however: when it comes to storytelling, ToB is rather weak. And, indeed, to me it seems that there's no clear "PC is evil and is going to be an evil god/PC is going to be a force for good, totally and absolutely". Rather, it's "PC has been rude to the Solar = he/she is an evil god now". It absolutely has nothing to do with PC's character, feelings for the family, kindness, etc. Rather, saying what Solar wants. Also, the replies themselves are rather murky: when I was playing for the first time, I was rather surprised that some of those point you towards good(but sound really evil to my ears), and vice versa.


So caution is required. Then again, nobody is going to rewrite ToB story completely and make it a new canon(because most of the mods would still be based on good old vanilla ToB), so, yeah, Solar's choices are all we have.

Share this post

Link to post

Kulyok: I agree, theoretically. But fact is, that ToB also shows different endings (The narrator talking about how the PC enters his realm of godhood etc.), depending on these "PPEvilChoices" countings. So, if a mod is to take account of what the game presents as a fact, the above listed triggers have to be considered. This will be until someone writes a mod that changes this and integrates more triggers like alignment and rep etc., but until then, Ajantis (in my case) has to react to this, and he should do so before the PC goes into the godly realm as an evil deity.


EDIT: Er, I think you are saying the same. I guess I jumped onto your phrase of "It absolutely has nothing to do with PC's character, (...)" here.

Edited by jastey

Share this post

Link to post

great job. For a moment I was curious about this dialogue:

for ~GlobalGT("PPEvilChoices","GLOBAL",1) GlobalLT("PPEvilChoices","GLOBAL",4)~, the solar asserts the PC a great taint and that time will tell how corrupted the PC will become;

then I think I've already got it in my prior playthroughs.

Share this post

Link to post
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.

Sign in to follow this  

  • Create New...