» Wed Jun 20, 2012 1:10 pm
Yes, since resetting restores all object attributes and script variables to their starting values, you can't detect resetting directly in a script. What you can do however is rely on the fact that these are restored to their defaults. For example with actors, you can use the Variable* Actor Values (though in Skyrim these have mostly been reserved) to avoid altering any 'proper' actor values (like Strength etc), changing the value of one of them when the actor is spawned. When a cell resets and the actor resets, the Variable* is reset too and you can detect this.
Objects (like chests) however are different, as they have far less properties and no unessential values like Variable*. However, there is at least one factor that does reset with any object that has 3D: scale. If you change the scale of an object via script after it's loaded, and the cell resets, it will be restored to its initial size (for most everything, this is 1). This is how the Savegame DeBloatifier gets around the fact that placed references in Skyrim don't trigger the OnReset() block (references placed with PlaceAtMe are automatically persistent and don't trigger OnReset()) when fixing duplicative Nirnroot empty roots. They're set to a scale of 1.01 and detect when scale == 1.
And... I just realised you probably asking if there's a way to check if contents reset, given a chest set to not respawn will still have its 3D reset. Placing a non-playable token in the chest (which means it won't show up when looting) and detecting if it's present or not would indicate the contents have changed.