K-9 Mk. II Beta

by Nathan Roberts <nathanr@crl.com>
and Richard Poser <whomiga@missingpiece.com>

K-9 Web Page: http://www.missingpiece.com/k9.html

Contents

  1. Introduction
  2. Installing K-9
  3. Settings
  4. Channel guarding system
  5. Flood protection system
  6. Nick managment system
  7. Away System
  8. Quit System
  9. Autokick System
  10. Pervert Checker
  11. Bad Word Checker
  12. IRC Pager
  13. Sound Harvester
  14. Event Sounds
  15. Ping Responses
  16. Options
  17. Memoserv frontend
  18. Partyline
  19. Service popups
  20. Using K-9
  21. Function keys
  22. Commands
  23. Menus
  24. Other features
  25. The Status Menu

K-9 is a multipurpose all-round protection/convienience script for the IRC client mIRC. It has the following features:
I strongly recommend you read this entire file; especially the setup section; the functions of some of the setup options are not immediately obvious.

The major sections in this document have a ^ mark at the start of them. Clicking this mark will return you to the contents section.


Installing K-9 ^

First, copy all files to your mIRC directory, and type "/load -rs k9a.mrc". You don't need to manually load the other files; the first file will do it automatically. mIRC will complain about the script containing initialization commands; go ahead and click OK.

If you so desire, you can copy the files to any directory you want, rather than the mIRC directory, as long as you put all the files in the same place. If you do this, you will need to replace "k9a.mrc" with the full path to the files. Ex. "c:\mirc\k9\k9a.mrc"

Once you load the script you will be taken to K9's setup dialog. This will allow you to set the various features of K9. There is a "Help" button in every dialog that you can click on to get help.

Channel guarding system ^

K-9 can take several measures to protect channels from hostile takeovers. Its main feature is the op-protection mechanism, which works in conjunction with DALnet's Chanserv service. It will protect DALnet users from being kicked, banned, or deopped in channels that they have AOP powers in. K9 will re-op you (if you are deopped), or re-enter the channel (if you are kicked), and deop the person that deopped/kicked you. (If you like, you can then press F10 to boot them out of the room.) If you are banned, or if the room is invite-only (+i), limited (+l), or keyed (+k) due to a channel mode, K9 will use Chanserv's invite command to override it. This is intended to stop a channel takeover before it starts.

The channel guarding system has a safeguard that will prevent two AOPs with K9 running from getting in an infinite loop deopping each other. If K9 sees Chanserv op someone, it will not take revenge against that person.

K-9 also has several other channel protection features that are not DALnet-specific, that can be enabled from the Channel Guarding setup menu. They are described below.

The Channel Guarding dialog following options:

Channel guarding enabled

Enables or disables channel guarding. If enabled, then when you are deopped or kicked from a protected channel, you will automatically reenter the channel and deop the person that deopped or kicked you.

This is a master toggle for all the channel protection features, except for the Panic Button which is independantly controlled by the option below.

Channel list

The channels list shows the protected channels. K9 will only perform channel guarding functions on channels listed here.

Cycle channel to regain ops

If enabled, K9 will automatically leave and rejoin a protected channel (causing you to gain op status) if you are the last person left in the room. This will reestablish an chanop presence in the room if services are offline, or on networks that do not have channel services.

Deop server ops

If enabled, K9 will automatically deop someone that is opped by a server after a netsplit. This will help prevent channel hackers from jumping on the other side of a netsplit to gain ops. A side effect of this is that it may deop someone that legitimately should have op status

Enable Panic Button

The panic button will, if enabled, allow you to deop everyone on the channel you're currently on by pressing Ctrl-F12 key. This is meant for emergencies when you discover that someone that shouldn't be opped has ops on the channel, and you need to deop them in a hurry. The Panic Button will activate whether channel guarding is on or not, and whether or not you are on a protected channel. The only thing that determines whether the panic button activates is this option.

Auto-Deop

K9 has the ability to automatically deop someone for mass-deopping or mass-kicking. This can help prevent would-be channel takeovers, althogh it can also be a security hazard. (It may deop a legitimate op for deopping several people that shouldn't have ops)

The options in this section allow you to tune K9's sensitivity. Basically, you tell K9 how many people someone can deop or kick in a given time interval. For example, entering "3 deops, or 3 kicks in 10 seconds" will cause K9 to deop someone if they deop or kick 3 people or more in a 10-second interval.

If "Only if they kick an op" is checked, K9 will only deop someone for mass-kicking channel ops. It will not trigger if someone kicks a bunch of unopped users.

Flood targeting

K9 has the ability to target someone for flooding a channel, I.E. sending large amounts of text to it. If this feature is enabled, and someone floods the channel, K9 will target them; you can kick them by pressing F10.

The options in this section let you tune K9's sensitivity to channel flooding. You can set the maximum number of lines someone can send to the channel, and how fast they can send them. I.e. Setting "5 lines in 10 seconds" will cause K9 to target someone if they send 5 lines of text to the channel in 10 seconds or less.

Ops are not checked for flooding.

Flood protection system ^

The flood protection system will keep people from flooding you off the network with a CTCP attack. If you do not know what a CTCP attack is, don't worry about the settings in this section; the default settings should be sufficient.

For more advanced users, the Flood Protection menu in K9's setup module have several options that let you fine-tune the flood protection. The flood protection system works in the following fashion: If a given number of CTCP requests (determined by the flood threshold setting) are recieved within a given time period (determined by the flood check time), flood protection will be triggered, which will cause all CTCP requests to be ignored for a given amount of time (determined by the flood ignore time)

Decreasing the flood threshold or increasing the flood check time will make K9 more sensitive to flood. (I.E. Flood protection will be easier to trigger)

Nick management system ^

The nick management system will automatically deal with certain nickname problems on IRC. On DALnet networks, K9 can automatically identify you to Nickserv, and kill your ghosts. (Nickserv is a service that allows you to "own" a nickname on DALnet networks. If you don't know about it, type "/msg nickserv help" from IRC for more information. A ghost is an "undead" user that gets left behind when you get disconnected from IRC, but the network hasn't figured out that you've disconnected yet. The result is that you are unable to use the nick until the IRC server figures out it's a ghost and kills it, or you explicitely tell NickServ to kill it.)

On non-DALnet networks (or even on DALnet, if you're so inclined), K9 has an alternate method of dealing with ghosts: It can simply sit and wait for a nickname to disappear from IRC, and automatically change to it when it does. This feature is called "passive nickname recovery." This is the only nick managemenet feature that is of any use on non-DALnet networks (although it can be used on DALnet as well)

The Nick Management dialog has the following options:

Auto-identify

If this is on, K-9 will automatically identifiy you if you get a message from NickServ asking you to identify yourself. Since K9 can currently only handle one nick, K9 will only identify the nick you have set as your primary nick. (See below)

You can also manually identify yourself by pressing F8.

Identify on connect

This will identify your primary nick whenever you log on, whether you are using that nick or not (yes, it is possible to identify a nick you're not using). The primary reason for doing this is if you are an AOP on a channel, and listed under a nick with an empty access list (for security purposes). Under these circumstances, Chanserv won't recognise you until you've identified yourself under that nick. (Chanserv uses the Nickserv access list to identify you when you're not using the nick you're AOPed under) (Note: If auto-identify is also set, and you connect using your primary nick, this will cause you to be identified twice when you connect. This should not cause any problems.)

Identify on nick change

This will identify your primary nick whenever you change nicknames. This is helpful since the latest version of Chanserv seems to have a tendancy to forget that you're identified when you change nicks.

Auto-ghost

If this is on, K-9 will automatically msg NickServ to kill your ghost if you come online using something other than your primary nick

You can also manually kill your ghost by pressing Shift-F8.

Auto-recover

If this is on, K-9 will passively recover a nick (wait for the nick to disappear and then switch to it) if you come online using something other than your primary nick

If both Auto-ghost and Auto-recover are on, K9 will use auto-ghost on DALnet networks, and auto-recover otherwise. K9 will not attempt to use auto-recover and auto-ghost at the same time. If Nickserv is responding normally, this would be redundant. If Nickserv is lagged, this would likely result in you getting killed by Nickserv when it catches up.

Primary Nick

The nick that K-9 acts on when using the auto-identify, auto-ghost, and auto-recover commands. This is the nick that K-9 automatically identifies, and the nick that K-9 automatically ghosts. Set this to the nick that you use regularly.

Nickserv Password

Set this to the password NickServ uses for your primary nick. Note that this password will be visible on-screen.

Away System ^

K9 has an away system that can automatically mark you away after being idle for a long period of time, and provides you with a simple way of marking yourself away and notifying everyone on the channels you are on that you are away at the same time.

If you have auto-away enabled, K9 will mark you away after you have been idling for a set amount of time (configurable from the setup menu). If you have auto-return enabled, K9 will mark you no longer away when you type anything in at the keyboard. Auto-away and auto-return can be toggled by pressing Shift-F5 and Shift-F6 respectively.

You can also mark yourself away manually. Pressing F5 will bring up a dialog allowing you to select from a list of away reasons (which you can define), or you can simply enter one by hand.

Note: If you only have one preset away message defined, then that message will be immediately be selected when you hit F5. The logic is, if you only have one away message set, there's no point in bringing up a menu with one item on it. (This also lets you set up the away system to instantly mark you away when you hit F5) To add more messages to the list, you will need to edit the away messages from the away system setup dialog. To manually mark yourself no-longer-away, press F6.

K9 can also log messages while you are away. If this option is enabled, then if you get any messages while you are away, a minimized window will open up and all messages will be echoed to it. (Without K9 installed, each person sending you a message would open up a new window.)

The Away System configuration dialog has the following options:

Auto-away

Turns the auto-away system on and off.

Auto-return

If this is on, your away status will be cleared when you enter any text.

Log messages when away

If this is on, K-9 will open a window displaying any /msgs you get when you are away (as opposed to each message opening a separate window). If this is off, messages will be IGNORED.

Message list

The list of messages you can choose from when you mark yourself away. When you hit the F5 key, you will be presented with this list, which you can select an away message from. (Note: If this list only contains one item, that item will be automatically selected when you press F5. This way you can select a "generic" away message that will be immediately displayed when you hit F5, if you so desire).

Return message

The action that will be issued by K-9 when you are marked as returned. This text will be used in a /ME message to all the channels you are on.

Ex. Entering the text "has returned" in here will cause everyone on the channel to see:

* Yourname has returned

Auto-away message

The message you want to be displayed when K-9 automatically marks you away

Auto-Away time

The time you want K-9 to wait before automatically marking you away.

Add _Away to nick

Adds _Away to your nick when you're marked away. If you're on a network other than DALnet that doesn't allow long nicks, you should leave this off. Note: This causes some side-effects with Auto-Return. If you enter a line of text meant to be sent to a channel, it will be sent before your nick is changed back and the "* Nick is back" message is sent. If you type a command, it may be lost totally, and you'll have to type it again.

Quit System ^

K9 has a quit system that can automatically disconnect you from the server after being idle for a long period of time, useful mainly for those that have continuous connection to the internet and forget to log out on a regular basis.

If you have auto-quit enabled, K9 will disconnect you from the server after you have been idling for a set amount of time (configurable from the setup menu). K9 will give you a one-minute warning before he disconnects you. Auto-quit can be toggled by pressing Shift-F7.

You can also quit manually, and be able to choose from a list of logout messages to use. To prevent accidental action on this, it is only available from the menu. It will bring up a list of preset quit messages. You can pick one by double-clicking it, or by selecting it and pressing Enter.

Note: If you only have one preset quit message defined, then that message will be immediately be selected when you use the menu. To add more messages to the list, you will need to select the "Edit quit messages" option from the K9 setup window.

The Quit System dialog has the following options:

Auto-quit

Turns the auto-quit system on and off.

Auto-quit message

The message you want to be displayed when K-9 automatically disconnects you from the server.

Auto-Quit time

The time you want K-9 to wait before automatically disconnecting you from the server.

Message list

The list of messages you can choose from when you manually select quit from the menu.

The Autokick System ^

The Autokick system allows you to ban a person from ever entering a room that you have ops in. The script will search anyone that joins a room for a matching nick or mask (or both).

You can add autokick entries in any of the following forms:

nick!*
This will ban anyone using a particular nick. Not particularly effective.
*.domain.com
This will ban an entire domain, usually an entire ISP. Generally not recommended as this may ban innocent users that happen to be at the same domain.
nick!username@machine
When used properly, this will ban a particular user from the room. Generally, you would use a wildcard to account for a changing IP address. For example, "lamer!*loser@*.crackers.com" would boot someone using the nick "lamer" using the username "loser" at an ISP called crackers.com. This form is not very effective since the person can change nicks and get right back in.
*username@machine
Similar to the previous form, but will ban someone no matter what nick they use.
*someword*
This will ban anyone that comes in and has a particular word in either their nick, username, or machine name. Useful for blanket-banning certain types of spam.
You can access the autokick list, or turn the autokick system on or off from the "Autokick system" dialog.

Pervert Checker ^

The pervert checker helps keep unwanted people out of your channels. It searches people that join to see if they are in undesirable rooms. (Primarily sex rooms, but it can be programmed to check for anything you like)

If enabled, the pervert checker will check everyone that enters a room you have ops on for certain words in the channels they are on. (Such as "sex") It will then give you the option of quickly booting someone off the channel (by pressing F10) if you so desire. When you boot a pervert, it will ban them from any other channels you have ops on, and put them on ignore, so they can't come back and harass you. K9 will play an alert .WAV when it detects a pervert.

By default, the pervert checker will look for the words "sex", "porn", and "warez" in channel names. This can be changed from the setup dialog

Bad Word Checker ^

If enabled, the bad word checker will listen for someone swearing on channels you have chanop status on. It works similar to the Pervert Checker; once it detects a bad word, you can press the F10 key to boot them. The bad word checker does not check ops for swearing. (The logic being, if you trust someone enough to give them ops, you probably trust them enough to obey any profanity rules pertaining to the channel)

IRC Pager ^

The IRC Pager allows people to get your attention when you are away from the keyboard or not paying attention to IRC.

The pager can be activated with one of the following commands:

Replace "yournick" with the nick you are currently using. Both methods work exactly the same.

If someone is also running K9, they can page you by simply using the command:

You can use the /PAGE command to page another K9 user, or anyone else using a script with a similar pager system. (I.E. one that accepts the CTCP PAGE request)

When someone pages you, a .WAV file will play continuously for 30 seconds (the time interval can be changed), and a message will show up in your status window. A minimized window will also be opened containing the name of the person who paged you and the reason the gave (if they gave one). Double-clicking their name will open a query window to them and close the window. If you happen to get more than one page while you are away, the pages will collect in this window.

You can toggle the pager on and off by pressing the F7 key. If the pager is currently sounding, pressing F7 will silence it instead.

The "IRC Pager" dialog has the following options:

Pager

Turn the pager on or off

Pager .WAV File

Lets you select the sound file to play when you are paged

Page time

The amount of time the pager will sound (Enter 0 to make it sound until you willfully silence it)

Page interval

The amount of time between pager chimes

Note that you may not get exactly what you ask for when you enter the page time and interval. The number of times the pager chimes is determined by dividing the page time by the page interval. If this value is not a whole number, the pager may not sound for the exact amount of time you specified.

Ex. If you enter a page time of 30 seconds and an interval of 5 seconds: 30/5 is exactly 6, so the pager will sound 6 times, with 5 seconds between chimes. In this case you get the 30 seconds you asked for. If instead you enter a page time of 15 seconds and an interval of 4 seconds: 15/4 is 3.75, which is truncated to just 3. The pager will sound 3 times, with 4 seconds between chimes, so the pager will only sound for 12 seconds.

If you've read all that and are now asking, "What's the big deal, why the need to explain it in such excruciating detail?" that's a good question which I don't have a good answer for...

Sound Harvester ^

The Sound Harvester allows you to easily grab .WAV files from people without manually having to enter the "!nick filename.wav" command.

If you so desire, K9 can automagically grab any WAV played that you don't already have. If you would prefer not to have it happen automatically, you can disable auto-grabbing and grab WAVs semi-automatically by pressing the F4 key. Pressing F4 will cause K9 to grab the last sound played, in any channel.

If you're not familiar with mIRC's ability to accept sound requests and don't know what I'm talking about, search the help file for "Sound requests" for more information. (Go to the Help menu from mIRC, and select search) Be aware that not all people appreciate this feature. Make sure the channel you're in allows it before using it.

The sound harvester configuration dialog has the following options:

Auto grab WAVs

If enabled, K9 will automatically grab every WAV and Midi file that someone plays that you don't have. If this is disabled, you can still grab WAVs semi-automatically. Pressing the F4 key will grab the last WAV that someone played.

Auto play grabbed WAVs

If enabled, K9 will play WAV/Midi files after you have finished recieving them. You can also play the last WAV received by pressing Ctrl-F2.

Auto-accept WAV DCCs

If enabled, K9 will automatically accept WAV and Midi files that are sent to you, without popping up the DCC get dialog. It works by temporarily turning on auto-accept all DCCs long enough to grab the WAV, and then sets it back to what it was before.

Show sound names when played

If enabled, then whenever someone plays a WAV file, the name of the file will be displayed in the channel window. (mIRC normally only displays the name if you don't have the WAV)

Event Sounds ^

The Event Sound System plays WAV files to notify you of certain events, such as people joining or leaving a channel, or quitting IRC, or showing up on (or leaving) your notify list, and more.

Most of the events are self-explanatory. Here is the list of events available from the setup menu:

Connect
Plays when you connect to a server
Join
Plays when someone joins a channel
Part
Plays when someone leaves a channel
Action
Plays when someone does a /ME on the channel
Nick change
Plays when someone changes their nick
Topic change
Plays when someone changes the topic
Notify
Plays when someone shows up on your notify list
Notify off
Plays when someone disappears off your notify list
Op
Plays when someone is opped, except for you
Op me
Plays when you are opped
Deop
Plays when someone is deopped, except for you
Deop me
Plays when you are deopped
Kick
Plays when someone is kicked, except for you
Kick me
Plays when you are kicked
Invite *
Plays when you are invited to a channel
Message *
Plays when someone sends you a /MSG
Notice *
Plays when someone sends you a /NOTICE
Ping
Plays when someone pings you
Quit
Plays when someone quits IRC
* These are included only for completeness; you can also set sounds for these events in mIRC's options dialog under "Event Beeps".

In the setup dialog, you can test an event sound by clicking on the Test button; yYou can also click the None button to cause the given event to not generate any sound.

Ping Responses ^

The Ping Response System responds with a random response when ever anyone sends a PING to you.

The Ping Response System configuration dialog has the following options:

Ping responses

Turns the ping response system on and off.

Response file

Selects the text file which contains a listing of the responses to be randomly sent, one response to a line.

Partyline ^

The Partyline allows several users to share a private, lag-free DCC chat connection, which bypasses the IRC server. Anyone can be brought into a partyline conversation; only one person need be using the K9 script.

To initiate a partyline connection to a user, either highlight their name in a channel nickname window and select Partyline from the K9 menu, or type "/PARTY nick". A user can be brought into the partyline whether or not a DCC chat connection to them exists. If a connection does not exist, a DCC Chat request will be sent to them.

When in a partyline connection, anything any user types will be seen by all partyline users. The person that initiated the partyline connection is the host. The host will have a DCC chat window open to each partyline user. The host can type into any partyline window, and the text will be seen by all parties.

The following commands can be typed by any partyline users, or by the host:
.helpGive a list of commands
.whomShow the users on the partyline
.msg nick messageSends a prive message to the given user through the partyline. Note that the host can see this message, but other partyline users can't
.quitExit the partyline

A user can exit the partyline with either the .quit command, or by closing the DCC chat window. The .quit command will leave the DCC chat open. If the host types .quit, the partyline will be completely shut down.

To send a private message to the host, a user must use "host" as the nickname to send to. Using the actual nick of the host will not work.

Service Popups ^

K9 will automatically capture the output of several Chanserv and Nickserv command outputs, and open up a window to display them in (rather than having it be dumped to the status window.) It captures AOP and SOP lists, AKick lists, access lists, and registered channel and nickname info.

With the AOP, SOP, AKick, and Access lists, you can add entries by clicking on the Add button, and remove entries by highlighting them and clicking the Delete button. A message will be sent to Chanserv (or Nickserv, if an access list) to add or remove the entry. Currently, the list isn't fully updated when you add or delete an entry. (The total count listed in the title bar isn't updated, and when an entry is added, the mask of the person (if an AOP or SOP) and the entry number aren't updated.)

Note that you must be an SOP or Founder to add AOP or AKick entries, and you must be the founder to add SOPs.

There are also some shortcut commands to access these commands. The /AOP command will get the AOP list for the channel. The /SOP and /AKick commands work similarly. /ACCESS will bring up the access list for your nick. Finally, /INFO will get the Nickserv/Chanserv info for a channel or nick. (If the name you give it starts with a #, it gets the info for a channel; else it gets the info for a nick.) You don't need to use these commands for the output window to pop up; it works just the same whether you use a shortcut command or send the entire command to nickserv/chanserv manually.

Options

The Options setup dialog lets you set several miscellaneous options:

Splash screen on startup

Enables/disables the K9 information window that pops up whenever you start mIRC

Put info in title bar

If enabled, K9 places your current nick and the server you're on in the mIRC title bar.

Command shortcut

If enabled, you can type commands into the status window without prefixing them with a /

Action shortcut

If enabled, you can type an action with ";action..." instead of "/me action...".

Show status window on startup

If enabled, automatically opens the K-9 status window when you start mIRC

K-9 audio feedback

If this is enabled, K-9 will make a sound whenever he performs an action or alerts you to an error. You can have K9 say either "Master" or "Mistress".

Description Tag

Put in your own comments on this script in this box, and it will be displayed to the channel when you select the << K-9 Mk. II >> menu item, and will be returned in a CTCP Version request. The comment will appear after the script name.

Memoserv Frontend ^

K9 has a frontend for DALnet's memoserv, which lets you easily read and send memos.

To read your memos, right-click on a channel or status window, select the Memos submenu, and select Read Memos. A dialog will pop up showing you the memos in your box.

You can also read your memos by typing the "/memolist" command.

To send a memo, right-click on a channel or status window, select the Memos submenu, and select Send Memo. A dialog will pop up asking you for the name of the reciepient (Nickname or channel) of the memo. If you are sending to a channel, selecting the "Send to SOPs" checkbox will send the memo to the SOPs and Founder of the channel only. (The default is to send to the AOPs as well). Enter your messase and click the Send button. If the memo is successfully sent the dialog will close. If Memoserv reports an error, the dialog will remain open so you can edit and resend your message, if desired.

Note that only AOPs of a channel can send memos to a channel, and the founder may have configured the channel so that only SOPs or the founder himself/herself can send to a channel.

You can also send a memo by typing the "/sendmemo" command. You can include a recipient in the command (I.e. "/sendmemo NathanR") to send a memo to that person/channel.

Using K-9: ^

There are several ways to control the various functions of K9:

Function Keys ^

F3Show the K-9 Help window
Shift-F3Enter K-9 setup
Ctrl-F3Opens the K-9 Status window.
Ctrl-F1Join a channel you have been invited to
F2Bring up a list of sounds to play
F4Grab the last WAV played
F5Mark yourself away, with a list of messages to choose from
F6Mark yourself returned
Ctrl-F5Mark yourself away, allowing you to enter an away message that's not on the list.
Shift-F5Toggle auto-away
Shift-F6Toggle auto-return
F7Toggle the pager on or off, or silence it if it is sounding.
Shift-F7Toggle auto-quit
F8Identify yourself to Nickserv (Regardless of your current nick)
Shift-F8Kill the ghost of your primary nick
F9Toggle event sounds
F10Kick a detected pervert (or /TARGETed user) from the channel
F11Message ChanServ to op you in the current channel
Ctrl-F12Panic button: Deops everyone but you in the current channel

Commands ^

/IDENTIFYIdentify your current nick (Same as pressing F8)
/GHOSTKills your ghost. If the ghost command isn't available (because either you're not on a DALnet network, or you haven't set a nick password), will passively recover the nick instead (see /recover below) (Same as pressing Shift-F8)
/OPME [channel]/MSGs ChanServ to op you on a channel. If no channel is specified, ops you on the current channel. (F11)
/MKICK channelMakes ChanServ mass-kick a channel
/MDEOP channelMakes ChanServ mass-deop a channel
/INVITEME channelMakes ChanServ invite you to a channel
/UNBAN channelMakes ChanServ unban you from a channel
/AOP [channel]Show the AOP list for a channel (DALnet, must be an AOP or above)
/SOP [channel]Show the SOP list for a channel (DALnet, must be an AOP or above)
/AKICK [channel]Show the AKICK list for a channel (DALnet, must be an AOP or above)
/PUNT nick [reason]Kicks a user from a channel and bans them for 5 seconds. Used to defeat auto-rejoin scripts.
/BOOT nick [reason]Kicks a user from and channel and bans them.
/TERMINATE nick [reason]Kicks and bans a user from ALL channels you are an op on, and puts them on ignore. Keeps them from coming back and harassing you. This command can be shortened to just /TERM
/TARGET nick [reason]Targets a user for kicking, but doesn't kick them until you hit the F10 key. When you hit the key, it will /TERMINATE that person.
/SLAM nick [reason]Terminates a user, and adds them to K9's autokick list
/UMODE modesChanges your user modes
/LS scriptnameShortcut to load a script.
/COUNT [-c]Shows the number of people on the current channel, and the number of opped, voiced, and regular users. If the -C switch is used, displays the count to the entire channel.
/URLDisplays the URL currently in your browser to the entire channel.
/NICKCYCLE delay nick [nick ...] Cycles through each nick you provide, waiting DELAY seconds in between each. Helpful for refreshing your nicks with Nickserv so they don't expire.
/RECOVER nickPassively recovers a nick; that is, it waits for the nick to leave IRC and automatically changes to it when it does
/PAGE nickActives another user's pager. This only works on someone using K9, or a script with a similar pager feature
/PARTY nickBrings a user into the Partyline
/MEMOLISTRead your memos (DALnet only)
/SENDMEMO [recipient]Send a memo (DALnet only)
/AUTOKICK [-r [address]]Adds [or removes, if the -r switch is included] someone to K9's autokick list. (Not related to the Chanserv AKick list on DALnet) If no address is given, brings up the list of Autokick entries.

The following standard IRC commands have also been redefined:

/MODE [#channel] modesChanges a channel or user mode. The channel name can now be left out.
/KICK [#channel] nickKicks someone off a channel. No longer requires the channel name.
/TOPIC [#channel] [topic]Shows or changes the channel topic. No longer requires the channel name.
/INVITE nick [channel]Invites someone to a channel. No longer requires the channel name.
/PART [channel]Leaves a channel. No longer requires the channel name.
/NICK nicknameChanges your nickname. Now checks to see if the nick you give is too long.


Menus ^

You can access many of K9's commands by right-clicking on any channel window, or on the status window. All commands are available in the channel window menu; menu items that do not perform functions related to a channel are duplicated in the status window menu.

Some functions can also be accessed by right-clicking the nickname list in a channel.

Note that commands that can't be performed (such as killing your ghost when you're already using your primary nick, or using DALnet services when you're not on DALnet) don't show up on the menu.

Channel and status window menu

Nickname list menu

The commands on the nickname list menu are all grouped under a separate submenu labelled K9.

Other features: ^

K9 has some other minor features that haven't been mentioned in the previous sections:

The Status Window: ^

This window displays the status (on or off) of the channel guarding, auto-away, auto-quit, flood protection, and away logging options, and also your away status. The position and size of this window is saved whenever it is updated, either by one of the above indicators changing, or by you pressing Ctrl-F3 to manually refresh it. If you open the status window, move or resize it, and then close it before it gets updated, the position and size will be lost. If you want to save the position of the status window, press Ctrl-F3 before closing it.


If you find any bugs in this script, PLEASE send email to either Nathan <nathanr@crl.com> or Rich <whomiga@missingpiece.com> with as much detail about the bug as you can provide. Thanks in advance.

The previous revision of this documentation stated that the original author is now using Linux and has no capability to maintain the script. This is no longer true. Nathan now has a Windows box running alongside his Linux box, and even has them networked and sharing an internet connectoin, so he can update K9 regularly.

Ironically, the person that had been chosen to be the new maintainer is an Amiga programmer usually, but has access to the systems required to maintain the K9 script.