bMotion uses a queue for its own output to so that it can manage itself and prevent flooding. It also allows it to queue items to be sent to other bots at the right time.

bMotion's queue is checked once every two seconds, and the delay on all items is decremented by one. Any item reaching zero (or less) is immediately sent to eggdrop for output to IRC (which may incur some delay from eggdrop itself).

Versions prior to 0.0.9 used a list which was just moved forward one item at a time, making it difficult to add arbitary delays to items on the queue. The new system allows plugins to queue something to be said in 30 seconds without having to resort to a timer to handle it for them.

Items to be sent to another bot are kept in the same queue as items to be output locally; this means that if two bots are having a 'conversation' it should be kept (more or less) in sync. Items for other bots are queued for the channel as normal but the text is listed as

@<botname>@<text>