Jump to content
  • entry
    1
  • comments
    36
  • views
    1,211

2020 Skyrim LE Stability Guide


mrsrt

35,297 views

This is the most actual stability guide that will help you to fix known crashes, technical problems, bugs and improve overall gaming experience as much as the old 32-bit game engine allows. 

 

Philosophy of Crashes

Complete text

Spoiler

Before we start to work on something we should understand what exactly we will work with. Crashes-To-Desktop (CTD) always caused by Unhandled Exceptions inside the game process. It means something went bad in a way when the game engine cannot continue its work. For example, we need to read a value in some configuration file. We read the file, find the required variable and parse its value. But what if we try to read a file that is not exist? - Exception will be thrown that potentially may crash your game. Developers must check first if the file exists and only then try to read it. 

 

Skyrim is a game, considered to be a modding sandbox. It was developed to be modded, special tools was shared for modmakers to help them create new content for the game. Everything was done in a way to allow players make mods. Except file validation. 

You can replace any file you want for the game whether it will be esp, animation, texture or skeleton, but the game engine completely have no checks for what is that file. You can simply create a txt file, rename it to skeleton.hkx, put it for some creature and the game seriously will consider the file as a skeleton. No checks for structure, no checks for resource data at all. And this is the most common reason of CTDs in 2020 skyrim.

Let's say, you downloaded a new remodel for sweetrolls, it has a mesh and the mesh was built with some new format that game engine doens't know. It will have the same extension and look like valid, it will even work, but under some circumstances some data inside the mesh will be different, the game engine will not expect that and in result it may lead to crash. Simply because the mesh format is not correspond to one, expected by engine. Is it fault of modmaker? - No, this is a completely developer's fault. If a file is expected to be replaced it must pass checks and only then used. 

 

Ofcourse, this is not the only reason for CTDs. The second most common reason of crashes are bad designed mods/scripts. The game gives to modders quite wide opporunities to create stuff. If a modder doesn't know how to use them properly or simply made a mistake it may also lead to unhappy consequences, especially with SKSE usage. The game can crash and even ruin your gamesave because of one 10-lines script.

 

The game also have unsafe memory design, internal bugs, 32-bit app limitations, legacy code that works by miracle, but these 2 reasons above cover 95% of CTDs of modern skyrim by my analysis. In other words, if you're modding your game you're always risking to get crashes.

 

 TL;DR

Spoiler

Most of modern skyrim crashes caused by 2 main reasons:

- The game engine has no resource checks

- Bad designed mods

If you're modding your game you're always risking to get crashes.

 

 

Part I - Memory Patches

Skyrim's memory model was designed to work with fixed sized memory blocks. There're a lot of memory blocks in the game process, but we're insterested in 2 main blocks. These blocks hold dynamic in-game data such as NPCs, quests, items and models of everything you see in the game together with script data and something else. It's obvious, the more you mod your game the more data will be stored inside these blocks. But, their sizes are fixed and if stored data overflow crash happens. 

 

We have 2 ways to fix the problem:

- SSME: Largely increase their size to fit appetite of modern skyrim.

- OSAllocators: Remove these blocks and store its data in shared area using OS allocations. 

 

Both ways work, both ways have its pros and cons, and both ways will be shown here. You can choose yourself what path to go:

 

SSME (Recommended):

+ Found by me as the most stable way

+ Uses default alloc method that engine supposed to work with

- Block size increased but still limited (enough for vast majority of players)

- Size of Block 2 cannot be modified (but it's very hard to overflow the block even with a hardly modded game)

 

OS Allocators:

+ Blocks completely unlimited, all data stored in shared process area

+ Supposed to be faster

- Less stable by my tests and much more sensitive to resource data

- May require additional calibrations 

 

Opinion: I always prefer SSME way. for me it behaves more stable and less buggy, however, if your game is very very extremely modded limitations of SSME way may affect. However, I met only one person yet who was able to mod the game to such condition. If you still don't know what to choose go SSME way, it will fit 99% of players.

 

SSME way:

Spoiler

SKSE configuration

Spoiler

SKSE is an extender for Skyrim that expands its script language, allows mod makers to create native functions and much more. It is mandatory to have installed SKSE nowadays. In case for some reason you didn't install SKSE yet, it can be found here: https://skse.silverlock.org/

After installation you need to create a file named SKSE.ini in directory Data/SKSE. If you already have it make sure that u have right values for variables as below. The most important config here is DefaultHeapInitialAllocMB it is responsible for Block 1 size, we set it to 1280 (default 256) that will fit even extremely hard modded games. 



[General]
# Warns us if some mod is missing when we load a game save
EnableDiagnostics=1
# Skse will do clean up if u have dirty removed some mod from a game save  
ClearInvalidRegistrations=1

[Memory]
# Memory patches with recommended values
DefaultHeapInitialAllocMB=1280
ScrapHeapSizeMB=256

[Display]
# Higher quality of makeup textures for characters. 2048 should be pretty enough. Default: 256
iTintTextureResolution=2048

[Debug]
# If your skyrim has crashed it will create a mini crashdump that we may use to determine the reason of it
WriteMinidumps=1 

 

CrashFixPlugin

Spoiler

This is the main stability plugin for Skyrim LE as it fixes many consequences caused by lack of resource checking as well as other crashing places. Can be found here: https://www.nexusmods.com/skyrim/mods/72725/

 

EnbSeries

Spoiler

It is mandatory to enbseries be installed for skyrim nowadays not just because it's beautiful, but for memory management and other features. Install the last version from here (if not installed): http://enbdev.com/download_mod_tesskyrim.htm

Once installed find your enblocal.ini in the main directory. It is a config file with basic local options for enbseries. 

 

ReduceSystemMemoryUsage - delegates texture data storage to another process(es). This is the most important option that should always be enabled. Greatly frees the game process memory from texture data what prevents the game from crashes caused by 32-bit app memory limitations. 

 

VideoMemorySizeMb - don't forget to put here the amount of your video memory size (mb). This way enb will know how much it can use. Or if you are too lazy or just don't know turn AutodetectVideoMemorySize to true.

 

ExpandSystemMemoryX64 - experimental option that enables blocks storage on the bottom of the process memory. May help with stutterings. Not recommended due to inability to work with block 1 more than 768mb. You can play with the option if you want but firstly you should set DefaultHeapInitialAllocMB=768 in SKSE.ini, otherwise CTD on loading happens.   

 

EnableFPSLimit - disable this if you want to play with uncapped or higher than 60 fps. 

 

If you still have some technical problems with enb or the game itself try to use the ISSUES AND BUG FIXES section here: https://www.nexusmods.com/skyrim/mods/38649 If your PC is not strong enough you also may find enboost useful.

 

DO NOT REPLACE YOUR enblocal.ini WITH ANY ENB PRESETS! This is your own configuration file for your PC.

 

Safety Load

Spoiler

This mod fixes the annoying bug when your loading between cells becomes infinite. It happens because of deadlock which the mod fixes. Can be found here: https://www.nexusmods.com/skyrim/mods/46465

 

 

OS Allocators way:

Spoiler

 SKSE configuration

Spoiler

SKSE is an extender for Skyrim that expand its script language, allows mod makers to create native functions and much more. It is mandatory to have installed SKSE nowadays. In case for some reason you didn't install SKSE yet, it can be found here: https://skse.silverlock.org/

After installation you need to create a file named SKSE.ini in directory Data/SKSE. If you already have it make sure that u have right values for variables as below:



[General]
# Warns us if some mod is missing when we load a game save
EnableDiagnostics=1
# Skse will do clean up if u have dirty removed some mod from a game save  
ClearInvalidRegistrations=1

[Display]
# Higher quality of makeup textures for characters. 2048 should be pretty enough. Default: 256
iTintTextureResolution=2048

[Debug]
# If your skyrim has crashed it will create a mini crashdump that we may use to determine the reason of it
WriteMinidumps=1 

 

CrashFixPlugin

Spoiler

This is the main stability plugin for Skyrim LE as it fixes many consequences caused by lack of resource checking as well as other crashing places. Can be found here: https://www.nexusmods.com/skyrim/mods/72725/

Also we need a plugin preloader to make it work proper: https://www.nexusmods.com/skyrim/mods/75795/ (be sure to put the dll to the same directory with skyrim.exe)

Once everything installed find the config file: Data/SKSE/Plugins/CrashFixPlugin.ini and set UseOSAllocators=1

If you have any problems you can also take attention on options like CustomMemoryBlock and others. All options are pretty well described.

 

EnbSeries

Spoiler

It is mandatory to enbseries be installed for skyrim nowadays not just because it's beautiful, but for memory management and other features. Install the last version from here (if not installed): http://enbdev.com/download_mod_tesskyrim.htm

Once installed find your enblocal.ini in the main directory. It is a config file with basic local options for enbseries. 

 

ReduceSystemMemoryUsage - delegates texture data storage to another process(es). This is the most important option that should always be enabled. Greatly frees the game process memory from texture data what prevents the game from crashes caused by 32-bit app memory limitations. 

 

VideoMemorySizeMb - don't forget to put here the amount of your video memory size (mb). This way enb will know how much it can use. Or if you are too lazy or just don't know turn AutodetectVideoMemorySize to true.   

 

EnableFPSLimit - disable this if you want to play with uncapped or higher than 60 fps. 

 

If you still have some technical problems with enb or the game itself try to use the ISSUES AND BUG FIXES section here: https://www.nexusmods.com/skyrim/mods/38649 If your PC is not strong enough you also may find enboost useful.

 

DO NOT REPLACE YOUR enblocal.ini WITH ANY ENB PRESETS! This is your own configuration file for your PC.

 

 

 

Part II - Animation Fixes

Installing too many animations may bring unwanted consequences, in the worst case you'll not be able to load or start a new game. Even if you don't have additional animations it's still recommended to go through the part. 

 

FootIK Solution

Spoiler

When you install too many animations the first problem you meet will be the FootIK error. Usually it happens on the first game loading in open spaces. There're several ways to fix the error. Choose one.

 

ContinueGameNoCrash

Spoiler

This mod will help us to prevent FootIK error (and probably others) when loading a game save with many fnis animations installed. It works with a simple trick: if we load a game save directly we risk to get error, but if we start a new game and only then load the save the error never happens. And this is what exactly the mod does. Can be found here: https://www.nexusmods.com/skyrim/mods/78557/

I recommend to put esp of the mod on top of load order.

Warning: the version has a little bug, when you start a new game and want to load another save you need to load it twice. Happens only once after a new game creation. Can be fixed with pressing F5 F9 F9. 

 

Load Game CTD Fix

Spoiler

The new version of ContinueGameNoCrash. Works without esp, dll only. Also fixes first loading bug and correctly shows messages with missed esp's. Can be found here: https://www.nexusmods.com/skyrim/mods/85443

Warning: may impact on fps. I found the dll consumes up to 5 fps for me what made me refuse the solution for personal usage.

 

Animation Loading Fix v1.0 (Recommended)

Spoiler

Is a modern solution that preloads animations what allows to pass FootIK initialization correctly. I didn't use the solution for long but it should be the best one. Can be found here: https://www.nexusmods.com/skyrim/mods/98204 Get version 1.0.

Warning: VERSION MUST BE STRICTLY 1.0. DO NOT INSTALL VERSION 1.1 OR HIGHER, IT'S INCOMPATIBLE WITH THE NEXT PLUGIN. 

 

 

Animation Limit Solution

Spoiler

Skyrim has internal limit of numStatcNodes when passing which the game will always crash on loading until you remove some animations. There're 2 solutions to fix this. Choose one.

 

Animation Limit Crash Fix LE (Recommended)

Spoiler

This plugin was created by me while debugging the crash. It always drops the numStatcNodes register what prevents crashing and also may increase FPS and loading speed. Can be found here: https://www.nexusmods.com/skyrim/mods/100672

Details about performance impact can be found here: https://www.nexusmods.com/skyrim/articles/52477

 

Animation Loading Fix v1.1

Spoiler

This plugin since version 1.1 has it's own solution to fix the limit problem but with no performance impact. If you don't care about FPS and don't want to hold additional dll's you can use this solution. Can be found here https://www.nexusmods.com/skyrim/mods/98204 Get version 1.1.

 

 

Part III - Optional 

This part is not strictly required, however can improve overall game quality and/or stability under specific circumstances. 

 

 HDT Physics Extensions Crash Fix

Spoiler

If you're using HDT-PE (the mod that gives you physics for hair, body and other things) you may suffer from random CTD's on game loading. Or may not. Btw, I recommend to install the plugin if you're using HDT-PE because the problem can appear anytime as the cause is not yet completely clarified, especially why one suffers from it and another one not. My bet is it depends on physics preset, so if you gonna change it you probably risks to obtain the problem. 

The plugin can be found here: https://www.loverslab.com/files/file/12301-hdt-physics-extensions-crash-fix/

 

Papyrus performance

Spoiler

Do you have any problems with papyrus (e.g. big delays between scripted actions, something happens longer than intended, actions happens not in the right time)?

No

Spoiler

Then you don't need to do anything.

Yes

Spoiler

It may happens because of the overloaded script engine or a bad designed mod. As tests shown, it shoudn't happen in a normal working game with well tested mods. Highly likely you have a mod that causes these problems or the mod where it happens have problems by itself. However, for overloaded script engine may help these options:

 



[Papyrus]
fUpdateBudgetMS=1.6
fExtraTaskletBudgetMS=1.6
fPostLoadUpdateTimeMS=1000.0
iMaxMemoryPageSize=8192
iMinMemoryPageSize=256
iMaxAllocatedMemoryBytes=67108864
bEnableLogging=0
bEnableTrace=0
bLoadDebugInformation=0
bEnableProfiling=0

Put them to the Documents/My Games/Skyrim/Skyrim.ini

It will not cure your problems, but may smooth them. 

 

If you want to continue configuring Skyrim.ini I recommend to use this guide: https://wiki.step-project.com/Guide:Skyrim_Configuration_Settings But be careful and make backup before any changes. 

 

 

High FPS Patches

Spoiler

This section mainly designed for those who want to play with uncapped fps, but will be useful for everybody. 

 

Havok Fix

Spoiler

Havoc (physic engine) should be synchronized with frame rate, but it's static by default and can be configured with fMaxTime option. By default it's configured to work with 60 fps, if your fps goes above or below physic and/or sound glitches may appear. Havok Fix Plugin was created to synchronize frame rate with Havok update time what prevents these glitches. Can be found here: https://www.nexusmods.com/skyrim/mods/91598

Warning: may impact on fps as it works every frame. To lower the performance impact I recommend to set fixed update time with 'freq' option. I play with 50. 

 

BugFixPlugin

Spoiler

As the name mentions, it fixes several game bugs. Also option FixVerticalLookSensitivity fixes the annoying camera sensity bug with high fps. Mod can be found here: https://www.nexusmods.com/skyrim/mods/76747

 

 

Windows 7 users warning

Spoiler

If you're a user of Windows 7 x64 your 32 bit Skyrim cannot work with more than 2GB (by default). It caused by Data Execution Prevention which doesn't work properly with LAA (Large Adress Aware) flag in this version of Windows. To allow Skyrim consume up to 4GB you should disable DEP for exact this application. You can easily do this following this instruction: https://www.online-tech-tips.com/windows-xp/disable-turn-off-dep-windows/

It is very important for Skyrim to have enough memory. If at some point the game engine will not be able to find enough memory it will simply crash. 

 

Critter Spawn Fix

Spoiler

Vanilla critter spawn in Skyrim has very poor performance and architecture, it damages our papyrus viability and may lead to problems in some cases, especially for heavy scripted skyrim. Completely redone critter spawn can be found here: https://www.nexusmods.com/skyrim/mods/76139

 

Dangerous Mods

PlayerSuccubusQuest (https://www.loverslab.com/files/file/667-psq-playersuccubusquest-for-sexlab/) - cum inflation feature of this mod produces infinite threads what eventually breaks papyrus script engine together with your game save. Disable this feature if you want to play the mod safety. 

 

Simply Knock & StorageUtil (https://www.nexusmods.com/skyrim/mods/73236) - this mod uses StorageUtil on gamesave loading to get configuration with relative access "../SimplyKnockData/Common.json". The path is converting by StorageUtil with codecvt function which in that case may work incorrect on Windows OS and access null ptr what crashes the game. It is not really a Simply Knock or PapyrusUtil problem, however are triggering by them. Crash is platform dependent and not guaranteed to pop up for everybody.

 

Dragonborn In Distress (https://www.loverslab.com/files/file/8215-dragonborn-in-distress/) - may cause CTD while save attempt in active quest stage for unknown reasons (I didn't investigate it). Since ver 2.03+ seems to be fixed. 

 

 

Recommendations

- Don't alt-tab from the game. It's simply not supported by Bethesda even with vanilla game. But if you really need to alt-tab at least make a savegame, because returning back you may meet a CTD. 

- Do not disable your mods from load order during game time. It may break your scripts, quest and gamesave completely even if clean it up.

- Always make backups. For everything. For example some mods replace vanilla scripts and if you turn off a mod like this it may break the script completely. So it is very important to do a proper clean up and restoration after deletion. Backups saved my Skyrim many times.

- Keep your main save away from new mods and even mod updates. You cannot know will you like this mod or not, will it bring any problems and so on. If you want to try a new mod i recommend to start a new game and try it out. And after some time if everything looks good include the mod to your main save.

- If you pack your mods into BSA be careful with seq files. BSA archive should have proper flags if contains a seq file. Otherwise it will be unable read and break the mod. Furthermore, new game will be required even if you fixed it.

- If you want to try a new mod, at first better to put it at the end of the load order. If you do it this way the new mod will override everything it needs and it will be less chances to break something for the new mod because of incompatibility with others. However, with this action you still can break old mods in case of incompatibility.

 

Useful

Game paths

Spoiler

Papyrus logs: Documents/My Games/Skyrim/Logs/Script

SKSE crashdumps: Documents/My Games/Skyrim/SKSE/Crashdumps

Regedit Skyrim installation path: HKEY_LOCAL_MACHINE/SOFTWARE/WOW6432Node/Bethesda Softworks/Skyrim

Loadorder: %AppData%/Local/Skyrim

 

Links

Wide collection of guides and useful links to solve many game related problems by @worik https://www.loverslab.com/blogs/entry/6768-patchwork-how-do-i-fix-this-and-that-a-link-collection/

 

Well done blog about how to properly setup and mod the game by @donttouchmethere https://www.loverslab.com/blogs/entry/7521-conglomerate-01-basic-setup-for-modifing-skyrim-le-well-my-skyrim-got-messy-now-i-have-to-clean-it-up-so-i-thought-to-myself-why-not-start-a-blog-about-that/

36 Comments


Recommended Comments



I've never found a solution to the "physics bug makes NPCs invisible".

I'm using Vsync and ENB frame limiter and all the setup from this article, but I still get NPCs with pieces of HDT driven geometry stretching off for miles, or HDT bodies disappearing completely.

 

I always have had this issue. Nothing seems to stop it. Whether it's VSync in NVidia control panel, or VSync in the vanilla skyrim setup, or VSync and frame limiter in ENB, but I've always had issues with female NPCs who shoot parts of their chest off to the horizon then vanish, and I still do.

Link to comment
16 hours ago, Lupine00 said:

I've never found a solution to the "physics bug makes NPCs invisible".

I'm using Vsync and ENB frame limiter and all the setup from this article, but I still get NPCs with pieces of HDT driven geometry stretching off for miles, or HDT bodies disappearing completely.

 

I always have had this issue. Nothing seems to stop it. Whether it's VSync in NVidia control panel, or VSync in the vanilla skyrim setup, or VSync and frame limiter in ENB, but I've always had issues with female NPCs who shoot parts of their chest off to the horizon then vanish, and I still do.

This bug is caused by desync between game and physic engines which is caused by unstable fps. This is not about hardware (however it affects), Skyrim is a game that was designed in a way fps with cannot be static and this is normal for a 3d game. One moment you look at a wall with stable 60 fps, another moment you look at a fight on a hill with a lot of NPC's and your fps drops to 45, this is where desync happens. 

There's no absoulte fix for the problem, however the occurance can be significantly reduced by Havok Fix noted in the guide (High FPS patches section). I recommend to try it in several ways:
1) Default setup, no changes

2) freq=50 (the option in the ini that is going together with the Havok Fix dll)

3) freq=17

Some options can perform worse or better, some may affect fps, some may cause item "jumps" when enter cells. I would recommend to experiment with it for the best effect. 

 

Also, SMT has no such problem as i remember, if it's possible to use it for your game build instead of HDT that will work. 

Link to comment

Hey, silly question but just in case. Do i have to actually install SSME along SKSE for the first option? I been reading some comments about how they do essentially the same thing. Kinda stupid i know, but better safe than sorry.

Link to comment
21 hours ago, Marcevus said:

Hey, silly question but just in case. Do i have to actually install SSME along SKSE for the first option? I been reading some comments about how they do essentially the same thing. Kinda stupid i know, but better safe than sorry.

SSME patch is integrated inside SKSE, no need to install it

Link to comment

critter spawn fix on nexus is offline.

is nexus now dieing, yes? never had so many dead nexus links than in the past weeks... 

Link to comment
1 hour ago, Nymra said:

critter spawn fix on nexus is offline.

is nexus now dieing, yes? never had so many dead nexus links than in the past weeks... 

Good. Since they're so bad with their policies let them die. Let's hope the author will post the mod on LL or somewhere else.

Link to comment
1 hour ago, XarisZ said:

Good. Since they're so bad with their policies let them die. Let's hope the author will post the mod on LL or somewhere else.

 

well... it still does not make life easier for all of us this way... such a shame indeed :(

 

Link to comment
30 minutes ago, Nymra said:

 

well... it still does not make life easier for all of us this way... such a shame indeed :(

 

 

I have installed the mod in my LE setup, I can attach it if you still want to download the fix

Edited by tygct
Link to comment
On 8/23/2021 at 10:27 AM, Nymra said:

critter spawn fix on nexus is offline.

is nexus now dieing, yes? never had so many dead nexus links than in the past weeks... 

He uploaded an alternative version tho.

Didn't tried it yet, but it looks promising.

 

No looks there is much happening yet.

Edited by donttouchmethere
Link to comment

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use