bcsp Posted May 1, 2016 Author Share Posted May 1, 2016 Link to the Restringer app by Mark: http://www.loverslab.com/topic/61279-restringer/ There's also been another very interesting development: http://www.loverslab.com/topic/61293-help-test-fix-for-save-game-string-table-overflow/ Link to comment Share on other sites More sharing options...
Mookeylama Posted May 2, 2016 Share Posted May 2, 2016 Link to the Restringer app by Mark: http://www.loverslab.com/topic/61279-restringer/ There's also been another very interesting development: http://www.loverslab.com/topic/61293-help-test-fix-for-save-game-string-table-overflow/that 2nd one i think will be perfect for people in the midst of a current playthru that want to continue it. but sadly it seems the current Save Game Cleaner type programs will NOT work on saves using that 2nd method. hopefully someone can make the save cleaners work with that method because they're invaluable for cleanin and even just testing. i gots my donating finger ready! the Restringer will be THE method for building a NEW game i think Link to comment Share on other sites More sharing options...
EpitomyofShyness Posted May 3, 2016 Share Posted May 3, 2016 that 2nd one i think will be perfect for people in the midst of a current playthru that want to continue it. but sadly it seems the current Save Game Cleaner type programs will NOT work on saves using that 2nd method. hopefully someone can make the save cleaners work with that method because they're invaluable for cleanin and even just testing. i gots my donating finger ready! the Restringer will be THE method for building a NEW game i think Yeah that's what I'm thinking to. If we can get save game cleaners and such that can read the saves the 2nd tool makes and loads then that second one will be ideal in pretty much all ways, but until then new games are probably better off reducing initial string count. The second one though is awesome so that people don't have to abandon their current save, at the very least. Link to comment Share on other sites More sharing options...
panoc Posted May 3, 2016 Share Posted May 3, 2016 I think that the 2nd mod is better even for a new game, the first one need at least couple of months of extended testing to see what the results would be at the affected mods.Even if you reduce initial strings with the 1st method at future if you have a long play through with many expansion mods like faalksar beyond skyrim etc the string count eventually will rise again. Link to comment Share on other sites More sharing options...
semisacred Posted May 7, 2016 Share Posted May 7, 2016 (edited) Hey bcsp, thanks for the good read. I certainly didn't expect my mod to come up :tongue: . After looking at a 30 minute playtime save of mine, I found that I have 62215 strings used!! Eek. I'm no expert on scripts so if anyone has any tips on reducing the strings in my script I'd be open to suggestions. http://pastebin.com/RJnY7nGA edit: looks like the guy who made crash fixes is at it again does this fix the problem? Edited May 7, 2016 by euphoricknave Link to comment Share on other sites More sharing options...
bcsp Posted May 7, 2016 Author Share Posted May 7, 2016 (edited) Newest version of the crash fixes mod by meh321has implemented a fix:http://www.nexusmods.com/skyrim/mods/72725/? Edit: Be aware that once a save goes over the normal string limit, the ususal save tools won't work. Hopefully we'll see an update for the new save format or a new save tool altogether. Edited May 7, 2016 by bcsp Link to comment Share on other sites More sharing options...
cdcooley Posted May 7, 2016 Share Posted May 7, 2016 I'm no expert on scripts so if anyone has any tips on reducing the strings in my script I'd be open to suggestions. http://pastebin.com/RJnY7nGAThe easiest solution is to use two FormList properties instead of those arrays and multiple properties. That's the technique Forteverum and I came up with for Immersive Jewelry (for the left and right hand ring swapping) so I know it can scale to a very large number of items. And according to Forteverum getting the two lists set up isn't too bad. You need to keep the items paired in the two lists and formlists will purge None entries so you need to leave the item out of both lists if you can't put it in both. Formlists also can't store duplicates but looking at your existing lists there aren't any duplicates so that shouldn't be a problem. On the positive side you can add or remove items in future updates just by adding or removing entries in the formlists. (The script will force a refresh every game load.) I haven't tested it but this should work if you replace the ?????? with the ids and mod name for the HDT cloaks meant to replace the Campfire cloaks. (The problem is that you need the lists to stay in sync and the easiest way is to handle the pairs the same way for both sets even though you could use properties for the one.) If you use it in an existing game you'll get an initial set of errors about the missing properties, but those should go away after a save and reload. When finished you'll have a total of 3 strings added to the string cache for the revised script (the script name and the two properties). ScriptName _eu_COS_PlayerAliasHDTCloakSwap extends ReferenceAlias FormList property OriginalCloakFL auto FormList property HDTCloakFL auto Event OnInit() OnPlayerLoadGame() EndEvent Event OnPlayerLoadGame() OriginalCloakFL.Revert() HDTCloakFL.Revert() if Game.GetModByName("Campfire.esm") != 255 ; Campfire.esm found HDTCloakFL.AddForm(Game.GetFormFromFile(0x??????, "?????????????????")) ; HDTCampfireBasicBurlap OriginalCloakFL.AddForm(Game.GetFormFromFile(0x03FA9C, "Campfire.esm")) ; _Camp_Cloak_BasicBurlap HDTCloakFL.AddForm(Game.GetFormFromFile(0x??????, "?????????????????")) ; HDTCampfireBasicHide OriginalCloakFL.AddForm(Game.GetFormFromFile(0x03FA9F, "Campfire.esm")) ; _Camp_Cloak_BasicHide HDTCloakFL.AddForm(Game.GetFormFromFile(0x??????, "?????????????????")) ; HDTCampfireBasicLinen OriginalCloakFL.AddForm(Game.GetFormFromFile(0x03FA9D, "Campfire.esm")) ; _Camp_Cloak_BasicLinen endif RemoveAllInventoryEventFilters() AddInventoryEventFilter(OriginalCloakFL) ; avoid overwhelming Papyrus and stack dumps EndEvent Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) if akBaseItem as Armor int idx = OriginalCloakFL.Find(akBaseItem) if idx != -1 && (HDTCloakFL.GetAt(idx) as Armor) != None GetReference().RemoveItem(akBaseItem, aiItemCount, abSilent = true) GetReference().AddItem(HDTCloakFL.GetAt(idx), aiItemCount, abSilent = true) endif endif EndEvent Link to comment Share on other sites More sharing options...
Necrokat Posted May 11, 2016 Share Posted May 11, 2016 Newest version of the crash fixes mod by meh321has implemented a fix:http://www.nexusmods.com/skyrim/mods/72725/? Edit: Be aware that once a save goes over the normal string limit, the ususal save tools won't work. Hopefully we'll see an update for the new save format or a new save tool altogether. Sadly it seem there may be problems with that Crash fixes option, as you can read on lovelab. Has anyone used the Restinger tool on Interesting NPCS and Legacy of Dragonbourne and played for a while? Any conflicts or strangeness? Link to comment Share on other sites More sharing options...
FrankFamily Posted May 12, 2016 Share Posted May 12, 2016 (edited) So, if i'm understanding everything right, for modders/scripters/whatever this means: 1) Reduce the number of scripts because the name of each script is 1 string? Probably much less important than properties though. But still worth repeating "Use existing script (those starting with "default" for example) whenever posible!" 2) Reduce the number of uniquely-named properties (and variables? they don't persist on the string table?), meaning the usual PlayerRef does not count because it's probably already in the string table.And using non-unique names for properties is probably also a good idea, for example: MyEffect, MyQuest, etc. Maybe check how properties are named in vanilla scripts and use those?The bad side is you cannot autofill, as always convenience vs safety/performance 3) Assuming an array property is 1 string, it's probably a good idea to use arrays or formlists (depending on whatever you are doing) if you need a bunch of properties. Edited May 12, 2016 by FrankFamily Link to comment Share on other sites More sharing options...
Gawad Posted May 20, 2016 Share Posted May 20, 2016 (edited) meh321 has just released a new version of his Crash Fixes mod (v.9). He believes that he got the parts of the StrCount bug fix that were missing in v.8. I can't test this right now as my own setup is no longer breaking 65535 (so far), if anyone else wants to give it a spin though, here it is: http://www.nexusmods.com/skyrim/mods/72725/? Cheers! Edited May 20, 2016 by Gawad Link to comment Share on other sites More sharing options...
Recommended Posts