Jump to content

Corrupt Saves - StrCount > 0xFFFF - CTD on load


bcsp

Recommended Posts

@cdcooley

Thanks for clarification. Didn't know the string values set to variables (even array elements) will go to the same table - that's good to know.

 

I actually have over 300 esp/esm's worth of mods installed - with a bunch of merges bringing the actual count to 240, so the 'per mod' average sort of depends.. on the other hand a lot of the mods are very simple and scriptless. I tried starting a new game at my mod set, and by the time I was inside helgen keep, had the count at 43,000. At current point in playthrough I was somewhere around 46,000 so I don't think I need to worry too much.

 

Really it seems I'm hitting on different performance issues much faster than string limit. I had to leave away 3DNPCs, not because of string count, but simply because it was causing massive stuttering issues when I'd been playing for a while. SL, PerMa, 3DNPCs, DynDOLOD, and the whole bunch of other mods were just too much together. Taking out 3DNPCs and dropping DynDOLOD to low settings was enough to make things playable. Block1 on MemoryLog dropped from about 750 to 600. String count at worst - with DynDOLOD 4.19 and 3DNPCs, was a bit past 50,000 - which is steep, but not really critical seeing as it's already over 100 hours into the game.

Link to comment
Share on other sites

  • Replies 204
  • Created
  • Last Reply

Top Posters In This Topic

 

 

If you test more mods like this I can add in a "maximum potential string count" column in my spreadsheet, with the explanation that a player is highly unlikely to ever actually hit that maximum but its just one more thing to be aware of.

 

I'm not yet convinced that's the best thing to do, even with a warning. In fact right now, I think it might even be counter productive.... Thing is, if word starts going 'round that the mod can ramp up your string count by nearly 1000 (!) I'm concerned that a lot of people might forego using it for no justifiable reason. I have no real basis from which to say this, but I just have a really hard time believing that Simply Knock has any chance of pushing your strcount anywhere near 1000 (I mean, that's huge for a mod this size and that only comes into play when you interact with a door), and suggesting such a thing is very premature, I think. (I might even say "alarmist")

 

 

Yeah your probably right. I'll keep track of the data, and once we have a better grasp on it all it might be time to start tracking "potential for increase" but certainly not right now.

 

sounds like a good idea

Link to comment
Share on other sites

If what I've seen here about quest properties getting saved even before the quest has ever been run is true, it means the only way to control a potentially high impact quest would be to remove the quest, not manage whether or not it is running.

 

So, if I understand correctly, topic info fragments offer a degree of immunity because their string increase is temporary. Quest advancement fragments do not. I'm wondering about fragments attached to other things, like AI Packages.

 

And if topic info fragments are handled better in terms of the string count, does that mean it would be smarter to place properties and what would normally be main script function code inside topic info fragments rather than the quest's main script? That is potentially a ton of raw code duplication.

 

The irony here is that we're discussing a possible best practices scenario that goes totally against the way game company itself operates. I've seen the number of globals and unnecessary private variables in the Hearthfires DLC and it is astonishing.

Edited by migal130
Link to comment
Share on other sites

I'm not sure about fragments. Has it been confirmed that the strings they add are temporary? The reason I ask is that many of the mods with a high string count seem to have a lot of tifs.

 

In other news, markdf over on LL has produced patched vanilla Skyrim scripts that reduce string count by a staggering 20,000. It should be considered an alpha stage mod. Only use on a new game and if you know what you are doing. The scripts have not been functionally tested yet.

 

Edit: Scratch that guys :(

Looks like there are fundamental issues with the patched skyrim scripts. The restringer still sounds promising however.

Edited by bcsp
Link to comment
Share on other sites

I'm not sure about fragments. Has it been confirmed that the strings they add are temporary? The reason I ask is that many of the mods with a high string count seem to have a lot of tifs.

 

 

BBLS (my mod) has a lot of tifs. Testing so far indicates it can raise the count by up to a thousand. But, it's very hard to tell the max for sure. I probably have over 300 quest aliases in the mod, although they are never all used at once (maybe 40 max can be employed simultaneously). There are a huge number of scipt fragments from topic infos (several hundred). However, the real offender might be the follower stats display that comes with the mod. You can ask a follower to show you their stats and you get a display of all their spells, perks and other stats. As you can imagine, those scripts required a large number of properties, somewhere in the neighborhood of 500. The display is useful, because it allows a player to know what kind of gear they should be giving a new follower. But, if having that one quest is causing a string increase in the save files that corresponds to the number of properties in its scripts, then I should probably remove the feature from the mod, which would disappoint some users, but allow me to avoid as many potential string complaints.

 

Going to start following over at LL where it looks like most of the conversation has taken place.

Link to comment
Share on other sites

If you declare local variables inside a function they (and their values if they are string variables) won't be permanently stored in the string cache. Topic info fragments (TIF) won't get stored permanently either. But quest fragments and perk fragments will. I'm not certain about scene fragments. The general rule is that if a script is attached to an object that's actually in the game's memory then the script's strings are too. Quests and perks are always loaded by the game even if they are inactive. Dialogue and magic effects are loaded and unloaded from memory as needed.

Link to comment
Share on other sites

 

The display is useful, because it allows a player to know what kind of gear they should be giving a new follower. But, if having that one quest is causing a string increase in the save files that corresponds to the number of properties in its scripts, then I should probably remove the feature from the mod, which would disappoint some users, but allow me to avoid as many potential string complaints.

 

You could release a version without the display, but keep the display version as a 'Legacy' file for those who want to still use it and aren't bumping up against the string limit.

Link to comment
Share on other sites

How does SKSE figure into all of this?

 

There is a significant amount of data loaded into the .skse and .bak files that is not present in the .ess files.

 

Also, does the SKSE ClearInvalidRegistrations=1 function affect strCount over time?

 

Bug

Link to comment
Share on other sites

The *.SKSE files are a "co-save" containing data in a format specific to SKSE and any SKSE plugins you may have loaded; when SKSE needs to save something that the game wouldn't normally save, it uses the co-save. Those files will not impact the string count directly.
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...