Basic requirements to follow this FAQ
Use the following utilities and have some idea of what they do.
- ENBoost: This extension moves the DX9 texture cache to a different 64 bit process. This reduces the chance of filling up the 32 bit process with textures causing random CTDs.
- Crash Fixes: This is an SKSE plugin that helps catch some issues that cause skyrim to CTD, freeze or hang.
- Some form of memory fix:
- SSME: Made redundant by SKSE memory tweaks.
- SKSE memory tweaks: This changes the initial heap size to make it larger. This avoids the issue where skyrim will not increase the heap causing it to CTD, freeze or hang. This method requires some input for the correct size. This can be found by using Memory Blocks Log. This is a workaround to an issue.
- Crash Fixes OSAllocators: This is a fix for the same issue that SKSE memory tweaks workarounds. This is a true fix but has its share of issues.
- Crash Fixes CustomMemoryBlocks: This is a fix to some of the issues caused by OSAllocators. By breaking the heap into smaller blocks, the memory can be allocated and freed as needed. This method requires some input by observing how high you need to set the blocks size. This can be viewed in the console if the toggle is enabled.
Info that is typically useless:
- Papyrus logs: These are NOT crash logs. Typically, the last entry could be several minutes before you even experience a crash. Any useful info is typically debugging code in scripts, this is usually removed/disabled before a mod is released. This is a very helpful tool to modders, but not to users.
- Windows logs: These are rarely of any use to a user.
Issues caused by SKSE memory tweaks:
Problem: I randomly CTD.
Solution: Check the size against the memory blocks log. If the last element is close to the max size then you may need to increase heap 1 by some amount(~128 MB increments is accurate enough). Heap 2 doesnt need to be increased as it spawns more like it should.
Issues caused by Crash Fixes OSAllocators:
Problem: I get "Skyrim has failed to allocate memory"
Solution: This is caused by memory fragmentation and there isn't really a solution for this. Its suggest to use the custom memory blocks instead.
Issues caused by Crash Fixes CustomMemoryBlocks:
Problem: Stuff isn't loading in as expected.
Solution: Check to make sure the size is appropriate.
How to read and interpret Crash Fixes crash log:
I don't know, I'm curious myself. The hex given isn't a formid, its a memory location by my understanding.
This is the easiest solution to the memory issue.
Install this manually into the "Skyrim" folder(with the TESV.exe)
Install this manually by moving the SKSE folder into the "Skyrim\Data\" folder
Then open the "Skyrim\Data\SKSE\Plugins\CrashFixPlugin.ini"
Modify the "UseOSAllocators=0" to "UseOSAllocators=1"
You should be good now.
I'd recommend removing the old methods of heap modification, ENBoost is fine.
I made this sticky because there is a sudden up-rise in CTD relating to the memory tweaks not working. It is flooding The General forum and has kind of spread to the memory blocks log mod topic.
If you are curious how the memory tweaks work, there is an amazing post by keith over here.
There are several reasons for one to CTD or freeze but the most common one is that the SSME/Memory Patch 3.0/SKSE memory tweaks are not applying for some reason.
NOTE: SSME is no longer needed and should be removed and replaced with the SKSE Memory Tweaks.
Safety load is also not needed anymore and may cause unexpected issues.
First, please copy and paste the following into your SKSE.ini file
Make sure your ini is located as such ...\Skyrim\Data\SKSE\SKSE.ini
[General] ClearInvalidRegistrations=1 [Memory] DefaultHeapInitialAllocMB=768 ScrapHeapSizeMB=256
To find out if your memory tweaks are working correctly, download and install Memory Blocks Log.
Run the game through MO, I would recommend fully loading into the game but the main menu will suffice. After which close out of the game and open MO again if it closed on you. Go to the overwrite folder and navigate to the "SKSE\plugins\" folder and open up the memoryblockslog.log.
Your log should look similar to this:
logging of blocks enabled logging max values only Timer disabled Block1 Block2 512MB 256MB
However, people that experience a lot of crashing will have something like the following:
logging of blocks enabled logging max values only Timer disabled Block1 Block2 256MB 256MB
The most common "fix" is to open the "Modify Executables" window by clicking the gears on the top part of MO and select the SKSE executable and add the Argument
It should then look something like this.
After which, click the modify button and then relaunch the game through MO then close it and make the comparison again.
If your results did not change then make a post below, otherwise search for topics that already exist in the General forum. If your particular issue does not already exist then make a new topic and there will be someone to answer your questions.