Jump to content

Photo

How to CLEAN your SAVEGAMES from BROKEN SCRIPTS - Tutorial - Solving C


  • Please log in to reply
1120 replies to this topic

#511
vvk78

vvk78

    Resident poster

  • Members
  • PipPipPipPipPip
  • 3,216 posts
Wonderful mod!

I've used the instructions from the First Revision, several times over the past month, and I've NOT faced any significant issues so far.

The PDF is extremely detailed and has excellent screenshots to explain each step, with proper documentation on the risks involves, and what is to be expected before and after this script-cleaning exercise.

It is understandable that some script-based variable settings will be lost during the cleaning, but if the savegame is broken and Wrye Smash and other mod tools cannot help, then this kind of cleanups are the way to go.

I'll definitely try the new version in a couple of weeks, as my current savegame is working very stably and smoothly, thanks to this mod and the new nVidia 314.22 WHQL drivers.

Thanks and endorsed!

#512
flexcreator

flexcreator

    Resident poster

  • Premium Member
  • 3,139 posts
In response to post #7685288.

@vvk78, If you made no significant progress, you can try to transfer the variables from your dirtysave right into your current save using the PapyrusDataTransfer. If you read the new manual you can catch the idea how to do it.

> some script-based variable settings will be lost during the cleaning
Actually, you will loose several thousands variable states. For example, in my case it is 6197 values. And please note that some differences I'm still fail to recognize. The tool won't restore the object references and arrays (that's why some people have problems with the black books).

It is not obvious that you can loose so much data, because (as you said) most variables are insignificant to the core gameplay and walkthrough. But it definitely breaks the immersion.

This is still work in progress and I'm trying to find a way to make this process much more safe. No promises.

#513
ragnaroklucifer

ragnaroklucifer

    Fan

  • Members
  • PipPipPip
  • 466 posts
my game save still has 2 invalid property references, a whole lot of missing classes and types....

#514
flexcreator

flexcreator

    Resident poster

  • Premium Member
  • 3,139 posts

my game save still has 2 invalid property references, a whole lot of missing classes and types....

 

How did you detect that? By Papyrus log? Or by the log of the tool?



#515
sa547

sa547

    Ordre de la Rose

  • Members
  • PipPipPipPipPip
  • 4,562 posts
Tried the new version on my old gamesave (level 93, 500+ hours since last year), followed as instructed, and, although there wasn't much of a change in filesize and seems that I forgot where I put most of the uniques I collected (mostly in General Stores), last night the game was very stable without any CTDs.

Edited by sa547, 29 March 2013 - 01:16 AM.


#516
ZoMHead

ZoMHead

    Fan

  • Premium Member
  • 300 posts
I am one who installs several mods and deletes them carelessly.

So despite not having any CTD or broken games, i do know that i had tons of scripts running that are just not needed.

Followed the instructions to the letter. Did not loose anything, runs super smoother and better.

Thank you, endorsed.

PS: Everyone should take their time when doing this, do it once and do it right.

#517
Tossapon

Tossapon

    Newbie

  • Members
  • Pip
  • 18 posts
Endorsed. Thanks to the information about the file structure. I managed to write my own version of restore tool with great success. I write down the information about papyrus structure I discovered at UESP page. Hope it help with development. Here's the link : http://www.uesp.net/..._Format/Papyrus BTW. I'm currently working on restoring array information. (almost done)

Edited by Tossapon, 30 March 2013 - 12:24 PM.


#518
flexcreator

flexcreator

    Resident poster

  • Premium Member
  • 3,139 posts
In response to post #7706071.

@Tossapon

Actually, there are also two tables before and after the ScriptData (with the same record count). They are not mentioned in my description.

DWORD RecordsCount
UnknownTable[RecordsCount]
{
ScriptID
UnknownWord
}

The format of the second table is the same as the records in ScriptData, script instances are located IN THE SAME ORDER as in the first table. I don't know their purpose and... they have no type 0.o

Did you work with bytecode already? Right now I'm working with script bodies, I was able to remove one particular script body from the section manually. I'm trying to discover more about the structure.

The author of TES V ESS Editor is also working on improving his tool :)

#519
flexcreator

flexcreator

    Resident poster

  • Premium Member
  • 3,139 posts
I'm working on the PapyrusDataTransfer v 0.4 and I need your help with testing. If you had CTD or any other clear factors that are easy to track down (heavy lags) which this tutorial solved, please send your DIRTY savegame and your Papyrus logs (Documents\My Games\Skyrim\Logs) to [email protected] Of course, by the "Logs" I mean the logs that were created from the dirty savegame. In the message body, please provide the details about your particular problem. Thank you for your support.

Edited by flexcreator, 06 April 2013 - 12:33 PM.


#520
Tossapon

Tossapon

    Newbie

  • Members
  • Pip
  • 18 posts
In response to post #7706071. #7706405 is also a reply to the same post.

Byte code is not in my interest right now because my priority right not is to correctly transfer array data to the new file.

Actually I found 3 tables between ScriptInstance and ScriptData which is..

DWORD nInstanceCount;
ScriptInstance[nInstanceCount]

DWORD nCount1;
UnknownTable1[nCount1] <== First Table (6 bytes per record)

DWORD nArrayCount;
ArrayInfoTable[nArrayCount] <== Second table, Array ID, type and length.

DWORD nCount2;
UnknownTable2[nCount] <== Third table (5 bytes per record)

ScriptData[nInstanceCount + nCount1] <== This one got more records than total script instances and its relation with UnknownTable1 is still unknown to me.





Page loaded in: 0.981 seconds