*** Status: Offline

Zulfikar an eggdrop bot version 1.6.6 generously provided by fredbob.

The commands which are currently available in the channel are:

If you have never set a password on the bot, be sure and do so by typing '/msg zulfikar pass <password>' (if you've never been added to the bot, contact fredbob, davenport, or fuzuoko)

You can also DCC chat with Zulfikar in order to join a channel party-line and change your personal settings on the bot (you must have a password set first). To DCC chat with Zulfikar, type '/dcc chat Zulfikar'.

If the bot suddenly stops recognizing you, type '/msg zulfikar ident <password>'.

For help type '/msg Zulfikar help'.

DCC Commands for Zulfikar

Any commands starting with '+' may be preceded by '-' instead.) All commands begin with '.' and all else goes to the party line, except for lines starting with a single quote (') which go only to local party-line users on Poesia. Text starting with ',' is sent ONLY to bot-masters. You can get help on individual commands: '.help (command)'

Common DCC Commands:

.who .whom .whois .match .bots .bottree .notes
.echo .+ban .-ban .bans .resetbans .op .deop
.topic .ban .say .msg .act .motd .addlog
.invite .nick .away .me .note .files .newpass
.console .email .quit .servers .channel .kick .kickban
.chat .info

For masters only:

.handle .+user .link .status .die .chpass .+bot
.unlink .dccstat .dump .chattr .+host .trace .debug
.+ignore .comment .chinfo .banner .set .ignores .chemail
.save .boot .rehash .jump .adduser .binds .relay
.reset .chaddr .assoc

MSG commands for Zulfikar:

email info who ident
help notes whois pass

For help on a command, /MSG Zulfikar HELP (command)

+ban (hostmask) [comment]
   adds a ban to the list of permanent bans stored on the bot,
   with an optional comment.  this ban will be in effect for every
   channel on the bot, and is stored with your nickname and comment.
see also: bans, -ban, kickban

+bot (bot) (address:port)
   creates a user record for a new bot with the nickname given.
   the hostmask table have one entry ("none"), and the bot (b)
   flag will be set for the user.  the internet address field of
   the user will also be set to the address given.  you can use
   this command and 'chpass' to completely set up a record for a
   future bot.  or you can let the two bots negotiate a password
   for themselves, the first time they link.

+host (nickname) (hostmask)
   adds a hostmask to a user's record on the bot.  the hostmasks
   are where the bot will identify that user from.  usually you
   will not need to use this command since a user can add hostmasks
   to her own record via the /MSG IDENT command.  but it's here if
   you need it.

+ignore (hostmask)
   adds a hostmask to the ignore list.  an ignore added manually
   like this becomes "permenent", ie, it will not expire auto-
   matically.  to make the bot stop ignoring this hostmask, you
   must eventually use a '-ignore' command.

+user (nickname) (hostmask)
   creates a new user record for the nickname given, with one entry
   in the hostmask table.  the new user record will have no flags
   (ie, not be a master, op, friend, etc) and no password.

-ban (hostmask or number)
   removes the ban from the list of permanent bans stored on the
   bot -- you may reference the ban by the number shown in '.bans'.

-bot (bot)
   is exactly the same as '-user', but is included for convenience.
   it erases a user record.

-host (nickname) (hostmask)
   removes a hostmask from a user's record on the bot.

-ignore (hostmask or number)
   removes the ignore from the list of ignores stored on the bot --
   you may reference the ignore by the number shown in '.ignores'.

-info (user)
   removes the information line for a user.  (see 'info')

-user (nickname)
   erases the user record for the nickname given.

act (text)
   performs an action on the current console channel, as if the
   bot did it, just like the /me command in IRC.
see also: console

addlog (text)
   writes your comment into the bot's log file.  bot masters can go
   back later and review the log, and will see your comment (with your
   name attached).  this is useful for explaining confusing activity.

adduser (nickname)
   creates a new user record for a user on the channel, using their
   current hostname.  it's similar to a user msg'ing the bot 'hello'
   except that no information is sent to that user.  if the bot
   already knows someone by that nickname, and the user on the channel
   doesn't have a bot record, then it does the equivalent of an
   'ident' for that user -- except that, again, no information is
   sent to the user telling them that anything was done.

assoc [(channel #) (name)]
   creates a name for a channel.  the name will propagate across your
   botnet (if you're hooked into one) and can be used instead of the
   channel # when changing chat channels (see '.chat').  if you omit
   the channel # and name, it will just dump a list of the current
   named channels, and their names.

assoc (channel #)
   wipes out the name for a channel, if there was one.

away [away-message]
   marks you as "away" on the party line.  your away message will
   show up in the '.who' list, and will be displayed to anyone who
   tries to send you a note.  your notes will be stored, and then
   displayed to you as soon as you are no longer away.  saying
   something on the party line will automatically remove your "away"
   status, or you can type '.away' by itself.

ban (nick) [reason]            (if user is on channel)
ban (nick!user@host) [reason]  (otherwise)
   places a temporary ban on the channel, with an optional comment.
   Your nickname will be attached to the ban/comment.  Remember,
   most servers only allow 20 bans per channel.

banner (text)
   displays a message to everyone currently using the bot's party line
   or file area -- useful for announcing that the bot will go down, etc.

bans [wildcard]
bans all
   shows you a list of the global bans active on the current channel,
   and the list of channel-specific bans, as well as any bans that
   are on the channel but weren't placed by the bot.

   here's a sample entry;
      [ 5] *!*lamer@*doofus.com (perm)
           redbird: ctcp floods
           Created 15:10
   the number (5) can be used to reference the ban if you wish
   to remove it (see '.-ban').  next is the actual hostmask being
   banned.  the "(perm)" means that the ban is "permenent": that
   is, it doesn't automatically expire.  if there is an elapsed time
   showing instead, the time displayed is how long the ban has been
   active.  those kind of bans expire after one hour.  the second line
   of the ban entry is the comment ("ctcp floods") and who put the
   ban there (redbird).  the last line shows when the ban was added,
   and possibly the last time the ban was activated on the channel (if
   it's different from the creation time).

   sometimes there will be a "!" or "*" right before the number.  a "!"
   means the ban is in the bot's permban list, but is not currently on
   the channel.  a "*" marks a ban which is NOT in the perman list but
   IS on the channel.

   if you use 'bans' it will show you only the bans which are
   currently in action on the channel.  if you use 'bans all' it
   will show you every ban in memory.  (with 'perm-bans' on, these
   are identical.)

   if you use 'bans (wildcards)' it will list all the bans (active
   or not) that match against your wildcard.  consider it a 'bans
   all' list matched against your wildcard.

   the ban list may change according to which channel you're
   currently viewing in the console.  different bans may be active
   on different channels.
see also: -ban, +ban, kickban, console

binds [type]
   shows the TCL bindings in effect, in a list similar to this:
      Command bindings:
        TYPE FLGS COMMAND              BINDING (TCL)
        msg  -    rose                 msg_rose
        msg  -    go                   msg_go
        dcc  m    bind                 cmd_bind
        pub  -    gross                pub_gross
   the fields should be self-explanatory.  if not, go read the
   file 'tcl-commands.doc' for help on the TCL bind command.  note
   that the builtin commands are now shown.  you may also specify
   a type of binding to show (ie, '.binds msg') if you want to
   narrow the field a bit.

boot (nickname) [reason]
boot (nick@bot) [reason]
   will kick a user off the party line, and display the reason if you
   give one.  you can attempt to boot someone from another bot (in a
   botnet), though it may be rejected if that bot does not allow remote

   requests information from every bot currently in the botnet.
   each bot should eventually send you one line listing its version
   and other information.

   shows the list of bots currently in the botnet.  example:
      Bots: cEvin, ruthie, Killa1
   there is no indication of which bots are directly connected to
   this one.  use 'who' or 'bottree' for that information.

   shows a tree-format diagram of the bots currently in the botnet.
   it's just a nice way to get a feel for how the bots are connected
see also: bots, link, botinfo

chaddr (bot) (address:port#)
   changes the internet address for a bot.  this is the address
   your bot will try to telnet to in order to create a connection
   and link up.
see also: link, +bot

chanmotd [all]
    Without the optional "all" parameter, displays all channel
    motd (message of the day) announcements which you have not
    yet seen.  With the "all" parameter, displays all stored
    motd announcements.

channel [channel-name]
   shows you an extensive display of the users on a channel, and
   the current channel attributes.  by default, it shows you the
   channel you are currently viewing on the console, but you can
   specify another channel if you wish.

   the first line will look like:
      Channel #hiya, 8 members, 45 users, mode +tn:  (mem: 9k)
   this means that the bot is sitting on channel #hiya, where 8
   other irc'ers are.  there are 45 people that the bot knows by
   hostmask, and the channel mode is +tn.  the user list (those 45
   users) is taking up 9 kilobytes of memory.  if the bot isn't
   currently on the channel it is supposed to be on, it will say
   "Desiring channel #hiya" instead...  next is a list of the users
   on the channel, with each entry looking like this:
      1. @Trey       Trey       (23:29)  MO  harris@random.edu
   the "@Trey" means that the user's nickname is Trey and that he
   is a chanop.  the second "Trey" is the nickname that the bot
   knows him by.  sometimes this will differ from the nickname a
   person is using.  the time displayed is the time the user joined
   the channel.  the next field is the attributes:
      I - idle for more than 15 mins     O - can get ops (+o)
      M - bot master or owner            D - cannot get ops (+d)
   the last field is the user@host he is using irc from.
see also: status, whois

chat off
chat (channel # or name)
   changes your channel on the dcc chat connection.  when you first
   connect to the bot, it places you on channel 0 (the party line).
   you can move to another channel where basically nobody can see
   you (except anyone else who decides to join that channel).  valid
   channel numbers are 1 thru 99999.  some channels may have assigned
   names -- for those, you can specify the channel by name instead of
   number if you wish.

   'chat off' removes you from any channel at all.  you can still
   use normal bot commands and see the console, but you can't talk
   to anyone except via '.note'

   'chat on' returns you to the party line (channel 0) if you were

chattr (nickname) [attributes]
   lets you view and change the attributes (flags) field for a user.
   for example, to give Lamer the p and f flags:
      .chattr Lamer +pf
   or to remove Denali from the deop list:
      .chattr Denali -d
   you may also do any combination of the above:
      .chattr Fred1 -m+dk-o
   whether or not you change any flags, it will show you the user's
   attributes afterwards.  if this bot uses the owner flag, only the
   owner may add or remove the 'n' (owner), 'm' (master), and 's'
   (bot: userfile share) flags.  to get a list of the flags possible,
   do 'help whois'.

chemail (user) [email address]
   sets the email address for a user.  this info isn't really used by
   the bot for any reason except to display.

chinfo (user) [info-line]
   sets the information line for a user.  this line is shown via /msg
   commands 'who' and 'whois', and if you have set greet on, it is
   shown when a user joins the channel.  if the info line begins with a
   '@', then it is "locked", and that use may no longer change it.

chinfo (user) none
   erases a user's info line.!master

chpass (handle) (newpassword)
   changes a user's password on the bot.  if you change someone's
   password to "nopass", they effectively no longer have a password
   set.  the password is needed to get ops, join the party line, and
   other things (but only required if one is set).

comment (user) (comment...)
   creates or changes the comment field for a user.  the comment field
   can only be seen via 'user' or 'match' -- non-masters can never see
   user comments.

   (the +c 'common' flag)
   sometimes a lot of people use irc from the same account -- for
   example, a telnet site.  in that case, a whole bunch of people
   will have the same user@host.  so they can't use a traditional
   user record because they will appear to all be the same person.

   in this case, you create a user record for the account, and mark
   it +c, or "common access".  that means that it shouldn't be used
   as a definitive address.  when someone introduces herself to the
   bot (ie, by /msg'ing "hello"), if she matches as a +c user, she
   will be given a new user record which identifies her BY NICKNAME.

   obviously people with that kind of user record shouldn't be given
   much special access, since when they change nicknames, the bot
   will identify them as someone else.

console [channel] [modes]
   changes your console level, so that you will see only those types
   of console messages that you want to.  your current console channel
   is the channel (that the bot is on) which you can view from the
   party line, and which channel-specific commands (like 'say' and
   'op') take affect on.  valid levels are:
      m  display private msgs/ctcps to the bot
      p  display public talk and ctcps on the channel
      k  display kicks/bans/mode changes on the channel
      j  display joins/parts/nick changes/signoffs/etc on the channel
      b  display bot links/unlinks/userfile-sharing
      c  display user commands (dcc and msg)%]
      x  display file transfers and file-area commands
      o  display other bot notices [HIGHLY RECOMMENDED]
   (note that only masters may use 'c', 'x', or 'o'.)
   the mode can also be a modifier like '+p' or '-jk' or '+mp-b'.  if
   you omit the channel and modes, it will show your current console
   channel and setting.

  console (user) [channel] [modes]%]
   is used to set the console level of another user.  this can even
   be used on users who normally would not be able to set their own
   console mode.

   displays a table-format list of all the "dcc" connections the bot
   is handling.  "dcc" means "direct client-to-client communication"
   and eggdrop expands this to cover every open socket.  so any type
   of network connection to the bot is considered a "dcc" connection
   (except connections to a server).  the headings of the table are:
      SOCK  the socket of this connection (always unique)
      ADDR  the IP-number of the host the connection is to, if
      PORT  the port number being used for communication
      NICK  the nickname of the user or bot, if it's a user or bot
      HOST  sometimes, the hostname corresponding to the IP address
      TYPE  the type of dcc connection (see below)

   the types of connection currently possible are as follows (but
   more are being added literally all the time):
      chat  user in dcc-chat command mode
      pass  user entering dcc chat (being asked for her password)
      send  raw data connection: user sending a file
      get   raw data connection: sending a file to a user
      getp  pending get (waiting for the user to acknowledge)
      teln  telnet listening port (there is never more than one)
      t-in  incoming telnet user (being asked for his nickname)
      file  user in dcc-chat file area
      edit  user in dcc-chat editor (must be a master)
      tand  bot in tandem communication
      tnd*  pending tandem bot (waiting for acknowledgement)
      rela  user in relay connection to another bot
      >rly  bot being relay'd to (one for each "rela")
      fork  pending telnet connection out (forked out)
      new   new user via telnet, entering a handle
      newp  new user via telnet, entering a password

   in addition, 'chat' and 'tand' have flags listed for each con-
   nection.  capital letters mean the flag is on, and lowercase
   letters mean the flag is off.  for 'chat', the flags are:
      M     master/owner
      X     file area access
      C     in file area, but allowed to return to party line
      S     using 'ntalk' (or compatable) script
      P     party line access only (no +o access)
      T     telnet connection (instead of dcc chat)
      E     echo is on
   for 'tand', the flags are:
      P     ping sent, waiting for reply
      U     user-file sharing is active
      C     this bot initiated the connection
      O     user-file offered, waiting for reply
      S     in the process of sending the user-file
      G     in the process of getting the user-file
      W     warned this bot to stop hubbing
      L     leafed bot (not allowed to hub)
   for 'chat' users, the party-line channel is also listed.

   will display a dump of memory allocation, assuming the bot was
   compiled with DEBUG defined.  it's useless to anyone but program-
   mers hacking on the bot and trying to find memory leaks.

delmotd (announcement - number)
   This will remove the designated announcement
   from the bot's list of known motd announcements.
   Make absolutely certain the announcement-number
   comes from the full  chanmotd all  listing,
   and not the limited chanmotd list.

deop (nickname)
   will remove chanop from the person you specify, so long as the
   bot is opped on this channel, and the person you specify isn't
   on the bot's list of authorized chanops.
see also: op, console

die [reason]
   kills the bot.  the bot goes offline immediately, logging who gave
   the 'die' command.  you shouldn't have to use this too often.  if you
   specify a reason, it's logged, otherwise the reason is "dead by request"

dump (text)
   dumps the text to the server.  keep in mind that this bot doesn't
   run through ircII, so ircII commands will most likely not work this
   way.  they need to be raw irc codes.

echo (on/off)
   sets whether you want your messages echoed back to you.  if it's
   on, then when you say something on the party line, it will be
   displayed to you just like everyone else will see it.  if it's off,
   then that won't happen.

email [email address]
   sets your email address.  this data isn't really used by the bot,
   but it will show up if someone does a 'whois' on you.  if you
   don't specify an address, the bot will show you the email address
   it currently has for you (if any).

email none
   clears your email address.

   will move you into the file transfer sub-system, if it has been
   enabled on this b00" noshade>

desc (file) (description)
   changes the description for a file.  if you are a master or
   file janitor, you can change the description for any file.
   otherwise you can only change the descriptions for files you
   have uploaded.

   the description is restricted to 5 lines of 60 characters
   each, and is broken up between words.  you can force a line
   break by putting a '|' in the comment.

get (filename(s)) [nickname]
   sends you the file(s) requested, over IRC.  you should get a
   DCC SEND notice on IRC, and have your client accept it.  if
   your nickname on IRC is different than the one you use on the
   bot, you should specify a nickname too.  you can also use that
   to send files to other people.  if a file you want is actually
   on another bot, it may take a little bit longer so be patient.
   if that bot isn't on the botnet right now, it will say the file
   isn't availble.

   there is a limit to the number of transfers you can have going
   simultaneously, so if you go over this limit, the remainder of
   your file requests will be queued.  as the first files finish
   transferring, the queued files will be sent.
see also: pending, cancel
Zulfikar file system commands:   (wildcard expressions are allowed)
  get (file) [nick]     send a file over IRC (DCC send)
  pending               list queued file transfers
  cancel (file)         cancel a queued file transfer
  ls [filemask]         show list of files in this directory
  pwd                   display present working directory
  cd dir              change current directory
  desc (file) (desc>    set description of (file) to (desc)
  quit                  leave the file system
Masters only:
  hide      share     mkdir     cp        rm        lsa
  unhide    unshare   rmdir     mv        ln
You can get help on any command via:  help (command)
(To upload a file, just start your dcc transfer.)

hide (file(s))
   marks a file as hidden, so that normal users can't see it.
   only a master or file janitor using 'lsa' can see hidden files.
see also: unhide, lsa

ln (bot:filepath) (localfile)
   creates a link to a file on another bot.  the filepath has to
   be complete, like '/gifs/uglyman.gif'.  if the bot is not
   connected to the botnet, nobody will be able to download the
   file until that bot connects again.  the local filename can be
   anything you want.
   example:  ln Snowbot:/gifs/uglyman.gif ugly.gif
see also: share, unshare, get

ls [filemask]
   displays the files in the current directory.  subdirectories
   are shown with "(dir)" next to them, and other files will display
   their size (typically in kilobytes), who uploaded them (and when),
   and how many times each file has been downloaded.  if a descrip-
   tion of the file exists, it is displayed below the filename.  you
   can restrict the file listing by specifying a mask, just like in
see also: cd, pwd, get

lsa [filemask]
   works just like lsa, but hidden files are displayed too.
   hidden files are displayed with a "(hid)" next to them, and
   shared files are displayed with a "(shr)" next to them.
see also: hide, share

mkdir dir [flags]
   creates a subdirectory from this one, with the given name.  if
   flags are specified, then those flags are required to enter or
   even see the directory.  you can use the 'mkdir' command again
   to alter or remove those flags.
see also: rmdir

mv (source> (dest)
   moves a file or group of files from one place to another.  (it
   can also be used to rename files.)
see also: mv

   gives you a listing of every file you've requested which is
   still waiting, queued, or in the process of transferring.
   it shows you the nickname on IRC that the file is being sent
   to, and, if the transfer is in progress, tells you how far
   along the transfer is.
see also: cancel

   tells you what your current directory is.
see also: cd

   exits the file system

rm (file(s))
   erase a file for good.

rmdir dir
   removes an existing directory, if there are no files in it.
see also: mkdir

share (file(s))
   marks a file as shared.  this means that other bots can get
   the file remotely for users on their file systems.  by default,
   files are marked as unshared.
see also: unshare, lsa, ln

unhide (file(s))
   makes a file be not hidden any more.
see also: hide, lsa

unshare (file(s))
   removes the shared tag from a file.
see also: share, lsa, ln

handle (oldnick) (newnick)
   changes the handle/nickname of a user record.  for example, to
   change the nickname of user 'gavroche' to 'jamie', you would
   type: 'handle gavroche jamie'

   lists the hostmasks that the bot is currently discarding msgs,
   etc from.  the ignores are numbered, so they can be easily
   removed with '-ignore' by number.  a permanent ignore looks
   like this:
      [ 1]: (   Jayben) *!robey@* (perm)
   this kind of ignore can only be stopped by using '-ignore'.
   a temporary ignore looks like this:
      [ 2]: (   Jayben) *!*@ohio.eng.clemson.edu (active 3:19)
   that means the ignore was made automatically by the bot three
   minutes and 19 seconds ago, probably because of some sort of
   flooding.  it can be removed with '-ignore', or it will expire
   after it has been active a certain amount of time (specified
   by 'ignore-time').  the name in parens is the person who
   placed the ignore.
see also: +ignore, -ignore

info [info-line]
   sets your info line.  this is shown via /msg commands 'who' and
   'whois', and possibly when you join the channel.  if you omit the
   info line, it will just show you what your current info line is.

info none
   removes your info line.

invite (nickname)
   invites someone from irc into your current console channel.  this
   is most useful when the channel is +i.  a user with the +o flag
   can also request an invite from the bot with /MSG INVITE
see also: console

jump [server [port]]
   makes the bot jump to another server.  if you don't specify a
   server, it will jump to the next server in its internal list (see
   'help servers').  if you specify a server, it will jump to that
   server (default port is 6667), and if that server is not in the
   internal list already, it will add it.  jumping servers ALWAYS
   makes the bot lose ops!

kick (nickname)
   will kick a user off your current console channel with the
   reason "requested".
see also: kickban, console

kickban (nickname) [comment]
   kicks a user off the channel and bans her by a reasonable host-
   mask.  your nickname will be attached to the ban in the bot's
   internal ban list, and the ban will last for one hour -- only
   on this channel.  use '.+ban' for a more permanent ban which will
   be activated on every channel the bot monitors.  if you use a
   comment, that will also be attached to the ban in the ban list,
   but it will not be used as the kick comment -- kick comment is
see also: +ban, bans

link [some-bot] (new-bot)
   tries to link in a new bot.  if you use the form
      .link newbot
   then your bot must have a record for the new bot (see '.+bot').
   you can either set a password on each end or they will negotiate
   one the first time they link.  if you use the form
      .link somebot newbot
   then the request will be sent to "somebot" for it to link to

match +(attr) [[start] limit]
   shows you user records which have the attributes listed (such as
   '.match +of' to show all users who are friends and ops)

match (wildcard-string) [[start] limit]
   shows you user records where the nickname or any of the hostmasks
   match the wildcard string shown.

   the default limit is 20, meaning that if more than 20 user records
   match your requirements, only the first 20 will be shown.  you can
   change this limit by specifying one on the command line, though.
   if you include a limit, you may also include a starting place (the
   default is 1).  for example, to list the first 15 users who have
   hostmasks from clemson.edu:
      .match *clemson.edu 15
   to get the next 10 (if there are more than 15), you ask to list
   numbers 16 thru 25:
      .match *clemson.edu 16 25

me (text)
   performs an action on the party line.

   will redisplay the party-line message of the day, which was
   shown when you first joined.

msg (nickname) (text)
   sends a private message to someone from the bot, just as if the
   bot had typed /msg.

newpass (password)
   changes your password on the bot, just like the /msg command
   'pass', except you don't need to type your old password.

nick (new-nick)
   changes your nickname on the bot.  that's the handle that the bot
   will know you as forever and ever, and what you have to use when
   telnetting in or IDENT'ing yourself, so remember it.

note (nickname) (message)
   sends a private note to a user on the party line.  if that user
   is currently on the party line, and not marked as away, she will
   receive the message immediately.  otherwise it will be stored
   and displayed the next time that user joins the party line.  if
   you join the channel, and have notes stored for you on the bot,
   it will tell you.  to send a note to someone on a different bot,
   use "nick@bot" for the nickname.
see also: whom, notes

notes index
   notes read (# or ALL)
   notes erase (# or ALL)
   lets you manipulate notes that have been stored up for you while
   you were gone.  'notes index' gives a listing of all the notes
   stored up: who they are from, and when they were left.  'notes
   read' lets you read a particular note, or all of them at once.
   and 'notes erase' erases notes after you are done with them.
see also: note, whom

op (nickname)
   will grant chanop to the person you specify, so long as the bot
   is opped on your current channel, and the person you specify isn't
   being actively deopped by the bot.
see also: deop, console

pinvite (nickname)
   will cause the bot to invite the user (nickname), currently on the
   bot's channel, to join the party line, and initiate a dcc chat
   connection with that user, provided the user has a current record
   on the bot.  If there is no record for (nickname), the bot will
   inform (nickname) of your attempt to issue an invitation, and
   ask (nickname) to /msg Zulfikar hello

   removes you from the party line and disconnects your dcc chat
   session with the bot.

   reloads the config file for the bot, which resets all the 'set'
   variables and reloads any TCL scripts your config loads.  it
   also reloads the user file from disk, which will only have an
   effect if you have set 'periodic-save' on

relay (botname)
   will relay you via telnet to another bot that your bot knows of,
   whether or not they are currently connected.  your dcc-chat/telnet
   connection to this bot will be relayed to the other bot until the
   other bot drops your relay, or until you send "*bye*" on a line by
see also: bots

reset [channel]
   clears out the bot's channel information and makes it gather the
   information from the server all over again, as if it had just
   joined that channel.  it's not really useful much, but could be
   if an odd bug causes the channel information to get scrambled.
   unfortunately this command used to get a lot of use.  you can omit
   the channel name to make it reset ALL channels.

   resets the ban list on the channel you're currently viewing in
   the console.  any bans on the channel that aren't in the ban
   list (either the global list or the local channel ban list) will
   be removed, and if there are any bans in the global ban list or
   channel ban list that are not currently on the channel, they will
   be added.
see also: bans, reset, console

   makes the robot write its entire user list to the disk.  this is
   useful if you are running with "periodic-save" on (meaning the bot
   only saves the user list once an hour) and you have just made some
   major changes to the user list and want to make sure they're stored
   on disk, for safety.

   lists the servers that the bot has in its server list.  this is
   the list it rotates through when changing servers.  it starts
   with a static list which it loads from its config-file when the
   bot is booted up.  after that, you can add servers with the
   '.jump' command.  the server list will indicate which server the
   bot is currently on, and, if a helpbot is running, which server
   the helpbot is on.

set (variable) [value]
   changes the values of internal settings of the bot, or, if used
   without a value parameter, shows the current value of a setting.
   the bot starts out with settings as given in the configuration
   file.  possible variables to be changed are:
      log-time       strict-host    ignore-time    helpbot
      keep-nick      isolate        nick           helpdir
      dcc-block      keep-all-logs  username       tempdir
      dcc-maxsize    passive        realname       init-server
      textdir        owner          ban-time       notify-newusers
      learn-users    userfile       console        ctcp-version
      require-x      upload-to-cd   dcc-path       ctcp-finger
      require-p      telnet         dcc-incoming   default-flags
      notefile       servlimit      motd           never-give-up
      use-info       flood-msg      admin          open-telnets
      share-users    flood-chan     save-users-at  switch-logfiles-at
      copy-to-tmp    flood-join
   use '.help set (variable)' for more info on each variable.

set admin "(admin info)"
   specifies the admin info for your bot.  it's just human-
   readable text that is displayed every once in a while.  it
   shouldn't be very long (no more than about 60 characters)
   and ought to say who's running the bot, and maybe an email
   address too.  here's an example:
      set admin "Robey (robey@ima.lamer.com)"

set ban-time <#>
   specifies how long (in minutes) a temporary ban will last
   on the bot before being purged

set bitch (0/1)
   specifies whether the bot is in "bitch mode".  In bitch mode, only
   users with the 'o' flag may have channel ops; everyone else will
   be deopped.  Also, none of the bot's commands will work unless the
   user has a password set.

set chan-updates (0/1)
   specifies whether to show lines like this
      10 members,  4 chops,  5o  0m  0d, 14 bans
   every five minutes, giving information about the channel.
   these "update" lines tell how many people are on the channel,
   and how many of them are channel-ops.  it also tells how many
   people have +o, +m, or +d on the bot, and how many bans are
   on the channel.

set chanmode "(channel modes)"
   specifies the channel modes that the bot will enforce on
   its home channel.  this should be a string just like you
   would use in an irc /MODE command.  here are some examples:
      set chanmode "+nt-l"
         (always make channel +nt but always remove a limit)
      set chanmode "+k toblerone"
         (make sure the channel key is always "toblerone")
      set chanmode "-mi+lk 23 toblerone"
         (don't let the channel be set to moderated or
         invite-only, and keep the limit at 23 and the
         channel key as "toblerone")

set channel-key (channel-key)
   specifies the default channel key for the channel your bot
   is supposed to be on.  most of the time, this can be set
   to "".  however, if your bot's home channel is usually
   protected with a channel key, you need to set this to the
   key that is normally used, so that the bot can enter the

set clear-bans (0/1)
   specifies whether the bot should, when getting ops on the channel
   for the first time, remove all the bans which aren't on its own

set console (console-flags)
   specifies the default console mode for masters and ops when
   they first get on the dcc chat connection with the bot.  for
   more info about console flags, see 'console'.

set ctcp-finger "(text)"
   specifies the response to send to a CTCP FINGER request.  you
   might want to set this to look like a response from a normal irc
   client, so irc-ops can't tell this is a bot.  one example is:
      Robey (robey@wc130), idle 0 seconds
   Note that the nickname is no longer automatically prepended,
   like it was in previous versions.

set ctcp-version "(text)"
   specifies the response to send to a CTCP VERSION request.  you
   might want to set this to look like a response from a normal irc
   client, so irc-ops can't tell this is a bot.  one example is:
      ircII 2.8 Linux 1.2.4 :ircii 2.6: almost there...

set dcc-block <#>
   specifies the block size to use in DCC file transfers.  the ircII
   client defaults to 512, but admits that it may be too small.  most
   toolboxes set it to 1024, which is the recommended value.

set dcc-incoming (path)
   specifies the directory where files dcc'd to the bot will go.
   if you have turned off the file section by setting 'dcc-path'
   to "", then this has no effect since all files offered by dcc
   to the bot will be rejected anyway.  if you have set the
   'upload-to-cd' to 1, then this will be ignored, and all files
   uploaded (sent) to the bot will go into whichever directory
   the user is in currently, or was in last.

set dcc-limit <#>
   specifies the maximum number of downloads (dcc gets) a user can
   have going at once.  to effectively disable this, set it to 99.
   the default is 3.  when a user reaches this limit, she will be
   unable to 'get' any more files from the file area until either
   the current transfers complete, or any pending transfers event-
   ually timeout.

set dcc-maxsize <#>
   specifies the maximum allowable size (in kilobytes) of a file that
   the bot will accept in a dcc send.  the default is 1024, which is
   1 meg.

set dcc-path (path)
   specifies where the bot's dcc file directory is.  if you don't
   want a file transfer section on your bot, define this as "".
   otherwise, the directory given will be the root directory for
   users in the file section.  they may move into any subdirectory
   and download any file you make visible, but may never move out
   past the dcc-path directory.

set default-flags (flags)
   specifies the flags to give to a user when they first
   introduce themselves to the bot with /MSG HELLO.  obviously
   this has no effect if you have 'learn-users' turned off.
   for a list of the flags, see 'whois'.

set enforce-bans (0/1)
   specifies whether the bot should kick people off the channel when
   it notices their user@host matches a ban on that channel

set flood-chan <#>
   specifies the flood threshold for channel messges.  if the
   same host talks on the channel more than this many times
   consecutively within 60 seconds, it's considered a flood
   and the user is kicked off the channel.

set flood-join <#>
   specifies the flood threshold for channel joins.  if the
   same host joins the channel more than this many times
   consecutively within 60 seconds, it's considered a flood
   and the host is site-banned.

set flood-msg <#>
   specifies the flood threshold for /MSG or party line chatter.
   if the same host dumps more than this many /MSG's to the bot
   within 60 seconds, it is considered a flood and that host
   is put on automatic ignore.  on the party line, if someone
   sends more than 'flood-msg' messages in a second, it's also
   considered a flood, and that user is booted off the line.

set forbid-bans (0/1)
   specifies whether the bot will forbid user-placed bans.  if set to
   1, the bot will remove bans placed by non-masters.  the users will
   have to enter bands through the bot to get them activated.  this
   has the positive side-effect of discouraging users from using lame
   "toolboxes" like phoenix or textbox.

set gain-ops "(raw irc string)"
   specifies optional text to send to the server when the bot
   does not have channel ops and there are others on the chan-
   nel who do.

set greet (0/1)
   specifies whether the bot will automatically "greet" users who
   have specified an info line, when they join the channel.  each
   user can set a sort of "bio" line for themselves using the
   'info' msg command.  if 'greet' is on, when the user joins the
   channel, the bot will send their info line to the channel.  if
   the user's nickname is not in the info line, the bot will add
   it.  if you have set 'use-info' off, this seting is meaningless,
   and users may not set their info anyway.

set helpbot (helpbot-nickname)
   specifies the nickname to use for a helpbot.  if you don't
   want a helpbot, set this to "".  the advantage of using a
   helpbot is that long text files and information get sent
   to users through the helpbot, leaving the main bot free to
   do channel protection, etc.  the disadvantage is that you
   now effectively have TWO bots on irc, which some irc opers
   get upset about.  usually, having a helpbot is more trouble
   than it's worth, unless you are running an info server of
   some sort.

set helpdir (help-path)
   specifies the path to the help/ directory for the bot.  if
   you can read this, it was set right. :)

set home-channel (channel-name)
   specifies the channel that the bot is supposed to sit on
   and protect.  each eggdrop can only protect one channel at
   a time.  (there are a million reasons for this which aren't
   worth explaining here.)

set idle-kick <#>
   specifies how long (in minutes) a user can be idle on the channel
   before being kicked.  set this to 0 to disable it.

set ignore-time <#>
   specifies how long (in minutes) a temporary ignore will last
   on the bot before being purged

set init-server "(raw irc text)"
   specifies text to send to the server when first connecting
   there.  this is usually used to set the bot's mode to +i
   or something equally unimportant.

set isolate (0/1)
   specifies whether your bot's party line will be isolated or be
   merged with the joint party line on the botnet.
   NOTE: this is somewhat obsolete now.

set keep-all-logs (0/1)
   specifies whether to keep logs older than 48 hours or not.  if
   this is set off, at midnight, the current logfile will be re-
   named to "(logfile).yesterday" and a new logfile started.  the
   old "(logfile).yesterday" will be erased.  if this is set on,
   at midnight, the current logfile will be renamed to "(logfile).
   (date)" and a new logfile started.  eventually your directory
   will be full of files like "LameBot.log.14Jul94".

set keep-nick (0/1)
   specifies whether the bot will keep trying to regain its nickname if
   it is forced to change nicks.  if this is on, and you change the bot's
   nick on irc through a TCL script or the '.dump' command, then the bot
   will change back to its intended nick within 60 seconds.

set learn-users (0/1)
   specifies whether the bot will add users on the fly when they
   send the "hello" msg.  if turned off, the only way to add users
   is with the '.adduser' or '.+user' commands.  if turned on,
   users can introduce themselves without your intervention.

set log-time (0/1)
   specifies whether or not to time-stamp all log entries.

set motd (motd-file)
   specifies the "Message Of The Day" file.  this should be a
   text file.  it will be displayed to users as they enter a
   dcc chat session with the bot (so it shouldn't be TOO long).
   there are a few %-variables you can insert into the motd,
   which will be interpreted by eggdrop:
      %%B   bot's nickname (ie, "Zulfikar")
      %%V   current eggdrop version (ie, "%V")
      %%C   channel the bot is on (ie, "%C")
      %%A   whatever is set in 'admin' (see 'set admin')
      %%T   the current time (ie, "%T")
      %%N   the current user's nickname (ie, "%N")
      %%%%   a percent sign ("%%")
   you can also encode messages just for ops or masters:
      %%(Anything between "%%(" and "%%)" is shown only to ops.%%)
      %%[Anything between "%%[" and "%%]" is shown only to masters.%%]

set never-give-up (0/1)
   specifies whether the bot should loop forever.  If never-give-up
   is set false, then the bot will shut down if it goes through the
   entire server list once without getting a connection.  Thirs via the /MSG HELLO command.  obviously this has
   no effect unless the /MSG HELLO command is activated.
   the bot will send a note (see 'note') to each user listed
   in notify-newusers.  this can be just one nick:
      set notify-newusers "Robey"
   or several, separated by commas:
      set notify-newusers "Guy, Eden@Priscilla"
   if you don't want anyone to be informed, just set it to

set op-on-join (0/1)
   specifies whether the bot should op recognized users with the 'o'
   (op) flag as soon as they join the channel.  note that with this
   on, no password checking is done.  password checking is only used
   when a user requests ops with the msg'd 'op' command.

set open-telnets (0/1)
   specifies whether to accept new users via a telnet connection.
   if set to 0, the bot will only accept telnet connections from
   people who already have user records.  if set to 1, someone can
   enter "NEW" after telnetting to the bot, and create a new user

set (variable) [value]
   changes the values of internal settings of the bot, or, if used
   without a value parameter, shows the current value of a setting.
   the bot starts out with settings as given in the configuration
   file.  possible variables to be changed are:
      log-time       strict-host    ignore-time    helpbot
      keep-nick      isolate        nick           helpdir
      dcc-block      keep-all-logs  username       tempdir
      dcc-maxsize    passive        realname       init-server
      textdir        owner          ban-time       notify-newusers
      learn-users    perm-bans      userfile       console
      require-x      upload-to-cd   dcc-path       ctcp-finger
      require-p      telnet         dcc-incoming   default-flags
      notefile       servlimit      motd           never-give-up
      use-info       flood-msg      admin          open-telnets
      ctcp-version   flood-chan     save-users-at  switch-logfiles-at
      share-users    flood-join
   use '.help set (variable)' for more info on each variable.

set owner "(nicknames)"
   specifies the user(s) who are to ALWAYS be bot owners.  it
   is impossible to remove the +n flag from anyone listed here.
   if the bot was compiled with the owner flag turned off, this
   variable has no significance.

set passive (0/1)
   specifies whether the user data sharing of this bot (set share-
   users must be on) will be "passive" or "aggressive".  a passive
   bot will always download the user file from another bot.  an
   aggressive bot will always upload its user file to other bots.
   therefore, two aggressive bots will be unable to share user data.
   two passive bots will be able to share, however -- the bot that
   did the actual link will be the one to download.  (setting both
   bots passive allows the user file of the bot which has been
   online longest to take precendence, usually.)

set perm-bans (0/1)
   specifies whether the bot's ban list should be mirrored in the
   channel or not.  if perm-bans is on (1), the bot will make sure
   every ban in its internal ban list is active on the channel.
   if you have a large ban list (i've heard of one bot that had
   over 200), this could be a big pain.  with perm-bans off, the
   bot only makes a ban active on the channel if someone joins who
   matches one of its internal bans.  the ban will then "expire"
   (be removed from the channel) after about an hour, or whatever
   length of time you specified in 'ban-time'.

set protect-ops (0/1)
   specifies whether the bot should automatically re-op users who
   get deopped.  it could be a security hole since no password is
   required to regain ops this way.

set raw-files (0/1)
   specifies whether to provide a 'screen' between users and files
   in the file area.  if this is on, the file area will deal with
   the files directly, as they are found in their directories, and
   will not store file descriptions, etc.  if this is off, the file
   area will create a hidden file in each directory, where it will
   store file descriptions and other info.  the benefit of raw-files
   is that you will not have to 'import' files in a pre-existing
   file area.  the downside is that you will not be able to use
   file descriptions, or track who uploaded what file, and how many
   times it has been downloaded.  if raw-files is on, the file area
   commands 'hide', 'import', and 'desc' are disabled.

set realname "(realname field)"
   specifies the real name field to use on IRC.  this usually
   shows up in a /WHOIS as the thing in parenthesis after some-
   one's user@host.  it can be anything you want, but IRC sets
   a maximum length so it might get cut off if you set it too

set require-p (0/1)
   specifies whether users with 'o' (op) also need the 'p' flag to
   join the party line.

set require-p (0/1)
   specifies whether users with 'o' (op) also need the 'x' flag to
   enter the file system.

set revenge (0/1)
   specifies whether the bot should be in "revenge" mode or not.  if
   the bot is in "revenge" mode, it will punish users who do things
   the bot does not approve of, such as de-opping users with the 'o'
   flag, de-opping or kicking the bot, mass-kicking, maas-banning,
   etc.  if 'revenge' is off, the bot will note each bad deed done,
   but will sit quiet and do nothing.

set servlimit <#>
   specifies the minimum number of servers the bot should accept.
   if the bot's home channel ever empties out, and the number of
   servers on the irc net becomes less than the 'servlimit', the
   bot will jump to a new server.  this is to prevent it from
   getting stuck on the wrong end of a netsplit.  to disable it,
   just set it to 0.

set share-users (0/1)
   specifies whether the bot should ever share user data with another
   bot.  if this is on, it will use each bot's 's' flag to determine
   whether or not to share user data.  if this is off, all user data
   requests are automatically refused.

set strict-host (0/1)
   specifies whether the bot should leave leading ~ in users' host-
   names.  if this is on, leading ~ will be left in (the bot will
   differentiate between valid-ident usernames and invalid ones).
   typically this is set off, since most sites are not running the
   ident protocol, and therefore may get ~ put in front of their
   username when their username is valid.

set telnet (port #)
   specifies the port # that eggdrop should listen to for telnet
   connections, and bot links.  once the bot has been loaded,
   it's really too late to change this.

set tempdir (path)
   specifies a temporary directory where eggdrop can store
   files for a short period of time.  right now this is used
   to hold copies of files while people dcc-transfer them,
   so that changes made to the file in the file transfer area
   won't affect the dcc-get.  under all normal circumstances,
   this ought to be set to "/tmp".

set textdir (text-path)
   specifies the path to the text directory for the bot.  that's
   where miscellaneous things are stored -- things which aren't
   really help files, that the bot dumps to people at various times.

set upload-to-cd (0/1)
   specifies whether uploads to the bot's file area go to the
   user's current directory (1), or to the directory specified
   in 'dcc-incoming' (0).

set use-info (0/1)
   specifies whether to activate the info system.  if this is off,
   the bot will not accept changes to any user's "info line" (the
   line shown for '/msg whois' and '/msg who' requests, and shown
   when a user joins the channel is you have set 'greet' on).
   this disables '/msg whois' and '/msg who' obviously, and makes
   the setting of 'greet' meaningless.

set userfile (userfilename)
   specifies the filename where eggdrop should store user
   records.  you normally don't want to change this once you
   have started using the bot.

set username (username)
   specifies the username the bot will try to use on IRC.  if
   your machine is running ident, this won't work, and the bot
   will show up as the user who started up the bot.

simul (nickname) (text)
   if the user is on the party line, the bot will simulate them typing
   the text you specify.  example:
      .simul dweeb .quit
   makes it just as if "dweeb" typed ".quit"

status all
   displays a condensed block of information about how the bot
   is running.  here's an example from Snowbot:
      I am Snowbot, running eggdrop v1.0:  400 users (mem: 42k)
      Admin: Robey (robey@iama.lamer.com)
      #turtle   :  2 members, enforcing "+tn-mlk"  (greet, bitch)
      #gloom    :  3 members, enforcing "+tn-i"  (greet)
      Server minnie.cc.utexas.edu:6667
      Online for 4 days, 06:18  (background)  CPU 14:18  cache hit 55.3%
      Mode(s): revenge, learn users.

   the first line tells you the bot's name, what version of eggdrop
   it's running, the number of users the bot has records of, and the
   amount of memory being used.

   the second line, if present, is the contents of your 'admin'
   line in the config file.

   next is a line for each of the channels your bot is currently
   monitoring.  for each channel, it lists the number of people on
   the channel ("members"), what channel modes it's trying to enforce,
   and which options are set for that channel.

   if your bot is sharing user files with anyone, and is currently
   either transmitting or receiving the userfile from a bot, it will
   say so here, and tell how many users have been received so far,
   or how many more users need to be transmitted.

   the next few lines show the current server, and if the helpbot is
   in use, its nickname and current server.  to prevent server
   flooding, both the bot and its helpbot use queues to store replies
   to queries from users.  if either queue has a significant amount
   of information in it, this status display will show how full (%)
   the queue is.

   the next line tells you how long the bot has been online, and
   whether it is operating in the background or foreground.  if it's
   in the foreground, it will tell you whether it's in terminal mode
   or channel display mode.  (terminal mode makes the local console
   simulate a dcc chat connection, and channel display mode displays
   a '.status' and '.channel' output every few seconds.)  it will
   also give you an estimate of the amount of CPU time (minutes and
   seconds) the bot has used so far, and how well the cache is
   working.  (the cache is an attempt to keep the CPU time down, and
   anything over 50% or so is just great.)

   the last line tells any significant modes set with the '.set'
   command, like revenge, learn users, and userfile sharing modes.

   if you do '.status all' you will see another pageful of info,
   showing every internal setting as specified in the config file.
   it should be self-explanatory to anyone who needs to use it.
see also: set, channel, debug

topic (text)
   changes the channel's topic, assuming the bot is a chanop or the
   channel is not +t (uses your current console channel)
see also: console

trace (bot)
   sends out a trace signal to another bot.  if that trace signal
   returns (and it should!) you will get an output something like
      Trace result -> Valis:Stonewall:NoBoty:SomeBoty
   it's a list of the bots between you and the destination bot.
see also: bots, bottree

unlink (bot)
   disconnects the named bot from the botnet, assuming it was
   connected in the first place.

unlink *
   disconnects from all bots
see also: link

who [bot]
   lists everyone currently on your channel.  a "*" in front of
   a user's name means he is a bot master.  if the user has been
   idle for more than one minute, the idle time will be displayed,
   and if the user is marked as away, the away message will be
   shown below.  if you specify a bot's name, as in '.who valis',
   the who request will be sent to that bot, as long as that bot
   is on the botnet.

   a 'who' will list up to three things, for whichever bot you
      1. a list of the people on the bot who are on your channel
         (the party line, if you never changed channels)
      2. a list of the bots that this bot is directly connected to
      3. a list of the people on the bot who are NOT on your

   masters may also see "(con)" and/or "(talk)" after a user's
   entry -- "(con)" shows that user's console modes (see the
   '.console' help page), and "(talk)" means that user is using
   the enhanced talk ircII script.
see also: whom

whois (nickname)
   will show you the bot information about a user record.  there are
   five headings:
      HANDLE       the handle (nickname) of the user
      HOSTMASK(S)  the hostmasks from which this user is recognized
      PASS         "(yes)" if she has a password set, "(no)" if not
      ATTR         the list of flags for this user (see below)
      LAST         the time or date that the user was last on the
   the valid flags under ATTR are:
      o   op (bot will give this user chanop)
      d   deop (bot will not allow this user to become a chanop)
      k   kick (user is auto-kicked)
      m   master (user is a bot master)
      n   owner (user is the bot owner)
      f   friend (user is not punished for doing bad things)
      x   xfer (user has file-area access)
      j   janitor (user is a file-area master)
      b   bot (user is another bot)
      p   party-line (user has party-line access)
      c   common (user record is a common-access site)  [see 'help common']
      s   (BOT) share (bot is sharing user records)
      h   (BOT) hub (bot is auto-linked at highest priority)
      a   (BOT) auto (bot is auto-linked if no hub bots can be linked)
      l   (BOT) leaf (bot is a leaf, not a hub)
      r   (BOT) reject (bot will not be allowed on the net)
   --- there are also 10 user-defined flags: 0,1,2,3,4,5,6,7,8,9 ---
   if the user entry is for a bot, there will be a line below which
   says "ADDRESS:" and gives the bot's telnet address.  some user
   entries may have "EMAIL:" and "INFO:" entries too.
   masters: if there is a comment, you will see it under "COMMENT:"
   see also: '.match', which will show multiple user records.

whom [channel]
   will display a table of the users currently on the joint party
   line (formed when you have two or more bots linked together).
   it will show each user's nickname, preceded by a "*" if they
   are a master on their bot, or a "@" if they are an op.  in other
   columns it will show the bot the user is on, and his or her
   host.  it may take a second for the table to finish displaying,
   since it is formed by sending requests to every bot in the bot-
   net.  obviously, if your bot is not linked to any other bot,
   this command is no different than '.who' (except in format).

   if you are on a different channel than the party line (channel
   0), then this will show the people on every bot who are on
   your current channel.  you can also optionally give the "channel"
   option to list who is on a particular channel.
see also: who, bots, chat

Special Thanks to Stefan Negele