A simple but VERY useful feature that has occurred to me as a result of the fast-pay "exploit" in the scripting tips forum.
Anyway, the main problem with multi-user vendors is that it's difficult to stop users from changing the item while someone is paying, as you don't know who is paying the vendor! So you have to lock it and just hope it doesn't mess things up for everyone too badly, or not bother at all.
These two events however would help greatly, and would be very useful:
money_start(integer number_paying);
This event is triggered when somebody chooses to "Pay" the item (right-click > Pay), it passes in the number of avatars currently "Paying" the vendor (ie who have not click 'Pay', or who have not closed the pay dialogue themselves or by being logged out).
When this event is triggered a scripter could happily add them to a list of payees and give them a time in which to pay up or be removed from the list.
money_end(key id, integer number_paying);
Same as above but it is triggered when someone closes the pay dialogue, or pays the vendor (triggered AFTER the money() event). This gives the key (id) of the user who has finished, and the number still paying the vendor.
For both events, the llDetected* functions would return the usual results that touch_start() etc. have available.
Has this been suggested already (if so, whereabouts?), if not, it's a relatively simple addition which would greatly help vendors function more intuitively in busy areas =)