Eggdrop Example Configuration

The Eggdrop Config

The Eggdrop config can appear overwhelming. The proceeding section of this page will deal with the Eggdrop.conf settings needed to get a single bot up and running with BogusTrivia. Below are the minimum settings needed to get your new bot online with the BogusTrivia script.
If you prefer to preview the Eggdrop Config before editing you can view it here.
Please NOTE: It is recommended you edit your configuration file fully.

##BASIC SETTINGS##

Set Your Botnick

This setting is found at approximately line 24 in the eggdrop config. Set your desired nick for the bot within the quotes.
# This setting defines the username the bot uses on IRC. This setting has
# no effect if an ident daemon is running on your bot's machine.
set username "lamest"

Network Settings

This setting is found at approximately line 53 in the eggdrop config. Settings for the addition of IPv6.
Network settings overview
With the addition of IPv6 and the associated config changes, here are some BASIC common networking scenarios, along with the appropriate settings needed:

SHELL PROVIDER (MULTIPLE IPs/VHOSTS)
* set vhost4 or vhost6 to the IP/vhost you want to use
* set listen-addr to the same IP/vhost as above

HOME COMPUTER/VPS, DIRECT INTERNET CONNETION (SINGLE IP, NO NAT)
* do not set vhost4/vhost6
* do not set listen-addr

HOME COMPUTER, BEHIND A NAT
* do not set vhost4/vhost6
* do not set listen-addr
* set nat-ip to your external IP

Below is a detailed description of each setting, please read them to learn more about their function.

#If you're using virtual hosting (your machine has more than 1 IP), you
# may want to specify the particular IP to bind to. You can specify either
# by hostname or by IP. Note that this is not used for listening. Use the
# 'listen-addr' variable to specify the listening address. If you are
# behind a NAT, you will likely want to leave this commented out as Eggdrop
# should determine the correct IP on its own.
#set vhost4 "virtual.host.com"
#set vhost4 "99.99.0.0"

# IPv6 vhost to bind to for outgoing IPv6 connections. You can set it
# to any valid IPv6 address or hostname, resolving to an IPv6 address.
# Note that this is not used for listening. Use the 'listen-addr'
# variable to specify the listening address.
#set vhost6 "my.ipv6.host.com"
#set vhost6 "2001:db8::c001:b07"

# IPv4/IPv6 address (or hostname) to bind for listening. If you don't set
# this variable, eggdrop will listen on all available IPv4 or IPv6 interfaces,
# depending on the 'prefer-ipv6' variable (see below).
# Note that eggdrop will accept IPv4 connections with IPv6 sockets too.
#set listen-addr "99.99.0.0"
#set listen-addr "2001:db8:618:5c0:263::"
#set listen-addr "virtual.host.com"

# Prefer IPv6 over IPv4 for connections and dns resolution? Set to 1 to try
# IPv6 first, otherwise set to 0 for IPv4. If the preferred protocol family
# is not supported, the other one will be tried.
set prefer-ipv6 0

# If you want to have your Eggdrop messages displayed in a language other
# than English, change this setting to match your preference. An alternative
# would be to set the environment variable EGG_LANG to that value.
# # Languages included with Eggdrop: Danish, English, French, Finnish, German.
#addlang "english"

Set Your IRC Network

This setting is found at approximately line 32 in the eggdrop config. Set the IRC Network you want your bot to connect to within the quotes.
# This setting is used only for info to share with others on your botnet.
# Set this to the IRC network your bot is connected to.
set network "I.didn't.edit.my.config.file.net"

Set The Eggdrop Bots Address

This setting is found at approximately line 54 in the eggdrop config. Your Shell Provider offers Virtual Hosts for your eggdrop. They consist of an IP and hostname your bot will use to connect to IRC. Uncomment the two set commands and fill in the appropriate information.
Note: Uncomment means to remove the # symbol from the beginning of the line. Do not remove # symbols other then set commands you wish to enable.
# If you're using virtual hosting (your machine has more than 1 IP), you
# may want to specify the particular IP to bind to. You can specify either
# by hostname or by IP. You may also want to set the hostname here if
# Eggdrop has trouble detecting it when it starts up.
# set my-hostname "virtual.host.com"
# set my-ip "99.99.0.0"

##FILES AND DIRECTORIES##

Set Your Filenames

This setting is found at approximately line 173 in the eggdrop config. You may choose any filename you wish, however it is recommended you replace LamestBot with your chosen botnick, leaving the file extension in place. i.e. yourbotnick.user where .user is the file type.
# Specify here the filename your userfile should be saved as.
set userfile "LamestBot.user"

##MORE ADVANCED SETTINGS##

Set Owners

This setting is found at approximately line 350 in the eggdrop config.
# Un-comment the next line and set the list of owners of the bot.
# You NEED to change this setting.
#set owner "MrLame, MrsLame"
Uncomment the line above and insert your primary IRC Nick within the quotes. If you have more then one nick or user you wish to add as Owner separate with comma's as seen above.
Warning Allowing a user Owner status gives them full control over your bot. Choose carefully.

This second setting is found at approximately line 403 in the eggdrop config. You MUST comment out or remove the line below.
# You MUST remove this line for your bot to start. This has been added to
# prevent you from starting up a bot that is not fully configured. Bots
# that have not been fully configured may join the wrong IRC network, the
# wrong channels, or generally do things that you do not want. Please make
# sure that you have double-checked every setting. There's also a similar line
# lower down, just to make sure you're reading.
die "Please make sure you edit your config file completely."

##MODULES##

##CHANNELS MODULE##

These settings are found at approximately line 433 in the eggdrop config. Add the channel name you wish your bot to join on your chosen Network. It is assumed for this tutorial's purpose that your bot will be running BogusTrivia, so many of the settings do not apply and can be left at default.
Uncomment each line and simply add the static channel name you wish your bot to connect to.
# Add each static channel you want your bot to sit in using the following
# command. There are many different possible settings you can insert into
# this command, which are explained below.
#
# channel add #lamest {
# chanmode "+nt-likm"
# idle-kick 0
# stopnethack-mode 0
# revenge-mode 0
# ban-time 120
# exempt-time 60
# invite-time 60
# aop-delay 5:30
# need-op { putserv "PRIVMSG #lamest :op me cos i'm lame!" }
# need-invite { putserv "PRIVMSG #lamest :let me in!" }
# need-key { putserv "PRIVMSG #lamest :let me in!" }
# need-unban { putserv "PRIVMSG #lamest :let me in!" }
# need-limit { putserv "PRIVMSG #lamest :let me in!" }
# flood-chan 10:60
# flood-deop 3:10
# flood-kick 3:10
# flood-join 5:60
# flood-ctcp 3:60
# flood-nick 5:60
# }

##SERVER MODULE##

These settings begin at approximately line 763 in the eggdrop config.
# This module provides the core server support. You have to load this
# if you want your bot to come on IRC. Not loading this is equivalent
# to the old NO_IRC define.
loadmodule server

Select the Network you wish your bot to connect to.
# What is your network?
# 0 = EFnet
# 1 = IRCnet
# 2 = Undernet
# 3 = DALnet
# 4 = +e/+I/max-modes 20 Hybrid
# 5 = Others
set net-type 0

Set Your Network Servers List.
# This is the bot's server list. The bot will start at the first server listed,
# and cycle through them whenever it gets disconnected. You need to change these
# servers to YOUR network's servers.
#
# The format is:
# server[:port[:password]]
#
# Both the port and password fields are optional however, if you want to set a
# password you must also set a port. If a port isn't specified it will default to
# your default-port setting.
set servers {
you.need.to.change.this:6667
another.example.com:7000:password
}
Example: us.undernet.org

Set the Nick your bot will use on IRC.
# Set the nick the bot uses on IRC, and on the botnet unless you specify a
# separate botnet-nick, here.
set nick "Lamestbot"

Select an alternate Nickname for your bot.
# Set the alternative nick which the bot uses on IRC if the nick specified
# by 'set nick' is unavailable. All '?' characters will be replaced by random
# numbers.
set altnick "Llamab?t"

Choose a comment or description for the realname. This information will be what users see if they whois your bot. It is recommend you change this from the default.
# Set what should be displayed in the real-name field for the bot on IRC.
# This can not be blank, it has to contain something.
set realname "/msg LamestBot hello"

##IRC MODULE##

This setting is at approximately line 1027 in the eggdrop config. This setting MUST temporally be changed so you may message your bot when it first appears online. After your bot is online and you have set you password it is recommended you disable this setting. Uncomment #bind msg : myword *msg:hello.
# Many IRCops find bots by seeing if they reply to 'hello' in a msg.
# You can change this to another word by un-commenting the following
# two lines and changing "myword" to the word wish to use instead of
# 'hello'. It must be a single word.
#unbind msg - hello *msg:hello
#bind msg - myword *msg:hello

##NOTES MODULE##

This setting is at approximately line 1251 in the eggdrop config. You MUST comment out or remove the line below.
# Comment out this next line. Otherwise, your bot won't start.
die "You didn't edit your config file completely like you were told, did you?"

##SCRIPTS##

This setting is at approximately line 1331 in the eggdrop config. This is where you load the tcl scripts you wish to use. Note there are several scripts loaded by default in Eggdrop. Simply follow the syntax below to add the scripts you wish to run.
# This is a good place to load scripts to use with your bot.
# This line loads script.tcl from the scripts directory inside your Eggdrop's
# directory. All scripts should be put there, although you can place them where
# you like as long as you can supply a fully qualified path to them.
#
# source scripts/script.tcl
source scripts/alltools.tcl
source scripts/action.fix.tcl
# Use this script for Tcl and Eggdrop backwards compatibility.
# NOTE: This can also cause problems with some newer scripts.
#source scripts/compat.tcl
# This script provides many useful informational functions, like setting
# users' URLs, e-mail address, ICQ numbers, etc. You can modify it to add
# extra entries.
source scripts/userinfo.tcl
loadhelp userinfo.help