Your Remotes can make life on irc much simplier... They can be used to detect floods and ignore the person...Respond to certain events such as someone saying something you can add an auto responce...or whatever heres some examples. Events: Standard user level in all the remotes is 1 Only if you assign levels to certain ppl will this be different. If you dont have a wav this will ask for it... on 1:NOSOUND:{ msg $chan ! $+ $nick $filename } bar bot (simplified) on 1:TEXT:!beer*:#:{ msg $chan $nick hands $2 an ice-cold Guiness, Enjoy! } on 1:TEXT:!beer*:#:/msg $chan $nick hands $2 an ice-cold Guiness, Enjoy! channel text will look like this !beer STEPPA the $nick is the person who typed that the $2 is the second word in the sentence (STEPPA) if you use the { instead of a / make sure you close it out by using the other } Either way works the same it just depends on which you prefer You can add a timer to make it respond a bit later for example: on 1:TEXT:!beer*:#:{ .timer 1 3 msg $chan $nick hands $2 an ice-cold Guiness, Enjoy! } where the . make the timer "invisible" the 1 is how many times it is to be preformed the 3 is how many seconds later it will be preformed Ctcps: you can change the way your programs react to ctcps. the normal responce is to send off the information requested by the ctcp: say if you are pinged you return a pong you can edit that however: on 1:CTCP:PING*:{ msg $nick Take a number and wait in line | halt } there when you are ctcp'd $nick is the person the take a number... is what you send back to them the | is a command separator halt stops your program from sending the normal responce (pong) versions are hardcoded in so you will still respond to those example of a simple flood protection script to put in there: on 1:CTCP:SOUND: on 1:CTCP:*:{ if ([ %flood.chan [ $+ [ $nick ] ] ] == $null) { set %flood.chan [ $+ [ $nick ] ] 1 | .timer 1 8 unset %flood.chan [ $+ [ $nick ] ] | goto END } elseif ([ %flood.chan [ $+ [ $nick ] ] ] == 7) { unset %flood.chan [ $+ [ $nick ] ] | .ignore -u30 $nick 2 | goto END } else { inc %flood.chan [ $+ [ $nick ] ] 1 | goto end } :END } The sound is added cuz you may or may not want to have those included to be counted..that way it wont be if you delete that line it will be considered a * which means ALL that script will ignore the nick for 30 seconds (complete ignore) on the 7th ctcp Raw: Raw is the most complecated. It is from the server and has numbers associated to events Heres an example of a script to make your /whois echo into your active window raw 310:*:echo 6 $active 8,1«4§8» $parm2 «4§8» $parm3- «4§8» raw 311:*:echo 6 $active 8,1«4§8» $parm2 «4§8» Email: $parm3 «4§8» | echo 6 $active 8,1«4§8» $parm2 «4§8» ISP: @ $+ $parm4 «4§8» | echo 6 $active 8,1«4§8» $parm2 «4§8» Name: $parm5- «4§8» raw 313:*:echo 6 $active 8,1«4§8» $parm2 «4§8» Is An IRC Operator «4§8» raw 317:*:echo 6 $active 8,1«4§8» $parm2 «4§8» Idle Time: $parm3 §econds «4§8» raw 319:*:echo 6 $active 8,1«4§8» $parm2 «4§8» Channels: $parm3* «4§8» the echo echos it instead of says it so only you see it the 6 is the color you want it to be $active makes it echo into the active window the $parms are like the $2 mentioned in the events you can use either