Ok so as far as the repitition, undoubtedly the problem is occurring because it is in the doit method instead of the handleEvent method. As long as your ceryain you have the event claimed true inserted into every interaction. if you move the code into the handleevent method that problem should go away. As far as clicks on ego go, it is always going to be a matter of priority. If the click on ego code is in a global, or region script then the roomscript code will trump the clicks on ego. For instance, if you have a door in the roomscript and ego in a global and ego is in front of the door when you click on him, it will register as a click on the door because the roomscript has priority. furthermore, if you have a tree and ego in the roomscript, whether ego is in front or behind the tree, the script will only be run as far as whichever interaction is coded first assuming you are using if/else statements. if you just use if and not elses, you may get both responses which is equally undesirable.