on $*:TEXT:$(/^(?>\Q $+ $me $+ \E,? ?)?([!.@](tstat|tstats))/Si):#:{ tokenize 32 $iif($me isin $1,$deltok($1-,1,32),$1-) hadd -m $+(rsh.,$nick) user $iif(!$2,$readini(rsn.ini,rsn,$nick),$iif($2,$replace($2-,$chr(32),$chr(43)),$replace($nick,$chr(45),$chr(43)))) hadd -m $+(rsh.,$nick) disp $iif(@ isin $left($1,1),msg $chan,notice $nick) sockopen $+(rsh.,$nick) hiscore.runescape.com 80 } on *:sockopen:rsh.*: { if ($sockerr) { halt } sockwrite -nt $sockname GET /hiscorepersonal.ws?user1= $+ $hget($sockname,user) HTTP/1.1 sockwrite -nt $sockname Host: hiscore.runescape.com $crlf $+ $crlf } on *:sockread:rsh.*: { if ($sockerr) { halt } | else { var %rshread | sockread %rshread if (** iswm %rshread) { var %read2 | sockread %read2 set %full $+(%full,$chr(32),$htmlfree(%read2)) sockread %read2 if (%read2 == ) set %full $+(%full,$chr(32),not listed) } ;you might want to try that around; if (** iswm %rshread) { set %full $+(%full,$chr(32),$htmlfree(%rshread)) } if (** iswm %rshread) { $hget($sockname,disp) %full } } } on *:sockclose:rsh.*: { $hget($sockname,disp) $remove(%full,skillranklevelxp) unset %full }