diff --git a/roles/viperserv/eggdrop/config.sls b/roles/viperserv/eggdrop/config.sls
index 7b59ea1..f9e22e2 100644
--- a/roles/viperserv/eggdrop/config.sls
+++ b/roles/viperserv/eggdrop/config.sls
@@ -1,89 +1,90 @@
 #   -------------------------------------------------------------
 #   Salt — Deploy eggdrop park
 #   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 #   Project:        Nasqueron
 #   Created:        2017-11-14
 #   License:        Trivial work, not eligible to copyright
 #   -------------------------------------------------------------
 
 #   -------------------------------------------------------------
 #   Directory for configuration
 #
 #   Each bot gets a directory to store userlist, chanlist, motd,
 #   and specific configuration file.
 #   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
 {% for botname, bot in pillar['viperserv_bots'].items() %}
 
 /srv/viperserv/{{ botname }}:
   file.directory:
     - user: {{ bot['runas'] | default('viperserv') }}
     - group: nasqueron-irc
     - dir_mode: 770
 
 {% endfor %}
 
 #   -------------------------------------------------------------
 #   Logs
 #   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
 {% for botname, bot in pillar['viperserv_bots'].items() %}
 
 /srv/viperserv/logs/{{ botname }}.log:
   file.managed:
     - user: {{ bot['runas'] | default('viperserv') }}
     - group: nasqueron-irc
     - mode: 660
     - replace: False
 {% endfor %}
 
 #   -------------------------------------------------------------
 #   Configuration files
 #   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
 /srv/viperserv/core.conf:
   file.managed:
     - source: salt://roles/viperserv/eggdrop/files/eggdrop-core.conf
     - user: viperserv
     - group: nasqueron-irc
 
 /srv/viperserv/.credentials:
   file.managed:
     - source: salt://roles/viperserv/eggdrop/files/dot.credentials
     - user: viperserv
     - group: nasqueron-irc
     - replace: False
     - mode: 660
 
 {% for botname, bot in pillar['viperserv_bots'].items() %}
 
 /srv/viperserv/{{ botname }}/eggdrop.conf:
   file.managed:
     - source: salt://roles/viperserv/eggdrop/files/eggdrop-bot.conf
     - user: {{ bot['runas'] | default('viperserv') }}
     - group: nasqueron-irc
     - mode: 755
     - template: jinja
     - context:
         botname: {{ botname }}
         realname: {{ bot['realname'] | default(botname) }}
         scripts: {{ bot['scripts'] }}
         modules: {{ bot['modules'] | default([]) }}
+        runas: {{ bot['runas'] | default('viperserv') }}
 
 /srv/viperserv/{{ botname }}/motd:
   file.managed:
     - source: salt://roles/viperserv/eggdrop/files/motd/{{ botname }}
     - user: {{ bot['runas'] | default('viperserv') }}
     - group: nasqueron-irc
 
 /srv/viperserv/{{ botname }}/banner:
   file.managed:
     - source: salt://roles/viperserv/eggdrop/files/banner
     - user: {{ bot['runas'] | default('viperserv') }}
     - group: nasqueron-irc
     - template: jinja
     - context:
         bot: {{ botname }}
         server: {{ grains['id'] }}
 
 {% endfor %}
diff --git a/roles/viperserv/eggdrop/files/eggdrop-bot.conf b/roles/viperserv/eggdrop/files/eggdrop-bot.conf
index 81be194..b4634e0 100755
--- a/roles/viperserv/eggdrop/files/eggdrop-bot.conf
+++ b/roles/viperserv/eggdrop/files/eggdrop-bot.conf
@@ -1,79 +1,81 @@
 #!/usr/bin/env eggdrop
 
 #   -------------------------------------------------------------
 #   Eggdrop configuration file
 #   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 #   License:        Trivial work, not eligible to copyright
 #   Source file:    roles/viperserv/eggdrop/files/eggdrop-bot.conf
 #   Pillar file:    pillar/viperserv/bots.sls
 #   -------------------------------------------------------------
 #
 #   <auto-generated>
 #       This file is managed by our rOPS SaltStack repository.
 #
 #       Changes to this file may cause incorrect behavior
 #       and will be lost if the state is redeployed.
 #   </auto-generated>
 #
 #    _    ___                 _____
 #   | |  / (_)___  ___  _____/ ___/___  ______   __
 #   | | / / / __ \/ _ \/ ___/\__ \/ _ \/ ___/ | / /
 #   | |/ / / /_/ /  __/ /   ___/ /  __/ /   | |/ /
 #   |___/_/ .___/\___/_/   /____/\___/_/    |___/
 #        /_/
 #
 #                      [ 1993 technology for 2017 hackers ]
 #
 #   -------------------------------------------------------------
 
 #   -------------------------------------------------------------
 #   Settings for {{ botname }}
 #   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
+set runas {{ runas }}
+
 set username {{ botname }}
 set nick $username
 set altnick {{ botname }}`
 set realname "{{ realname }}"
 
 set vhost6 viperserv.nasqueron.org
 set listen-addr 2001:470:1f13:9e1:0:c0ff:ee:7
 set prefer-ipv6 1
 
 set network freenode
 set net-type 5
 set servers {
     chat.freenode.net:+6697
 }
 
 # Main eggdrop settings common to all ViperServ bots
 source core.conf
 
 #   -------------------------------------------------------------
 #   MySQL
 #   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
 load lib/fbsql.so
 source .credentials
 
 sql  connect  $sql(host) $sql(user) $sql(pass)
 sql2 connect  $sql(host) $sql(user) $sql(pass)
 sql  selectdb $sql(database)
 sql2 selectdb $sql(database)
 
 #   -------------------------------------------------------------
 #   Eggdrop modules
 #   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 {% for module in modules %}
 loadmodule {{ module }}{% endfor %}
 
 #   -------------------------------------------------------------
 #   Scripts
 #
 #   These scripts are provided by the rVIPER distribution.
 #   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
 source scripts/Core.tcl
 source scripts/Tech.tcl
 {% for script in scripts %}
 source scripts/{{ script }}{% endfor %}
 source scripts/vendor/action.fix.tcl
diff --git a/roles/viperserv/eggdrop/files/eggdrop-core.conf b/roles/viperserv/eggdrop/files/eggdrop-core.conf
index b2fb864..6eea868 100644
--- a/roles/viperserv/eggdrop/files/eggdrop-core.conf
+++ b/roles/viperserv/eggdrop/files/eggdrop-core.conf
@@ -1,1452 +1,1452 @@
 #   -------------------------------------------------------------
 #   Eggdrop configuration file
 #   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 #   License:        Trivial work, not eligible to copyright
 #   Source file:    roles/viperserv/eggdrop/files/eggdrop-core.conf
 #   -------------------------------------------------------------
 #
 #   <auto-generated>
 #       This file is managed by our rOPS SaltStack repository.
 #
 #       Changes to this file may cause incorrect behavior
 #       and will be lost if the state is redeployed.
 #   </auto-generated>
 #
 #    _    ___                 _____
 #   | |  / (_)___  ___  _____/ ___/___  ______   __
 #   | | / / / __ \/ _ \/ ___/\__ \/ _ \/ ___/ | / /
 #   | |/ / / /_/ /  __/ /   ___/ /  __/ /   | |/ /
 #   |___/_/ .___/\___/_/   /____/\___/_/    |___/
 #        /_/
 #
 #                      [ 1993 technology for 2017 hackers ]
 #
 #   -------------------------------------------------------------
 
 ##### BASIC SETTINGS #####
 
 # This setting defines which contact person should be shown in .status,
 # /msg help, and other places. You really should include this information.
 set admin "Dereckson <email: dereckson@espace-win.org>"
 
 # 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 "freenode"
 
 # This setting defines which timezone is your bot in. It's used for internal
 # routines as well as for logfile timestamping and scripting purposes.
 # The timezone string specifies the name of the timezone and must be three
 # or more alphabetic characters. For example, Central European Time(UTC+1)
 # should be "CET".
 set timezone "UTC"
 
 # The offset setting specifies the time value to be added to the local
 # time to get Coordinated Universal Time (UTC aka GMT). The offset is
 # positive if the local timezone is west of the Prime Meridian and
 # negative if it is east. The value (in hours) must be between -23 and
 # 23. For example, if the timezone is UTC+1, the offset is -1.
 set offset "0"
 
 # If you don't want to use the timezone setting for scripting purposes only,
 # but instead everywhere possible, un-comment the following line.
 set env(TZ) "$timezone$offset"
 
 ############################################################################
 # 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"
 
 # 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"
 
 
 ##### LOG FILES #####
 
 # Eggdrop is capable of logging various things, from channel chatter to
 # commands people use on the bot and file transfers. Logfiles are normally
 # kept for 24 hours. Afterwards, they will be renamed to "(logfile).yesterday".
 # After 48 hours, they will be overwritten by the logfile of the next day.
 #
 # Events are logged by certain categories. This way, you can specify
 # exactly what kind of events you want sent to various logfiles.
 #
 # Logfile flags:
 #   b - information about bot linking and userfile sharing
 #   c - commands
 #   d - misc debug information
 #   h - raw share traffic
 #   j - joins, parts, quits, topic changes, and netsplits on the channel
 #   k - kicks, bans, and mode changes on the channel
 #   m - private msgs, notices and ctcps to the bot
 #   o - misc info, errors, etc (IMPORTANT STUFF)
 #   p - public text on the channel
 #   r - raw incoming server traffic
 #   s - server connects, disconnects, and notices
 #   t - raw botnet traffic
 #   v - raw outgoing server traffic
 #   w - wallops (make sure the bot sets +w in init-server)
 #   x - file transfers and file-area commands
 #
 # Note that modes d, h, r, t, and v can fill disk quotas quickly. There are
 # also eight user-defined levels (1-8) which can be used by Tcl scripts.
 #
 # Each logfile belongs to a certain channel. Events of type 'k', 'j', and 'p'
 # are logged to whatever channel they happened on. Most other events are
 # currently logged to every channel. You can make a logfile belong to all
 # channels by assigning it to channel "*".
 
 #  This is the maximum number of concurrent logfiles that can be opened
 #  for writing at one time. At most, this value should be the maximum
 #  number of channels you expect to create log files for. There is no
 #  value for 'infinity'; very few cases should ever require more than 20.
 #  A decrease to this value while running will require a restart (not rehash)
 #  of the bot. However, don't decrease it below 5.
 set max-logs 20
 
 # This is the maximum size of your logfiles. Set it to 0 to disable.
 # This value is in kilobytes, so '550' would mean cycle logs when it
 # reaches the size of 550 kilobytes. Note that this only works if you
 # have keep-all-logs 0 (OFF).
 set max-logsize 0
 
 # This could be good if you have had problem with the logfile filling
 # your quota/hard disk or if you log +p and publish it to the web and
 # need more up-to-date info. Note that this setting might increase the
 # CPU usage of your bot (on the other hand it will decrease your mem usage).
 set quick-logs 0
 
 # This setting allows you the logging of raw incoming server traffic via
 # console/log flag 'r', raw outgoing server traffic via console/log mode 'v',
 # raw botnet traffic via console/log mode 't', and raw share traffic via
 # console/log mode 'h'. These flags can create a large security hole,
 # allowing people to see user passwords. This is now restricted to +n users
 # only. Please choose your owners with care.
 set raw-log 0
 
 # This creates a logfile named eggdrop.log containing private msgs/ctcps,
 # commands, errors, and misc. info from any channel.
 logfile mco * "logs/$username.log"
 
 # This creates a logfile named lamest.log containing joins, parts,
 # netsplits, kicks, bans, mode changes, and public chat on the
 # channel #lamest.
 #logfile jpk #lamest "logs/lamest.log"
 
 # Use this feature to timestamp entries in the log file.
 set log-time 1
 
 # Set the following to the timestamp for the logfile entries. Popular times
 # might be "[%H:%M]" (hour, min), or "[%H:%M:%S]" (hour, min, sec).
 # Read `man strftime' for more formatting options.  Keep it below 32 chars.
 set timestamp-format {[%H:%M:%S]}
 
 # If you want to keep your logfiles forever, turn this setting on. All
 # logfiles will get suffix ".[day, 2 digits][month, 3 letters][year, 4 digits]".
 # Note that your quota/hard-disk might be filled by this, so check your
 # logfiles often and download them.
 set keep-all-logs 0
 
 # If keep-all-logs is 1, this setting will define the suffix of the logfiles.
 # The default will result in a suffix like "04May2000". "%Y%m%d" will produce
 # the often used yyyymmdd format. Read the strftime manpages for more options.
 # NOTE: On systems which don't support strftime, the default format will
 # be used _always_.
 set logfile-suffix ".%d%b%Y"
 
 # You can specify when Eggdrop should switch logfiles and start fresh. You
 # must use military time for this setting. 300 is the default, and describes
 # 03:00 (AM).
 set switch-logfiles-at 300
 
 # "Writing user file..." and "Writing channel file..." messages won't be logged
 # anymore if this option is enabled. If you set it to 2, the "Backing up user
 # file..." and "Backing up channel file..." messages will also not be logged.
 # In addition to this, you can disable the "Switching logfiles..." and the new
 # date message at midnight, by setting this to 3.
 set quiet-save 0
 
 
 ##### CONSOLE #####
 
 # This is the default console mode. It uses the same event flags as the log
 # files do. The console channel is automatically set to your "primary" channel,
 # which is set in the modules section of the config file. Masters can change
 # their console channel and modes with the '.console' command.
 
 set console "mkcobxs"
 
 
 ##### FILES AND DIRECTORIES #####
 
 # Specify here the filename your userfile should be saved as.
 set userfile "$username/user"
 
 # Specify here the filename Eggdrop will save its pid to. If no pidfile is
 # specified, pid.(botnet-nick) will be used.
-set pidfile $env(HOME)/[string tolower $username].pid
+set pidfile /var/run/$runas/[string tolower $username].pid
 
 # Specify here where Eggdrop should look for help files. Don't modify this
 # setting unless you know what you're doing!
 set help-path "help/"
 
 # Specify here where Eggdrop should look for text files. This is used for
 # certain Tcl and DCC commands.
 set text-path "$username/"
 
 # The MOTD (Message Of The day) is displayed when people dcc chat or telnet
 # to the bot. Look at doc/TEXT-SUBSTITUTIONS for options.
 set motd "$username/motd"
 
 # This banner will be displayed on telnet connections. Look at
 # doc/TEXT-SUBSTITUTIONS for options.
 set telnet-banner "$username/banner"
 
 # This specifies what permissions the user, channel, and notes files should
 # be set to. The octal values are the same as for the chmod system command.
 #
 # To remind you:
 #
 #          u  g  o           u  g  o           u  g  o
 #    0600  rw-------   0400  r--------   0200  -w-------    u - user
 #    0660  rw-rw----   0440  r--r-----   0220  -w--w----    g - group
 #    0666  rw-rw-rw-   0444  r--r--r--   0222  -w--w--w-    o - others
 #
 # Note that the default 0600 is the most secure one and should only be changed
 # if you need your files for shell scripting or other external applications.
 set userfile-perm 0660
 
 
 ##### BOTNET/DCC/TELNET #####
 
 # Settings in this section should be unimportant for you until you deal
 # with botnets (multiple Eggdrops connected together to maximize efficiency).
 # You should read doc/BOTNET before modifying these settings.
 
 # If you want to use a different nickname on the botnet than you use on
 # IRC (i.e. if you're on an un-trusted botnet), un-comment the next line
 # and set it to the nick you would like to use.
 #set botnet-nick "LlamaBot"
 
 # This opens a telnet port by which you and other bots can interact with the
 # Eggdrop by telneting in.
 #
 # There are more options for the listen command in doc/tcl-commands.doc. Note
 # that if you are running more than one bot on the same machine, you will want
 # to space the telnet ports at LEAST 5 apart, although 10 is even better.
 #
 # Valid ports are typically anything between 1025 and 65535 assuming the
 # port is not already in use.
 #
 # If you would like the bot to listen for users and bots in separate ports,
 # use the following format:
 #
 #   listen 3333 bots
 #   listen 4444 users
 #
 # If you wish to use only one port, use this format:
 #
 #   listen 3333 all
 #
 # You can setup a SSL port by prepending a plus sign to it:
 #
 #   listen +5555 all
 #
 # You need to un-comment this line and change the port number in order to open
 # the listen port. You should not keep this set to 3333.
 #listen 3333 all
 
 # This setting defines whether or not people can boot users on the Eggdrop
 # from other bots in your botnet. Valid settings are:
 #   0 - allow *no* outside boots
 #   1 - allow boots from sharebots
 #   2 - allow any boots
 set remote-boots 2
 
 # This setting allows remote bots to tell your Eggdrop to unlink from
 # share bots.
 set share-unlinks 1
 
 # This setting will drop telnet connections not matching a known host.
 set protect-telnet 0
 
 # This setting will make the bot ignore DCC chat requests which appear to
 # have bogus information on the grounds that the user may have been trying
 # to make the bot connect to somewhere that will get it into trouble, or
 # that the user has a broken client, in which case the connect wouldn't work
 # anyway.
 set dcc-sanitycheck 0
 
 # This setting defines the time in seconds the bot should wait for ident reply
 # before the lookup fails. The default ident on timeout is 'telnet'. A value of
 # 0 disables the ident lookup entirely.
 set ident-timeout 5
 
 # Define here whether or not a +o user still needs the +p flag to dcc the bot.
 set require-p 1
 
 # If you want people allow to telnet in and type 'NEW' to become a new user,
 # set this to 1. This is similar to the 'hello' msg command. The protect-telnet
 # setting must be set to 0 to use this.
 set open-telnets 0
 
 # If you don't want Eggdrop to identify itself as an eggdrop on a telnet
 # connection, set this setting to 1. Eggdrop will display 'Nickname' instead.
 set stealth-telnets 0
 
 # If you want Eggdrop to display a banner when telneting in, set this setting
 # to 1. The telnet banner is set by 'set telnet-banner'.
 set use-telnet-banner 1
 
 # This setting defines a time in seconds that the bot should wait before
 # a dcc chat, telnet, or relay connection times out.
 set connect-timeout 15
 
 # Specify here the number of lines to accept from a user on the partyline
 # within 1 second before they are considered to be flooding and therefore
 # get booted.
 set dcc-flood-thr 3
 
 # Define here how many telnet connection attempts in how many seconds from
 # the same host constitute a flood. The correct format is Attempts:Seconds.
 set telnet-flood 5:60
 
 # If you want telnet-flood to apply even to +f users, set this setting to 1.
 set paranoid-telnet-flood 1
 
 # Set here the amount of seconds before giving up on hostname/address
 # lookup (you might want to increase this if you are on a slow network).
 set resolve-timeout 7
 
 
 ##### SSL SETTINGS #####
 
 # Settings in this section take effect when eggdrop is compiled with TLS
 # support.
 #
 # IMPORTANT: The following two settings MUST be uncommented in order to
 # use SSL functionality!
 
 # File containing your private key, needed for the SSL certificate
 # (see below). You can create one issuing the following command:
 #
 #   openssl genrsa -out eggdrop.key 4096
 #
 # It will create a 4096 bit RSA key, strong enough for eggdrop.
 # For your convenience, you can type 'make sslcert' after 'make install'
 # and you'll get a key and a certificate in your eggdrop directory.
 # If you installed to a non-default location, use 'make sslcert DEST=...'
 #
 # THIS IS REQUIRED if you intend to use this bot as a hub for SSL hubs/
 # listen ports, secure file transfer and /ctcp botnick schat
 #set ssl-privatekey "eggdrop.key"
 
 # Specify the filename where your SSL certificate is located. If you
 # don't set this, eggdrop will not be able to act as a server in SSL
 # connections, as with most ciphers a certificate and a private key
 # are required on the server side. Must be in PEM format.
 # If you don't have one, you can create it using the following command:
 #
 #   openssl req -new -key eggdrop.key -x509 -out eggdrop.crt -days 365
 #
 # For your convenience, you can type 'make sslcert' after 'make install'
 # and you'll get a key and a certificate in your eggdrop directory.
 # If you installed to a non-default location, use 'make sslcert DEST=...'
 #
 # THIS IS REQUIRED if you intend to use this bot as a hub for SSL hubs/
 # listen ports, secure file transfer and /ctcp botnick schat
 #set ssl-certificate "eggdrop.crt"
 
 # Sets the maximum depth for the certificate chain verification that will
 # be allowed for ssl. When certificate verification is enabled, any chain
 # exceeding this depth will fail verification.
 #set ssl-verify-depth 9
 
 # Specify the location at which CA certificates for verification purposes
 # are located. These certificates are trusted. If you don't set this,
 # certificate verification will not work.
 set ssl-capath "/etc/ssl/"
 #set ssl-cafile ""
 
 # Specify the list of ciphers (in order of preference) allowed for use with
 # ssl. The cipher list is one or more cipher strings separated by colons,
 # commas or spaces. Unavailable ciphers are silently ignored unless no useable
 # cipher could be found. For the list of possible cipher strings and their
 # meanings, please refer to the ciphers(1) manual.
 # Note: if you set this, the value replaces any ciphers OpenSSL might use by
 # default. To include the default ciphers, you can put DEFAULT as a cipher
 # string in the list.
 # For example:
 #
 #   set ssl-ciphers "DEFAULT ADH"
 #
 # This will make eggdrop allow the default OpenSSL selection plus anonymous
 # DH ciphers.
 #
 #   set ssl-ciphers "ALL"
 #
 # This will make eggdrop allow all ciphers supported by OpenSSL, in a
 # reasonable order.
 #set ssl-ciphers ""
 
 # Enable certificate authorization. Set to 1 to allow users and bots to
 # identify automatically by their certificate fingerprints. Setting it
 # to 2 to will force fingerprint logins. With a value of 2, users without
 # a fingerprint set or with a certificate UID not matching their handle
 # won't be allowed to login on SSL enabled telnet ports. Fingerprints
 # must be set in advance with the .fprint and .chfinger commands.
 # NOTE: this setting has no effect on plain-text ports.
 #set ssl-cert-auth 0
 
 # You can control SSL certificate verification using the following variables.
 # All of them are flag-based. You can set them by adding together the numbers
 # for all exceptions you want to enable. By default certificate verification
 # is disabled and all certificates are assumed to be valid. The numbers are
 # the following:
 #
 # Enable certificate verification - 1
 # Allow self-signed certificates - 2
 # Don't check peer common or alt names - 4
 # Allow expired certificates - 8
 # Allow certificates which are not valid yet - 16
 # Allow revoked certificates - 32
 # A value of 0 disables verification.
 
 # Control certificate verification for DCC chats (only /dcc chat botnick)
 #set ssl-verify-dcc 0
 
 # Control certificate verification for linking to hubs
 #set ssl-verify-bots 0
 
 # Control cerfificate verification for SSL listening ports. This includes
 # leaf bots connecting, users telneting in and /ctcp bot chat.
 #set ssl-verify-clients 0
 
 
 ##### MORE ADVANCED SETTINGS #####
 
 # Set this to your socks host if your Eggdrop sits behind a firewall. If
 # you use a Sun "telnet passthru" firewall, prefix the host with a '!'.
 #set firewall "!sun-barr.ebay:3666"
 
 # If you have a NAT firewall (you box has an IP in one of the following
 # ranges: 192.168.0.0-192.168.255.255, 172.16.0.0-172.31.255.255,
 # 10.0.0.0-10.255.255.255 and your firewall transparently changes your
 # address to a unique address for your box) or you have IP masquerading
 # between you and the rest of the world, and /dcc chat, /ctcp chat or
 # userfile sharing aren't working, enter your outside IP here. This IP
 # is used for transfers and CTCP replies only, and is different than the
 # vhost4/6 and listen-addr settings. You likely still need to set them.
 #set nat-ip "127.0.0.1"
 
 # If you want all dcc file transfers to use a particular portrange either
 # because you're behind a firewall, or for other security reasons, set it
 # here.
 #set reserved-portrange 2010:2020
 
 # Set the time in minutes that temporary ignores should last.
 set ignore-time 15
 
 # Define here what Eggdrop considers 'hourly'. All calls to it, including such
 # things as note notifying or userfile saving, are affected by this.
 # For example:
 #
 #   set hourly-updates 15
 #
 # The bot will save its userfile 15 minutes past every hour.
 set hourly-updates 00
 
 # Un-comment the next line and set the list of owners of the bot.
 # You NEED to change this setting.
 # This is a list of handles -- usernames in the bot.
 set owner "dereckson"
 
 # Who should a note be sent to when new users are learned?
 set notify-newusers "$owner"
 
 # Enter the flags that all new users should get by default. See '.help whois'
 # on the partyline for a list of flags and their descriptions.
 set default-flags "hp"
 
 # Enter all user-defined fields that should be displayed in a '.whois'.
 # This will only be shown if the user has one of these extra fields.
 # You might prefer to comment this out and use the userinfo1.0.tcl script
 # which provides commands for changing all of these.
 set whois-fields "url birthday"
 
 # Uncomment these two lines if you wish to disable the .tcl and .set commands.
 # If you select your owners wisely, you should be okay enabling these.
 #unbind dcc n tcl *dcc:tcl
 #unbind dcc n set *dcc:set
 
 # If you enable this setting, only permanent owners (owner setting) will be
 # able to use .tcl and .set. Moreover, if you want only let permanent owners
 # use .dump, then set this to 2.
 # WARNING: setting this to 0 is a security risk, don't do it unless you trust
 # your owners enough to give them shell access to the account the bot is
 # running on.
 set must-be-owner 1
 
 # Comment out this line to add the 'simul' partyline command (owners can
 # manipulate other people on the party line). Please select owners wisely
 # and use this command ethically!
 unbind dcc n simul *dcc:simul
 
 # Set here the maximum number of socket connections you will allow. You can
 # increase this later, but never decrease it below current usage.
 # If you're using Tcl threads, this is a per-thread maximum.
 set max-socks 100
 
 # Enable this setting if you want +d & +k users to use commands bound as -|-.
 set allow-dk-cmds 1
 
 # If your Eggdrop rejects bots that actually have already disconnected from
 # another hub, but the disconnect information has not yet spread over the
 # botnet due to lag, use this setting. The bot will wait dupwait-timeout
 # seconds before it checks again and then finally reject the bot.
 set dupwait-timeout 5
 
 # Set this to 0 if you want the bot to strip '~+-^=' characters from user@hosts
 # before matching them.
 # This setting is currently kept for compatibility, but will be removed from
 # the next release. Please leave it set to 1 to avoid problems with your user
 # files in the future.
 set strict-host 1
 
 # Enable cidr support for b/e/I modes. This means the bot will understand
 # and match modes in cidr notation, and will be able to put and enforce such
 # bans or unban itself, if banned with a cidr mask.
 # Do NOT set this, if your network/server does not support cidr!
 set cidr-support 0
 
 ##### MODULES #####
 
 # Below are various settings for the modules included with Eggdrop.
 # PLEASE READ AND EDIT THEM CAREFULLY, even if you're an old hand at
 # Eggdrop, things change.
 
 # This path specifies the path were Eggdrop should look for its modules.
 # If you run the bot from the compilation directory, you will want to set
 # this to "". If you use 'make install' (like all good kiddies do ;), this
 # is a fine default. Otherwise, use your head :)
 set mod-path "/opt/eggdrop/modules/"
 
 
 #### BLOWFISH MODULE ####
 
 # IF YOU DON'T READ THIS YOU MAY RENDER YOUR USERFILE USELESS LATER
 # Eggdrop encrypts its userfile, so users can have secure passwords.
 # Please note that when you change your encryption method later (i.e.
 # using other modules like a md5 module), you can't use your current
 # userfile anymore. Eggdrop will not start without an encryption module.
 loadmodule blowfish
 
 # Specify whether to use ECB or CBC operation modes. ECB is legacy for
 # the Eggdrop blowfish module and is used by default. CBC is more recent
 # regarded as more secure than ECB. You may choose either, but an Eggdrop
 # using CBC to send encrypted data cannot be decrypted by an Eggdrop using
 # ECB. This setting currently defaults to ECB for compatibility reasons,
 # but will transition to using CBC by default in v1.9.0. To explicitly
 # state which mode is used, the following setting may be set to either
 # "ecb" or "cbc".
 set blowfish-use-mode ecb
 
 
 #### DNS MODULE ####
 
 # This module provides asynchronous dns support. This will avoid long
 # periods where the bot just hangs there, waiting for a hostname to
 # resolve, which will often let it timeout on all other connections.
 loadmodule dns
 
 # In case your bot has trouble finding dns servers or you want to use
 # specific ones, you can set them here. The value is a list of dns servers.
 # The order doesn't matter. You can also specify a non-standard port.
 # The default is to use the system specified dns servers. You don't need to
 # modify this setting normally.
 #set dns-servers "8.8.8.8 8.8.4.4"
 
 # Specify how long should the DNS module cache replies at maximum. The value
 # must be in seconds.
 # Note that it will respect the TTL of the reply and this is just an upper
 # boundary.
 set dns-cache 86400
 
 # Specify how long should the DNS module cache negative replies (NXDOMAIN,
 # DNS Lookup failed). The value must be in seconds.
 set dns-negcache 600
 
 # How many times should the DNS module resend the query for a given domain
 # if it receives no reply?
 set dns-maxsends 4
 
 # Specify how long should the DNS module wait for a reply before resending the
 # query. The value must be in seconds.
 set dns-retrydelay 3
 
 #### CHANNELS MODULE ####
 
 # This module provides channel related support for the bot. Without it,
 # you won't be able to make the bot join a channel or save channel
 # specific userfile information.
 loadmodule channels
 
 # Enter here the filename where dynamic channel settings are stored.
 set chanfile "$username/chan"
 
 # Set this setting to 1 if you want your bot to expire bans/exempts/invites set
 # by other opped bots on the channel.
 set force-expire 0
 
 # Set this setting to 1 if you want your bot to share user greets with other
 # bots on the channel if sharing user data.
 set share-greet 0
 
 # Set this setting to 1 if you want to allow users to store an info line.
 set use-info 1
 
 # Set this setting to 1 if you want to allow both +p and +s channel modes
 # to be enforced at the same time by the chanmode channel setting.
 # Make sure your server supports +ps mixing or you may get endless mode
 # floods.
 set allow-ps 0
 
 # The following settings are used as default values when you .+chan #chan or .tcl
 # channel add #chan. Look below for explanation of every option.
 
 set default-flood-chan 0:0
 set default-flood-deop 0:0
 set default-flood-kick 0:0
 set default-flood-join 0:0
 set default-flood-ctcp 0:0
 set default-flood-nick 0:0
 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
 }
 
 # chanmode +/-<modes>
 #    This setting makes the bot enforce channel modes. It will always add
 #    the +<modes> and remove the -<modes> modes.
 #
 # idle-kick 0
 #    This setting will make the bot check every minute for idle
 #    users. Set this to 0 to disable idle check.
 #
 # stopnethack-mode 0
 #    This setting will make the bot de-op anyone who enters the channel
 #    with serverops. There are seven different modes for this settings:
 #      0 turn off
 #      1 isoptest (allow serverop if registered op)
 #      2 wasoptest (allow serverop if op before split)
 #      3 allow serverop if isop or wasop
 #      4 allow serverop if isop and wasop.
 #      5 If the channel is -bitch, see stopnethack-mode 3
 #        If the channel is +bitch, see stopnethack-mode 1
 #      6 If the channel is -bitch, see stopnethack-mode 2
 #        If the channel is +bitch, see stopnethack-mode 4
 #
 # revenge-mode 0
 #   This settings defines how the bot should punish bad users when
 #   revenging. There are four possible settings:
 #     0 Deop the user.
 #     1 Deop the user and give them the +d flag for the channel.
 #     2 Deop the user, give them the +d flag for the channel, and kick them.
 #     3 Deop the user, give them the +d flag for the channel, kick, and ban them.
 #
 # ban-type 3
 #   This setting defines what type of bans should eggdrop place for +k users or
 #   when revenge-mode is 3.
 #   Available types are:
 #     0 *!user@host
 #     1 *!*user@host
 #     2 *!*@host
 #     3 *!*user@*.host
 #     4 *!*@*.host
 #     5 nick!user@host
 #     6 nick!*user@host
 #     7 nick!*@host
 #     8 nick!*user@*.host
 #     9 nick!*@*.host
 #   You can also specify types from 10 to 19 which correspond to types
 #   0 to 9, but instead of using a * wildcard to replace portions of the
 #   host, only numbers in hostnames are replaced with the '?' wildcard.
 #   Same is valid for types 20-29, but instead of '?', the '*' wildcard
 #   will be used. Types 30-39 set the host to '*'.
 #
 # ban-time 120
 #   Set here how long temporary bans will last (in minutes). If you
 #   set this setting to 0, the bot will never remove them.
 #
 # exempt-time 60
 #   Set here how long temporary exempts will last (in minutes). If you
 #   set this setting to 0, the bot will never remove them. The bot will
 #   check the exempts every X minutes, but will not remove the exempt if
 #   a ban is set on the channel that matches that exempt. Once the ban is
 #   removed, then the exempt will be removed the next time the bot checks.
 #   Please note that this is an IRCnet feature.
 #
 # invite-time 60
 #   Set here how long temporary invites will last (in minutes). If you
 #   set this setting to 0, the bot will never remove them. The bot will
 #   check the invites every X minutes, but will not remove the invite if
 #   a channel is set to +i. Once the channel is -i then the invite will be
 #   removed the next time the bot checks. Please note that this is an IRCnet
 #   feature.
 #
 # aop-delay (minimum:maximum)
 # This is used for autoop, autohalfop, autovoice. If an op or voice joins a
 # channel while another op or voice is pending, the bot will attempt to put
 # both modes on one line.
 #   aop-delay 0   No delay is used.
 #   aop-delay X   An X second delay is used.
 #   aop-delay X:Y A random delay between X and Y is used.
 #
 # need-op { putserv "PRIVMSG #lamest :op me cos i'm lame!" }
 #    This setting will make the bot run the script enclosed in brackets
 #    if it does not have ops. This must be shorter than 120 characters.
 #    If you use scripts like getops.tcl or botnetop.tcl, you don't need
 #    to set this setting.
 #
 # need-invite { putserv "PRIVMSG #lamest :let me in!" }
 #    This setting will make the bot run the script enclosed in brackets
 #    if it needs an invite to the channel. This must be shorter than 120
 #    characters. If you use scripts like getops.tcl or botnetop.tcl, you
 #    don't need to set this setting.
 #
 # need-key { putserv "PRIVMSG #lamest :let me in!" }
 #    This setting will make the bot run the script enclosed in brackets
 #    if it needs the key to the channel. This must be shorter than 120
 #    characters. If you use scripts like getops.tcl or botnetop.tcl, you
 #    don't need to set this setting
 #
 # need-unban { putserv "PRIVMSG #lamest :let me in!" }
 #    This setting will make the bot run the script enclosed in brackets
 #    if it needs to be unbanned on the channel. This must be shorter than
 #    120 characters. If you use scripts like getops.tcl or botnetop.tcl,
 #    you don't need to set this setting
 #
 # need-limit { putserv "PRIVMSG #lamest :let me in!" }
 #    This setting will make the bot run the script enclosed in brackets
 #    if it needs the limit to be raised on the channel. This must be
 #    shorter than 120 characters. If you use scripts like getops.tcl or
 #    botnetop.tcl, you don't need to set this setting
 #
 # flood-chan 15:60
 #    Set here how many channel messages in how many seconds from one
 #    host constitutes a flood. Setting this to 0, 0:X or X:0 disables
 #    flood protection for the channel, where X is an integer >= 0.
 #
 # flood-deop 3:10
 #    Set here how many deops in how many seconds from one host constitutes
 #    a flood. Setting this to 0, 0:X or X:0 disables deop flood protection
 #    for the channel, where X is an integer >= 0.
 #
 # flood-kick 3:10
 #    Set here how many kicks in how many seconds from one host constitutes
 #    a flood. Setting this to 0, 0:X or X:0 disables kick flood protection
 #    for the channel, where X is an integer >= 0.
 #
 # flood-join 5:60
 #    Set here how many joins in how many seconds from one host constitutes
 #    a flood. Setting this to 0, 0:X or X:0 disables join flood protection
 #    for the channel, where X is an integer >= 0.
 #
 # flood-ctcp 3:60
 #    Set here how many channel ctcps in how many seconds from one host
 #    constitutes a flood. Setting this to 0, 0:X or X:0 disables ctcp flood
 #    protection for the channel, where X is an integer >= 0.
 #
 # flood-nick 5:60
 #    Set here how many nick changes in how many seconds from one host
 #    constitutes a flood. Setting this to 0, 0:X or X:0 disables nick flood
 #    protection for the channel, where X is an integer >= 0.
 #
 # A complete list of all available channel settings:
 #
 # enforcebans
 #    When a ban is set, kick people who are on the channel and match
 #    the ban?
 #
 # dynamicbans
 #    Only activate bans on the channel when necessary? This keeps
 #    the channel's ban list from getting excessively long. The bot
 #    still remembers every ban, but it only activates a ban on the
 #    channel when it sees someone join who matches that ban.
 #
 # userbans
 #    Allow bans to be made by users directly? If turned off, the bot
 #    will require all bans to be made through the bot's console.
 #
 # dynamicexempts
 #    Only activate exempts on the channel when necessary? This keeps
 #    the channel's exempt list from getting excessively long. The bot
 #    still remembers every exempt, but it only activates a exempt on
 #    the channel when it sees a ban set that matches the exempt. The
 #    exempt remains active on the channel for as long as the ban is
 #    still active.
 #
 # userexempts
 #    Allow exempts to be made by users directly? If turned off, the
 #    bot will require all exempts to be made through the bot's console.
 #
 # dynamicinvites
 #    Only activate invites on the channel when necessary? This keeps
 #    the channel's invite list from getting excessively long. The bot
 #    still remembers every invite, but the invites are only activated
 #    when the channel is set to invite only and a user joins after
 #    requesting an invite. Once set, the invite remains until the
 #    channel goes to -i.
 #
 # userinvites
 #    Allow invites to be made by users directly? If turned off, the
 #    bot will require all invites to be made through the bot's console.
 #
 # autoop
 #    Op users with the +o flag as soon as they join the channel?
 #    This is insecure and not recommended.
 #
 # autohalfop
 #    Halfop users with the +l flag as soon as they join the channel?
 #    This is insecure and not recommended.
 #
 # bitch
 #    Only let users with +o) flag be opped on the channel?
 #
 # greet
 #    Say a user's info line when they join the channel?
 #
 # protectops
 #    Re-op a user with the +o flag if they get deopped?
 #
 # protecthalfops
 #    Re-halfop a user with the +l flag if they get dehalfopped?
 #
 # protectfriends
 #    Re-op a user with the +f flag if they get deopped?
 #
 # statuslog
 #    Log the channel status line every 5 minutes? This shows the bot's
 #    status on the channel (op, voice, etc.), the channel's modes, and
 #    the total number of members, ops, voices, regular users, and +b,
 #    +e, and +I modes on the channel. A sample status line follows:
 #
 #      [01:40] @#lamest (+istn) : [m/1 o/1 v/4 n/7 b/1 e/5 I/7]
 #
 # revenge
 #    Remember people who deop/kick/ban the bot, valid ops, or friends
 #    and punish them? Users with the +f flag are exempt from revenge.
 #
 # revengebot
 #    This is similar to to the 'revenge' option, but it only triggers
 #    if a bot gets deopped, kicked or banned.
 #
 # autovoice
 #    Voice users with the +v flag when they join the channel?
 #
 # secret
 #    Prevent this channel from being listed on the botnet?
 #
 # shared
 #    Share channel-related user info for this channel?
 #
 # cycle
 #    Cycle the channel when it has no ops?
 #
 # dontkickops
 #    Do you want the bot not to be able to kick users who have the +o
 #    flag, letting them kick-flood for instance to protect the channel
 #    against clone attacks.
 #
 # inactive
 #    This prevents the bot from joining the channel (or makes it leave
 #    the channel if it is already there). It can be useful to make the
 #    bot leave a channel without losing its settings, channel-specific
 #    user flags, channel bans, and without affecting sharing.
 #
 # seen
 #    Respond to seen requests in the channel?  The seen module must be
 #    loaded for this to work.
 #
 # nodesynch
 #    Allow non-ops to perform channel modes? This can stop the bot from
 #    fighting with services such as ChanServ, or from kicking IRCops when
 #    setting channel modes without having ops.
 #
 # static
 #    Allow only permanent owners to remove the channel?
 
 # To add a channel to eggdrop, please enter the bot's partyline and type
 # .+chan #channel. Check also .help chanset and .help chaninfo.
 # You can still add a channel here and it will be saved if you have a
 # chanfile. We recommend you to use the partyline though.
 #
 #channel add #lamest
 
 
 #### SERVER MODULE ####
 
 # 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
 
 # Control certificate verification for irc servers. For a description of the
 # possible values, look at the SSL SETTINGS section above.
 #set ssl-verify-server 0
 
 # This is a Tcl script to be run immediately after connecting to a server.
 bind evnt - init-server evnt:init_server
 
 proc evnt:init_server {type} {
   global botnick
   putquick "MODE $botnick +i-ws"
 }
 
 # Set the default port which should be used if none is specified with
 # '.jump' or in 'set servers'.
 set default-port 6667
 
 # Number of seconds to wait between transmitting queued lines to the server.
 # Lower this value at your own risk.  ircd is known to start flood control
 # at 512 bytes/2 seconds.
 set msg-rate 2
 
 # This setting makes the bot try to get his original nickname back if its
 # primary nickname is already in use.
 set keep-nick 1
 
 
 # This setting makes the bot squelch the error message when rejecting a DCC
 # CHAT, SEND or message command. Normally, Eggdrop notifies the user that the
 # command has been rejected because they don't have access. Note that sometimes
 # IRC server operators detect bots that way.
 set quiet-reject 1
 
 # If you want your bot to answer lower case ctcp requests (non rfc-
 # compliant), set this setting to 1. mIRC will do this, most other
 # clients will not.
 set lowercase-ctcp 0
 
 # Set how many ctcps should be answered at once.
 set answer-ctcp 3
 
 # Set here how many msgs in how many seconds from one host constitutes
 # a flood. If you set this to 0:0, msg flood protection will be disabled.
 set flood-msg 5:60
 
 # Set here how many ctcps in how many seconds from one host constitutes
 # a flood. If you set this to 0:0, ctcp flood protection will be disabled.
 set flood-ctcp 3:60
 
 # This setting defines how long Eggdrop should wait before moving from one
 # server to another on disconnect. If you set 0 here, Eggdrop will not wait
 # at all and will connect instantly. Setting this too low could result in
 # your bot being K:Lined.
 set server-cycle-wait 60
 
 # Set here how long Eggdrop should wait for a response when connecting to a
 # server before giving up and moving on to next server.
 set server-timeout 60
 
 # Set this to 1 if Eggdrop should check for stoned servers? (where the
 # server connection has died, but Eggdrop hasn't been notified yet).
 set check-stoned 1
 
 # If you want your bot to exit the server if it receives an ERROR message,
 # set this to 1.
 set serverror-quit 1
 
 # Set here the maximum number of lines to queue to the server. If you're
 # going to dump large chunks of text to people over IRC, you will probably
 # want to raise this. 300 is fine for most people though.
 set max-queue-msg 300
 
 # If you want Eggdrop to trigger binds for ignored users, set this to 1.
 set trigger-on-ignore 0
 
 # This setting configures PUBM and MSGM binds to be exclusive of PUB and MSG
 # binds. This means if a MSGM bind with the mask "*help*" exists and is
 # triggered, any MSG bindings with "help" in their mask will not be
 # triggered. Don't enable this unless you know what you are doing!
 set exclusive-binds 0
 
 # Allow identical messages in the mode queue?
 set double-mode 1
 
 # Allow identical messages in the server queue?
 set double-server 1
 
 # Allow identical messages in the help queue?
 set double-help 1
 
 # This optimizes the kick queue. It also traces nick changes and parts in
 # the channel and changes the kick queue accordingly. There are three
 # different options for this setting:
 #   0 = Turn it off.
 #   1 = Optimize the kick queue by summarizing kicks.
 #   2 = Trace nick changes and parts on the channel and change the queue
 #       accordingly. For example, bot will not try to kick users who have
 #       already parted the channel.
 # ATTENTION: Setting 2 is very CPU intensive.
 set optimize-kicks 1
 
 # If your network supports more recipients per command then 1, you can
 # change this behavior here. Set this to the number of recipients per
 # command, or set this to 0 for unlimited.
 set stack-limit 4
 
 ### SERVER MODULE - OTHER NETWORKS (net-type 5) ###
 
 # This settings defines how umode +r is understood by Eggdrop. Some networks
 # use +r to indicate a restricted connection. If this is your case, and you
 # want your bot to leave restricted servers and jump to the next server on its
 # list, then set it to 1.
 #set check-mode-r 1
 
 # This setting allows you to specify the maximum nick-length supported by your
 # network. The default setting is 9. The maximum supported length by Eggdrop
 # is 32.
 if {$network == "freenode"} {
     set nick-len 16
 }
 
 #### CTCP MODULE ####
 
 # This module provides the normal ctcp replies that you'd expect.
 # Without it loaded, CTCP CHAT will not work. The server module
 # is required for this module to function.
 loadmodule ctcp
 
 # Set here how the ctcp module should answer ctcps. There are 3 possible
 # operating modes:
 #   0: Normal behavior is used.
 #   1: The bot ignores all ctcps, except for CHAT and PING requests
 #      by users with the +o flag.
 #   2: Normal behavior is used, however the bot will not answer more
 #      than X ctcps in Y seconds (defined by 'set flood-ctcp').
 set ctcp-mode 0
 
 # There are also several variables to help make your bot less noticeable.
 # They are: ctcp-version, ctcp-finger, and ctcp-userinfo. You can use set to set
 # them to values you'd like.
 
 
 #### IRC MODULE ####
 
 # This module provides basic IRC support for your bot. You have to
 # load this if you want your bot to come on IRC. The server and channels
 # modules must be loaded for this module to function.
 loadmodule irc
 
 # Set this to 1 if you want to bounce all server bans.
 set bounce-bans 0
 
 # Set this to 1 if you want to bounce all server exemptions (+e modes).
 # This is disabled if use-exempts is disabled.
 set bounce-exempts 0
 
 # Set this to 1 if you want to bounce all server invitations (+I modes).
 # This is disabled if use-invites is disabled.
 set bounce-invites 0
 
 # Set this to 1 if you want to bounce all server modes.
 set bounce-modes 0
 
 # Set here the maximum number of bans you want the bot to set on a channel.
 # Eggdrop will not place any more bans if this limit is reached. Undernet
 # currently allows 45 bans, IRCnet allows 64, EFnet allows 100, and DALnet
 # allows 100.
 set max-bans 30
 
 # Set here the maximum number of exempts you want Eggdrop to set on a channel.
 # Eggdrop will not place any more exempts if this limit is reached.
 set max-exempts 20
 
 # Set here the maximum number of invites you want Eggdrop to set on a channel.
 # Eggdrop will not place any more invites if this limit is reached.
 set max-invites 20
 
 # There is a global limit for +b/+e/+I modes. This limit should be set to
 # the same value as max-bans for networks that do not support +e/+I.
 set max-modes 30
 
 # The following settings should be left commented unless the default values
 # are being overridden. By default, exempts and invites are on for EFnet and
 # IRCnet, but off for all other large networks. This behavior can be modified
 # with the following 2 flags. If your network doesn't support +e/+I modes then
 # you will be unable to use these features.
 #
 # Do you want to enable exempts (+e modes)?
 #set use-exempts 0
 
 # Do you want to enable invites (+I modes)?
 #set use-invites 0
 
 # If you want people to be able to add themselves to the bot's userlist
 # with the default userflags (defined above in the config file) via the
 # 'hello' msg command, set this to 1.
 set learn-users 0
 
 # Set here the time (in seconds) to wait for someone to return from a netsplit
 # (i.e. wasop will expire afterwards). Set this to 1500 on IRCnet since its
 # nick delay stops after 30 minutes.
 set wait-split 600
 
 # Set here the time (in seconds) that someone must have been off-channel
 # before re-displaying their info line.
 set wait-info 180
 
 # Set this to the maximum number of bytes to send in the arguments
 # of modes sent to the server. Most servers default this to 200.
 set mode-buf-length 200
 
 # 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
 
 # Many takeover attempts occur due to lame users blindly /msg ident'ing to
 # the bot and attempting to guess passwords. We now unbind this command by
 # default to discourage them. You can enable these commands by commenting the
 # following two lines.
 unbind msg - ident *msg:ident
 unbind msg - addhost *msg:addhost
 
 # Some IRC servers are using some non-standard op-like channel prefixes/modes.
 # Define them here so the bot can recognize them. Just "@" should be fine for
 # most networks. Un-comment the second line for some UnrealIRCds.
 
 set opchars "@"
 #set opchars "@&~"
 
 # If you are so lame you want the bot to display peoples info lines, even
 # when you are too lazy to add their chanrecs to a channel, set this to 1.
 # *NOTE* This means *every* user with an info line will have their info
 # line displayed on EVERY channel they join (provided they have been gone
 # longer than wait-info).
 set no-chanrec-info 0
 
 ### IRC MODULE - IRCnet SPECIFIC FEATURES (net-type 1) ###
 
 # Attention: Use these settings *only* if you set 'net-type' to 1!
 
 # At the moment, the current IRCnet IRCd version (2.10) doesn't support the
 # mixing of b, o and v modes with e and I modes. This might be changed in the
 # future, so use 1 at the moment for this setting.
 set prevent-mixing 1
 
 ### IRC MODULE - OTHER NETWORKS (net-type 5) ###
 
 # Attention: Use these settings *only* if you set 'net-type' to 5!
 
 # If your network supports more users per kick command then 1, you can
 # change this behavior here. Set this to the number of users to kick at
 # once, or set this to 0 for all at once.
 #set kick-method 1
 
 # Some networks allow you to stack lots of channel modes into one line.
 # They're all guaranteed to support at least 3, so that's the default.
 # If you know your network supports more, you may want to adjust this.
 # This setting is limited to 6, although if you want to use a higher value,
 # you can modify this by changing the value of MODES_PER_LINE_MAX in
 # src/chan.h and recompiling the bot.
 if {$network == "freenode"} {
     set modes-per-line 4
 }
 
 # Some networks don't include the +l limit and +k or -k key modes
 # in the modes-per-line (see above) limitation. Set include-lk to 0 for
 # these networks.
 #set include-lk 1
 
 # Set this to 1 if your network uses IRCu2.10.01 specific /who requests.
 # Eggdrop can, therefore, ask only for exactly what's needed.
 #set use-354 0
 
 # If your network doesn't use rfc 1459 compliant string matching routines,
 # set this to 0.
 #set rfc-compliant 1
 
 
 #### TRANSFER MODULE ####
 
 # The transfer module provides DCC SEND/GET support and userfile transfer
 # support for userfile sharing. Un-comment the next line to load it if you
 # need this functionality.
 #loadmodule transfer
 
 # Set here the maximum number of simultaneous downloads to allow for
 # each user.
 set max-dloads 3
 
 # Set here the block size for dcc transfers. ircII uses 512 bytes,
 # but admits that it may be too small. 1024 is standard these days.
 # 0 is turbo-dcc (recommended).
 set dcc-block 0
 
 # Enable this setting if you want to copy files to a temporary location before
 # sending them. This might be useful for file stability, but if your
 # directories are NFS mounted, it's a pain. Setting this to 1 is not advised
 # for big files or if you're low on disk space.
 set copy-to-tmp 1
 
 # Set here the time (in seconds) to wait before an inactive transfer times out.
 set xfer-timeout 30
 
 
 #### SHARE MODULE ####
 
 # This module provides userfile sharing support between two directly
 # linked bots. The transfer and channels modules are required for this
 # module to correctly function. Un-comment the following line to load
 # the share module.
 #loadmodule share
 
 # Settings in this section must be un-commented before setting.
 
 # When two bots get disconnected, this setting allows them to create a
 # resync buffer which saves all changes done to the userfile during
 # the disconnect. When they reconnect, they will not have to transfer
 # the complete user file, but, instead, just send the resync buffer.
 #
 # NOTE: This has been known to cause loss of channel flags and other
 # problems. Using this setting is not recommended.
 #set allow-resync 0
 
 # This setting specifies how long to hold another bots resync data
 # before flushing it.
 #set resync-time 900
 
 # When sharing user lists, DON'T ACCEPT global flag changes from other bots?
 # NOTE: The bot will still send changes made on the bot, it just won't accept
 # any global flag changes from other bots. This overrides the private-globals
 # setting (below).
 #set private-global 0
 
 # When sharing user lists, if private-global isn't set, which global flag
 # changes from other bots should be ignored?
 #set private-globals "mnot"
 
 # When sharing user lists, don't accept ANY userfile changes from other
 # bots? Paranoid people should use this feature on their hub bot. This
 # will force all userlist changes to be made via the hub.
 #set private-user 0
 
 # This setting makes the bot discard its own bot records in favor of
 # the ones sent by the hub.
 # NOTE: No passwords or botflags are shared, only ports and
 # address are added to sharing procedure. This only works with hubs that
 # are v1.5.1 or higher.
 #set override-bots 0
 
 
 #### COMPRESS MODULE ####
 
 # This module provides provides support for file compression. This allows the
 # bot to transfer compressed user files and therefore save a significant amount
 # of bandwidth. The share module must be loaded to load this module. Un-comment
 # the following line to the compress module.
 #loadmodule compress
 
 # Allow compressed sending of user files? The user files are compressed with
 # the compression level defined in `compress-level'.
 set share-compressed 1
 
 # This is the default compression level used. These levels are the same as
 # those used by GNU gzip.
 #set compress-level 9
 
 
 #### FILESYSTEM MODULE ####
 
 # This module provides an area within the bot where users can store and
 # manage files. With this module, the bot is usable as a file server. The
 # transfer module is required for this module to function. Un-comment
 # the following line to load the filesys module.
 #loadmodule filesys
 
 # Set here the 'root' directory for the file system.
 set files-path "filesys"
 
 # If you want to allow uploads, set this to the directory uploads
 # should be put into. Set this to "" if you don't want people to
 # upload files to your bot.
 set incoming-path "filesys/incoming"
 
 # If you don't want to have a central incoming directory, but instead
 # want uploads to go to the current directory that a user is in, set
 # this setting to 1.
 set upload-to-pwd 0
 
 # Eggdrop creates a '.filedb' file in each subdirectory of your file area
 # to keep track of its own file system information. If you can't do that (for
 # example, if the dcc path isn't owned by you, or you just don't want it to do
 # that) specify a path here where you'd like all of the database files to be
 # stored instead.
 set filedb-path ""
 
 # Set here the maximum number of people that can be in the file area at once.
 # Setting this to 0 makes it effectively infinite.
 set max-file-users 20
 
 # Set here the maximum allowable file size that will be received (in KB).
 # Setting this to 0 makes it effectively infinite.
 set max-filesize 1024
 
 
 #### NOTES MODULE ####
 
 # This module provides support for storing of notes for users from each other.
 # Note sending between currently online users is supported in the core, this is
 # only for storing the notes for later retrieval.
 loadmodule notes
 
 # Set here the filename where private notes between users are stored.
 set notefile "$username/notes"
 
 # Set here the maximum number of notes to allow to be stored for each user
 # (to prevent flooding).
 set max-notes 50
 
 # Set here how long (in days) to store notes before expiring them.
 set note-life 60
 
 # Set this to 1 if you want to allow users to specify a forwarding address
 # for forwarding notes to another account on another bot.
 set allow-fwd 0
 
 # Set this to 1 if you want the bot to let people know hourly if they have
 # any notes.
 set notify-users 0
 
 # Set this to 1 if you want the bot to let people know on join if they have
 # any notes.
 set notify-onjoin 1
 
 # This next line checks if eggdrop is being executed from the source directory
 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.} }
 
 #### CONSOLE MODULE ####
 
 # This module provides storage of console settings when you exit the
 # bot or type .store on the partyline.
 loadmodule console
 
 # Save users console settings automatically? Otherwise, they have
 # to use the .store command.
 set console-autosave 1
 
 # If a user doesn't have any console settings saved, which channel
 # do you want them automatically put on?
 set force-channel 0
 
 # Enable this setting if a user's global info line should be displayed
 # when they join a botnet channel.
 set info-party 0
 
 
 #### WOOBIE MODULE ####
 
 # This is for demonstrative purposes only. If you are looking for starting
 # point in writing modules, woobie is the right thing.
 #loadmodule woobie
 
 
 #### SEEN MODULE ####
 
 # This module provides very basic seen commands via msg, on channel or via dcc.
 # This module works only for users in the bot's userlist. If you are looking for
 # a better and more advanced seen module, try the gseen module by G'Quann. You
 # can find it at http://www.kreativrauschen.com/gseen.mod/.
 #loadmodule seen
 
 
 #### ASSOC MODULE ####
 
 # This module provides assoc support, i.e. naming channels on the botnet.
 # You can load it by un-commenting the following line.
 #loadmodule assoc
 
 
 #### UPTIME MODULE ####
 
 # This module reports uptime statistics to http://uptime.eggheads.org.
 # Go look and see what your uptime is! It takes about 9 hours to show up,
 # so if your bot isn't listed, try again later. The server module must be
 # loaded for this module to function.
 #
 # Information sent to the server includes the bot's uptime, botnet-nick,
 # server, version, and IP address. This information is stored in a temporary
 # logfile for debugging purposes only. The only publicly available information
 # will be the bot's botnet-nick, version and uptime. If you do not wish for this
 # information to be sent, comment out the following line.
 loadmodule uptime