@bgillisp has raised a very interesting point in his status: How to use variables to define the course of a script? Explain your methods here, I'll start with mine: I often use variables as score. Certain actions (missions / progress in the game / Level) increase the value of the variable. That way I never need to worry if the player is going in a certain place before the time, because nothing is going to happen. Nor do I have to worry about manipulating playing time so that progress is neither too fast nor too slow. This template allows the player to make their own time. Let's say the player is locked in a puzzle. He just needed to do extra missions, kill monsters and level up to get past that part of the game, right? Wrong, in these situations you can simply lock the value of the variable, preventing the player from mocking this part of the game. For extra missions, secret scenes and the like, it is enough to limit some restrictions. For example, the player will only receive the special weapon if he goes to a certain place while his score is greater than or equal to X or while it is between Y and Z. This model allows me not to have to use switches everywhere. As I started with RM 2003, there were no local switches, we needed to save as much as possible. I ended up with the habit until today and still seems reasonable.