$1- is undefined in sockets. If the data you're looking at is in %msn.chat.data you can
tokenize 32 %msn.chat.data to use
$1- as you're used to. Furthermore, if the data is contained in this variable, your condition
if (%msn.chat.data == !say) will be false, use
if (!say * iswm %msn.chat.data).
Passing unknown text to a timer is unsafe, use this alias and $safe($1-) in the timer.
alias safe return $!decode( $encode($1,m) ,m)