Eggdrop is an irc-bot.  

  That is, it is a stand-alone pseudo-user that logs onto an 
  Internet Relay Chat network and can do just about anything that
  a human user can do, and more.  Eggdrop also contains its own
  separate "botnet" with up to 64k channels and theoretically as
  many linked bots as you wish.  Eggdrop does not require ircII.

  Eggdrop can manage flood protection and ops control on one or
  manyIRC channels.  Has an optional DCC-Files area.  Can be 
  re-compiled to do it's robotic things without attaching to any
  IRC server (limbo-mode), and can do anything that another tclsh 
  can do EXCEPT easily run as a user shell.

  Eggdrop is perhaps the ideal channelbot because of its flexibility,
  however this move should not be taken lightly.  OPER functions 
  should probably be either not programmed, nor bound to +n owners
  on any such configured bots.

It is NOT a simple bot, but is well programmed.  If you are used
to tcl, you'll enjoy making your eggie jump through hoops.  Each
bot can connect to only one IRC server (hence one IRC net), but
can link to other bots, and as many as you'd care to run can run
from the same directory sharing SOME (or all) scripts.  Each must
have its own run-time configuration script and unique name(s) and
TCP port (called a telnet port in the documentation, and indeed
it can be telneted to directly if configured to allow it.)

If you are NOT an accomplished TCL programmer, odds are that
you can make working bot with simple editing of the "FBSDbot"
or "lamestbot" example files in a matter of minutes.


DIFFERENCES INSTALLING FreeBSD PORT OR PACKAGE
FROM OTHER (manual installation) of distribution.

  The FreeBSD port has been extended from the original distribution
  to allow root to do a system-wide install from which other users
  can do individual installs (and conserve space and resources).
  A sysadmin doing a "make" of the port has the option of doing
  a full "make install" or merely invoking the "putbot" script
  as is done on other systems.  When a full make install (or install
  from package) is done...

  A system specific example "bot configuration" script is created
  by the GNU-Configure script (which has been upgraded from the
  original distribution).  A manpage for the enhanced "putbot"
  script is created and installed.  The voluminous help files
  are hard-linked by the enhanced putbot script, and those that
  are user dependent instead of version dependent, are copied
  to the bot's directory by the enhnaced "putbot".

  For "workstation" installs, eggies CAN be run from the actual
  system install directory (usually /usr/share/eggdrop-1.0m),
  with DCC files areas designated as /var/spool/eggdrop/*, and
  softlinked from the install (as /usr/share/eggdrop-1.0m/dcc) 
  directory.

Installation of the bare distribution is a user-level activity.

Installation from the FreeBSD ports or packages creates an
installation appropriate for any of:
	1.  out-of-band by a user (identical to normal dist)
	    except that fetching of the distribution archive
	    is automated.
	2.  Shared system - with "putegg" used by each user
	    who is creating new bot(s).  The installed "putegg"
	    is not the same, but functionally better for this
	    situation than the distribution putegg script.
	3.  Workstation, with bots either run from the install
	    directory, or from a "putegg" similar to #2.


SYSTEM IMPACT

  The first eggie to run, made with tcl v7.6, may be expected to
  require approximately 5M (virtual) RAM, presuming that it is the
  only libtcl*.so.* dependent application running.   Additional
  bots will generally take a hundred, to a few hundred k, depending
  upon the number and complexity of scripts in use, number of bot-
  users it is tracking (channel traffic), bans monitored, and other
  minor consumption items.  The CPU utilization will vary from 
  perhaps 10% down to .10%, depending upon channel traffic and number
  of channels in which each bot participates.  These figures are
  all approximate, and your results may differ significantly.
  It is NOT recommended to run a bot with DCC Files transfers
  enabled from a dial-up or 56kbps connection, although quite
  possible.

BOT PROGRAMMING

  There is an enormous number of scripts in use with these bots.
  Some are as simple as greeting a user when that person joins
  an IRC channel, perhaps auto-op'ing a known user.  Originally
  written as a police-bot for #gayteens, it is also used as
  a Bible concordance on some channels.  This gives some indication
  of its flexibility.  Several eggies generally occupy #FreeBSD
  on Undernet, along with the human denizens.

  Some of the available scripts open drastic potential for security
  breaches of a system.  It is quite possible to fully append program
  code to the bot from an IRC DCC session, or even within a channel.
  Based upon the standard tclsh, nearly every function normally
  available (with the possible exception of starting secondary
  interpreters) in tclsh is also available in eggdrop.o

  Channel bot-joins are *normally* statically defined, however the
  tcl programming environment fully supports both tcl "proc"
  contained channel additions (effective during the current run)
  and rewrite of its own configuration files.

KNOWN BUGS

  ... are swatted as they appear.  One that has never been fully
  swatted is both a bug and a feature.  Re-read of configuration
  scripts triggered by the DCC command ".reload" or a sigHUP being
  sent to the bot does NOT undefine any variables.  Hence if a variable
  is deleted from a script (or config file) and is not specifically
  UN-defined, it will remain for the current run of the bot.  This
  is likely an unexpected "feature".  

  Since "proc"s are merely a special case of variable in the tcl context,
  the same "feature" goes for those.
