Configure simple eggdrop.conf

Eggdrop has a very complex configuration file which can overwhelm new users. To make things simpler, we focus on just the most essential settings you must change.

Create a new file inside ~/<botname>/ called examplebot.conf:

set username "botusername"
set admin "username <email:>"
set nick "botnick"
set altnick "botn?ck"
set realname "/msg botnick hello"
set network "Your Network"
set userfile "botusername.user"
set chanfile "botusername.chan"

Replace with your own settings. For network, use a short simple name instead of theactual server address. For example, the network name might be IRCNow instead of

set prefer-ipv6 1

We set prefer-ipv6 to 1, meaning eggdrop will attempt to use IPv6 wherever possible. Among other benefits, this will allow our eggdrop to have a unique vhost.

loadmodule server
set net-type "Other"
set default-port 6667
server add +6697

Here, we configure the network we want to connect to. There are several network types: EFnet, IRCnet, Undernet, DALnet, Libera, freenode, QuakeNet, Rizon, Twitch, and Other. If you're not sure, choose Other.

You'll want to replace +6697 with your actual server and port. It's best to use an IPv6-only server address. If you're using SSL, make sure to add a + plus sign. If you're using a plaintext port like port 6667, leave out the + plus sign.

WARNING: Don't confuse plaintext with SSL?! If you're connecting to port 6667, do not put a + plus sign in front. If you're connecting to port +6697, do put a + sign in front.

Below, we set the vhosts assigned to us when we created the shell account:

set vhost4 ""
set vhost6 ""

You cannot pick any vhost you want; you must use the vhost given to you when you created the shell account. This is because your vhost must have forward and reverse DNS entries configured in order to work correctly.

If you'd like to pick a different vhost, contact your sysadmin.

Finally, we just copy the rest of these lines unchanged into the conf file (Attach:eggdrop-simple.conf.txt):

bind evnt - init-server evnt:init_server

proc evnt:init_server {type} {
  global botnick
  putquick "MODE $botnick +i-ws"

if {[info exists net-type]} {
  switch -- ${net-type} {
    "EFnet" {
      source scripts/quotepong.tcl
    "0" {
      source scripts/quotepong.tcl
set timezone "EST"
set offset "5"
set max-logs 20
set max-logsize 0
set quick-logs 0
set raw-log 0
logfile mco * "logs/eggdrop.log"
set log-time 1
set timestamp-format {[%H:%M:%S]}
set keep-all-logs 0
set logfile-suffix ".%d%b%Y"
set switch-logfiles-at 300
set quiet-save 0
set console "mkcoblxs"
set help-path "help/"
set text-path "text/"
set motd "text/motd"
set telnet-banner "text/banner"
set userfile-perm 0600
set remote-boots 2
set share-unlinks 1
set protect-telnet 0
set dcc-sanitycheck 0
set ident-timeout 5
set require-p 1
set open-telnets 0
set stealth-telnets 0
set stealth-prompt "\n\nNickname.\n"
set use-telnet-banner 0
set connect-timeout 15
set dcc-flood-thr 3
set telnet-flood 5:60
set paranoid-telnet-flood 1
set ssl-capath "/etc/ssl/"
set ignore-time 15
set hourly-updates 00
set notify-newusers "$owner"
set default-flags "hp"
set whois-fields "url birthday"
set must-be-owner 1
unbind dcc n simul *dcc:simul
set max-socks 100
set allow-dk-cmds 1
set dupwait-timeout 5
set cidr-support 0
set show-uname 1

set mod-path "modules/"
loadmodule pbkdf2
loadmodule blowfish
set blowfish-use-mode cbc
loadmodule dns
set dns-cache 86400
set dns-negcache 600
set dns-maxsends 4
set dns-retrydelay 3
loadmodule channels
set force-expire 0
set share-greet 0
set use-info 1
set allow-ps 0

set default-flood-chan 15:60
set default-flood-deop 3:10
set default-flood-kick 3:10
set default-flood-join 5:60
set default-flood-ctcp 3:60
set default-flood-nick 5:60
set default-aop-delay 5:30
set default-idle-kick 0
set default-chanmode "nt"
set default-stopnethack-mode 0
set default-revenge-mode 0
set default-ban-type 3
set default-ban-time 120
set default-exempt-time 60
set default-invite-time 60

set default-chanset {
        -autoop         -autovoice
        -bitch          +cycle
        +dontkickops    +dynamicbans
        +dynamicexempts +dynamicinvites
        -enforcebans    +greet
        -inactive       -nodesynch
        -protectfriends +protectops
        -revenge        -revengebot
        -secret         -seen
        +shared         -statuslog
        +userbans       +userexempts
        +userinvites    -protecthalfops
        -autohalfop     -static

set msg-rate 2
set keep-nick 1
set quiet-reject 1
set lowercase-ctcp 0
set answer-ctcp 3
set flood-msg 5:60
set flood-ctcp 3:60
set server-cycle-wait 60
set server-timeout 60
set check-stoned 1
set serverror-quit 1
set max-queue-msg 300
set trigger-on-ignore 0
set exclusive-binds 0
set double-mode 1
set double-server 1
set double-help 1
set optimize-kicks 1
set stack-limit 4

loadmodule ctcp
set ctcp-mode 0
loadmodule irc
set bounce-bans 0
set bounce-exempts 0
set bounce-invites 0
set bounce-modes 0
set learn-users 0
set wait-split 600
set wait-info 180
set mode-buf-length 200

unbind msg - ident *msg:ident
unbind msg - addhost *msg:addhost

set opchars "@"
set no-chanrec-info 0
set prevent-mixing 1
set max-dloads 3
set dcc-block 0
set copy-to-tmp 1
set xfer-timeout 30
set share-compressed 1
set files-path "/home/mydir/filesys"
set incoming-path "/home/mydir/filesys/incoming"
set upload-to-pwd 0
set filedb-path ""
set max-file-users 20
set max-filesize 1024
loadmodule notes
set notefile "LamestBot.notes"
set max-notes 50
set note-life 60
set allow-fwd 0
set notify-users 0
set notify-onjoin 1

if {[file exists aclocal.m4]} { die {You are attempting to run Eggdrop from the source directory. Please finish installing Eggdrop by running "make install" and run it from the install location.} }

loadmodule console
set console-autosave 1
set force-channel 0
set info-party 0
loadmodule uptime

source scripts/alltools.tcl
source scripts/action.fix.tcl
source scripts/dccwhois.tcl
source scripts/userinfo.tcl