A simple illustration of the Scratch Message Queue. When a message is broadcast it is added to a queue. Messages are processed in First In First Out order. Only one message of the same name can be in the queue at once. The when I receive () block handles the message. We can consider 2 types of receive block. The first type does something and completes - all the processing happens within one frame. Normally these messages would be processed in a single frame. In this demonstration one message is processed every second. The second type continues processing over multiple frames, i.e. it has a loop or a wait statement. For receive blocks that continue processing over multiple frames, it is important to note that if the message is re-broadcast the receive block will be reset. In this demonstration the Counter sprite starts counting from 0 each time a Begin frame message is received.