mrsrt Posted August 22, 2019 Posted August 22, 2019 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.
Grey Cloud Posted August 22, 2019 Posted August 22, 2019 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: I recommend to use this guide: https://wiki.step-project.com/Guide:Skyrim_Configuration_Settings 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.
mrsrt Posted August 22, 2019 Author Posted August 22, 2019 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)
donttouchmethere Posted August 22, 2019 Posted August 22, 2019 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.
donttouchmethere Posted August 22, 2019 Posted August 22, 2019 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.
Grey Cloud Posted August 22, 2019 Posted August 22, 2019 29 minutes ago, donttouchmethere said: Normally I have my papyrus settings according to: Am I missing something here? This looks like a direct copy paste of the Nexus Crash Fixes description page by meh321 https://www.nexusmods.com/skyrim/mods/72725/
yatol Posted August 22, 2019 Posted August 22, 2019 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
donttouchmethere Posted August 22, 2019 Posted August 22, 2019 9 minutes ago, Grey Cloud said: Am I missing something here? This looks like a direct copy paste of the Nexus Crash Fixes description page by meh321 https://www.nexusmods.com/skyrim/mods/72725/ sorry, I couldn't resist ?: Spoiler
mrsrt Posted August 22, 2019 Author Posted August 22, 2019 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.
ASlySpyDuo Posted August 22, 2019 Posted August 22, 2019 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?
donttouchmethere Posted August 22, 2019 Posted August 22, 2019 12 minutes 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? Asking me the same question, but doesn't ENB makes more VRAM aviable, while the 4GB patch provides skyrim with more RAM?
Grey Cloud Posted August 22, 2019 Posted August 22, 2019 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.
GenioMaestro Posted August 22, 2019 Posted August 22, 2019 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.
mrsrt Posted August 22, 2019 Author Posted August 22, 2019 @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.
mrsrt Posted August 22, 2019 Author Posted August 22, 2019 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.
ASlySpyDuo Posted August 22, 2019 Posted August 22, 2019 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.
mrsrt Posted August 22, 2019 Author Posted August 22, 2019 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 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 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.
GenioMaestro Posted August 22, 2019 Posted August 22, 2019 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.
GenioMaestro Posted August 22, 2019 Posted August 22, 2019 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.
GenioMaestro Posted August 22, 2019 Posted August 22, 2019 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???
GenioMaestro Posted August 22, 2019 Posted August 22, 2019 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.
yatol Posted August 22, 2019 Posted August 22, 2019 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? 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)
mrsrt Posted August 22, 2019 Author Posted August 22, 2019 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
mrsrt Posted August 22, 2019 Author Posted August 22, 2019 1 hour ago, yatol said: 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
yatol Posted August 22, 2019 Posted August 22, 2019 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)
Recommended Posts
Archived
This topic is now archived and is closed to further replies.