Eggdrop FAQ




Intro Info

  1. What is an Eggdrop?
  2. What do I need to run an Eggdrop?
  3. Quick Start - How to install
  4. Setting Up A Crontab
  5. How To Use Patches
  6. FAQ for compling errors.

Frequently Asked Questions

  1. What Do I Do If I Get The Error "User File Not Found"?
  2. My Eggdrop Won't Run; It Just Says "Can't Find Your Hostname!"
  3. What The Heck Is TCL?
  4. My User List Is Very Large. How Can I Cut It Down?
  5. My Bot Dies And The Last Eentry In The Logfile Is "Received Terminate Signal". What Does That Mean And Can I Prevent It?
  6. My Compile Dise At The Last Minute With "LD Fatal Signal 11"!
  7. Someone Else Set Up A Bot I Don't Like. Are There Any Backdoors I Can Use To Take Their Bot Down?
  8. What Are Modules?
  9. Is There A Mailing List?

What is an Eggdrop?
Eggdrop is an IRC bot, written in C. If you don't know what IRC is, this is probably not whatever you're looking for! Eggdrop, being a bot, sits on a channel and takes protective measures: to keep the channel from being taken over (in the few ways that anything CAN), to recognize banished users or sites and reject them, to recognize priveledged users and let them gain ops, etc.

One of the more unique features of eggdrop is its "party line", accessable via DCC chat, which allows you to talk to other people lag-free. Consider it a multi-way DCC chat, or a miniature IRC (complete with channels). You can link up with other bots and expand the party line until it actually becomes something very much like IRC, in fact.

What do I need to run an Eggdrop?

  1. Some sort of Unix account -- it does not compile for Windows or Mac machines, nor will it probably ever compile there

  2. Pretty good knowledge of IRC and Unix, including how to compile programs and what DCC chat is, at absolute minimum

  3. About 500k of disk space, or more, depending on your system.

  4. The Tcl libraries -- Most systems should have Tcl on them by now -- you can check by trying the command "tclsh". If it works, you will be given a "%" prompt, and you can type "exit" to exit the program. That means Tcl is on your system. If tclsh doesn't load, then Tcl probably isn't on your system, and you will need to ftp it. The best ftp site is: ftp.sunlabs.com/pub/tcl (You Dont Need Root To Install TCL)



Quick Start - How To Install

  1. Type './configure' from the eggdrop directory. That script will determine how your system is set up, and figure out how to compile eggdrop (I hope). It will also try to find Tcl, which is required to compile.

  2. Edit 'src/eggdrop.h' to your liking if you're the hacker type. (THIS STEP IS OPTIONAL.)

  3. Type 'make' from the eggdrop directory. If you want your bot to run from it's own directory (highly recommended), type 'putegg <dir>' to copy the main files there.

  4. Edit 'eggdrop.conf' (a sample script) and rename it to something you can remember (like "mybot"). Move it to your bot's directory. (THIS STEP IS NOT OPTIONAL!)

  5. Start the bot with the "-m" option to create a user file, ie 'eggdrop -m mybot'.

  6. When starting the bot in the future, drop the "-m". If you have edited your bot script correctly, you can type:
    chmod u+x <my-bot-script-name
    and from then on, you will be able to run your bot directly from the script. So you can just type "mybot" from your shell prompt to start up your bot. For this to work, the top line of your script MUST contain the correct path to eggdrop.

Setting Up A Crontab

We are sorry but crontab use is not allowed by users on this system. Several users have abused this privilage and have tried to compromise this site with it.

How To Use Patches
You have two choices, the first is easiest and the second should only be used if the fist one doesn't work.

Choice number 1:

Change the the root eggdrop directory (where 'addpatch' is) and type:

chmod u+x addpatch

then type

addpatch file.patch

and it will tell you what the last patches installed where and ask if you want to install the patch, if the patch you are installing is listed then press 'n' then enter if it's not then press 'y' and then enter.

Choice number 2:

In order to apply the patch files found on this site you must have a utility called patch, if you do not have it, then you can only manually apply these patches, which I wouldn't recommend.

Here is the basic command, ungzip the patch file, and run the following command from your eggdrop directory (not the src directory):

patch -p1 < file.patch

Once this is complete, execute the following command:

find . -name "*.rej" -print

If it returns a list with filenames that end in the rej extension then the patch didn't apply properly, ensure that the patch is for the version intended, ensure that you have the original source, and ensure that the patch is not corrupted.

If it turns out that the patch was successful then be sure to recompiling by running make again.

What Do I Do If I Get The Error "User File Not Found"?

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

My Eggdrop Won't Run; It Just Says "Can't Find Your Hostname!"

Your machine is set up strangely, and eggdrop can't figure out its network hostname. To fix this add the following command to your eggdrop.conf (Or whatever you renamed it to) file.

set my-hostname "your.host.com"

If This does not work try setting an environment
variable called HOSTNAME. In sh or ksh:

$ HOSTNAME=myhost.domain.com
$ export HOSTNAME
In csh or tcsh:
% setenv HOSTNAME myhost.domain.com

It should work after that, or add those above commands to your '.login' file (sh or ksh: '.profile').

What The Heck Is TCL?

Tcl is a scripting language written by John Ousterhout. It's much better than most "in-built" script langauges (like the one in ircII) and is meant to be linked with anything needing a script language. So I linked it with eggdrop.

The file "tcl-commands.doc" in the eggdrop directory contains a list of the commands added to Tcl by eggdrop. There are also several example scripts in the script/ directory, and there are gobs of scripts floating around on the ftp sites if you like working by example (which is typically the best way).

My User List Is Very Large. How Can I Cut It Down?

There is a Tcl script called "weed" distributed with eggdrop. To use it, type:

tclsh weed
It will give you a list of options for weeding out your userlist. You can erase users who haven't been on the channel within a specified number of days, or erase any ops who haven't set a password yet, etc. Lots of options.

My Bot Dies And The Last Eentry In The Logfile Is "Received
Terminate Signal". What Does That Mean Aand Can I Prevent It?

There's nothing you can do to prevent it. It means the system admini stator 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, and if you have a crontab running, the bot will get restarted when the system is back online. Occassionally the system administrator will kill the bot manually -- for example, if he/she doesn't want bots running on the system.

My Compile Dise At The Last Minute With "LD Fatal Signal 11"!

This happens on Linux machines which have recently been converted to ELF by upgrading to Slackware 3.0. Apparently Slackware 3.0 comes with a non-ELF (a.out) Tcl library, and the compiler doesn't handle that well. (It should give you an error; instead it barfs.) Fixing it is tricky because even if you recompile libtcl.a, the linker will most likely find the "bad" one first, and your work will be in vain.

Here's a fix that's been floating around on the eggdrop list:

  1. Recompile 'libtcl.a' for yourself, to make sure an ELF library is created.
  2. Copy it into your eggdrop/src directory, naming it 'libtcl2.a'.
  3. Edit the Makefile and change the line that says '-L/usr/lib -ltcl' to '-L. -ltcl2'.>
  4. Recompile eggdrop.
Also send hate-mail to the Slackware guy telling him to stop messing up the libraries. He seemed to assume that everyone would still want to compile old-style (a.out) binaries. As far as I know, only cruddy old Netscape still uses that.

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 I find out about them. If you want to bring down someone else's bot, you will not have my help.

What Are Modules?

Modules are a way of adding extra C code from the bot, much like tcl scripts, without requiring the bot recompiling, see doc/MODULES for more info

Is There A Mailing List?

Yes, there is a mailing list. The address has changed recently, though, and (thank the heavens) I don't have to maintain it any more. To subscribe, send email to: majordomo@sodre.net
In the body of the message, put "subscribe eggdrop".

### DO NOT SEND ROBEY EMAIL ABOUT EGGDROP ###

Robey is no longer developing the eggdrop code (although he does put a word in every now and then) so don't bother emailing him. If you have a serious problem, email the eggdrop mailing list and it will get to the coders.


Web hosting Co-Location Dialups Shell Dedicated
Domain Name Support Policy About Home


This page is Copyright© 1998 The Internet Hardlink Co
28 South Main Street,129, Randolph, MA 02368
Telephone: (781) 961-4982, Fax: (781) 961-4981
Email: webmaster@hardlink.net