About this mod
Fixes a Nightsong Points bug that prevents Shadowheart from making a big decision on her own in Act 3
- Permissions and credits
- Changelogs
For Patch 8 players:
- ParentPoints bug: It looks like the NightsongPoints-ParentPoints bug is finally fixed in the Patch 8 Stress Test! 🥳🥳🥳 If the ParentPoints bug is the only one you care about, you will no longer need this mod :)
- Act 2 dialogue bug: Not fixed in the Stress Test yet
Installation
As of v1.0.0.2, the mod works retroactively. As long as you haven't entered the endgame, loading a save where you've already unlocked enough memories should trigger her chat about the smells of the city.
Install with your mod manager of choice.
How can I tell if I have enough Nightsong Points?
🛑 Spoiler warning - Act 2🛑
There aren't many ways to tell in-game, but here are some of them:
In Nightsong's Prison, if you have 20+ approval and enough Nightsong Points, Shadowheart will stop and ask you what she should do:

If you ask Shadowheart how you're holding up in her estimations, between 40 and 50 approval, she will say "Trust isn't something that comes easily to me. But with you... I think I can make an exception."

Note that Shadowheart sparing the Nightsong on her own does not guarantee that you have enough Nightsong points. This is a common misconception: she will always spare her with 40+ approval without any DC if you choose one of the following options:
- Say nothing.
- This is your choice. I can't make it for you.
- She knows something about you. Spare her, and see what she has to say.
If you have Script Extender console enabled, the following command will return 1 if you have enough Nightsong Points, and 0 otherwise:
print(GetFlag("82893505-534a-461a-8dd5-0f4677dad6ce",Osi.DB_Avatars:Get(nil)[1][1]))
Act 2: Bug explanation
During the Nightsong confrontation, the player's Approval rating with Shadowheart and Nightsong Points balance dictate the dialogue options available that can influence Shadowheart's decision to spare or spear The Nightsong.
If the player has enough Nightsong points AND between 20-39 approval, every single dialogue choice available results in The Nightsong's death:

Since the player can successfully persuade Shadowheart at the same approval level without enough Nightsong Points, I added two options to cover this inconsistency:
- She knows something about you. Spare her, and see what she has to say.
- Don't do it, Shadowheart. Don't kill her - you'll regret it.

For reference, this is what the dialogue options look like at the same approval level but not enough points:

Act 3: Bug explanation
🛑 Spoiler warning - Act 3 - Shadowheart's personal quest 🛑
When you enter the Lower City in Act 3, you can help Shadowheart regain her memories by visiting certain places:
- The graffiti by Baldur's Gate waypoint
- Allister Marnley's grave in the cemetery
- Her secret hideout in the Sharran cloister
Each of these locations triggers a dialogue with her. After the second conversation, she should have a [!] over her head that starts a new dialogue about the things she remembers about the city, mainly the smells.


This is an indicator that you've gained enough Parent Points.
In the Chamber of Loss, Shar will tell Shadowheart to kill her parents. At 50+ approval and enough Parent Points, telling Shadowheart to do the right thing will result in her choosing to spare her parents. Otherwise, she will let them become moon motes (Selune path) or kill them (Shar path).


🪲 The bug 🪲
In the vanilla game, if you have enough Nightsong Points, the ParentPoints flag never gets set. If you want Shadowheart to save her parents, you will have to persuade her to do it because she never will on her own.
If you have the console enabled, you can use this to check if you have enough Parent Points. Again, it will return 1 if you have enough Parent Points and 0 otherwise:
print(GetFlag("1bbdd0b8-c2de-4b2f-8ce8-6740812deb59",Osi.DB_Avatars:Get(nil)[1][1]))
You can also use the console to set the Parent Points flags manually, regardless of how many memories you've unlocked so far:
SetFlag("1bbdd0b8-c2de-4b2f-8ce8-6740812deb59",Osi.DB_Avatars:Get(nil)[1][1])
If you use the above console command, you don't really need this mod unless you don't want to have to remember to set the flag in each playthrough. I created this mod because I prefer to trigger her "smells of the city" conversation organically instead of switching over to the console. :)