Skyrim Special Edition

UPDATE: Another workaround method was implemented in Animation Queue Fix SKSE plugin, you can try it with your existing modlist


Too much variety added using DAR for certain types of animations can lead to crashes on save load then your PC can't load this animation in time. DAR checks its folders from top to bottom (example: 25000000 before 100 and -100090), it's not instantaneous and done one by one. On good machine and\or without overwhelming amount of DAR folders with heavyweight animations it is done fast enough and no problem occures. But if PC processor is not fast enough by itself and\or some other mods use its resoursed on game load and\or you have overwhelming abundance of animation folders for it to go through, it can't play animation in time and you see A-pose - a static pose which is active then no animation is played by actor (this how T-pose looks by the way). And if this state of no animation is longer than about one minute, you game crashes (could be a safety mechanism of sorts to force close the game this way and reload everything with "missing" files present on the next game launch, idk).

DAR limitation or game engine weakness of some kind might be causing this, perhaps someone very clever can solve this in the future. But for now we can work aroung this problem and have big amount of animations added with DAR without breaking your game's back so to speak.

So, there are two types of animations: the ones that play only once and the ones that play in loop, over and over. First ones are OK to replace, because if they are not loaded in time, game sort of just skips it and goes to the one after it. Second type (which I am calling "looped idles") can cause this CTD problem. because if you have this kind of animation not loaded in time static pose will be present for amount of time that can be significant enough (it was around one minute on my PC) and lead to crash.

To avoid DAR related crashes, you just simply need to minimize amount of "looped" animations you are adding with it. I am placing here names of animations that can be swaped by DAR mods and colorcoding it.

Animations are safe to swap in majority of cases are colored with light green
Animations that play in loop and better not be added in abundance are colored with orange
Animations that play in loop, but unlikely to cause CTD are colored with yellow
Animations that not used by game at all in my experience will be crossed

Animations you can replace in special animations folder
C:\...\mods\Some DAR mod\meshes\actors\character\animations\DynamicAnimationReplacer\_CustomConditions\-12345
(list of file names will be added in the future)

In female or male folders with file patch like so
C:\...\mods\Some DAR mod\meshes\actors\character\animations\DynamicAnimationReplacer\_CustomConditions\-12345\female
animobjectchairdrinkingidlebase.hkx
animobjectchairdrinkingidlestart.hkx
animobjectchairdrinkingidlevar1.hkx
animobjectchairdrinkingidlevar2.hkx
animobjectchaireatingidlebase.hkx
animobjectchaireatingidlestart.hkx
animobjectchaireatingidlevar1.hkx
animobjectchaireatingidlevar2.hkx
chair_basevar1tobasevar2.hkx
chair_basevar1tocrossedvar1.hkx
chair_basevar1tocrossedvar2.hkx
chair_basevar1tolookdown.hkx
chair_frontentervar1.hkx
chair_frontexit.hkx
chair_idlearmscrossedvar1.hkx
chair_idlearmscrossedvar2.hkx
chair_idlebasevar1.hkx - if you add too much of it for player character, it can be overdone, possible, but unlikely
chair_idlebasevar1shoulders.hkx
chair_idlebasevar2.hkx
chair_idlelookdown.hkx
chair_leftenter.hkx
chair_leftexit.hkx
chair_rightenter.hkx
chair_rightexit.hkx
dialogueangrya.hkx
dialogueangrye.hkx
dialoguemovingtalka.hkx
dialoguemovingtalkb.hkx
dialoguemovingtalkc.hkx
dialoguemovingtalkd.hkx
dialogueneutralexpressivea.hkx
dialogueneutralexpressiveb.hkx
dialogueneutralexpressivec.hkx
dialogueneutralexpressived.hkx
dialogueneutralexpressivee.hkx
dialogueneutralexpressivef.hkx
dialogueneutralexpressiveg.hkx
dialogueneutralexpressiveh.hkx
dialogueneutralexpressivei.hkx
dialogueneutralexpressivej.hkx
dialogueneutralexpressivek.hkx
dialogueneutralexpressivel.hkx
dialogueneutralexpressivem.hkx
dialogueneutralexpressiven.hkx
idlebloodportalactivate.hkx
idlechairbook_onepage.hkx
idlechairbook_pagesturn.hkx
idlechairbook_read.hkx
idlechairgive.hkx
mt_idle.hkx - everyone's favorite, but you shouldn't add too many variants of it
mt_idle_a_left_long.hkx
mt_idle_a_leg_shift.hkx
mt_idle_a_pull_pants.hkx
mt_idle_a_scratch_back.hkx

mt_idle_a_shakeout.hkx
mt_idle_a_shoulders.hkx
mt_idle_a_sigh_var1.hkx
mt_idle_a_sigh_var2.hkx
mt_idle_a_soft_right.hkx
mt_idle_a_sway_fast.hkx
mt_idlehhdleftenter.hkx
mt_idlehhdleftidle.hkx - I have "no looped idles" versions of my mods without tis ones
mt_idlehhdlefttoright.hkx
mt_idlehhdltorheadscr.hkx
mt_idlehhdrightenter.hkx
mt_idlehhdrightidle.hkx
mt_idlehhdrighttoleft.hkx
mt_idlehhleftenter.hkx
mt_idlehhleftexit.hkx
mt_idlehhleftexitfast.hkx
mt_idlehhleftidle.hkx
mt_idlehhlefttoright.hkx
mt_idlehhrightenter.hkx
mt_idlehhrightexit.hkx
mt_idlehhrightexitfast.hkx
mt_idlehhrightidle.hkx
mt_idlehhrighttoleft.hkx
mt_idlelookinga.hkx
mt_idlelookingb.hkx
mt_idlelookingc.hkx
mt_idlelookingd.hkx
mt_idlescratchhead.hkx
mt_idlescratchheadright.hkx

mt_runbackward.hkx
mt_runbackwardleft.hkx
mt_runbackwardright.hkx

mt_runforward.hkx
mt_runforwardleft.hkx
mt_runforwardright.hkx
mt_runleft.hkx
mt_runright.hkx
mt_sprintforward.hkx
mt_walkbackward.hkx
mt_walkbackwardleft.hkx
mt_walkbackwardright.hkx

mt_walkforward.hkx - and try to avoid adding too much variety for this one
mt_walkforwardleft.hkx
mt_walkforwardright.hkx
mt_walkleft.hkx
mt_walkright.hkx

npc_turnleft90.hkx
npc_turnleft180.hkx
npc_turnright90.hkx
npc_turnright180.hkx
npc_turntowalkleft90.hkx
npc_turntowalkleft180.hkx
npc_turntowalkright90.hkx
npc_turntowalkright180.hkx
special_horzcoffinenter.hkx
special_horzcoffinexit.hkx
special_horzcoffinidle.hkx
special_vertcoffinenter.hkx
special_vertcoffinexit.hkx
special_vertcoffinidle.hkx
weaponadjustment.hkx - this is not an animation really, don't replace it

Feel free to comment, I want to make this article more clear :)

Article information

Added on

Edited on

Written by

CHIMgarden

28 comments

  1. tattwood
    tattwood
    • member
    • 107 kudos
    Sticky
    I just had another thought. Do you know if the "conditions" logic functions result in Papyrus scripts or functions being called? If they do, then I wonder if the CTD's are caused by the "Max operations per task" limit, that Papyrus imposes on scripts?

    This is in reference to something I spotted in the mod "Papyrus Tweaks NG", found here....
    https://www.nexusmods.com/skyrimspecialedition/mods/77779

    This limit says that in the vanilla code, only 100 papyrus instructions can be executed per frame. So, if DAR uses papyrus functions or scripts to execute its conditions, then maybe that "max operations per task" affects and limits DAR's condition processing? It's just a guess, but would be good to find out if this is causing the problem.

    So CHIMgarden, can you easily reproduce this DAR animation problem? If so, it would be worthwhile doing the following test...

    Firstly, install the "Papyrus Tweaks NG"  Then open the ini file and change the "Max operations per taks" to a small number. Note the Tweaks mod has a default of 500. The papyrus vanilla value is 100. So, try setting it to a smaller number, and run the game. The idea is, that if DAR uses papyrus to process its conditions, and those functions are affected by the "Max operations per task" limit, then you should be able to increase and decrease the frequency of the DAR animation crash, by increasing and decreasing the "Max operations per taks" setting.

    If true, and "Max operations per task" does affect DAR's condition processing, then we may have a way to prevent this CTD for players who have a lot of animation mods.

    I would try it myself, but I don't have many animation mods installed, and my build currently isn't working. You mentioned on your build, that you frequently get the "T-pose" when starting the game, due to the conditions not being processed fast enough to find the next animation to play. So you're probably in a good postion to quickly test the above idea. I assume that using a lower value for "Max operations per task" should increase the amount of time you're in a T-pose, on the assumption DAR conditions are processed by papyrus scripts and are affected by the "Max operations per taks" limit.
    1. CHIMgarden
      CHIMgarden
      • premium
      • 1,336 kudos
      It sort of works, but I can't know for sure because I used unreasonable amount of heavy animations to overload my PC... I couldn't make it crash the game with a little extra added, so I made 10 DAR folders with 380 animations, 353 mb total. For comparison, my NPCAR mod has 111 animations and is 2,44 mb in file size.

      Naturally, this "cement shoes" took my PC down every time. With 1, 100, 500 and 2000 Maximum papyrus operations per frame values. But I noticed what going from 1 to 2000 time before CTD was gradually lengthening. So next time someone will report this CTD problem, I will recommend to install Papyrus Tweaks NG, maybe go  from 500 to 2000 value if needed.
  2. vinx909
    vinx909
    • member
    • 6 kudos
    the only thing i could argue is missing from this great tutorial is a baseline of what "too many" is. is too many 5, 20, 50 or 150? now i'm sure this also depends on your system, but it's just something i thought worth mentioning.
    1. CHIMgarden
      CHIMgarden
      • premium
      • 1,336 kudos
      Not only it depends on system specs, but also on how many other mods are using system resourses. So yeah, no numbers, because it will be misleading
  3. amrsalah2000
    amrsalah2000
    • member
    • 6 kudos
    i would like to say thank you to you sir 
    I haven't been crashing on loading a save but when I attempt to load to the skyrim world 
    I had this issue for like 6 months on two different meaty very heavy modlists 
    simply reducing the mt_idle somehow fixed this issue 
    so thank you very much sir
    1. CHIMgarden
      CHIMgarden
      • premium
      • 1,336 kudos
      Miss CHIMgarden is glad to hear about your success in applying her workaround method :)
  4. tattwood
    tattwood
    • member
    • 107 kudos
    Just had a thought. You mentioned that it taks about a minute for the crash to occur. This sounds like there is some specific timer somewhere which controls how long to keep trying to load an animation before crashing.  Makes me wonder if its possible to find this timer. For example, is it in the game engine code, or is it part of DAR itself? Is DAR's source code available?
    1. CHIMgarden
      CHIMgarden
      • premium
      • 1,336 kudos
      This is what I am wondering myself, but I am beyond my depth here. I hope someone can fix this and I will have more freedom with my animations :)

      DAR source code is not available, but rumor is Doodlezoid is updating DAR and perhaps it will be open afterwards
    2. tattwood
      tattwood
      • member
      • 107 kudos
      Do you know if Doodlezoid  is aware of this animation crash with looping idles? To the best of my knowledge, you seem to be the first to find out exactly what is causing this type of crash. Would be a good idea to pass on this info onto Doodlezoid, to see if he can prevent this problem in the future, or at least output a useful crash message so the player can do something about the number of animations they have installed.
    3. CHIMgarden
      CHIMgarden
      • premium
      • 1,336 kudos
      That would be great to have this functionality added to new version of DAR. I will add more detail to this article and send it to Doodlezoid then
    4. doodlum
      doodlum
      • premium
      • 3,413 kudos
      My understanding was that DAR precaches animations. Are you saying that it doesn't then?
    5. CHIMgarden
      CHIMgarden
      • premium
      • 1,336 kudos
      Oh hello! Thank you for taking a look :)

      DAR precaches animations added like this 
      meshes\actors\character\animations\DynamicAnimationReplacer\Dawnguard.esm\00002B6C\female\mt_idle.hkx
      But it can't do it for some reason for animations added like this
      meshes\actors\(project folder)\animations\DynamicAnimationReplacer\_CustomConditions\<Priority>\(animation folders and files and _conditions.txt)
      Edit: To quote Felisky "Condition checking is done dynamically, so too many may affect performance. Unlike the ActorBase assignment of this mod, animations added by custom conditions are pre-cached on load for all actors in the project." At the bottom of sticky post

      Have you seen A-pose on save load in your game with DAR mods installed? On my not so powerful PC I see it every time with all my mods installed and some others
    6. doodlum
      doodlum
      • premium
      • 3,413 kudos
      I asked about this. Apparently it only affects people with incredibly terrible computers, in this way. Although there's another issue I might want to look into. So every time you load the game, it pauses/gives a blackscreen whilst it finishes the precache.
    7. CHIMgarden
      CHIMgarden
      • premium
      • 1,336 kudos
      On behalf of all people with terrible computers I can say having pause\blackscreen will be great!
    8. Sorlomon
      Sorlomon
      • supporter
      • 13 kudos
      That's interesting. I remember reading a comment (here or Reddit) from SimonMagus616 discussing perk conditions and a limitation of ~250 at once iirc.
  5. Glanzer
    Glanzer
    • premium
    • 201 kudos
    I too see the A pose on my character if I load into a city and he's wounded (I have a Wounds DAR animation mod installed). It takes about a full 60 seconds for him to finally snap out of it. And even after that I have to wait a full minute or two before my 3rd person TK Dodge RE animations start working.

    If I load a save from within the game, all the animations are precached and I have no wait. Not that I ever do that, I only did that for testing. I always go back to the desktop to load a save when playing the game for real.

    EDIT: I still need to read through the article again and try to figure out how many good/bad animations I might have. Seems like someone could create a powershell or other script to be run from the vfs in MO2 to count the DAR animations and give some kind of analysis, rating, and recommendation based on the CPU.

    EDIT #2: I see people in the Wounds Animation mod complaining about the number of animations and how it causes A posing. That mod has 5k animations, though they're only for the PC. The users in the posts refer to a 16k DAR limitation, and someone pointed to this as a way of increasing that to 32k. Thoughts on that?
    1. CHIMgarden
      CHIMgarden
      • premium
      • 1,336 kudos
      Are you using True Directional Movement? If you are, you won't see any other wounded animation other than different kinds of idle, walk forward and run forward. You can delete all turning, walk and run backward and to all other directions other than forward. It will downsize it all significantly and will result in A-pose going away faster. Author of Wounds Animation mod can make this lighter version for people who use TDM.

      I have never had over 16k of animations in my game, yet I had this CTD on save load, so I am convinced it is not the same. But other people can have both problems at the same time, why not :)
    2. Glanzer
      Glanzer
      • premium
      • 201 kudos
      Yeah I do use TDM even though I normally play in 1st person. I tend to switch back and forth because some animations are only available in 3rd person, while other mods work best in 3rd person, like Go to Bed and Simply Rest Anywhere.
  6. Mrshade11
    Mrshade11
    • premium
    • 0 kudos
    Interesting and thanks! Glad i am tracking you. I have about 45 mt_walkforward.hkx and about 200 mt_idle.hkx animations and with a 12700k i occasionally noticed the A pose but have just ignored it the past test runs. Do you have a clue on how much is too much or is it entirely system dependent?
    1. CHIMgarden
      CHIMgarden
      • premium
      • 1,336 kudos
      Oh, that is a significant amount of animations! I have i5-3450, this would cripple my PC... With 12700k you don't experience this CTD on save load?

      I think number of "looped" animations people can add depends on PC specs and other mods using it's resourses at save load, so if your PC can process all you have added without CTD, there are no reason to minimize amount of animations other than to get rig of visually unpleasant static pose display, if you would wish to.

      Are this animations configured to play only on your character or all actors? What folder numbers are used? What is the average file size of this animations? Smaller file size and lesser amount of animations in folder, higher DAR folder numbers and focused conditions are factors that help to minimize this prolonged static pose display that might lead to crash
    2. Mrshade11
      Mrshade11
      • premium
      • 0 kudos
      I was using a combination of all your mods, EVG idles and Skyidles on my latest modlist. As i am on SkyrimVR, these idles are all used for npcs. Your mods don't seem to have too many looped idles, but the other 2 mods mentioned are quite heavy with them. EVG's looped idles are also around 200kb each compared to the average 20kb. Most folders are numbered around 20 - 5000, EVG idles has it at 600000. The A pose can be really apparent in cities when all the citizens are out and about, but usually only for a few short seconds. I will run some more runs to see if the game crashes for my setup or not. Perhaps it might be prudent as you suggested to prune out some idles to avoid unexpected CTDs during an actual run.
    3. Akira1364
      Akira1364
      • premium
      • 52 kudos
      Having thousands of DAR animations is completely normal TBH. You'll want to use this, which is a bit more effective than the Engine Fixes version of the same thing:
      https://www.nexusmods.com/skyrimspecialedition/mods/31146
    4. CHIMgarden
      CHIMgarden
      • premium
      • 1,336 kudos
      You can try deleting everything in each of EVG Conditional idles besides mt_idle.hkx and mt_walkforward.hkx animations, that way you will create much lighter version of this mod and is will result in a-pose to be rarely seen
  7. Akira1364
    Akira1364
    • premium
    • 52 kudos
    It can't possibly check them from top to bottom, if that were the case you would have to use increasing parameters for `Random()` instead of decreasing ones.
    1. CHIMgarden
      CHIMgarden
      • premium
      • 1,336 kudos
      You can read about it here Dar Random() Calculator
  8. CornerInMcgregor
    CornerInMcgregor
    • member
    • 0 kudos
    Thats huge info
  9. urbon
    urbon
    • premium
    • 746 kudos
    Thank you for this info!!
    1. CHIMgarden
      CHIMgarden
      • premium
      • 1,336 kudos
      Glad to help! I will add more tips here in the future