Jump to content

2019 Skyrim LE Stability Guide


mrsrt

Recommended Posts

 

This guide is outdated. New version was moved to blog and can be found here: https://www.loverslab.com/blogs/entry/10715-2020-skyrim-le-stability-guide/

 

 

 

 

 

 

 

So, you had installed 250 mods, 10k animations, 4k textures, overhauls for everything from global AI to sweetrolls and wonder why your skyrim became a "crash to desktop simulator"? If so, this topic for you.

 

Disclaimer

Spoiler

Since I still read about people having script related problems and CTDs i decided to write this guide how I made my skyrim work with 4k textures, 10k+ fnis anims, HQ landscape lods, more than 200 installed mods (about 50 real high-weighted) and 144 fps almost perfectly. Of course, it's very rare but ctd still can happen. Now it happens for me not more often than once per 20 gameplay hours and usually caused by some broken mod or my own actions. Random CTDs i didn't see for a long time.

You should also understand that we highly likely have different hardware, drivers, OS version and other important things. And some tricks written below may behave differently compared to me. So, be sure to backup and remember everything you change. And keep in mind, you do it on your own risk.

Also, I wrote the guide with idea that players PC works on x64 OS, has at least 8gb RAM and 2gb VRAM. SSD pretty recommended too. 

 

Part 0 - Notes and Purposes

 

First of all you should know, Skyrim LE is a 32bit application and cannot work with more than 4GB RAM. By default it's enough for the game, but if you install a lot of new mods (especially HQ retextures, bad designed new lands, etc) eventually your game may meet a situation where 4GB is not enough. What will happen in that case? Simply CTD. 

This guide provides a compilation of plugins, options and presets with purpose to fix several known CTDs, bugs and problems together with safety passing the 32bit memory limits, based on vanilla memory management (provided by the game engine). 

 

 

Part I - Make Skyrim stable again

 

Every section written below in this part is important. Don't skip anything unless a section marked as optional.

 

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

[Memory]
# Memory patches with recommended values
DefaultHeapInitialAllocMB=768
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 mod fixes many skyrim's native bugs that may lead to CTD (crash to desktop). 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

Set WarnBadENB=0 it will disable a false warning i'll tell about in enb section below. Everything else leave by default for now. 

 

BugFixPlugin

Spoiler

As the name mentions, it fixes several game bugs. Also one of these fixes (FixVerticalLookSensitivity) allows us to raise skyrim fps over 60, it fixes the annoying camera sensity bug. Mod can be found here: https://www.nexusmods.com/skyrim/mods/76747

Everything in this mod is well configured by default, but in case you want to turn off some fix the config file can be found here: Data/SKSE/Plugins/BugFixPlugin.ini 

 

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/

The nexus pages notifies about a new version of this mod but I found that it consumes up to 5 fps in several conditions while playing, so I recommend to use the old version. 

Warning: old 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 F5 F9 F9. 

 

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

 

 

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.html

Once installed find your enblocal.ini in the main directory. It is a config file with basic local options for enbseries. Let's see what options in our interest here:

ReduceSystemMemoryUsage=true - this option greatly expands skyrim's system memory by creating external enbhost processes where the game memory will be distributed. This way we pass the 4GB memory limit. Must have to be enabled.

 

ExpandSystemMemoryX64=true - this option helps to cure memory fragmentation. In result it increases overall system memory of the game and may help with stutterings. For me, this option is mandatory, because it greatly helps with stutterings when you have HQ textures, however, several players reported CTDs after the option was enabled. The option does not lead to any CTD itself, but if you have mods with unsafe memory access, together with the option enabled it may cause crashes. So, I recommend at least to test it out and make your own choice with it. 

 

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.

 

In case you want to play on higher fps than 60, uncap your fps by disabling EnableFPSLimit option (false).

 

FixGameBugs=true - as mentioned, fixes bugs.

 

FixLag=false - not recommended to be enabled for AMD GPU users. 

Everything else is optionable. Config it once and never ever replace your enblocal.ini. Many enb presets contains their enblocals, ignore them, use yours, it is your personal configuration for your hardware. 

 

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.

 

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 this part for you is done. Continue to the next.

 

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. 

 

 

FPS related patches

Spoiler

If your vanilla Skyrim produces more than 60 fps you may find bugs and glitches like dynamicaly changing camera vertical sensitivity, sound stutterings, water and sun glitches, movement lags and i'm sure many others. Furthermore, you can meet all of these even if your fps capped to 60. And what if you have for example a 144 hz monitor and want to play with that fps normally? It's actually possible and works very well. 

The first problem can be solved with FixVerticalLookSensitivity option in BugFixPlugin. Everything else related to physic engine. It just simply configured to work with stable 60 fps and when we go over the limit or even below desync happens. In other words, if you have absolute stable 60 fps with no drops you shouldn't meet any problems, but if you have fps drops, for example down to 30, or raises up to 144, you may see physical bugs. It happens because the physic engine has fixed update time configured to work with only 60 fps. We can even reconfigure the update time for 144 fps, or for 30 fps, but physic bugs will still happen because Skyrim's fps is not stable. However, there's a cure for this problem with a simple mod that dynamically adjusts Havok update time with the current game fps: https://www.nexusmods.com/skyrim/mods/91598

This mod will help to cure most of Skyrim's physical problems.

 

Windows 7 users warning (Optional)

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 (Optional)

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

 

 

Part II - Debugging

 

This part will try to help you to determine what and why a problem occurs.

 

CrashFixPlugin's log

Spoiler

You can find CrashFixPlugin's log file here: Data/SKSE/Plugins/CrashFixPluginLog.txt

In this file, a detailed message will be written in case a known by the plugin CTD will happen. If there's nothing, go to the Crashdumps reading spoiler below.

 

Crashdumps reading

Spoiler

If you have configured SKSE correctly and set WriteMinidumps=1 SKSE will create a mini dump for every happened CTD. You can find them here: Documents/My Games/Skyrim/SKSE/Crashdumps but how to read them? Actually, there are several options.

- You can use a special software by microsoft: https://docs.microsoft.com/ru-ru/windows-hardware/drivers/debugger/debugger-download-tools

- Visual Studio with debugging tools

- There was a good online analyzer here http://www.osronline.com/page.cfm^name=Analyze.htm but currently it's unavailable. Maybe it will resume it's work one time. 

- Many other related software

In the dump we should focus on where was happened the error. If in a trace you found some SKSE plugin, try to remove it. Also you can google the error address in case it's a known problem. If nothing helped, unfortunately, only reverse engineering left. 

 

Thread leaks detection

Spoiler

If behaviours of npcs became weird, mod events has a big delay, scenes don't start or some other weird script-related things happen it can be caused by thread leaking by some mod. With Papyrus scripting engine it is possible to start an infinite thread that will never stop its work and it will always consume processor and memory resources. Maybe one thread like this will not damage your script performance, but a bad mod can always start another one and another one. And when it will be 70 of them for example, eventually, you will see their consequences.

The tragic thing here is that, all of these threads will be stored in your game save (to be started on load). Furthermore, we cannot stop these threads or cure a gamesave (at least i didn't find a way), so only way we have is to check what active threads are working to find a problem in right time. To do this at first we need to papyrus logging be enabled. Next params in skyrim.ini should be set to 1:


bEnableLogging=1
bEnableTrace=1
bLoadDebugInformation=1
bEnableProfiling=1

After this, load the gamesave with potential leak, wait a minute and print "dps" to the console. Close Skyrim, go to Documents/My Games/Skyrim/Logs/Script and open Papyrus.0.log. Look at the end of the file, there should be several "Dumping stack" messages. These messages are active threads, with script names and lines what exactly papyrus processing right now in a thread. If for example there are 70 threads, 60 of those from the same place, pretty sure it's a leak and after some time it will be more of them. Disable the script's mod immediately, until limit reached and gamesave became unplayable.

First time I met the problem when installed Player Succubus Quest. Its feature with cum inflation causes thread leak. It was very dramatic coz i lost a save game with about 50 hours of gameplay and no cleanup helped to cure my savegame. So, be warned.

 

Part III - Recommendations

 

There you can read what you have to do and never do with your Skyrim.

- 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.

- Incorrect HDT breast physic preset may cause CTD. Install only full sets of xmls for every part and be sure it is compatible with used body. 

- Incorrect skeleton may cause CTD too. Install skeleton only once and never replace it with other mods. If some mod requires skeleton changes most probably it already has a compatibility patch. Check carefuly installation instructions for your skeleton. 

- 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.

 

 

Part IV - Additional information

 

CrashFixPlugin options

Spoiler

If after this guide you still experience CTDs, try to play with CrashFixPlugin options in Data/SKSE/Plugins/CrashFixPlugin.ini. For example UseOSAllocators option completely delegate memory management to your OS. It may help in some cases. For me this option became a cause of meshes disappearance, but for you it may become a cure, so feel free to experiment.

 

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

 

 

Part V - Modmaker/Papyrus notes

 

This part contains important information about papyrus scripting and its features provided by several researches made by me and @GenioMaestro in this thread. This part will try to help make your mods ctd-safe and avoid many problems related to the scripting engine. 

 

Be careful with memory management

Spoiler

As the test shown, Skyrim allocates all script data inside memory block 1 (the bigger one you config with SKSE.ini), but this block used far not only for this, and its free space changes dynamically. For example, in some interior area mods may consume up to a half of block, but in some civil war with many fighting npc this may dramatically reduce script allocation space for dozen times. What happen when the space ends? New data will be allocated in shared memory area what is unexpected by game engine and eventually will lead to CTD. It means, the less your mod will allocate the better will be to users.

 

Be also careful with creation of new variables. As the same test shown, Papyrus has Garbage Collection system, but its work strongly limited and related to user FPS. The more dynamic data you will allocate, the more busy GC will be, and if user FPS will not be enough it will bring some kind of memory leak which ends with CTD. 

 

So, several rules can be made according to this info:

- If you have multiple instances try to hold as many data as possible in global variables, this way it will not be allocated for each instance

- If you need new variables, try to use already existen ones, this way memory cell will be rewritten and not re-allocated

- Avoid arrays for dynamic data, use FormLists created by CK instead and after usage call Revert() to clean them up

 

Avoid recursive calls 

Spoiler

According to tests, stack frame in the Papyrus engine is not limited. It means, if you have executed a recursion it will never stop and you will not be notified about that. It's a very dangerous state that will consume at least one virtual core and eventually may lead to ctd, especially if raw allocation exist in the recursive func. 

 

Avoid long Utility.wait()

Spoiler

As for many programming languages, function Utility.wait() throws the activte thread to sleep and in this thread-state the virtual core will not be released. Always better to use RegisterForSingleUpdate() in that case. 

 

Example:

Spoiler


GlobalVariable Property ScriptState Auto;

Event OnUpdate() 
	if ScriptState.getValue() == 0
		Action_0()
	elseif ScriptState.getValue() == 1
		Action_1()
	elseif ScriptState.getValue() == 2
		Action_2()
	endif
EndEvent

function Action_0()
	// *
	// some action code
	// *
	incrementStage()
	RegisterForSingleUpdate(10)
endfunction

function Action_1()
	// *
	// some action code
	// *
	incrementStage()
	RegisterForSingleUpdate(20)
endfunction

function Action_2()
	// *
	// some action code
	// *	
	incrementStage()
endfunction

function incrementStage()
	ScriptState.setValue(ScriptState.getValue() + 1))
endfunction

 

 

 

Avoid infinite loops 

Spoiler

All the threads Papyrus was executed stored in your game saves (to be continued after loading). If you have used an infinite loop, something went wrong and loop exit conditions became unreachable for some reason, it means this thread will never ever stop for your skyrim, until you create a new game save. The same touches recursive calls. Be careful and always try to use RegisterForSingleUpdate or event listeners instead.

To check active threads you can call "dps" in your skyrim console. After that dump stacks of all existen threads will be printed in your logs (if enabled). Usually, these dead infinite threads have unknown source execution. 

 

Part VI - 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/

 

Hope this guide will help you guys to get smooth gamplay with no interruptions for technical issues. 

Link to comment

There are lots of things wrong with and perhaps if this site stops being so fucking slow I will post them.

 

Just a quick example:

 

[Papyrus]
fUpdateBudgetMS=1.6
fExtraTaskletBudgetMS=1.6
fPostLoadUpdateTimeMS=1000.0
iMaxMemoryPageSize=8192
iMinMemoryPageSize=256
iMaxAllocatedMemoryBytes=67108864
bEnableLogging=0
bEnableTrace=0
bLoadDebugInformation=0
bEnableProfiling=0
11 hours ago, mrsrt said:

These values are recommended by STEP community.

 

11 hours ago, mrsrt said:

From this page:

https://wiki.step-project.com/Guide:Skyrim_INI/Papyrus

fUpdateBudgetMS

Default is 1.2000000477.

 

fExtraTaskletBudgetMS

Default is 1.2000000477.

 

fPostLoadUpdateTimeMS

Default is 2000 (although default set by the game from the Skyrim_default.ini is 500).

 

iMaxAllocatedMemoryBytes

Default is 76800.

 

iMinMemoryPageSize

Default is 128.

 

iMaxAllocatedMemoryBytes

Default is 76800.

 

So not one of your recommendations is the same as those on the S.T.E.P. guide. Nor do you give any explanation as to what these settings do or why your figures are an improvement.

Link to comment
1 hour ago, Grey Cloud said:

There are lots of things wrong with and perhaps if this site stops being so fucking slow I will post them.

 

Just a quick example:

 


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

 

From this page:

https://wiki.step-project.com/Guide:Skyrim_INI/Papyrus

fUpdateBudgetMS

Default is 1.2000000477.

 

fExtraTaskletBudgetMS

Default is 1.2000000477.

 

fPostLoadUpdateTimeMS

Default is 2000 (although default set by the game from the Skyrim_default.ini is 500).

 

iMaxAllocatedMemoryBytes

Default is 76800.

 

iMinMemoryPageSize

Default is 128.

 

iMaxAllocatedMemoryBytes

Default is 76800.

 

So not one of your recommendations is the same as those on the S.T.E.P. guide. Nor do you give any explanation as to what these settings do or why your figures are an improvement.

Thanks for respond. These values I took from here: https://wiki.step-project.com/Guide_talk:Troubleshooting with only change for iMaxAllocatedMemoryBytes. This preset of values much better adapted for a heavy scripted Skyrim (what especially important for loverslab users). To be honest, i didn't expect that someone will be interested in what exactly these variables do and why i took these values, because of their technical depth, so my apologies. I'll expand the guide with quick descriptions later, as for now you can find info here: https://www.creationkit.com/index.php?title=INI_Settings_(Papyrus)

Link to comment

Thanks for your work on a little essay about a good skyrim LE base setup! ?

out of thumbs again ?, t.ara ate them all ?, will be back =D

 

13 hours ago, mrsrt said:

4GB Patch

I will certainly try that one, never heard about it before.

 

13 hours ago, mrsrt said:

Critter Spawn Fix

That sounds like a really interest fix.

Will be used on my next setup.

 

13 hours ago, mrsrt said:

Papyrus performance

That part makes me a bit skeptic.

Although I can confirm that rising

fUpdateBudgetMS=1.6
fExtraTaskletBudgetMS=1.6

Helped me on my setup sometimes.

Normally I have my papyrus settings according to:

,because some crazy high skyrim.ini settings made the game rather unstable.

Papyrus settings seems to be a topic full of misunderstandings.

 

2 hours ago, Grey Cloud said:

There are lots of things wrong with and perhaps if this site stops being so fucking slow I will post them.

depends where you look on the STEP Skyrim bible pages:

https://wiki.step-project.com/Guide_talk:Troubleshooting#Papyrus_Tweaks

 

Papyrus Tweaks

An issue with installing many mods, especially script heavy ones, is that the default Papyrus ini settings are not fully capable of handling the additional stress. This tweak should increase stability, and needs to be added to the Skyrim.ini file under the [Papyrus] section. Your Skyrim.ini can be found in Windows 7 under the \Documents\My Games\Skyrim directory.

[Papyrus]

fUpdateBudgetMS=1.6

fExtraTaskletBudgetMS=1.6

fPostLoadUpdateTimeMS=1000.0

bEnableLogging=0

bEnableTrace=0

bLoadDebugInformation=0

iMaxMemoryPageSize=8192

iMinMemoryPageSize=256

iMaxAllocatedMemoryBytes=8388608


Thanks go to Lumaan on the S.T.E.P. Community forums finding these!

 

 

That's why I find the STEP Guide often confusing.

Link to comment
31 minutes ago, mrsrt said:

Thanks for respond. These values I took from here: https://wiki.step-project.com/Guide_talk:Troubleshooting with only change for iMaxAllocatedMemoryBytes. This preset of values much better adapted for a heavy scripted Skyrim (what especially important for loverslab users). To be honest, i didn't expect that someone will be interested in what exactly these variables do and why i took these values, because of their technical depth, so my apologies. I'll expand the guide with quick descriptions later, as for now you can find info here: https://www.creationkit.com/index.php?title=INI_Settings_(Papyrus)

I would be more interested what papyrus settings you use yourself for your setup.

Link to comment
56 minutes ago, Grey Cloud said:

 

So not one of your recommendations is the same as those on the S.T.E.P. guide. Nor do you give any explanation as to what these settings do or why your figures are an improvement.

 

you were expecting one of those "guide" guy to have an idea of what he is talking about?

isn't what those setting are doing on step?

fUpdateBudgetMS

skyrim.exe take that to run each script

ms, it's in millisecond

giving more than one second to run one script... if the settings are too stupid, they are ignored by skyrim.exe

fExtraTaskletBudgetMS

if first one isn't enought, skyrim.exe add that to finish running the script, then add it again, then add it again

most skyrim scripts are dialog scripts, that are just one line when you pick a dialog, to start quest x, finish quest x, give something, change faction....

those settings are for playstation 1 hardware, you have better than that? if your hardware is 5 or 10 time faster, divide budget by 5 or 10, and leave extrabudget alone

the biggest scripts are civil war scripts, but game don't run all that stuff at one, 0.4 ms is probably enought for that too

 

fPostLoadUpdateTimeMS

loading screens need more time to load its scripts? it's given that

you don't know the average you need to load skyrim cells

you don't know how much ms it is to ask for more time to load that

so you don't mess with that, since you will probably make it worse

 

you need 3000 ms to load, you have set it to 100, if it's 50 to ask for more, your loading screen is 4500 ms instead of 3150 ms

you need 3000 ms to load, you have set it to 10 000, your loading screen is 10 000 instead of 3150

iMaxMemoryPageSize

same as the budgetms, but for ram

8192 byte max? 8 kb max? civil war scripts are bigger than that, skyrim.exe will have to allocate ram more than once to load those scripts with that setting

 

and allowing the game to allocate less than 256 for the minimum...

 

;/ Decompiled by Champollion V1.0.1
Source   : Door.psc
Modified : 2010-07-14 23:00:34
Compiled : 2013-02-13 20:16:38
User     : builds
Computer : BUILDFARM09
/;
scriptName Door extends Form hidden

;-- Properties --------------------------------------

;-- Variables ---------------------------------------

;-- Functions ---------------------------------------

; Skipped compiler generated GotoState

; Skipped compiler generated GetState

 

that script is 429 byte (and it do nothing, it's useless)

empty scripts are bigger than 256, so setting the minimum lower than 256... stupid edit

 

iMaxAllocatedMemoryBytes=67108864

there's script folder in a bsa, if you unzip it, it's 10 mb

dlc scripts are 4 mb

and you can add 10-20 mb from mods for huge load orders

you will never run all those scripts at the same time

 

if skyrim.exe reserve that for scripts, you are wasting ram

if that just mean skyrim.exe won't unload no longer used stuff until it reach max... doesn't matter what you put there

 

Link to comment
16 minutes ago, donttouchmethere said:

Thanks for your work on a little essay about a good skyrim LE base setup! ?

out of thumbs again ?, t.ara ate them all ?, will be back =D

Glad that it can be helpful for our community. Skyrim mods brought me a lot of fun and I felt bad that didn't give anything back. Since i'm not familiar with creation kit (can only scripting) I decided to write this guide when found that still many players exeperience a lot of technical issues with the game. I'm ready to expand this guide with any information that may help someone to cure his game, so feel free to comment and ask questions. 

 

26 minutes ago, donttouchmethere said:

I would be more interested what papyrus settings you use yourself for your setup.

Exactly those I published here with only change for logging options. Every part and section of this guide I tested myself for a long time on my personal gameplay. For my last 40 hours i had only 2 CTDs, one because of broken NiNode and one because of alt-tab. 

As for logging decision, I always prefer to see what happens in my game. It also helps me to find script errors and fix them. But I don't think a typical player needs this always enabled.

Link to comment

You really shouldn't touch papyrus settings at all, no matter what all these guides etc. say. Only one you could increase a bit if you have lots of scripts running or your PC is a potato is

fPostLoadUpdateTimeMS

Everything else should be left well alone.

Here's the only papyrus guide you should follow, approved by the Bethesda employee who made the script engine.

 

Also what do you think that 4GB patch is going to do when you already have ENB which allows the game to utilize more memory via helper process?

Link to comment
15 minutes ago, ASlySpyDuo said:

You really shouldn't touch papyrus settings at all, no matter what all these guides etc. say. Only one you could increase a bit if you have lots of scripts running or your PC is a potato is


fPostLoadUpdateTimeMS

Everything else should be left well alone.

Here's the only papyrus guide you should follow, approved by the Bethesda employee who made the script engine.

 

Also what do you think that 4GB patch is going to do when you already have ENB which allows the game to utilize more memory via helper process?

That's my take on things Papyrus too. And thanks for the link to the Bethesda guy, I was looking for it but couldn't find it.

 

As for the 4GB patch, I am extremely sceptical of some guy on the Nexus who advocates dicking with the main exe of the game. I'd like to see some seriously technical information as to  the whys and wherefores.

Link to comment

Put the iMaxAllocatedMemoryBytes in big values only can increase the size and the frecuency of the Stack Dump as the CK web page say:

Spoiler

WARNING: this setting is for stack size not heap size, so there is no reason for setting this to a huge value even though it is possible. Increasing iMaxAllocatedMemoryBytes to values much larger than default can cause stack thrashing (stack buffer overflows), intermittent game stuttering, erratic game behavior and CTDs. Stack thrashing will produce stack dumps in the Papyrus log, similar to the example below. The dumps can be very large if many scripts are running, producing a very large log file.

 

 

The 4gb patch or LAA has been included by Bethesda in the game from 2011:

https://forums.nexusmods.com/index.php?/topic/513722-where-is-the-4gb-patch-for-skyrim/

https://forums.nexusmods.com/index.php?/topic/7806803-4gb-patch-for-skyrim/?p=71634083

 

 

ContinueGameNoCrash Thas been replaced by LoadGameCtdFix

This mod is obsolete, use Load Game CTD Fix instead.

 

 

The Criter Spaw has been corrected by USLEEP years ago and i never had a problem with it.

That user say they make a better version.. but why??? The USLEEP version not have any real problem.

 

 

The only way for have a stable game is use Crash Fixes with OsAlocator and configure your game in the correct way. All others systems end in strange and random CTD.

Link to comment

@yatol Thanks for detailed message. 

 

Quote

fExtraTaskletBudgetMS

if first one isn't enought, skyrim.exe add that to finish running the script, then add it again, then add it again

most skyrim scripts are dialog scripts, that are just one line when you pick a dialog, to start quest x, finish quest x, give something, change faction....

those settings are for playstation 1 hardware, you have better than that? if your hardware is 5 or 10 time faster, divide budget by 5 or 10, and leave extrabudget alone

the biggest scripts are civil war scripts, but game don't run all that stuff at one, 0.4 ms is probably enought for that too

As for fUpdateBudgetMS and fExtraTaskletBudgetMS these values was taken to survive extremely stressed situations that can be caused by several loverslab mods (and probably others). And you're absolutely right, in a normal situation for vanilla Skyrim it's too much, but this guide was designed for a heavy loaded modded game. In case your Papyrus is free, these option will not damage your performance much, meanwhile it will help for stressful times. How? Let's see. 

For example, you have 20 running heavy scripts that fully loaded your Papyrus. Highly likely in that case many scripts will go over fUpdateBudgetMS and papyrus will start to add fExtraTaskletBudgetMS until script finished. The less fExtraTaskletBudgetMS will be the more times Papyrus will need to poll, what also consumes processor time. I hope you understood my idea.

 

Quote

fPostLoadUpdateTimeMS

loading screens need more time to load its scripts? it's given that

you don't know the average you need to load skyrim cells

you don't know how much ms it is to ask for more time to load that

so you don't mess with that, since you will probably make it worse

 

you need 3000 ms to load, you have set it to 100, if it's 50 to ask for more, your loading screen is 4500 ms instead of 3150 ms

you need 3000 ms to load, you have set it to 10 000, your loading screen is 10 000 instead of 3150

Several times I personally got CTDs when tried to load into a big and heavy scripted locations while this value was low. The main goal of this guide is to prevent technical problems. If it will cost a little performance or time load I prefer to spend it instead of restarting my game. But, of course, if you know for sure that personally for you it will not bring damage then you can set any value that fit. Also keep it in mind, not everybody has the same gaming PC as you. Furthermore, I don't force anybody to use my values or this guide at all. I just wrote how I made my skyrim stable. 

 

Quote

iMaxMemoryPageSize

same as the budgetms, but for ram

8192 byte max? 8 kb max? civil war scripts are bigger than that, skyrim.exe will have to allocate ram more than once to load those scripts with that setting

 

and allowing the game to allocate less than 256 for the minimum...

 

;/ Decompiled by Champollion V1.0.1
Source   : Door.psc
Modified : 2010-07-14 23:00:34
Compiled : 2013-02-13 20:16:38
User     : builds
Computer : BUILDFARM09
/;
scriptName Door extends Form hidden

;-- Properties --------------------------------------

;-- Variables ---------------------------------------

;-- Functions ---------------------------------------

; Skipped compiler generated GotoState

; Skipped compiler generated GetState

 

that script is 429 byte (and it do nothing, it's useless)

empty scripts are bigger than 256, so setting the minimum lower than 256... stupid edit

The situation with memory page sizes is completely different compared to budgetms. If we set budgetms more than required we may lose 2 fps and get unseen script delay. If we set memory page size more than required it may cause in additional memory consumption and papyrus stress what finally may lead to broken quests and even CTDs.

Actually there's nothing criminal in re-allocations. 8kb is not a limit, it's the current and the next page size will be allocated to store a script. Default value (512b) is really small and allocation of big scripts may bring to papyrus hard times. Meanwhile, many scripts doesn't even has variables, and they will never use more than their several bytes. But papyrus will reserve for that script the amount of memory setted in iMaxMemoryPageSize. It will not be used directly, and can be freed while garbage collection process, but it's pretty better to avoid high values to not force Papyrus to free memory more often. 

As for minimum, please, tell me how did you discovered that this script will store 429 bytes in Papyrus VM?

 

Quote

iMaxAllocatedMemoryBytes=67108864

there's script folder in a bsa, if you unzip it, it's 10 mb

dlc scripts are 4 mb

and you can add 10-20 mb from mods for huge load orders

you will never run all those scripts at the same time

 

if skyrim.exe reserve that for scripts, you are wasting ram

if that just mean skyrim.exe won't unload no longer used stuff until it reach max... doesn't matter what you put there

You are absolutely right here with one thing. When Papyrus VM reaches its max allocated memory setted in iMaxAllocatedMemoryBytes, it will launch garbage collector that will start to free memory from unused stuff. This is also the place where difference between iMinMemoryPageSize and iMaxMemoryPageSize play its role. It works similar to other VM based languages, but a bit simplier. Peculiarity of this process in that the less memory you will give for allocation the often collector will work. And, actually, it's not a cpu-friendly process. With low values you will experience long delays before several script actions, what can break some quests and experience. 

67108864 bytes is 64mb, it's nothing, compared to skyrim memory consumption. Also this is a determinated value and never go out, so even if you have 90% of this allocation free it will not damage your game at all.

Hope you understand my point in using these values.

Link to comment
2 hours ago, ASlySpyDuo said:

Also what do you think that 4GB patch is going to do when you already have ENB which allows the game to utilize more memory via helper process?

Unfortunatelly, enb cannot expand whole skyrim memory. Even if you have the option enabled your skyrim will ultimately reach the limit and will be near the border until a bigger part of memory will need to be allocted than engine can give. If your skyrim always consumes nearly 2gb ram this is exactly that case. After the patch my skyrim takes dynamic amout of ram (usually about 2.7gb), and exactly this patch helped me to cure last random ctds. I'm pretty recommend to try it. 

Link to comment
11 minutes ago, mrsrt said:

Unfortunatelly, enb cannot expand whole skyrim memory. Even if you have the option enabled your skyrim will ultimately reach the limit and will be near the border until a bigger part of memory will need to be allocted than engine can give. If your skyrim always consumes nearly 2gb ram this is exactly that case. After the patch my skyrim takes dynamic amout of ram (usually about 2.7gb), and exactly this patch helped me to cure last random ctds. I'm pretty recommend to try it. 

Like @GenioMaestro mentioned, Skyrim.exe is already flagged as large address aware so you are either experiencing placebo or did something else while applying it that helped you.

 

The ntcore 4GB patch quite literally just flags the executable as LAA, it doesn't do anything else. It was useful for Oblivion. Skyrim is already flagged.

Link to comment

 

1 hour ago, GenioMaestro said:

Put the iMaxAllocatedMemoryBytes in big values only can increase the size and the frecuency of the Stack Dump as the CK web page say:

  Reveal hidden contents

WARNING: this setting is for stack size not heap size, so there is no reason for setting this to a huge value even though it is possible. Increasing iMaxAllocatedMemoryBytes to values much larger than default can cause stack thrashing (stack buffer overflows), intermittent game stuttering, erratic game behavior and CTDs. Stack thrashing will produce stack dumps in the Papyrus log, similar to the example below. The dumps can be very large if many scripts are running, producing a very large log file.

 

Yes, bethesda was needed to say that because of guides like this https://www.reddit.com/r/skyrimmods/comments/2gwvwl/guide_papyrus_ini_settings_and_why_you_shouldnt/

 

where autor recommends to use values like 2000000000 what is madness. 64mb is an adequate and enough value that doesn't damage your game.

 

Quote

Quite weird, coz i have never seen my skyrim be able to consume more than 2gb until use the 4gb patch. Nor with memory adjustments, nor without. And it also helped to cure last my last ctds. Need a bit of reverse engeneering here.

 

Quote

ContinueGameNoCrash Thas been replaced by LoadGameCtdFix

Thanks, i didn't see. I'll replace it when test it myself and be sure in stability. 

 

Quote

The Criter Spaw has been corrected by USLEEP years ago and i never had a problem with it.

That user say they make a better version.. but why??? The USLEEP version not have any real problem.

Actually, critter spawn rework is optional, and it shouldn't cause any CTD. As i remember, USLEEP fixed only a bug, where you can be able to collect critters again after gamesave reload, but not the ugly architecure, which consumes a lot of papyrus performance for... Butterflies? Seriously? Anyway, I'll mark this section as optional, thx.

 

Quote

The only way for have a stable game is use Crash Fixes with OsAlocator and configure your game in the correct way. All others systems end in strange and random CTD.

As i wrote above, I had experienced a lot with crash fix plugin, allocations and other stuff. Os allocator doesn't help me with ctds, and only became a reason for weird mesh disappearance, like invisible items and etc. Highly likely it depends on OS version and hardware, that's why I mentioned it in the guide. 

 

 

Link to comment
15 minutes ago, mrsrt said:

Yes, bethesda was needed to say that because of guides like this https://www.reddit.com/r/skyrimmods/comments/2gwvwl/guide_papyrus_ini_settings_and_why_you_shouldnt/

 

where autor recommends to use values like 2000000000 what is madness. 64mb is an adequate and enough value that doesn't damage your game.

Not, that value is not correct and can give you a lot of problems. Please, learn how works the game, make your own test and verify it with others users before say things like that.

 

Start reading the Wiki of the CK:

Spoiler

This is the maximum amount of memory the VM will allocate in total for stack frames. If an allocation would push memory usage over this limit, the VM will instead wait for more memory to be freed. Increasing this value may improve performance in high-stress situations with lots of scripts running, but will use more memory. Note that it is possible to exceed this value temporarily while loading a save game due to slightly different allocation ordering.

 

The iMaxAllocatedMemoryBytes default value is 76800 bytes = 75 kb and some users recomed up it to 153600 = 150 kb.

The game works perfect with that values, no mater how many mod you have or what scripts are executing the game.

 

What make the Script Engine when that memory is filled???

Generate a Stack Dump in the log.

 

If you have the value in 76800 probably you not notice when the Stack Dump is generated.

If you have the value in 153600 you can have a small freeze of half second when the Stack Dump is generated.

If you have the value in 67108864 you can have a ETERNAL freeze or a CTD when the Stack Dump is generated.

 

Why the Script Engine fill that memory???

Because you have a problem in a mod.

 

The game can run up to 200 scripts at the same time whitout any problem.

When a mod have a problem and start generating scripts the VM memory is consumed and the Stack Dump is generated for alert the developer of the problem.

 

If you put the value in 64 MB you can have a lot of problems. 

You are wasting that memory.

You can not know when a mod have a problem with the scripts.

When the problem happend, as you and the developer not see the Stack Dump in the log, the problem can not be located.

One day you have a CTD or a ETERNAL freeze and nobody can know why.

 

 

The value of the iMaxAllocatedMemoryBytes determine the size of the Stack Dumps.

Link to comment
49 minutes ago, mrsrt said:

Quite weird, coz i have never seen my skyrim be able to consume more than 2gb until use the 4gb patch. Nor with memory adjustments, nor without. And it also helped to cure last my last ctds. Need a bit of reverse engeneering here.

How many DLL's have you in DATA\skse\plugings???

 

Each dll inyected in the game reduce the available memory for the game. Each one of them use a part of the 3.1 gb of the maximun memory of the game. The memory reported by Task Monitor is the real memory used by the executable and not have in consideration the memory used by the DLL's inyected inside the executable.

Link to comment
54 minutes ago, mrsrt said:

Actually, critter spawn rework is optional, and it shouldn't cause any CTD. As i remember, USLEEP fixed only a bug, where you can be able to collect critters again after gamesave reload, but not the ugly architecure, which consumes a lot of papyrus performance for... Butterflies? Seriously? Anyway, I'll mark this section as optional, thx.

A lot of things in the game are patetic but that not give any problem. We can re-work the entire game but the benefit can be minimal. Every severe problem has allready been patched.

 

What is your problem with the Papyrus performance???

Do you know what is the real performance of the papyrus engine???

Have you read my blog, my post or test my mods???

Link to comment
59 minutes ago, mrsrt said:

As i wrote above, I had experienced a lot with crash fix plugin, allocations and other stuff. Os allocator doesn't help me with ctds, and only became a reason for weird mesh disappearance, like invisible items and etc. Highly likely it depends on OS version and hardware, that's why I mentioned it in the guide. 

Then you configure something bad. Repeat yours test. OsAlocators give you a new game with a fantastic performance and stability.

 

Is true that OsAlocators give some problems with HDT but the cause is not in OsAlocators.

That problems has been solved with HdtMemPatch.

Link to comment
7 minutes ago, mrsrt said:

For example, you have 20 running heavy scripts that fully loaded your Papyrus. Highly likely in that case many scripts will go over fUpdateBudgetMS and papyrus will start to add fExtraTaskletBudgetMS until script finished. The less fExtraTaskletBudgetMS will be the more times Papyrus will need to poll, what also consumes processor time. I hope you understood my idea.

heavy scripts? what is that supposed to be?

 

the biggest .pex in skyrim is the civil war script, that is nothing special

when you pick a side, it do this, it do that if you pick another, that quest have a lot of stage

so it's bigger than the others

but running 5 lines from civil war script or 5 lines from killing 5 wolves script, it's the same

 

search line are longer to run than starting quest x, additem y or npc.setessential 0...

script look for esp x in your load order, there's 200 esp, that's 200 checks

abusing search function, that, that's bad for performance

 

in sexlab you have a function to get available animations for parameters you enter

sexlab mods use that function all the time, that suck

in the mcm menu option to upgrade animations, i put

ssl forgot what it is allanimation[1] for male female

allanimation[2] for male male female

allanimation[5] for male female female

allanimation[8] for wolf

allanimation[9] for draugr

 

it's one more line to search stuff from those instead of using searching functionf from everything, but instead of searching from 400 animations, i am searching from 60 or 40

 

that need string raceanimation[], the sexlab search animation parameters for what you have in allanimation

1 is MF, 2 is MMF, 3 is MFM, 4 is FMM (have doubles in case it make a difference), 8 is wolf, 9 is draugr....

then you look for sexlab search function in mods, to replace sslwhatever(gender) by y=find(gender, raceanimation[]) or something like that, and it's allanimation[y] you need for that gender

for creature y=find(npc.getrace, raceanimation[])

 

sexlab check if x is selected in your mcm menu

you will never untick that?

delete the check, one less line

 

defeat use event onhit(), like many mods

stuff that load it have a condition?

you pick 60% health in defeat mcm, add that to the stuff that load script with onhit() (replace with a globalvariable if that's a script variable, and now it can be condition for that quest alias)

 

 

it's with that kind of edits you make your game run faster, not by installing some tools that can't do anything about the problem, or messing with settings without know what they do

 

2 hours ago, mrsrt said:

 

As for minimum, please, tell me how did you discovered that this script will store 429 bytes in Papyrus VM?

 

 

 

190822085212148562.jpg

have no use for 3 whiterunfloor.dds, so i have unpack skyrim bsa, and copy paste mods onto that

that took some time to get that right, if the ssd die, i can repack them from the loose files i kept

 

was expecting a dialog script that is just doing one thing, but... there are scripts that do nothing (maybe it's me that delete lockpicking check and add a condition to doors, don't know)
because door is longer than tif_xxyyyyyy, so my smallest script is door.pex
 

that script size is 429 byte, on disk it use 4096 (disk minimum)

folder size is 11.7 mb, that use 41.2 mb on disk, that become 8.2 mb in a bsa (bsa win)

what that 429 byte script use in the ram.... no idea, probably 512 (256*2, 128*4 for you)

 

messing with ini settings to try to make maybe 6240 byte in your ram become 5900 byte... what's the point?

you will save much more ram if texture optimiser find something to do, that's in your guide?

there's something on what to put in enb ini? that's most ram ctd, that are most ctd

with a badly configured enb, you just ram ctd later than without enb

in the step they worship, there's a tool, when i took a look, more ram than what i have.... so i didn't put that

have put ram - 1 gb (windows) - 1gb (skyrim.exe), no ram ctd with that

have load the game with firefox, blender, paint.... and i had purple instead of a ram ctd (if you have purple, you are good, make a backup in case you try a stupid tweak later)

 

 

 

 

 

 

 

 

 

 

 

 

 

Link to comment
14 minutes ago, GenioMaestro said:

Not, that value is not correct and can give you a lot of problems. Please, learn how works the game, make your own test and verify it with others users before say things like that.

 

Start reading the Wiki of the CK:

  Reveal hidden contents

This is the maximum amount of memory the VM will allocate in total for stack frames. If an allocation would push memory usage over this limit, the VM will instead wait for more memory to be freed. Increasing this value may improve performance in high-stress situations with lots of scripts running, but will use more memory. Note that it is possible to exceed this value temporarily while loading a save game due to slightly different allocation ordering.

 

The iMaxAllocatedMemoryBytes default value is 76800 bytes = 75 kb and some users recomed up it to 153600 = 150 kb.

The game works perfect with that values, no mater how many mod you have or what scripts are executing the game.

 

What make the Script Engine when that memory is filled???

Generate a Stack Dump in the log.

 

If you have the value in 76800 probably you not notice when the Stack Dump is generated.

If you have the value in 153600 you can have a small freeze of half second when the Stack Dump is generated.

If you have the value in 67108864 you can have a ETERNAL freeze or a CTD when the Stack Dump is generated.

 

Why the Script Engine fill that memory???

Because you have a problem in a mod.

 

The game can run up to 200 scripts at the same time whitout any problem.

When a mod have a problem and start generating scripts the VM memory is consumed and the Stack Dump is generated for alert the developer of the problem.

 

If you put the value in 64 MB you can have a lot of problems. 

You are wasting that memory.

You can not know when a mod have a problem with the scripts.

When the problem happend, as you and the developer not see the Stack Dump in the log, the problem can not be located.

One day you have a CTD or a ETERNAL freeze and nobody can know why.

 

 

The value of the iMaxAllocatedMemoryBytes determine the size of the Stack Dumps.

Actually, i got stack dumps several times, because, as you mentioned, a mod had problems and there was no freezes at all, maybe just a little for what i didn't pay attention. One of that cases I explained in the guide, you can read about this experience in Thread leaks detection section. Since my skyrim never ever freezed (no matter with problematic mods or normally), ctds happens very rare and my experience completely opposite with that you wrote above, I can't confirm your words by one link to official wiki where said nothing about what you trying to say. If you have made some research with proofs and/or reversing I'd glad to read this and adjust my values.

 

And let's have a look at the message from official doc you posted:
"This is the maximum amount of memory the VM will allocate in total for stack frames. If an allocation would push memory usage over this limit, the VM will instead wait for more memory to be freed. Increasing this value may improve performance in high-stress situations with lots of scripts running, but will use more memory. Note that it is possible to exceed this value temporarily while loading a save game due to slightly different allocation ordering."

 

- At first, stack frame is not the same as stack dump. Papyrus does not allocate any special memory for dumps, lol, it allocates memory for frames. And memory allocation for frames does not have direct relation on how much dump stacks will be printed. So, I can't figured out why do you claim that the game will get eternal freeze with that value. A small freeze is possible while creating dumps, it's usual for such memory operations.

- When memory is filled full it does not guaranteed to dumping stacks will be printed. At first, Papyrus should try to find free memory and only when required memory wasn't found it will notify user with dumping stacks. I didn't find any detailed info about this, but almost every VM-based language works this way.

- It is also claimed that "Increasing this value may improve performance in high-stress situations" the thing we aim for. 

 

Maybe 64mb is not the best value here, but my skyrim works with that value for 2 years and for now i can claim that it's pretty stable. 

 

1 hour ago, GenioMaestro said:

How many DLL's have you in DATA\skse\plugings???

 

Each dll inyected in the game reduce the available memory for the game. Each one of them use a part of the 3.1 gb of the maximun memory of the game. The memory reported by Task Monitor is the real memory used by the executable and not have in consideration the memory used by the DLL's inyected inside the executable.

I'll try to find some time for reverse to make it clear about this moment. Now I have doubts too. 

 

Quote

A lot of things in the game are patetic but that not give any problem. We can re-work the entire game but the benefit can be minimal. Every severe problem has allready been patched.

I don't think I should convince anyone in that some imporevement should be installed, especially if it will cost you not more than a minute and affects not just performance, but game quality.

 

Quote

What is your problem with the Papyrus performance???

Did you ever play a heavy scripted skyrim?

 

Quote

Do you know what is the real performance of the papyrus engine???

Depends on what exactly you mean.

 

Quote

Have you read my blog, my post

I'd glad to read your researches if they properly confirmed.

 

Quote

or test my mods???

Probably not

Link to comment

 

1 hour ago, yatol said:

190822085212148562.jpg

have no use for 3 whiterunfloor.dds, so i have unpack skyrim bsa, and copy paste mods onto that

that took some time to get that right, if the ssd die, i can repack them from the loose files i kept

 

was expecting a dialog script that is just doing one thing, but... there are scripts that do nothing (maybe it's me that delete lockpicking check and add a condition to doors, don't know)
because door is longer than tif_xxyyyyyy, so my smallest script is door.pex
 

that script size is 429 byte, on disk it use 4096 (disk minimum)

folder size is 11.7 mb, that use 41.2 mb on disk, that become 8.2 mb in a bsa (bsa win)

what that 429 byte script use in the ram.... no idea, probably 512 (256*2, 128*4 for you)

 

messing with ini settings to try to make maybe 6240 byte in your ram become 5900 byte... what's the point?

Mmm, and you pretty sure that Papyrus VM will store plain text with comments and exact file size will be responsible for amount of memory that will be allocated in VM for that script?

 

Quote

heavy scripts? what is that supposed to be?

I think you have to read a bit about native function costs, cpu time and time complexity. 

 

Quote

you will save much more ram if texture optimiser find something to do, that's in your guide?

Personally, i didn't work with textures and lods, my good friend provided me with completed pack and i'm not much experienced with that. Feel free to publish your guide or give a link to a good one about this, i'll make a section for it. 

 

Quote

there's something on what to put in enb ini? that's most ram ctd, that are most ctd

with a badly configured enb, you just ram ctd later than without enb

The guide supposed that a clean enb was taken. As for texture optimizer i glad to expand the guide with helpful information

Link to comment
5 hours ago, GenioMaestro said:

What make the Script Engine when that memory is filled???

Generate a Stack Dump in the log.

 

If you have the value in 76800 probably you not notice when the Stack Dump is generated.

If you have the value in 153600 you can have a small freeze of half second when the Stack Dump is generated.

If you have the value in 67108864 you can have a ETERNAL freeze or a CTD when the Stack Dump is generated.

 

 

The value of the iMaxAllocatedMemoryBytes determine the size of the Stack Dumps.

eternal freeze or ctd? really?

 

there's some topics here about huge papyrus logs, 40 or 100 gb

their mess was stack dump paradise so much the log got their harddrive full, and they were no longer able to save the game (that was the problem, no freeze or ctd)

 

spam save after entering whiterun, load that in savegamecleaner, the noname scripts are the scripts that are done, and have edit nothing

game dump them every x ms, the noname scripts are the ones between 2 dumps, they will be dump if you load that save

to get the name of those scripts, i made a spell, that put an iron armor in a coffer, that do the same to another, that have the same script

i cast it, i enter whiterun, then riften, markarth... then i hit something to get all script with onhit(), jump, sneak, whatever i could think of, to check what i would get in the dump for that

didn't saw any eternal freeze or ctd, the only problem, if your messing around is too long, can't open the log because it's too big, and have to redo the messing around

 

 

you ctd when the game can't load something

tbbp armor without tbbp skeleton, game don't find bone x in skeleton, ctd

since the game is dumping those scripts, it was able to load them, so you won't find the ctd cause in that dump

to ctd with a script, you can make it player.equip tbbparmor, without tbbp skeleton (but it's not because that was equipped from a script you ctd, it's still a skeleton ctd)

 

freezes, it's that

 

while i > 0

 i=i+1

endwhile

 

if i isn't under 0, cpu is too busy running the loop to do something else

 

that happen with version x in load order and version y in save, script for version y doesn't work with version x

can also happen when you mess with console commands, setting a quest stage to x (stuff that was supposed to be done before x, wasn't done, result in game? surprise)

 

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • 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