I'm not familiar with CreationKit, but it looks like FindAllReferencesWithKeyword might be a better way to solve the problem. The documentation gives an example that returns all of the actors within a certain distance of the player & then removes the player from the results:
Actor Player = Game.GetPlayer()
ObjectReference kActors = Player....
The information you need to save is:
Which step of the story is the player currently on?
What's the state of the game? (variable values, story flags etc.)
This should not be a lot of data, so saving those to a file should be sufficient.
I've been thinking about this myself. First of all, the dirty rect as far as I understand is reset to zero every time the 64x64 chunk is rendered. Before that, anything that changes the actual color during the simulation step increases the size of the dirty rect. This should include you "erasing" stuff by drawing space. Doing this makes it so you ...