on $*:TEXT:/^[!@]stats */Si:*: { ;set the variables, (i assume you understand this part) set %stat.target $2- set %stat.return $iif($left($1,1) == @,msg $chan,notice $nick) if ($len($2-) > 12) { %stat.return 4runescape 14nicknames can only contain up to4 12 14letters. | halt } ;now here i use the /sockopen command, statlook i the name of the socket, 80 is the portal http:// else { sockopen statlook www.slushpuppy.silverinterlocution.org 80 } } ;in the sockopen event you may change the direct link, and as you can see i also adds something to the link ( %stat.target) on *:SOCKOPEN:statlook*:{ sockwrite -nt $sockname GET /rsstats.php?stats= $+ %stat.target HTTP/1.1 sockwrite -nt $sockname Host: www.slushpuppy.silverinterlocution.org $+ $crlf $+ $crlf } ;sockread is the event that reads the file source ;in this case the source file is very little on *:SOCKREAD:statlook*:{ ;if an error apears it will send the message "error" to the active window; if ($sockerr) { echo -a Error. halt } else { ;%stat.html contains the source file; var %stat.html sockread %stat.html ;%stat.return sends the messages the source file. ;$htmlfree() is a custom idenfifier (see buttom) %stat.return $htmlfree(%stat.return) ;then we unset the variables and sockclose the socket, ;$sockname is an identifier for the sockets name unset %stat.* sockclose $sockname halt } } } ;this custom identifier removes all html from a variable, or text; alias -l htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, ) return %x }