string WhoDropped; integer in_use; RevertToDefault() { llSetText("Touch to drop an item", <1, 1, 1>, 1); llSetTimerEvent(0); in_use = FALSE; llAllowInventoryDrop(FALSE); } default { state_entry() { RevertToDefault(); } touch_start(integer n) { if (in_use) { llRegionSayTo(llDetectedKey(0), 0, "Sorry, this drop box is in use. Please wait until it's free."); return; } in_use = TRUE; llAllowInventoryDrop(TRUE); WhoDropped = llDetectedName(0); llSetText(WhoDropped + ", please drop your item in the next 30 seconds.", <1, 1, 1>, 1); llSetTimerEvent(30); } changed(integer change) { if (change & CHANGED_ALLOWED_DROP) { RevertToDefault(); llInstantMessage(llGetOwner(), WhoDropped + " dropped an item!"); } } timer() { RevertToDefault(); } }