thank you. Ill try that one. however here is the script I am using..
------------------------------------------------------------------------------------------------------
integer isOn = FALSE;
vector light_color;
integer listenHandle = 0;
// This makes it easier to change the light's parameters in one place
setLightParameters()
{
llSetPrimitiveParams ([PRIM_POINT_LIGHT , isOn , light_color , 1.0 , 10.0 , 0.75]);
}
default
{
on_rez(integer start_param)
{
llResetScript(); //Reset in case owner changed
}
state_entry()
{
light_color = llList2Vector(colorVectors , 0); //Set the initial color to white
}
touch_start(integer num_detected)
{
// If not already listening , start listening to the owner
if(listenHandle == 0)
{
listenHandle = llListen(channel_num , "" , llGetOwner() , ""

;
llSetTimerEvent(30.0);
}
// Toggle the light on/off
isOn = !isOn;
// Set the light's parameters
setLightParameters();
}
timer()
{
// If the script is listening , stop listening and stop the timer to reduce lag
if(listenHandle != 0)
{
llListenRemove(listenHandle);
llSetTimerEvent(0.0);
}
}
listen(integer channel , string name , key id , string message)
{
// The following IF statement is for the paranoid

Not really necessary to check the
// id against the owner , but no harm in doing it anyway
if(channel != channel_num || id != llGetOwner())
return;
// Look for what the user says in the list....
integer listLocation;
listLocation = llListFindList(colorWords , [message]);
// Did not find what the user said in the list? Stop here
if(listLocation == -1)
return;
// found what the user said in the list , set the corresponding vector
light_color = llList2Vector(colorVectors , listLocation);
// set the light's parameters - does not change On/Off setting
setLightParameters();
}
}
-----------------------------------------------------------------------------------------------
didnt know how to make the little box.