um could be better. but i do like to options you incorped in to it.
heres an ez one..
on *:input:*:{
if (%rainbows == on) && (/* !iswm $1) {
var %x = $len($1-),%y = 1
while (%y <= %x) {
var %z = $iif($mid($1-,%y,1) = $chr(32),$chr(1), $+ $rand(0,15) $+ $mid($1-,%y,1))
var %zz = %zz $+ %z
inc %y
}
msg $chan $replace(%zz,$chr(1),$chr(32))
halt
}
}
menu channel {
.Rainbow Colors
..On:{ set %rainbows on | echo -a Colors Are Now On }
..Off:{ unset %rainbows | echo -a Colors Are Now Off }
}