i am sure i am doing something stupid, i have a script, it reads the socket and sets the var correctly, but it refuses to set the words i want set.

so the socket line says BLAH1 BLAH2 BLAH3 BLAH4 and i want it to set %XYZ to be BLAH3 but it won't it just sets %XYZ to be blank.


on 1:sockread:metar:{
sockread %temp
if (KMCI isin %temp) { set %mci %temp | set %kmci true | msg wx line: $1- | set %line $1- }
echo 4 %temp
}


in my scripot it sets %mci to be the %temp line and %kmci to true but it will not message me the line nor will it set %line to be anything other than empty.
what am i doing wrong?