I think I found it. So such "actor leaves region" events are basically functions, that are added to a region. Each region has a list of them, and every time, when any actor crosses the border, all functions in the list gets executed with the actual actor that crossed the border as a parameter. In the function, Stencyl creates it first checks if this is the same actor we added the listener for. But since Stencyl recycles actors, thinks it is the previously killed actor. And when an actor is killed, its listener functions are not removed from the region's list but when recycled (created again) it adds the same function again so it gets executed multiple times. You can solve it by adding the listener to the scene, not to the actor or deleting the region the listener is attached to every time you kill the actor.