About

Any amount of message pumps can be used, provided that they are within the flood limits of llRezObject. Each script is polled in round-robin fashion and distinguished by the check:

if(num & 0xFFFF != 1) return;

which indicates whether the message was meant for this pump.

Code

message_pump.lsl
///////////////////////////////////////////////////////////////////////////
//  Copyright (C) Wizardry and Steamworks 2014 - License: GNU GPLv3      //
//  Please see: http://www.gnu.org/licenses/gpl.html for legal details,  //
//  rights of fair usage, the disclaimer and warranty conditions.        //
///////////////////////////////////////////////////////////////////////////
 
default {
    link_message(integer sender, integer num, string str, key id) {
        if(num & 0xFFFF != 1) return;
        integer channel = num >> 16;
        llRezObject("o",
            (vector)str,
             ZERO_VECTOR,
             ZERO_ROTATION,
        channel);
        llWhisper(channel, id);
    }
}