Don't misunderstand me... by claiming that the CK is what corrupts things, I mean that under VERY specific conditions - CERTAINLY not always. Try this: create a backup copy of any 100% flawless mod that has a custom interior with custom navMesh (I hadn't tested it with exteriors so I dunno if it applies). Now do what I call a "selective-recast autogen"... ie: select a big 'structural' static (such as a floor kitPiece), then recast-autogen navMesh (this should only autogen navMesh on top of that static, while it SHOULD leave all else).
The CK immediately corrupts all the existing navMesh - specifically the water/preferred flags for each tri. Not ALL tri's are affected... and I'm actually not sure if this affects navMesh that has no water/preferred flags to begin with. One CAN correct this, but it's a pain in the b's (find and correct the tri's that were changed) - and not everyone may be aware of it until in-game testing... that's how I discovered it.
Outside of that, I haven't had any major problems with the CK. All the session/procedure-specific proof I showed in the NavMesh Bug threads MAY be chalked up to being caused an aspect of the Bug... so I can't offer that as real CK corruption until we know NMB has been fixed (and if those sess-specific issues persist).
I DO experience crashes of the CK when I work on my scripting - which I do extensively. Since it crashes after about a dozen 'compiles', I stopped loading any mods while doing it. I load ONLY the CK... no mods, no skyrim.esm, no NOTHING.... crashes after about a dozen compiles. This is garbage-collection bug, which is obviously specific to the CK's Papyrus routines. Months ago, CK would crash randomly - but as others have already noted, I think that was fixed in the CK's 1.524 update (which is the ONLY CK update I'm aware of).
"Assert File: C:\_Skyrim\Code\TESV\BSCore\MemoryContextTracker.cpp Line:151" is the actual error that ALWAYS occurs. [choosing abort/retry/ignore all cause CTD]
To prevent crashes, or session-specific issues, I now ALWAYS use the CK to do exactly what I want, save it, then get out. In compiling scripts, once they're in a test-able state, THEN I load the mod, assign/fill the properties accordingly, save and exit. I haven't had ANY problems with any of my mods since doing this; and I agree it may be overkill or unnecessary, but I know it works. And I think it's noteworthy that I haven't EVER had any problems with Papyrus whatsoever... it's simply been a matter of learning the new functions & syntax... and dealing with its idiosyncrasies (eg: thread limitations).
I agree with Arthmoor that the CK is the standard - it's the only app sanctioned by the game's developers. But we all have to remember the sheer amount of hackage they had to perpetrate on it to release it to the public... several MONTHS worth (after releasing the game itself). Soooo much could have (and obviously HAS) gone wrong in that process that I almost recant all I ever said preCK about them taking so long to publicly release it.
NOW - regarding what I was saying about the CK being what corrupts NPC_ records: Using Gecko AND Snip, I've been comparing the data of pureCK mods vs Snipped mods (uncompressed data, and supposedly 'corrupt without question' as some continue to claim). My limited testing has shown NO difference in the actual data whatsoever... unless Snipping something out of Skyrim.esm (or caused by the CK during a later phase). This is NOT to say that plenty of instances CAN be corrupt... but again, my orig statements were that not ALL Snipped mods are inherently corrupt.
Try this: open CK, clone any Vanilla actor whatsoever... but be sure to remove the 'unique' flag (as leaving it always causes in-game drama... since it's not actually unique anymore). Place one of that object somewhere in the renderWindow, place & link a couple patrolMarkers so it doesn't 'wander', save the plugin.
- Create a backup of that pureCK plugin file
- Snip-edit the plugin... not even editing is needed - just save the plugin in Snip (but change the edID if you want to go the extra mile)
- Now compare the files. You'll see one is like twice the size as the other (uncompressed)... but in either Snip OR Gecko, ALL the actual data is exactly the same
- Now create a backup of the Snipped plugin file and load up Skyrim.esm (in the same Snip session)
- Directly Snip over any Vanilla NPC_ you want, change your ACHR (placed NPC_ ref) to point to your Snipped-clone (the NAME subrecord), save it
- Test that plugin in-game... it should work fine. (ie: the actor will have the correct name and should be patrolling as expected)
- Backup that plugin, open it in the CK. Say 'yes' to correct the record count. View and compare the file (WITHOUT SAVING IT)... it now has the proper record count, and the 'file version' is the ONLY other data that has changed. In-game this file should still work fine. When compared, the data now shows that the file version has changed to .85 (which doesn't seem to make a difference).
- Now SAVE that file in the CK. Going deeper into the data, you'll notice that the Snipped-clone NPC_'s FULL subrecord has had the last byte deleted (but the size-flag-bytes correctly reflect that). In-game, this file will show two ascii characters instead of the proper name. PROOF OF CK CORRUPTION. This can actually be corrected if the last byte is added back (in Snip).
BUT other damage may have been done as well, as the CK changes some various 'flags/unknowns' (as Snip labels them) - and even changed the order in which the actual NPC_ record appears (mine bumped this record to above/before the pureCK-clone). It also changed the VMAD subrecord so that one property appeared before the other two - but all the data itself was the same. But testing in-game, you'd be lucky to even SEE this actor (disappears completely.. as in it has NOT wandered).
"But Snip is what caused that" you're probably screaming at your screen. NO it didn't... backup that last file and change the NAME subrecord back to the orig pureCK-clone. It should work just fine with your originally placed actor.
Again, I haven't gotten to making the hard data into a presentable/postable form yet... I've been working on decoding more of the NPC_ data structure (and actually have found quite a bit that Snip either has mislabeled or never labelled at all).
I also have YET to see a single instance of ANY record or subrecord that was incorrectly 'stamped' with the wrong size (data either being added or deleted and not being accounted for). As AndalayBay said, each record/subrecord has two bytes that follow the record's name (eg: CNAM, REFR, NAVM, etc)... this is converted to a short which indicates how big that record should be - and has ALWAYS been correct in my limited testing. (which disproves the claim the Snip ALWAYS corrupts or causes this) I'd still like to hear which record whoever has seen this happen to (ideally with the method to reproduce it)... in my prelim opinion, it sounds like someone translated the data wrongly (eg: "13 00" taken as indicating 13 bytes long, but is actually 19).
Once again, I couldn't get Snip to actually save a plugin with an intentionally compressed-flagged record... no matter what changes/options I made to Snip. It DISPLAYS it as being flagged, but saving then exiting and reloading in Snip - that flag is gone. Could anyone tell me how to go about doing that so I can see this for myself?
Not for nothin' - but wasn't 'Voldermort' correct in his claims that there is in fact a navMesh bug? I believe he got the bad wrap he did because he spoke out about it in a way that could have been formulated/delivered with more prudence and politeness... to put it mildly. I'm not THAT familiar with 'he who probably shouldn't be referred to' but I did see the videos months ago and know the basic premise of his argument.
[EDIT: type-o's]
[EDIT2: I put the .85 thing on under the wrong step.. corrected now. CK changes it to .85 WITHOUT actually having to resave the file.]