Hey, thank you for these fixes (and the chuckle about somebody called ferrari365 being on a mission to make things go fast!).
I managed to find a mod conflicting with DA11VerulusScript: Shezarrine - The Fate of Tamriel - Prologue. I don't really understand enough about modding to gauge whether there's is an issue that should be adressed in that mod (to incorporate your fix or somesuch), but here's a diff of the source files, if you could look into this and advise that'd be much appreciated! :)
Event OnActivate(ObjectReference akActionRef) - DA11 = GetOwningQuest() - Verulus = Self.GetReference() as Actor - Player = Game.GetPlayer() - If (Verulus.IsDead()) && (DA11.GetCurrentStageID() == 60) && (!DA11.IsStageDone(100)) && (akActionRef == Player) + If (Self.GetActorRef().IsDead() == True) && (GetOwningQuest().GetStage() == 60) && (GetOwningQuest().GetStageDone(100) == 0) && (akActionRef == Game.GetPlayer()) ButtonPressed = CorpseMessage.Show() If (ButtonPressed == 1) - ; Actor Player = Game.GetPlayer() as Actor - Player.StartCannibal(Verulus) + Actor Player = Game.GetPlayer() as Actor + da1170a.start() + + Player.StartCannibal(Self.GetActorRef() as Actor)
;If Player.PlayIdle(IdleCannibalFeedStanding) ; ; debug.Trace(self + "Player is playing the cannibal idle") ;Else ; ; debug.Trace(self + "Animation fail: Player is NOT playing the cannibal idle") ;EndIf - Utility.Wait(3.0) - DA11.SetCurrentStageID(70) - RegisterForSingleUpdateGameTime(12.0) + Utility.Wait(3) + GetOwningQuest().SetStage(70) EndIf ;ElseIf (akActionRef == Game.GetPlayer()) && (Self.GetActorRef().IsDead() == True) ;Self.GetActorRef().Activate(Game.GetPlayer()) EndIf EndEvent
-Event OnUpdateGameTime() - Cell namiraShrine = self.GetReference().GetParentCell() - DA11 = GetOwningQuest() - if (!namiraShrine.IsAttached()) && (DA11.GetCurrentStageID() == 100) - DA11.SetCurrentStageID(600) - else - RegisterForSingleUpdateGameTime(12.0) - endif -EndEvent \ No newline at end of file + +Scene Property da1170a Auto
Looks like the only thing that mod does to the vanilla script is to add an extra scene that will get started, I'm assuming in order for Onmund to react to what's happening. That's a rather strange design choice on that mod's part, because as it is now, this will always try to run, even if he's not your active follower and most likely not play out as intended. Most follower mods would ideally go about this in a cleaner way like having their own self contained systems to track what's going on.
I'll see about making a patch, but in general such changes are a bad practice and should be handled in other ways.
There are not one but two daedric evil quests in Markarth... and they both need a lot of work. Three if you count where you wake up getting into Sanguine's mess.
I encountered a progress impeding bug during my last play-through, I tried numerous conventional routes i.e., "reset ai" to fix it so out of frustration I finally quit the game installed this script event fix, reloaded my last quicksave and all stalled script events unbugged!
Not only does this tweak work well for the post-quest shutdown event but it also works phenomenally with the rare instance that Brother Verulus becomes unkillable in the middle of performing A Taste of Death.
I have 7 of your script fix mods installed. I've checked my load order (>1100 mods) and no other mod touches these scripts, not even the microoptimizations mod. And special thanks for including the source files with comments!
32 comments
Update: Now included.
I managed to find a mod conflicting with DA11VerulusScript: Shezarrine - The Fate of Tamriel - Prologue. I don't really understand enough about modding to gauge whether there's is an issue that should be adressed in that mod (to incorporate your fix or somesuch), but here's a diff of the source files, if you could look into this and advise that'd be much appreciated! :)
diff -ur ferrari365\'s\ Script\ Fixes/Scripts/Source/DA11VerulusScript.psc Shezarrine\ -\ The\ Fate\ of\ Tamriel\ -\ Prologue/scripts/source/DA11VerulusScript.psc
--- "ferrari365's Script Fixes/Scripts/Source/DA11VerulusScript.psc" 2023-03-12 20:37:54.353012700 +0000
+++ "Shezarrine - The Fate of Tamriel - Prologue/scripts/source/DA11VerulusScript.psc" 2017-11-29 23:10:19.442232200 +0000
@@ -7,49 +7,35 @@
DA11QuestScript Property pDA11QuestScript Auto
Idle Property IdleCannibalFeedStanding Auto
-Quest DA11
-Actor Verulus
-Actor Player
-
Event OnDeath(Actor akKiller)
- DA11 = GetOwningQuest()
- If (DA11.IsStageDone(45)) && (!DA11.IsStageDone(225))
- DA11.SetCurrentStageID(60)
- ElseIf (!DA11.IsStageDone(45))
- DA11.SetCurrentStageID(500)
+ If (GetOwningQuest().GetStageDone(45) == 1) && (GetOwningQuest().GetStageDone(225) == 0)
+ GetOwningQuest().SetStage(60)
+ ElseIf (GetOwningQuest().GetStageDone(45) == 0)
+ GetOwningQuest().SetStage(500)
EndIf
EndEvent
Event OnActivate(ObjectReference akActionRef)
- DA11 = GetOwningQuest()
- Verulus = Self.GetReference() as Actor
- Player = Game.GetPlayer()
- If (Verulus.IsDead()) && (DA11.GetCurrentStageID() == 60) && (!DA11.IsStageDone(100)) && (akActionRef == Player)
+ If (Self.GetActorRef().IsDead() == True) && (GetOwningQuest().GetStage() == 60) && (GetOwningQuest().GetStageDone(100) == 0) && (akActionRef == Game.GetPlayer())
ButtonPressed = CorpseMessage.Show()
If (ButtonPressed == 1)
- ; Actor Player = Game.GetPlayer() as Actor
- Player.StartCannibal(Verulus)
+ Actor Player = Game.GetPlayer() as Actor
+ da1170a.start()
+
+ Player.StartCannibal(Self.GetActorRef() as Actor)
;If Player.PlayIdle(IdleCannibalFeedStanding)
; ; debug.Trace(self + "Player is playing the cannibal idle")
;Else
; ; debug.Trace(self + "Animation fail: Player is NOT playing the cannibal idle")
;EndIf
- Utility.Wait(3.0)
- DA11.SetCurrentStageID(70)
- RegisterForSingleUpdateGameTime(12.0)
+ Utility.Wait(3)
+ GetOwningQuest().SetStage(70)
EndIf
;ElseIf (akActionRef == Game.GetPlayer()) && (Self.GetActorRef().IsDead() == True)
;Self.GetActorRef().Activate(Game.GetPlayer())
EndIf
EndEvent
-Event OnUpdateGameTime()
- Cell namiraShrine = self.GetReference().GetParentCell()
- DA11 = GetOwningQuest()
- if (!namiraShrine.IsAttached()) && (DA11.GetCurrentStageID() == 100)
- DA11.SetCurrentStageID(600)
- else
- RegisterForSingleUpdateGameTime(12.0)
- endif
-EndEvent
\ No newline at end of file
+
+Scene Property da1170a Auto
Looks like the only thing that mod does to the vanilla script is to add an extra scene that will get started, I'm assuming in order for Onmund to react to what's happening. That's a rather strange design choice on that mod's part, because as it is now, this will always try to run, even if he's not your active follower and most likely not play out as intended. Most follower mods would ideally go about this in a cleaner way like having their own self contained systems to track what's going on.
I'll see about making a patch, but in general such changes are a bad practice and should be handled in other ways.
Bethesda 😎
Not only does this tweak work well for the post-quest shutdown event but it also works phenomenally with the rare instance that Brother Verulus becomes unkillable in the middle of performing A Taste of Death.
Thank you so much for this essential fix!