Speed and Stability Guide for ENB
This guide should fix many CTDs, bugs, and low FPS issues. Think of it like the penicillin shot of Skyrim.
Speed and Stability Guide for ENB
These processes will solve (many) CTDs, bugs, and low FPS issues.
I highly suggest reading the whole article. Pay attention to the notes in yellow.
I’ve tried to keep it as brief as possible. Happy modding!
BACKUP EVERYTHING FIRST.
Endorsements Welcome 😉 The more people that see this, the less confused and upset users there’ll be.
Info below is courtesy of Boris Vorontsov, keithinhanoi (endorsed), Sheson (endorsed), Mangaclub (endorsed), SkyrimTuner (endorsed), ewi65 (endorsed), firemanaf (endorsed), artem1s, The STEP Project, and adelinadragonborn (endorsed).
Fixing Your Vanilla Settings
This section of the guide will make sure that you’ve got the optimal settings in your vanilla game to run an ENB.
Some of these settings are actually required by ENB to function properly.
1. Make sure that all of the required mods for your ENB are installed.
2. In your video driver’s settings for TESV.exe, turn Antialiasing, Anisotropic Filtering, FXAA, and SSAO off or defaulted to Skyrim’s settings. Turn on VSync. Mine is set to “Adaptive.”
3. Go to Steam/steamapps/common/Skyrim/enbseries and look for enbhelper.dll. If there isn’t one, download ENB Helper from the downloads section, extract it, and add it.
*This provides ENB with more info from the Skyrim engine to base its rendering off of. This is required for ENBSeries 0.250+.
4. MO users go to Mod Organizer/profiles/[your profile]/.
4. Everyone else go to Documents/My Games/Skyrim/.
5. Edit these lines in your SkyrimPrefs.ini file.
THESE CANNOT BE COPY AND PASTED. ONLY LINES THAT HAVE BEEN CHANGED ARE INCLUDED.
6. Download and install the Update.ini file from the downloads section of this guide.
7. Download and install Optimized Vanilla Textures.
8. Download and install High Quality LODs.
9. Download and install Particle Patch All-in-One and Subsurface Scattering Patch in the downloads section of this guide.
Bug Fixing/Memory Management
This section of the guide will help sort, clean, and amend your mod list as well as optimize your memory usage.
Sorting, Cleaning, and Emending your Mod List
1. Download LOOT, TES5Edit, Wrye Bash, and Savegame script scalpel.
*If you use MO, you have to run these within MO. To do this, click on the gears icon in the toolbar. Select their respective .exe files as the binaries and enter the name of the program as the title. You can now run these programs like you would SKSE or Skyrim.
2. Run LOOT, select “Sort Plugins,” and click apply.
*Norton thinks that LOOT is malicious. Check the most common problems for a solution.
*As of MO version 1.2.1, LOOT is integrated into the sort button.
*LOOT 0.6 requires Internet Explorer 11 to generate the reports. This requirement will go away with LOOT 0.7.
3. Go to the “Details” tab and check to see if LOOT recommends any mods be cleaned with TES5Edit. Do not close the results. You’ll have to know the order of which ones need cleaning.
4. Run TES5Edit and leave all of your mods checked. Make sure that it doesn’t have any errors loading them all.
*If it does, you probably have a mod that you shouldn’t be using. Find out which it is, get rid of it, and run LOOT again.
5. Close TES5Edit.
6. Run TES5Edit again and ONLY CHECK THE FIRST MOD IN THE LIST THAT LOOT SAYS NEEDS CLEANING.
*Other mods will load with it. This is normal.
7. When it loads, right click the mod that needs cleaned and select “Apply Filter for Cleaning.”
8. Right click again and select “Remove ‘Identical to Master’ Records.” (Yes, you’re sure.)
9. Right click again and select “Undelete and Disable References.”
10. Close TES5Edit and save. (No, I didn’t mess up the order on that. The save dialog pops up when you hit the close button.)
11. Repeat steps 6-10 for each mod that needs cleaning. DO NOT DO MORE THAN ONE MOD AT ONCE.
12. Re-run LOOT and check for any more tips other than Bash Tag suggestions. Obey all of them.
13. Run Wrye Bash and find “Bashed Patch, 0.esp.”
14. Right click on it and select “Rebuild Patch…”
15. Skip the step about disabling mods first.
16. Uncheck “Merge Patches.”
17. Click “Build Patch” and close Wrye Bash.
*LOOT will still give you Bash Tag suggestions after this. Don’t worry, what you did in Wrye Bash fixed these. LOOT just likes to keep these suggestions there.
*The following steps are only useful for those who have uninstalled a mod since they started playing their current character.
18. Play your current save and go to a boring basement somewhere by yourself. Yes, that includes dismissing your followers. Wait a while (in real life, not in game) and save the game.
19. Run Savegame script scalpel (PDTWrapper.exe) and click “Select ESS.”
20. Point PDTWrapper to your game save located at Documents/My Games/Skyrim/Saves.
21. MO users add your Mod Organizer/mods/ folder as an additional Data folder.
22.Click “Load Papyrus Section.”
23. Wait for the message “Analysis Complete;” then click “Remove Unattached instances” (yes, you’re sure) followed by “Remove Instances.” Be sure to check “Remove instances with undefined classes only” before selecting “Remove” on the popup.
24. PDTWrapper will create a new save in your save folder named “EDIT_[date and time].ess.” Move your original save to wherever you keep your backup files and rename your EDIT_[date and time].ess to the name of your save i.e. “Save 123 – Prisoner Whiterun 12.34.56.ess.”
25. Load up your cleaned game. Stay in the basement. Wait a few more seconds and save the game again.
26. Repeat steps 19-24. There should be a lot more instances to remove.
27. If your analysis says “Scripts from the following resources still have active threads,” (at the top of the analysis) keep a note of what mods they are. You have to decide whether it makes sense for these mods to be running scripts right now. If it doesn’t, terminate them. They’re probably stuck.
28. If one mod is spamming an unusually high number of threads, it’s probably stuck or broken.
*If this applies to you, uninstall the mod, save. Reinstall the mod, save. See how the number of active threads compares.
*If that mod is still running a ton of scripts, stop using the mod and bring it up to the mod author. They have some coding to do.
*You’ll have to repeat this section each time you add or remove a mod but you’ll see a lot less CTDs and bugs.
ENBoost Settings
The reason Skyrim has a 3.1GB RAM cap is because that’s the RAM cap for all 32 bit programs.
ENBoost, which is included in ENB, uses some nifty tricks to get around this.
Set the following values in your enblocal.ini file in Steam/steamapps/common/Skyrim:
[PERFORMANCE]
SpeedHack=true
Turns ENBoost on.
EnableOcclusijavascript-event-strippedtrue
Stops Skyrim from loading things that aren’t in camera view.
[MEMORY]
ExpandSystemMemoryX64=true
Adds some cache space in Skyrim’s memory for dynamically loaded stuff.
ReduceSystemMemoryUsage=true
Moves dynamic object geometry and texture loading to another program (enbhost.exe) so they don’t contribute to the 3.1 cap.
DisableDriverMemoryManager=false <– Setting to true will improve stability but reduce performance.
Decides whether to have your driver or ENB manage the memory of cached textures.
DisablePreloadToVRAM=false <– Setting to true will decrease load times but cause stuttering.
Enables/Disables preloading objects/geometry into the VRAM.
EnableUnsafeMemoryHacks=false <– Set to true if you have 4GB+ video card.
Overrides ReduceSystemMemoryUsage with better options for extreme users (requires ReduceSystemMemoryUsage=true)
ReservedMemorySizeMb=XXX <– Start with 128 and increase in increments of 128 as necessary until raising doesn’t help with stuttering anymore.
Determines the amount of memory not to be used by ENBoost (and therefore used by Skyrim for dynamic resource loading). Any reserved memory will be copied into RAM. Therefore, you should set it high enough to be able to handle the dynamic resources but not any higher.
VideoMemorySizeMb=XXXX <– Setting to (RAM + VRAM – 2048) will take advantage of all of your available memory. Setting to (VRAM – 128) will prevent stuttering from processes being moved into/out of RAM. 1GB=1024.
Determines the total amount of memory that ENBoost can play with. ReservedMemorySizeMb is subtracted from this amount.
EnableCompression=true <– False if you experience stuttering or use ENBSeries 0.246 or older.
AutodetectVideoMemorySize=false <– Because it keeps guessing wrong.
[ENGINE]
ForceAnisotropicFiltering=true
MaxAnisotropy=16
EnableVSync=false <– Your driver’s VSync is better.
AddDisplaySuperSamplingResolutions=false
VSyncSkipNumFrames=0
[LIMITER]
WaitBusyRenderer=false <– True if you experience stuttering and can take the FPS hit. EnableFPSLimit=false Skyrim Project Optimization Download and install Skyrim Project Optimization for more FPS indoors. *This can have a lot of incompatibilities with mods that modify buildings in major cities. Decrease That Grass Download and install Decrease That Grass (with rocks and shrubs) for more FPS outdoors. Sheson’s Memory Patch A major source of CTDs/ILSs for modders is reaching the maximum memory allocation for Skyrim. Skyrim tries to fix this by allocating another memory block; but usually it just crashes. Sheson’s memory patch actually fixes the issue by allocating more memory in the first place. SKSE/Memory Blocks Log SKSE has integrated Sheson’s memory patch into their framework but have it disabled by default. This is the form of the patch that we’ll be using because you probably have mods that require SKSE anyway. If you don’t, you will. In order to activate the patch in SKSE, we must use an ini file. *This will not work for pirates. Pirates will not receive any help in the forums or by PM. 1. Download and install SKSE 1.7.1 2. Go to Steam/steamapps/common/Skyrim/Data and see if you have a SKSE folder with an SKSE.ini file inside. If you do, add these values to SKSE.ini: [General] ClearInvalidRegistrations=1 [Display] iTintTextureResolution=2048 [Memory] defaultHeapInitialAllocMB=768 scrapHeapSizeMB=256 If you don’t have an SKSE.ini file, download and install SKSE ini from the downloads section. *If you use MO and one of your mods supplies its own SKSE.ini file, it will overwrite this one. Add the aforementioned values to that mod’s SKSE.ini file. You can find it in Mod Organizer/mods/(your mod)/SKSE/. 3. If you previously used SSME, delete d3dx9_42.dll and ssme.ini from your Steam/steamapps/common/Skyrim folder. 4. Delete Safety Load and ShowRaceMenu Precache Killer if you have them installed. They’re not needed once the memory blocks are configured correctly. 5. Download and install Memory Blocks Log. 6. Go to the Windhelm docks and pick a fight with a guard. This is pretty much the most memory intensive thing you could do and will max your usage. 7. NMM/Wrye users go to Skyrim/Data/SKSE/Plugins/. 7. MO users go to Mod Organizer/overwrite/SKSE/Plugins/. 8. Open up MemoryBlocksLog.log and check to see that the value directly under Block 1 is 512. *If it isn’t, you’ve installed SKSE wrong or your SKSE.ini is getting overwritten (MO users only). 9. Check the last number in the Block 1 column. We’ll call this value Z. 10. In SKSE.ini, set defaultHeapInitialAllocMB to (Z + 276.) Do not set lower than 512. *MO users that downloaded SKSE ini, this will be in Mod Organizer/mods/SKSE ini/. 11. Fight that guard again and make sure that Block 1 is roughly 20 higher than your peak usage. *This value may need adjusted over time as you add more texture mods, NPCs, or increase your uGridsToLoad. Optimizing Your Mod Textures Optimizing your textures is a great way of getting some free FPS. This process involves reducing your textures’ file sizes so that your GPU has less to load. The file size is what’s changing, not the dimensions of your textures (unless you want them to.) There are three common tools which can be used to optimize your mods’ textures. The first two, Skyrim Mods Complex Organizer – SMCO and Optimizer Textures, are basically the same. They’re quick and easy to use, but will optimize all of your textures the same way. Face texture will get compressed/resized just as much as landscape textures. The third option,DDSopt, is time consuming and tedious, but will optimize your textures at different levels based on the texture type. This will give the best looking result. SMCO/Optimizer Textures NMM/Wrye Users 1. Create a temporary folder full of your mods’ BSA files, Texture folders, and Meshes folders like you did for the Optimizing Your Vanilla Textures section. They can be found in Steam/steamapps/common/Skyrim/Data as well as the Textures and Meshes folders within the Data folder. *You should not optimize parallax files. If you know that your mod uses parallax, don’t optimize it. 2. Run your optimizer of choice directed at this temporary folder and walk away. Make sure that the options to optimize BSA files are checked. 3. When it’s done, replace the original files in your Data folder with the ones from the temporary folder. Backup the originals first in case you don’t like the way the new ones look. MO Users 1. If you chose Optimizer Textures, download the Modified INI by Thorne67 in the optional downloads section of Optimizer Textures. Replace the Ordenador.ini with it. 2. Copy and paste all of the mods that you want optimized from Mod Organizer/mods into a temporary folder. *You should not optimize parallax files. If you know that your mod uses parallax, don’t optimize it. 3. Direct SMCO or Optimizer Textures to this temporary folder. 4. If you chose SMCO, change the folder option “skyrim root” to “standalone.” 5. Run your optimizer of choice directed at this temporary folder and walk away. Make sure that the options to optimize BSA files are checked if you don’t have MO setup to automatically extract BSA files. 6. When it’s done, replace the original mods in Mod Organizer/mods with the ones from the temporary folder. Backup the originals first in case you don’t like the way the new ones look. DDSopt 1. Download and install DDSopt – pre-release – update 4. 2. Copy these lines of code and replace the contents of your DDSopt.ini with them. 3. Now here comes the tedious work. All of the textures you want to optimize need to be loose. If you use the BSA versions of texture mods, you’ll have to extract them. *Mod Organizer users that have MO set to automatically extract BSA files, skip steps four through seven. Instead, rename the mods folder under Mod Organizer to “Mod Extracted” 4. Make a file directory that looks like this: Working >>Mod Extracted
>>>>A folder for each mod you want to optimize. Examples Below
>>>>Skyrim HD 2K Textures
>>>>Serious HD Retexture Skyrim
>>>>Another mod you want optimized…
5. Download and install BSAopt.
6. NMM/Wrye users go to Steam/steamapps/common/Skyrim/Data
6. MO users that aren’t set to automatically extract BSAs go to Mod Organizer/mods/
7. Follow this guide to extract each mod’s BSA into their corresponding folders that you just made in the Mod Extracted folder.
8. Download and extract these batch files into the same folder that contains your Mods Extracted folder.
9. Run 4_Mod_Sorting_Pre-optimization_2.75.bat. It will make sure that “Mod Extracted” is in the same folder. Remember, all of your extracted mods should be in their own sub-folders in “Mod Extracted”
10. As it runs, hit any key when it tells you to and type “Y” when it asks. Don’t exit out. It will close itself on the last prompt to hit another key to continue.
11. When it’s done, a log.txt file will be made. Make sure that there are no errors that are level 4 or higher.
12. Along with “Mod Extracted” and your batch files, there should be new folders titled Mod Optimized, Mod Ordinary Textures, Mod Normal Maps, Mod Body Textures, Mod Exterior Textures, and Mod Exterior Normal Maps. Each of these folders should contain sub-folders named the same as the folders you made in Mod Optimized.
13. Start DDSopt and change the game to Skyrim in the “Game” tab.
14. Hit the “Browse” button next to “.\in,” point it to Working/Mod Exterior Normal Maps/, and hit “Use Folder.”
15. Hit the “Browse” button next to “.\out,” point it to Working/Mod Optimized/, and hit “Use Folder.”
16. In the “Ignore” menu, untick “Copy unprocessed and ignored files (passthrough).”
17. In the “Constraints” tab, change all of the file types to lossless and set both Resolution-limits to your preference.
Personally, I use these Resolution-limits:
Mod Body Textures – 2048×2048
Mod Exterior Normal Maps – 1024×1024
Mod Exterior Textures – 1024×1024
Mod Normal Maps – 2048×2048
Mod Ordinary Textures – 2048×2048
18. Tick “Show Recursive” in the “Browser” tab and hit “Process.”
19. Repeat steps 14-18 for each of these folders.
20. Run 5_Compress_Mods_7z_2.71.bat. Once again, don’t exit out. It will close itself on the last prompt.
21. When it’s finished, you should have a new folder titled “Mod Optimized Archive.” This folder contains your new optimized textures! Move these .7z archives to wherever you put your manually downloaded mods. You can install these like any other mod.
*Note: These archives contain loose files. Loose files will overwrite all BSA archives. Because of this, these optimized textures will overwrite all other mods that use BSA files. Even if those mods are later in the load order.
22. Mod Organizer users that renamed their “mods” folder to “Mod Extracted” should change it back at this point.
23. After your optimized texture .7z files have been moved, you can delete your “Mod Whatever” folders.
That’s it! You’re done! Enjoy your game. (But you should keep reading to see if you have any special circumstances that need accounted for)
Most Common Problems
1. Optimus cards aren’t recognized in ENB. Use the injector version of ENB to avoid this.
2. “Why do I get sun reflections on the water? The sun is behind a mountain right now.” – Sorry. It was the only way to get the sun to reflect in flat areas. If someone could make a mod that lets mountains cast shadows, that’d be great.
*Some users have reported that using the injector can fix this.
3. Some users have reported issues with SLI. Try turning it off if you’re having issues.
4. MSI Afterburner/EVGA Precision/Rivatuner OSD need some tweaking to use shader mods. Look below to see what you have to do.
5. If you use OneTweak, you have to set BWmode to 2 in OneTweak.ini. You can find it in Steam/steamapps/common/Skyrim/Data/SKSE/Plugins or Mod Organizer/mods/OneTweak/SKSE/Plugins if you’re a MO user.
6. Sometimes Norton will prevent LOOT from downloading because of a “suspicious.cloud.7.ep” warning. Turn off “Antivirus Auto Protect” to fix it.
“But won’t that give me all the viruses of teh internetz?” – Yep. Probably. Do it.
7. “My game keeps stuttering!” – Try turning on WaitBusyRenderer and turning off EnableCompression in your enblocal.ini.
Injector Guide
The injector enables ENB features that would not work with your Optimus card or conflicting program.
It’s basically a workaround for people who’s wrapper won’t function properly.
1. If you have d3d9.dll in your Steam/steamapps/common/Skyrim folder, delete it.
2. Extract the ENBSeries archive and move the the files from “Injector” to Steam/steamapps/common/Skyrim. DO NOT OVERWRITE WHEN ASKED.
3. Set the following values in enbinjector.ini:
[LIBRARY]
LibraryName=enbseries.dll
[TARGETPROCESS]
ProcessName0=skse_loader.exe
ProcessName1=SkyrimLauncher.exe
ProcessName2=tesv.exe
4. Run the ENBinjector.exe.
5. Start your game and enjoy!
*You have to run ENBinjector.exe before you start your game every time you play from now on. I suggest making a shortcut somewhere more accessible. If you still have some missing features, try setting ForceFakeVideoCard in enblocal.ini to true.
MSI Afterburner/EVGA Precision/
Rivatuner OSD Guide
Normally, these don’t work with shader mods. Let’s fix that.
The steps below are for MSI Afterburner but all 3 are based on the same program so the steps will be similar, if not identical. (thanks SkyrimTuner)
1. Update and start MSI Afterburner
2. Switch to the “MSI On-Screen Display Server” window.
3. Create a new profile for your game and change to it.
4. Click the big wrench icon to change advanced settings.
5. Go to General -> Compatibility properties and turn on “Enable compatibility with modified Direct3D runtime libraries”.