

FREQUENTLY ASKED QUESTIONS


(a.k.a. Why doesn't this thing work?!")

WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"?

  1.  Run Eggdrop with the "-m" option (i.e. "eggdrop -m eggdrop.conf").
  2.  Go to IRC and send "hello" to your bot (i.e. "/msg mybot hello").
  3.  You will become an owner on your bot. You can leave the bot
      running (nobody else will become an owner if they say "hello"),
      but in the future, don't use the "-m" option when running the bot.

WHAT THE HECK IS Tcl?

  Tcl is a scripting language written by John Ousterhout. It's much
  better than most "built-in" script languages (like the one in ircII)
  and is meant to be linked with anything needing a scripting language,
  so I linked it with Eggdrop. The file "tcl-commands.doc" in the doc
  directory contains a list of additional Tcl commands provided by
  Eggdrop. There are also several example scripts in the scripts/
  directory, and one in the doc directory called first_script.txt.
  Hundreds of scripts floating around on the ftp/web sites if you like
  working by example (which is typically the best way).

MY BOT DIES, AND THE LAST ENTRY IN THE LOGFILE IS "RECEIVED TERMINATE
SIGNAL". WHAT DOES THAT MEAN, AND CAN I PREVENT IT?

  There's nothing you can do to prevent it. It means the system
  administrator is killing the Eggdrop process. Most of the time, it's
  an automatic thing that happens when the system is being rebooted, so
  it's harmless. If you have a crontab running, the bot will get
  restarted when the system is back online. Occasionally, the system
  administrator will kill the bot manually. For example, if he/she
  doesn't want bots running on the system.

SOMEONE ELSE SET UP A BOT I DON'T LIKE. ARE THERE ANY BACKDOORS I CAN
USE TO TAKE THEIR BOT DOWN?

  No, there have never been any backdoors and there never will be, so
  please stop asking. Every once in a while, someone finds a way to
  exploit a bug in Eggdrop, but we fix these bugs as soon as we find out
  about them. If you want to bring down someone else's bot, you will not
  have my/our help.

WHAT ARE MODULES?

  Modules are a way of adding extra features to the bot, much like Tcl
  scripts, without requiring the bot to be recompiled. See doc/MODULES
  for more information.

CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES?

  Yes, you can. If the configure script detects that your system CAN'T
  run modules, it will setup 'make' to link the modules in statically
  for you. You can choose this option yourself by using 'make static'.
  You can also try to compile dynamic modules on a static-only system by
  using 'make eggdrop'.

DO I STILL NEED TO 'loadmodule' MODULES?

  YES, when you compile statically, all the modules are linked into the
  main executable. HOWEVER, they are not enabled until you use
  loadmodule to enable them, hence you get nearly the same functionality
  with static modules as with dynamic modules.

WHERE CAN I GET A PRE-COMPILED EGGDROP FOR MY COMPUTER?

  It is HIGHLY recommended AGAINST using pre-compiled Eggdrops from
  un-trusted sources. Eggdrop has been a regular target for hacking and
  crashing. Distribution of pre-compiled (binary) versions of Eggdrop
  are the easiest way for hackers to provide you with the easiest (and
  most dangerous) way of gaining access to, not only your bot, but to
  your computer account directly. Don't advertise your pre-compiled
  Eggdrop binary sites on the Eggdrop list either. =P

I GET 'Makefile:3 :invalid operator' OR SOME-SUCH-THING WHEN I TRY TO
'make'.

  Try 'gmake'.

WHEN I 'tclsh scripts/weed <userfile> c' IT BARFS CHUNKS AT ME AND DIES.
:(

  Upgrade your Tcl. You are probably using Tcl 7.5 or earlier. Some of
  the commands in weed require Tcl7.6 to run, so either upgrade it or
  remove the offending lines from you userfile manually (those starting
  with '.' generally) and accept the loss of that data.

I GET "ld-elf.so.1: Shared object "libtcl80.so.1" not found" or
"eggdrop: error in loading shared libraries libtcl8.1.so:
cannot open shared object file: No such file or directory" WHEN I TRY TO
START MY BOT.

  './configure' is looking in the wrong place for Tcl; it looks like it
  compiled with one version of Tcl and tries to load another. Maybe your
  sysadmin upgraded Tcl and didn't tell you. In that case, you should
  just need to recompile your bot.

  Maybe, when upgrading, he didn't clean the old version of Tcl and
  './configure' is looking for the files in the wrong places, or trying
  to use different versions of tcl.h and libtcl*. Smack your admin and
  have him install Tcl properly. ;)

  You can also try:

      ./configure --with-tcllib=<path-to-tcl-lib>
                  --with-tclinc=<path-to-tcl-inc>

  This will tell configure where to look for the Tcl files.

  Try looking for libtcl by:

      ls /usr/lib/libtcl*
      ls /usr/local/lib/libtcl*

  Try looking for tcl.h by:

      ls /usr/include/tcl.h
      ls /usr/local/include/tcl.h

      If everything else fails, try to install Tcl to your home dir ;)
      (Suggested by dw@Undernet, dw@lixom.nu)

I GET A WHOLE PILE OF "Unresolved symbol 'Tcl_AppendResult'" (OR SOME
OTHER SYMBOL) WHEN I TRY TO LOAD A MODULES.

  POSSIBILITY A: See previous section.

  POSSIBILITY B:

    Some of the standard libraries have been compiled for static linking
    only on your machine, you have 3 options:

      1.  If it's your own machine, recompile Tcl using dynamic linking
          by using './configure --enable-shared' when you configure Tcl
          (not the bot) and then remake, and reinstall.
      2.  If it's not your machine, you may have to resort to 'make
          static' and 'make install DEST="path"' to make and install
          your bot.
      3.  If you are of a more aggressive sense of mind, go beat the
          stuffing out of your admin for having lame static libraries.
          :)

