Hardening mIRC

Sometimes lots of clones will join a channel that you are in and many legitimate users will get disconnected from IRC. Are you one of those users? Below are some guidelines to help prevent that. Note that stuff in <> in mIRC commands (not script) means that they're required arguments that you should replace with the actual data for your channel. Stuff in [] means that the argument is optional. Do not type the <> or [].

CTCP Floods

CTCP floods are some of the simplest floods to exist. They consist of one or more attackers sending CTCP requests, such as PING, VERSION, FINGER, to the channel or a user. If the user's client is not configured properly, he or she will be disconnected from IRC.

Solutions

  1. Ignore all CTCPs. This is a perfect solution, however you'll never know when someone is trying to attack you. Type /ignore -tw *!*@*
  2. Log CTCPs without responding to them. However, you cannot stop mIRC from replying to CTCP VERSION requests unless you use the mOTFv DLL file. Get it and read its readme file. Here's what one might use in his or her remote scripts with the DLL loaded, along with what's mentioned in the readme.
    ctcp +1:FINGER:?:echo $colour(ctcp) -ts < $+ $nick $+ > $1- | halt
    ctcp +1:FINGER:#:echo $colour(ctcp) -t # < $+ $nick $+ > $1- | halt
    ctcp +1:PING:?:echo $colour(ctcp) -ts < $+ $nick $+ > $1- | halt
    ctcp +1:PING:#:echo $colour(ctcp) -t # < $+ $nick $+ > $1- | halt
    ctcp +1:TIME:?:echo $colour(ctcp) -ts < $+ $nick $+ > $1- | halt
    ctcp +1:TIME:#:echo $colour(ctcp) -t # < $+ $nick $+ > $1- | halt
    ctcp +1:MOTFV:?:echo $colour(ctcp) -ts < $+ $nick $+ > VERSION | halt
    ctcp +1:MOTFV:#:echo $colour(ctcp) -t # < $+ $nick $+ > VERSION | halt
    Those lines will place channel CTCPs in the channel window that they are sent to and private CTCPs in the status window.

Plain Text Floods

Plain text floods consist of clones sending lots of text to a user or channel. This can effect the user in two ways. It can use up all of the user's bandwidth and then his or her buffer on the server (causing the server to disconnect). It can also use up all of the user's CPU power parsing and displaying the text and possibly lock up Windows.

Solutions

  1. Use faster fonts. It's hard to believe, but the font that you choose does make a difference. Arial is very CPU intensive, while Tahoma is faster and FixedSys is fastest of all. Note that you may have to change the fonts in every channel that you are in individually.
  2. Enable Fast Screen Updating. Press ALT+O and expand the Display in the tree on the left. Click on Options under Display. Make sure Fast screen update is checked. This makes mIRC update the screen every so often, not for every line that is said. The delay is hardly noticeable.

Control Character Floods

Control character floods consist of clones sending lines with many colour/bold/underline/reverse control characters to the channel. mIRC uses a lot of CPU to parse and display those characters in text. That means that mIRC may cause Windows to lock up.

Solution

  1. Strip codes in mIRC. Press CTRL+O and IRC in the left tree. Click Messages under IRC in the tree. Here, you can strip codes from the messages. There's no perfect setting for everyone, so they will need to be tweaked from time to time.

Join/Part Floods

Sometimes, lots of clones will join the channel then immediately part the channel, over and over again. This sometimes locks up Windows.

Solutions

  1. Set channel limits. It's best to keep the channel limit within ten or twenty above the number of users currently in the channel if it's a large channel. Five if it's a small channel. It's best if the limit is kept by an Eggdrop running MC_8's Limit script. This will decrease the number of clones that can flood.
  2. Create a hotkey to set the channel invite-only and moderate the channel. For instance, make F4 the hotkey. Type /alias F4 mode # +im