Welcome to the AFK Mods bug tracker. In order to report an issue, you need to have a VALIDATED account to post one. Once you have followed the link the registration email sent you, please select a project from the drop down menu below. Select “Open New Issue” and fill out the form with as many details as possible.

Please also consider sending your bug report to Bethesda if you are reporting on an issue with Skyrim Special Edition, Fallout 4, or Starfield. Doing so will help everyone on all platforms.

Issue Data
Status: Closed
Issue Type: Bug Report
Project: Unofficial Skyrim Special Edition Patch
Component: Skyrim SE: Vanilla
Category: Quests & Dialogue
Assigned To: Nobody
Platform: All
Severity: Low
Votes: 0
Watching: N/A
Opened By AlexKuczaja on Sep 22, 2021 6:46 am
Last Edited By Arthmoor on Oct 27, 2021 11:51 am
Closed By Arthmoor on Oct 30, 2021 5:27 pm
Resolution: Fixed
Comment: Fixed for USSEP 4.2.6.

Issue #31617: Season Unending wrong massacre Alias

 
In the quest Season Unending (MQ302) there are scenes when loosing side demands concession. In proImperial variant there are three options. 1) Get paid for the massacre done by Stormcloaks 2) Get Pale 3) Get Winterhold. In the second variant, Stormcloaks can only demand one of two holds. No massacre mentioned. To replicate the issue you need to play Season Unending quest and choose options that would make Stormcloak position weaker in negotiations (like removing Elenwen from debate or giving them lesser holds)

The reason for it is that MQ302, Alias #42, SonsTownRaided is set to be DarkwaterCrossingLocation. And the scene with Stormcloak turn to demand stuff, that is MQ302CouncilScene5_S (precisely, DIAL:0004BA21), doesn't have a dialogue for DarkwaterCrossing. It does for 18 other locations, but no DarkwaterCrossing. Dialogues check if one of them has a location that matches Alias#42, but since none of them matches it, Stormcloaks go straight to demanding land.


There is still slight risk, that putting DarkwaterCrossingLocation as an alias was conscious decision to lock this part of dialogue, but i doubt that's the case as in that case it would be more likely to see something totally odd placed in it, not an actual village that is prone to being massacred, and have actual lore stuff that would back placing massacre there (Ulfric's capture). It is more likely, that when they scrapped dynamic civil war and decided that they need to replace dynamic marker with a static one, they haven't checked if the marker is actually supported by the scene and it's dialogues.

Comments

3 comment(s) [Closed]
Arthmoor said:
 
Looking through this, I'm not entirely sure how it could fail to deliver a demand for compensation. If you examine the flow of the quest, MQ302 Stage 40 calls on MQ302FillAliases to start, and that quest is what populates the location alias. It fills it with Anga's Mill instead of Darkwater Crossing. There appears to be no dynamic change involved in this so I'm not sure how ht never hits asking for compensation for a massacre at Anga's Mill since there's a valid dialogue recording for it.

(btw, it's actually alias #29, not #42, in the CK)

AlexKuczaja said:
 
That's where the neat part comes in: script QF_MQ302FillAliases_000876E6 at it's fragment 145 that is used in MQ302FillAliases do not force it's ImperialTownRaided and SonsTownRaided into MQ302 aliases. Check it yourself, those aliases from FillAliases remain unused and MQ302 alias is never changed to Anga's Mill.

Function Fragment_145()
;BEGIN CODE
; fill MQ302 aliases
; debug.trace(self + " filling MQ302 aliases:";)
; debug.trace(self + "     SonsMajorHold=" + Alias_SonsMajorHold.GetLocation())
; debug.trace(self + "     SonsMinorHold=" + Alias_SonsMinorHold.GetLocation())
; debug.trace(self + "     SonsMinorHold2=" + Alias_SonsMinorHold2.GetLocation())

; debug.trace(self + "     ImperialMajorHold=" + Alias_ImperialMajorHold.GetLocation())
; debug.trace(self + "     ImperialMinorHold=" + Alias_ImperialMinorHold.GetLocation())
; debug.trace(self + "     ImperialMinorHold2=" + Alias_ImperialMinorHold2.GetLocation())

SonsMajorHold.ForceLocationTo(Alias_SonsMajorHold.GetLocation()) 
SonsMinorHold.ForceLocationTo(Alias_SonsMinorHold.GetLocation()) 
SonsMinorHold2.ForceLocationTo(Alias_SonsMinorHold2.GetLocation()) 

SonsMajorHoldCapital.ForceLocationTo(Alias_SonsMajorHoldCapital.GetLocation()) 
SonsMinorHoldCapital.ForceLocationTo(Alias_SonsMinorHoldCapital.GetLocation()) 
SonsMinorHold2Capital.ForceLocationTo(Alias_SonsMinorHold2Capital.GetLocation()) 

ImperialMajorHold.ForceLocationTo(Alias_ImperialMajorHold.GetLocation()) 
ImperialMinorHold.ForceLocationTo(Alias_ImperialMinorHold.GetLocation()) 
ImperialMinorHold2.ForceLocationTo(Alias_ImperialMinorHold2.GetLocation()) 

ImperialMajorHoldCapital.ForceLocationTo(Alias_ImperialMajorHoldCapital.GetLocation()) 
ImperialMinorHoldCapital.ForceLocationTo(Alias_ImperialMinorHoldCapital.GetLocation()) 
ImperialMinorHold2Capital.ForceLocationTo(Alias_ImperialMinorHold2Capital.GetLocation()) 

Stop()
;END CODE
EndFunction

Comment #2 Oct 27, 2021 12:17 pm  Edited by AlexKuczaja on Oct 27, 2021 12:25 pm
Arthmoor said:
 
Ah, well then this should be a simple matter of just setting it to Anga's Mill in the alias so that it will fill properly when the quest begins.

Showing Comments 1 - 3 of 3