No, he's right that the script doesn't work. Well, not quite for those reasons - the class will get marshalled since they are always saved to variables within classes that do get marshalled (Game_Event; Game_CommonEvent; Game_Map). But making it an instance variable was silly since it won't work through any of the other interpreters - IE you couldn't restore it or memorize it through any parallel process events or common events or even child interpreters. I should have either put it in a class like Game_Map or made it a class variable.
I've changed it to a class variable since that was easier. Grab it again from the previous post.
But yeah; thanks for the catch ForeverZero - I wouldn't have given that choice a second thought if you hadn't popped in. I definitely should have been smarter about it. Also, putting it in another class like Game_Map would probably be smarter than using a class variable, but adding three extra @s was slightly faster and I'm lazy.
Also, @heisenman - clone would have worked too. They're the same method except clone is a more complete copy as it includes freeze status and singleton methods. Are you sure that was that the only difference?