If you want to check whether you have any stuck dragonactorscript instances in your save, you can do it with Fallrim Tools/ReSaver. The script will look like in this screenshot, and it should have at least the frames dragonactorscript.OnDeath(), dragonactorscript.GoToState() and dragonactorscript.onBeginState().
Spoiler:
Show
If you want to stop the script from looping you can do it by right clicking the script and choosing Terminate.
Spoiler:
Show
But remember:
Do NOT do this if there were any active dragons, alive or dead, when you made the save. The script is required for them to function and terminating it will likely break them.
Do NOT terminate any other scripts. Active script does not automatically equal stuck script. It's normal to have active scripts in your save, and they are required for things in your game to function properly. Terminating a script without knowing exactly what it does and why it's there will inevitably break something in your save.
ALWAYS keep a backup of your save if you edit it with Fallrim Tools/ReSaver.
If there are no active dragons on the save, sure. And even if there are it's probably fine.
The differences between Dragon War and vanilla are hard to estimate because the author mangled the source, making direct comparison impossible. I think he at least made changes to some animation events and the loading of dragons.
I managed to eliminate (I think) the OnLoad stack bug. First, in the dragonactorscript script, I changed Event OnLoad() to Event OnCellAttach(). They are almost the same but the second one doesn't have the bug that generously brought the last version of the game. After doing so the bug was still present but in ndragonactorscript, (a Deadly Dragons script). There we have OnLoad and also OnUnload. When I changed OnLoad to OnCellAttach() the bug remained in OnUnload. Here I simply commented out the whole event OnUnload. The unregistration is applied in the OnDying event so...As a precaution I added a control that appears in dragonactorscript and added Unregister code at the start.
This is a dirty patch to Deadlydragon. In my opinion Stagger and KnockDown effects in DeadlyDragon should be applied using the GetFlyingState condition and the GlobalVariable in the spell/MagicEffect/script. And distribute the spells as Dragon Fall Down does with SPID instead of subscribing to animation events. This is the result (just edited part in ndragonactorscript) Scriptname nDragonActorScript extends Actor
No. The bug exists in the Onload event. And it is present with or without deadlydragon. Without any other mod, if you fasttravel to a place with a dragon and save immediately you can see the bug with resaver (not 100% of the time because, that is the nature of the bugs).
I agree with rengern that its not just a problem with deadly dragons as I have that issue without it. Granted I do have other dragon mods that could be messing with it but its not exclusive it would seem to that one mod.
Yes, this is the last game version engine bug, OnLoad is called per frame on dead dragons for some time. - One option is to replace OnLoad with OnCellAttach or OnCellLoad, but it has cons. When you load your save and dragon is within loaded cells, it's not called. - Another option is to deal with script states. If empty state has no OnLoad and script instance is in state with no OnLoad, OnLoad is not called.
By the way, DLC1FalmerValleyIceDragonScript also has this behavior, so it's not related to DragonActorScript itself. OnInit is also affected.
I was on a hiatus from Skyrim modding doing very little for over a year, having returned more actively only recently. I have however checked Nexus daily, read all comments left on my mods and kept a list of all my mods that need updating - which incidentally has grown to be 20+ long in this time.
Anyways, the patch has now been updated for Dragon War 4.1.5. :)
Oh I see now, the mod you linked comes with a source file for the same script even though it doesn't come with a compiled one. The game doesn't read source files so the conflict (and order) doesn't matter. It's just garbage the author left in the mod.
You can use this mod regardless of whether or not you use USSEP.
The thing to understand is that Skyrim treats scripts as assets rather than as, well, game content. Meaning that they are stored in BSA files, just like music, sounds, voice lines, textures, models, facegen data, etc. Scripts are not stored in ESM/ESP/ESL files; they don't have a formID, they cannot be patched in an ESP or ESL. You can only replace the entire script, just like you can only replace an entire texture.
If you open the Creation Kit and edit some already-existing scripts, this will not count as a change as far as the CK is concerned. There's nothing it's going to want to save. Because it'll just have created the compiled script files directly, and again, it's not something that gets saved in ESx files.
That also means that a mod that merely changes scripts does not technically have a master; just like a script that changes a model doesn't. It's only if you also change how that script is tied to the world (quests, conversations, activators, etc.) that you'll get an ESP out of it, in the same way that if you change how a model is tied to the world you'll also get an ESP.
Anyway this is why this script fixes contains the previous script fixes as well. It has to, due to how scripts work in Skyrim.
Thank you for the comment, I added the remark that USSEP is not required to the mod description. Sometimes USSEP changes scripts in a way that also necessitates the accompanying record edits in its plugin, but this particular script is not one of them.
Hello. I have never before encountered bugs regarding this script, until now. Ive been playing Fahluaan modlist for sometime now, reached level 30. Decided to finally go see alduin resurrect a dragon with delphine near kynergrove when I started having massive ever worsening stutters. managed to get past the alduing and the dragon battle but the stutters still remained so I saved the game and checked it with resaver. it shows this:
Any advice what to do about it? Ive tried terminating the onload thing along with all the over 5k suspended scripts but it did nothing. also tried prid command on refid 00035541and moving it to me. did nothing. also died disabling the same id but that aldo didnt work.
Based on comments from other people what you might be able to do to fix this particular dragon is find its ID with resaver, target it in console with prid, moveto player and resurrect and kill it. Or maybe markfordelete, save and load.
This will of course only fix this dragon, not the underlying problem, so the issue can later crop up with another dragon again.
164 comments
I had included the 3.x in my dragons of doom mod, since it was built with DW originally but I can't recall the reason I included it!
also can I add this to an existing save?
The differences between Dragon War and vanilla are hard to estimate because the author mangled the source, making direct comparison impossible. I think he at least made changes to some animation events and the loading of dragons.
First, in the dragonactorscript script, I changed Event OnLoad() to Event OnCellAttach(). They are almost the same but the second one doesn't have the bug that generously brought the last version of the game.
After doing so the bug was still present but in ndragonactorscript, (a Deadly Dragons script).
There we have OnLoad and also OnUnload.
When I changed OnLoad to OnCellAttach() the bug remained in OnUnload.
Here I simply commented out the whole event OnUnload. The unregistration is applied in the OnDying event so...As a precaution I added a control that appears in dragonactorscript and added Unregister code at the start.
This is a dirty patch to Deadlydragon. In my opinion Stagger and KnockDown effects in DeadlyDragon should be applied using the GetFlyingState condition and the GlobalVariable in the spell/MagicEffect/script. And distribute the spells as Dragon Fall Down does with SPID instead of subscribing to animation events.
This is the result (just edited part in ndragonactorscript)
Scriptname nDragonActorScript extends Actor
Event OnCellAttach()
UnregisterForAnimationEvent(self, "DragonBiteEffect")
UnregisterForAnimationEvent(self, "DragonLandEffect")
UnregisterForAnimationEvent(self, "DragonForcefulLandEffect")
if !isDead()
if isGhost()
setGhost(FALSE)
endif
RegisterForAnimationEvent(self, "DragonBiteEffect")
RegisterForAnimationEvent(self, "DragonLandEffect")
RegisterForAnimationEvent(self, "DragonForcefulLandEffect")
Endif
EndEvent
; Event OnUnload()
;UnregisterForAnimationEvent(self, "DragonBiteEffect")
;UnregisterForAnimationEvent(self, "DragonLandEffect")
;UnregisterForAnimationEvent(self, "DragonForcefulLandEffect")
; EndEvent
- One option is to replace OnLoad with OnCellAttach or OnCellLoad, but it has cons. When you load your save and dragon is within loaded cells, it's not called.
- Another option is to deal with script states. If empty state has no OnLoad and script instance is in state with no OnLoad, OnLoad is not called.
By the way, DLC1FalmerValleyIceDragonScript also has this behavior, so it's not related to DragonActorScript itself. OnInit is also affected.
Anyways, the patch has now been updated for Dragon War 4.1.5. :)
The thing to understand is that Skyrim treats scripts as assets rather than as, well, game content. Meaning that they are stored in BSA files, just like music, sounds, voice lines, textures, models, facegen data, etc. Scripts are not stored in ESM/ESP/ESL files; they don't have a formID, they cannot be patched in an ESP or ESL. You can only replace the entire script, just like you can only replace an entire texture.
If you open the Creation Kit and edit some already-existing scripts, this will not count as a change as far as the CK is concerned. There's nothing it's going to want to save. Because it'll just have created the compiled script files directly, and again, it's not something that gets saved in ESx files.
That also means that a mod that merely changes scripts does not technically have a master; just like a script that changes a model doesn't. It's only if you also change how that script is tied to the world (quests, conversations, activators, etc.) that you'll get an ESP out of it, in the same way that if you change how a model is tied to the world you'll also get an ESP.
Anyway this is why this script fixes contains the previous script fixes as well. It has to, due to how scripts work in Skyrim.
Hello. I have never before encountered bugs regarding this script, until now. Ive been playing Fahluaan modlist for sometime now, reached level 30. Decided to finally go see alduin resurrect a dragon with delphine near kynergrove when I started having massive ever worsening stutters. managed to get past the alduing and the dragon battle but the stutters still remained so I saved the game and checked it with resaver. it shows this:
dragonactorscript bug
Any advice what to do about it? Ive tried terminating the onload thing along with all the over 5k suspended scripts but it did nothing. also tried prid command on refid 00035541and moving it to me. did nothing. also died disabling the same id but that aldo didnt work.
This will of course only fix this dragon, not the underlying problem, so the issue can later crop up with another dragon again.