The only alternate method of making a script happen once is the setvar command, you use these on every script tile but if you use the command by itself, the script will only happen once. The only way you didn't mention how you can use falgs is making what I call sequence events. Basically you set a flag at the end of one script, check the same falg at another script, and then you will have one script only do something after the completion of another script. For example, say you wanted to have a guy stand in front of a cave and not move, for him to move the player has to get a letter. Let's say the postman is on the other side of town and if the player talks to him they get the letter. In the postman's script you want to set a flag, let's say 0x1000. Then if you go back to the guy in front of the cave he will let you in. This is because in his script you have a checkflag 0x1000 (or any other flag that you used) and if that flag is set he moves out of the way.