The listen()event handler is invoked whenever a chat message matching the constraints passed in the llListenfunction is heard. The channel the chat was picked up on, the name and id of the speaker and the message are passed.

Channel 0 is the public chat channel all users see as chat text. Channels 1 to 2,147,483,648, and the negative of that entire range, are private channels that aren't sent to the SLclient, but that other scripts can listen for.

If you want your listen() event handler to be invoked for all messages on the specified channel, don't specify any constraints when you callllListen. In the following example, the listen() event handler examines the idparameter to see if the speaker is the object's owner:

If you want to completely ignore messages that don't meet your constraints, you should specify the constraints in the initial call to llListen, and your listen() event handler won't be invoked to handle undesired messages.

In fact, you should try and constrain all of your llListen() commands as much as possible. Open listens on channel 0 can affect both script and sim performance, particularly in busy areas, since they will trigger the listen()event for each and every line of speech in regular chat.

However, try to keep the number of calls to llListen to a minimum to reduce lag.

While it's valid to register multiple listeners on different channels, you cannot set multiple listeners on the same channel, even if you specify different filters for them. The one last set will work, overwriting any previous ones on the same channel.The above paragraph is no longer the case; verify and remove/modify, please.
- Blackheart

Q:Is it better to specify multiple listeners, or a single listen without filters and a block of IFs?A:Using multiple listen filter cause less lag.

Q:How long is the message queue in listen() event ?A:After testing, it appear to be 30, all others are discarded.