Skyrim Special Edition
0 of 0

File information

Last updated

Original upload

Created by

Blackread

Uploaded by

Blackread

Virus scan

Safe to use

Tags for this mod

129 comments

  1. Blackread
    Blackread
    • premium
    • 395 kudos
    Locked
    Sticky
    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.
  2. ivantheterrible444
    ivantheterrible444
    • member
    • 0 kudos
    I installed this mod in hopes that the dragon skeleton whose soul i've absorbed will stop spawning on top of me any time I load a save, fast travel, or exit a building. This has not stopped happening and now I can't even normally absorb dragon souls. After I kill a dragon and walk around the carcass, the soul is not absorbed until a few minutes later when this mod performs its function. I have Dragon War as well as the patch for this mod, I have GoT and HotD dragons, and Dragons Fall Down - Immersive Airborne Death. There shouldn't be a conflict with any of those mods that causes souls to not be absorbed normally, and after checking Falrim Resaver I've found no looping dragon scripts. It's possible only my current save is bugged, I'll go check if this happens on a new game.

    Edit: It's just a problem on my current save. Dragon soul absorption works on new game.
  3. MediaEvil
    MediaEvil
    • premium
    • 0 kudos
    Are changes from this mod included?
    1. Blackread
      Blackread
      • premium
      • 395 kudos
      Yes
  4. RadiantWings
    RadiantWings
    • premium
    • 8 kudos
    I'm getting a ton of stack dumps from this script due to the OnLoad call. I suspect it has something to do with dragons that are spawned and disabled by random event type mods.
    1. Blackread
      Blackread
      • premium
      • 395 kudos
      Can you post an example? The OnLoad does barely anything and it should only be called once per dragon loading in, so I don't really understand how it could overwhelm the VM unless there's hundreds of them.
    2. RadiantWings
      RadiantWings
      • premium
      • 8 kudos
      I don't think it's necessarily caused by this mod, a quick Google search shows this (dragonactorscript stack overload) is a somewhat know issue with a modded Skyrim setup.

      For me, it happened when I fought two dragons near Dark Water Crossing, entered the DWC mine, and then exited the mine. In a few seconds I got over 2K suspended thread calls to onload.

      What I think happened is that for whatever reason, the dragons couldn't enter the clean up state properly, and when I re-entered the worlddpace from the mine, the dragons default onload state got called again. But because the dragons are already dead at this point, the default onload can't enter into the "alive" state, so it's stuck in this infinite loop.

      In any case, I added some safety handling to your script and that seemed to have cleaned up the script properly.
    3. Blackread
      Blackread
      • premium
      • 395 kudos
      But there is no loop. Even if the dragon is dead, the OnLoad gets called once, and since the dragon doesn't pass the if !isDead check, the OnLoad just exits straight after. Moreover, being in the "alive" state doesn't prevent OnLoad from being called. Since OnLoad is defined in the empty state and there is no definition in the "alive" state, the definition in the empty state is used even when the script is in the "alive" state. If the dragons were dead the script would be in the "deadandwaiting" or "deaddisintegrated" state, neither of which also doesn't overload OnLoad.

      Due to how OnLoad works (objects and cells don't necessarily get unloaded from memory when the cell is detached), it's even possible the OnLoad never fired for those dragons as you exited the mine. Though that is harder to ascertain due to the unreliable nature of loading and unloading.

      https://www.creationkit.com/index.php?title=OnLoad_-_ObjectReference

      So basically, the only way the same dragon could fire off thousands of OnLoad events is if it somehow loaded and unloaded thousands of times in rapid succession.
    4. RadiantWings
      RadiantWings
      • premium
      • 8 kudos
      A few things because I had many debug statement to check what's going on.

      1. When the dragon loads in the second time (causing stack spam), it's dead (isDead), but starts in the default state and not DeadAndWaiting/DeadDisintegrated. I checked this by having a getState check in the onLoad to see when they are getting called. 
      2. Despite what the OnLoad document says, the event was triggered but the dragon was not loaded in (Is3DLoaded() returns false after the event finishes and we move to the next state)
      3. Unload is not called even when added as an event.

      Loop may have been the wrong word, but from what I am seeing, the game is definitely trying to repeated call on the OnLoad event for the same actor. My best guess is that the dragons were not fully deleted (Self.SetCriticalStage(Self.CritStage_DisintegrateEnd) is called but didn't manage to delete the dragons), so the game still tries to reload them into the world when I went outside the mine but fails to (3DLoaded check never passes despite OnLoad getting called) so it got stuck and then tries again.

      Like I said, I think it has to do with the vanilla logic not always cleaning up dragons perfectly, since it's not all dragons that triggers this. Also, I'm almost positive those two affected dragons were dynamic spawned by a mod, which may have tried to clean them up immediately afterwards. 
    5. Blackread
      Blackread
      • premium
      • 395 kudos
      Hmm, maybe it's some sort of an engine bug, or the documentation is lacking (wouldn't be the first time).
    6. RadiantWings
      RadiantWings
      • premium
      • 8 kudos
      Yeah, I figured it's just papyrus being papyrus. In any case, like I said, I added some hacky failsafe and it seem to stopped the stack dump according to Resaver.
    7. sepulsolja
      sepulsolja
      • premium
      • 1 kudos
      Hey RadiantWings. I have the same issue. DragonactorscriptOnLoad. Running all of my saves through Resaver show over 28,000 instances of this script in SUSPENDED mode in one of my save files. A recent one shows 18,000. The bad thing is I can't even tell in game when it happens. The game still runs ok and my mods are still working(as far as I can tell). I don't know enough about Papyrus or scripting in general to understand it entirely. If you would be willing to share your "hacky failsafe" I would be so grateful. 
  5. PhotonicCrystalwave
    PhotonicCrystalwave
    • supporter
    • 3 kudos
    Would you be willing to do a patch for Arcanum / Arcanum Bug Fixes Replacer? I think it uses this script for one of its dragon conjuration spells, I would love to be able to keep your loop fix with it.
    1. Blackread
      Blackread
      • premium
      • 395 kudos
      The bug fix version contains the source file for dragonactorscript, but not the compiled script, so there is no conflict. It's unlikely a patch is needed.

      I didn't check the original, I assume everyone uses the fixed one.
    2. PhotonicCrystalwave
      PhotonicCrystalwave
      • supporter
      • 3 kudos
      Damn, you're right. I didn't check if it was the source or the compiled script. Thank you for letting me know. 
  6. hadaev
    hadaev
    • member
    • 4 kudos
    Sorry for bothering, but should you advice on another dragon script problem?
    I noticed spam in log, googled a bit and found mod with fix, modpage says it was included into ussep, but here i am.
    [02/07/2024 - 08:48:22PM] error:  (00035541): Failed to send event TailBleed01 for unspecified reasons.
    stack:
        [ (00035541)].DLC1LegendaryDragonScript.PlaySubGraphAnimation() - "<native>" Line ?
        [Active effect 1 on  (00035541)].FXDragonBloodDamageScript.OnHit() - "FXDragonBloodDamageScript.psc" Line 134
    [02/07/2024 - 08:48:25PM] error:  (00035541): Failed to send event HeadBleed01 for unspecified reasons.
    stack:
        [ (00035541)].DLC1LegendaryDragonScript.PlaySubGraphAnimation() - "<native>" Line ?
        [Active effect 1 on  (00035541)].FXDragonBloodDamageScript.OnHit() - "FXDragonBloodDamageScript.psc" Line 127
    [02/07/2024 - 08:48:30PM] error:  (00035541): Failed to send event WingRBleed01 for unspecified reasons.
    stack:
        [ (00035541)].DLC1LegendaryDragonScript.PlaySubGraphAnimation() - "<native>" Line ?
        [Active effect 1 on  (00035541)].FXDragonBloodDamageScript.OnHit() - "FXDragonBloodDamageScript.psc" Line 148
    [02/07/2024 - 08:48:30PM] error:  (00035541): Failed to send event WingRBleed02 for unspecified reasons.
    stack:
        [ (00035541)].DLC1LegendaryDragonScript.PlaySubGraphAnimation() - "<native>" Line ?
        [Active effect 1 on  (00035541)].FXDragonBloodDamageScript.OnHit() - "FXDragonBloodDamageScript.psc" Line 148
    [02/07/2024 - 08:48:33PM] error:  (00035541): Failed to send event WingRBleed03 for unspecified reasons.
    stack:
        [ (00035541)].DLC1LegendaryDragonScript.PlaySubGraphAnimation() - "<native>" Line ?
        [Active effect 1 on  (00035541)].FXDragonBloodDamageScript.OnHit() - "FXDragonBloodDamageScript.psc" Line 148
    [02/07/2024 - 08:48:34PM] error:  (00035541): Failed to send event WingRBleed04 for unspecified reasons.
    stack:
        [ (00035541)].DLC1LegendaryDragonScript.PlaySubGraphAnimation() - "<native>" Line ?
        [Active effect 1 on  (00035541)].FXDragonBloodDamageScript.OnHit() - "FXDragonBloodDamageScript.psc" Line 148
    1. Blackread
      Blackread
      • premium
      • 395 kudos
      Hard to say, USSEP does indeed include that fix and has later added more fixes. Make sure nothing is overwriting FXDragonBloodDamageScript.pex from USSEP. Or if something is overwriting it, check if that mod includes the USSEP fixes.
    2. hadaev
      hadaev
      • member
      • 4 kudos
      Yes, i checked, seems nothing overwriting it.
  7. Soldream
    Soldream
    • member
    • 8 kudos
    I experienced the same problem as some people here with a dragon script loop.  Here's what I did to fix it:

    1) Find the id of the dragon in the save using Resaver
    2) Select this dragon in the game with the prid ID command
    3) Teleport it to you with the "moveto player" command
    4) And finally revive it with the resurrect command and kill it,  taking away my soul and my tears. 

    Let me know if this helps anyone else, I'm interested.
    1. MonsterHunter120
      MonsterHunter120
      • premium
      • 1 kudos
      Thanks for the tip, it worked. I had this mod already installed, but it seems like a dragon managed to dodge its termination and I was getting spammed with "dragon is dead in the air" notifications from Dragons Fall Down - Immersive Airborne Death. I don't think the problem is related to Dragons Fall Down, but it's going to notify you whenever dragonactorscript gets stuck by spamming you with notifications.
  8. Fractalbase
    Fractalbase
    • premium
    • 4 kudos
    I haven't run into the issue of not being to absorb a dragon soul from a recently dead dragon before.  However, I saw this mod and thought I should download it and give it a try just in case.  Fast forward from my recently started playthrough to the western watchtower where I'm fighting the first dragon, I forget the dragon's name.  Once the dragon is dead, there is no absorption of dragon soul at all.  I even waiting around for 5 real life minutes.  Am I missing something here?  I'm wanting to load a save before there's any mention of a dragon at the western watchtower without this script, but if someone can offer some advice as to what I'm doing wrong, I'm all ears.
    1. aryel209
      aryel209
      • member
      • 3 kudos
      Mmmm, it sounds a problem of compatibility with others mods. If you are using MO2 active the experimental file analysis: Configuration > Solutions. It with let you see if it is being overlaping another file, even if the file that is losing is compresed as a BSA file.

      After ir, try to test other dragons:
      ingame, open console with "º" key. Set "help dragon 0 NPC_" to search more npc dragons. Find one that you like moving with "Repag" and "AvPag" keys. Summon it with his ID with the command "player.placeatme XXXXXX" where Xs are the ID. Exit console with "º" again but after dragon appears in front of you open the console again (It need to be quickly, dont let the dragon fly). Select the dragon with the first click. Kill it with the command "kill". Exit Console and see if its soul is absorbed
    2. Blackread
      Blackread
      • premium
      • 395 kudos
      Did a quick test running through Dragon Rising with the alternative version of the script. Killed Mirmulnir and absorbed the dragonsoul as normal. What version of the script are you using, and what other dragon mods are you running?
    3. Fractalbase
      Fractalbase
      • premium
      • 4 kudos
      You might be right, I tried the quest again without the script and the same behavior happened, Mirmulnir didn't disolve, no dragon soul absorbed.

      I was using the alternate script, including the Dragon War patch.

      Other dragon mods I'm running are:

      (these are recently added)
      Dragons Use Thu'um
      More Dragon Loot
      More Draconic Dragon Aspect Overhaul (not sure if relevant)
      Intuitive Dragon Ride Control
      Dragon's Blood Attributes

      (these I've had for a number of months now)
      Dragon War - A Dragon Overhaul (and a few patches)
      Experience - Dragon War Patch
      Dragon Remains
      Dragon Souls Heal You
      Infinite Dragon Variants
      Fixed Fixed Dragon Stalking Fix (I understand this script is overwritten with this mod)
    4. SteamLad
      SteamLad
      • member
      • 0 kudos
      Can confirm the same issue. After defeating Mirmulnir I wasn't able to absorb his soul but I can absorb other dragon souls just fine. it works fine on a clean save with only this mod and a few essentials, I disabled the mod in my full working load order and I can absorb just fine afterwards so it is most likely an incompatibility. I can't exactly confirm which mod is causing this because it isn't practical nor do I have enough time for me to sift through my list of 1000+ mods to find the culprit, so I recommend disabling when fighting Mirmulnir should it happen for anyone else
  9. Daemonjax
    Daemonjax
    • supporter
    • 66 kudos
    Is this a vanilla bug?  From the description and the code, it looks like a vanilla bug.

    Or is it only caused by some mods (the dragon mods listed on this mod's description page)... mods that change this script?

    If it's a vanilla bug, I think the fix should be in USSEP.  I just checked their script, and it doesn't look like it addresses this.  It's been 7 months.  So that's why I'm wondering.  It's in the USMP,  but that's supposed* to be for bugfixes that only affect modded games.  Sucks that this can't retroactively fix already stuck scripts.

    * but maybe they're going out of scope
    1. Blackread
      Blackread
      • premium
      • 395 kudos
      USMP included my fix as is. And yes, it's a vanilla bug. USSEP addresses some issues in the script but not this particular one. Stuck scripts can't be retroactively fixed because there's no way to break the while loop once it starts going apart from getting close to the dragon's corpse.

      If you want to know why this isn't in USSEP you need to ask the USSEP team. I cba to report any more bugs to them, because my previous reports have either been ignored or falsely dismissed.
    2. Daemonjax
      Daemonjax
      • supporter
      • 66 kudos
      OK.  Thanks for the mod!  I ended up just going with USMP (and reverting the gameplay settings changes they made to the walk/jog animations and npc combat dodge removal -- 4 changes in total).  It's just too much work to download and install everything individually that's already included in USMP.  But I downloaded this mod and endorsed. :D
  10. Mookeylama
    Mookeylama
    • premium
    • 88 kudos
    thanks for all your work. i've had this one installed before i saw yours...
    https://www.nexusmods.com/skyrimspecialedition/mods/88238?tab=posts
    Not Another Dragon Stalking Fix

    i know they're somewhat different. i'm back to playing now and was wanting to uninstall that and use yours. should i clean save, go into an interior, or just stick w/ nadsf since i'm midplay? thanks
    1. Blackread
      Blackread
      • premium
      • 395 kudos
      I think that as long as there are no active dragons in your save, dead or alive, swapping the mods should be safe. However, I checked the mod earlier, and it's very similar to mine. I wrote down a comparison between the two somewhere...

      Edit: Oh it was actually in reply to one of your earlier comments :D Anyways, unless you want the additional functionality of automatically capturing souls, there's no real need to swap I'd say.
  11. tcbflash
    tcbflash
    • supporter
    • 65 kudos
    Thank God for geniuses. ENDORSED.
    ~dan