Now added with press-wrong-button-you-have-to-start-again functionalityCode:stuff() { trigs = []; trigs[trigs.size] = getent("trig_first", "targetname"); trigs[trigs.size] = getent("trig_second", "targetname"); trigs[trigs.size] = getent("trig_third", "targetname"); for(i = 0; i < trigs.size; i++) trigs[i] thread dotrig(i, trigs[0]); nextnum = 0; while(true) { trigs[0] waittill("triggernum", num); if(num == nextnum) { nextnum++; if(nextnum == trigs.size) { nextnum = 0; //do elevator } } else nextnum = 0; //failed to do correct order } } dotrig(num, parent) { while(true) { self waittill("trigger"); parent notify("triggernum", num); } }