The Eggdrop FAQ |
Running the Bot |
My bot needs a nick with the '[' ('$', '"', etc) char in it, but it just keeps giving errors when starting... |
Some characters are reserved for special uses in TCL. Since the eggdrop configuration is TCL script, you need to make sure it can be read by the TCL interpreter. Quote strange characters by adding a slash '\' before it. The chars you surely will want to quote that way are: [ ] { } " \ $ If you are unsure, quote all dubious chars. It won't hurt. |
I get '*** Can't load Userinfo v1.01 -- At least Eggdrop v1.3.0 required' when starting the bot! |
This is a problem when you run the bot with TCL 8.0 libraries. Just edit the scripts/userinfo1.0.tcl file and remove the lines that do this checking: if {![info exists numversion] || ($numversion < 1030000)} { putlog "*** Can't load $userinfover -- At least Eggdrop v1.3.0 required" return 0 } |
How can I change the string that appears in front of the @ in the WHOIS on IRC? |
If the string that appears in front of the @ on IRC has a ~ (tilde) in front of it, you can set, in your configuration file the variable "username": set username "othername" and probably this it will make your bot show as ~othername@your.site.com on IRC. If you don't see any character before your username, then your shell has installed identd, and your username will always be your UNIX-username and you can't change it. |
What do I need to make the bot join a channel with a key? |
In your channel settings set the key as usual: channel add #thechannel { chanmode "+k theKey" } This will not only make the bot enforce this mode, it will also be used by your bot to join this specific channel. |
How can I execute more than one command in the need-op settings? |
The best is to create a separate procedure to handle everything you need: chanset <#channel> need-op "need_op_cmd <#channel>" proc need_op_cmd { channel } { command1 command2 ... } |
When I try to start the bot from the config file it says "Permission denied". How can I start my bot simply by executing the config file? |
To do this, you need to edit the first line of the config to make it point to the full path of where your eggdrop binary is. For example you have
your eggdrop binary in: /home/justme/eggdrop/eggdrop So you edit the configuration and replace its first line with: #!/home/justme/eggdrop/eggdrop
Next set the file as executable using: chmod +x mybot.conf |
How do I set up my bot to come back after it dies? |
You must set up a crontab which checks every 10 minutes if your bot is still alive. If the script detect that it is not, it should reload the bot. Setting up the botchk script There is a script included with the eggdrop distribution to do this. It is the scripts/botchk file. You should set the following to make the script work: Make sure your bots config file is runnable (see previous question). Edit the scripts/botchk file and set the four configuration items: botdir="/home/justme/eggdrop" botscript="mybot.conf" botname="Goofy" userfile="Goofy.user" Make sure you entered things with the correct cAsE, this is important! If you are not sure about the 'botname', just make sure it is written the same case as you see in the 'pid.*' file that exists in your eggdrops directory when your bot is running. Now you should check if you got it right!
If the test ran successfully, you now are ready to set up the crontab Setting up the crontab Create a file called 'mycron' with this contents: 0,10,20,30,40,50 * * * * /home/justme/eggdrop/scripts/botchk >/dev/null 2>&1 Make sure you've got the path correct. Now you must tell crontab to add the contents of this file to your crontab. Just type: crontab mycron and it should be done. If crontab gives you an error that you don't have access to crontab, you are unlucky. The only thing you can do is talk to the system administrator to allow you to use this function. |
My bot is making clones! Another joins with a different nick each 10 minutes! |
This means your bot checking script that is run in your crontab isn't working. It is never able to detect your bot running, and simply runs another copy. Three main causes:
|
My bot is writing 1000Mb log files! Help! |
For some reason the bots net connection might have gone mad, and the bot is cycling at one or another step until eternity, while logging it's action happily to your log files. Since this can go VERY fast, your log file will rapidly grow to terrible sizes. There are no known ways to prevent this. You might try to disable the logging of server disconnect/connect notices if you are totally scared (remove the '+s' from the logfile command in your config). Or simply pray for it not to happen one more time. This is not very usual. You might take a look at your scripts, maybe one of them makes this mess. If you have scripts that use the 'control/listen' procedures, they might be your problem. |
Can I make the bot mail me the logs from yesterday? |
If you set the bot to rotate logs at 5am, you can try to add to your crontab: 5 3 * * * mail your@email.here < /home/justme/eggdrop/mybot.log.yesterday This will mail you the specified file at 5:03am. |
How can I set up eggdrops file-area? |
To enable eggdrop's filesystem, you need to make sure you have set the following in your bots configuration file: loadmodule transfer This will enable DCC SEND and DCC GET from your bot. loadmodule filesys set files-path "/home/justme/eggdrop/filesys" set incoming-path "/home/justme/eggdrop/filesys/incoming" The loadmodule filesys' will load the filesystem feature. The next settings will tell the bot which is the root of your filesystem. You can also enter paths relative to your bots directory: set files-path "filesys" set incoming-path "filesys/incoming" Make sure these directories exist (filesys and filesys/incoming are created by default by the eggdrop installation) and the filesystem should work. |
I get '-NOTICE- No Ident response' when trying to connect to a server. |
If you get notices like this: [18:24] -NOTICE- Looking up your hostname... [18:24] -NOTICE- Found your hostname, cached [18:24] -NOTICE- Checking Ident [18:24] -NOTICE- No Ident response when trying connecting to a server, this is not eggdrop's fault, it is that your machine does not have a identd server to answer ident queries. Some irc servers require this for you to connect. Simply ask your system administrator to install a identd server. Non super-user users do not have permissions to install this, since it must be listening at a previleged port (113). |
How can my eggdrop know about nicks >9 chars on IRC? |
Edit the src/eggdrop.h file and find the line: #define NICKMAX 9 /* valid values HANDLEN->32 */ Change 9 to whatever length of nicks that your net allows, and recompile the bot. |
I just compiled my bot, and tried to start it, but I get 'eggdrop: command not found'. What should I do? |
Try calling it using './eggdrop', this should start it. This means that the current directory is not in your PATH. You can add it, before calling eggdrop: If your shell is csh/tcsh: setenv PATH ".:$PATH" If your shell is sh/bash/ksh: PATH=".:$PATH" export PATH Then you can call eggdrop directly, without the './'. |
How can I kill my bot from the Unix command prompt? |
Simpliest way: kill -9 `cat pid.Botname` Note the use of backquotes. Change the "Botname" to the name of your bot. If this do not work, telling you "no such process", go ahead:
|
While loading my bot it says something about: 'Tcl error in file 'eggdrop.conf': invalid command name "channel"' |
You probably did not 'make install', which places the modules in the right directory. |
Can I use the userfile from my 1.0 bot on a 1.3 bot? |
This will envolve two conversions.
Step 1) is the most difficult one, since you will need a running 1.1.x bot. Get and compile eggdrop 1.1.5 and load the userfile with this bot. It will auto-convert the file to the 1.1 format. Make the bot save the file (issue a .save command) and kill the bot. In step 2) you can use the scripts/weed script included with the 1.3.x distribution, which can read the 1.1 userfile and convert it to the 1.3 format. Use it like this: tclsh scripts/weed userfile.old c The 'c' will tell it to "convert". The new userfile will be called 'userfile.old.weed', just rename and use it. |
I sometimes get '(!) timer drift -- spun 5 minutes', what does this mean? |
This can mean several things:
If you get this very often, this is bad, and probably means the machine your eggdrop is running on is very busy doing other things or you have some buggy script doing strange things. Unload all dubious scripts, and see if the problem vanishes. |