#! /path/to/executable/eggdrop # ^- This should contain a fully qualified path to your Eggdrop executable. # # This is a sample Eggdrop configuration file which includes all possible # settings that can be used to configure your bot. # # The pound signs (#) that you see at the beginning of some lines mean that # the remainder of that line is a comment, or just for your information. By # adding or deleting pound signs, you can comment or uncomment a setting, # respectively. # # Arguments for a command or setting may be inclosed in <>'s or []'s in the # example/description. Arguments in <>'s are required, while [] means optional. # # More detailed descriptions of all these settings can be found in # doc/settings/. ##### BASIC SETTINGS ##### # 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. See also ident # module. set username "clear" # This setting defines which contact person should be shown in .status, # /msg help, and other places. You really should include this information. set admin "clear " # 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 "Funworld" # 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 "EST" # 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 "5" # 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 ## * do not set nat-ip ## ## HOME COMPUTER/VPS, DIRECT INTERNET CONNECTION (SINGLE IP, NO NAT) ## * do not set vhost4/vhost6 ## * do not set nat-ip ## ## HOME COMPUTER, BEHIND A NAT ## * do not set vhost4/vhost6 ## * set nat-ip to your external IP ## ## And as a general rule, if you're having issues with Eggdrop responding to ## a CTCP chat request, try setting vhost4/6 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' command 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' command # to specify the listening address. #set vhost6 "my.ipv6.host.com" #set vhost6 "2001:db8::c001:b07" # 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, # Italian, Portuguese. #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 # g - raw outgoing share traffic # h - raw incoming share traffic # j - joins, parts, quits, topic changes, and netsplits on the channel # k - kicks, bans, and mode changes on the channel # l - linked bot messages # 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 incoming botnet traffic # u - raw outgoing 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 incoming botnet traffic via console/log mode 't', raw outgoing botnet # traffic via console/log mode 'u', raw outgoing share traffic via # console/log mode 'g', and raw incoming 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 that captures items logged at the # m, c, and o log levels (private msgs/ctcps, commands/errors, and misc # info) from any channel. logfile mco * "logs/eggdrop.log" # This creates a logfile named lamest.log that captures items logged at the # j, p, and k log levels (joins/parts/quits/netsplits, public chat, # kicks/bans/mode changes) 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 "mkcoblxs" ##### FILES AND DIRECTORIES ##### # Specify here the filename your userfile should be saved as. set userfile "clear.user" # Specify here the filename Eggdrop will save its pid to. If no pidfile is # specified, pid.(botnet-nick) will be used. #set pidfile "pid.clear" # 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 "text/" # 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 "text/motd" # This banner will be displayed on telnet connections. Look at # doc/TEXT-SUBSTITUTIONS for options. set telnet-banner "text/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 0600 ##### 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 # # To bind the listening port to a specific IP instead of all available, insert # a valid IP assigned to the host Eggdrop is running on infront of the port # (this replaces the listen-addr setting used prior to Eggdrop v1.9) # # listen 1.2.3.4 3333 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. # Options 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 a logon prompt with # only the contents of the stealth-prompt setting. set stealth-telnets 0 # If stealth-telnets is 1, the string in this setting will replace the # traditional Eggdrop banner. Two common choices are listed. (The \n's are # present to maintain backwards compatibility and will be removed in a # future release) #set stealth-prompt "login: " set stealth-prompt "\n\nNickname.\n" # 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 0 # 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). The default is # RES_TIMEOUT, which is generally 5, the allowed maximum is RES_MAXRETRANS (see # ). #set resolve-timeout 5 ##### 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, /ctcp botnick schat, or # using a certificate to authenticate with NickServ. #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, /ctcp botnick schat, or # using a certificate to authenticate with NickServ. #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 protocols allowed for use with ssl. The protocol list is # one or more protocol strings separated by spaces. Available protocols are # SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3. # set ssl-protocols "TLSv1 TLSv1.1 TLSv1.2 TLSv1.3" # 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 usable # 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 "" # Specify the location of a dhparam file. This file is necessary if you are # using a Diffie-Hellman based key exchange. If you don't know what this is, # you are probably safe leaving it commented. # You can create a dhparam file using the following command: # openssl dhparam -out dhparam.pem 4096 #set ssl-dhparam "dhparam.pem" # 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 certificate 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 (your 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 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 "Rain, dauPORNO" # Who should a note be sent to when new users are learned? set notify-newusers "$owner" # Enter the flags that new users added via the 'hello' message command (see # 'learn-users' description further down) 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 # 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 # Disable this setting if you do not want to show name and release level of the # operating system. You'll probably also want to edit the default motd (in # text/motd) and remove its display from there. set show-uname 1 # 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 ##### # 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 "modules/" #### PBKDF2 MODULE #### # IF YOU DON'T READ THIS YOU MAY RENDER YOUR USERFILE USELESS LATER # Eggdrop uses hashing in the userfile, so users can have secure passwords. # Eggdrop will not start without an encryption module. # # As of Eggdrop 1.9.0, a new module was added for hashing, the PBKDF2 module. # The PBKDF2 module was designed to work with the previous encryption module # (blowfish) to make the transition easier. If this is a new bot, you can # safely load just the PBKDF2 module. If you are transitioning a userfile from # 1.8 or earlier, you should load this AND the blowfish module (below). By doing # so, Eggdrop will seamlessly update the old blowfish hashes to the new PBKDF2 # hashes once a user logs in for the first time, and allow you to (eventually) # remove the blowfish module altogether (See the remove-pass setting). # Outside of the specific case noted above, please note that if you change your # encryption method later (i.e. using other modules like a rijndael module), you # can't use your current userfile anymore. # # NOTE FOR BOTNET USERS: If all bots on the botnet are not running the same # configuration settings for encryption, you may encounter password-related # issues when linking. # loadmodule pbkdf2 # Cryptographic hash function used. openssl list -digest-algorithms #set pbkdf2-method "SHA256" # Number of rounds. The higher the number, the longer hashing takes; but also # the higher the protection against brute force attacks. #set pbkdf2-rounds 16000 # Remove old password hashes after updating to a pbkdf2 hash? # # WARNING: DO NOT CHANGE THIS UNLESS YOU KNOW WHAT YOU ARE DOING # Enabling this setting will break compatibility with older Eggdrops by ceasing # to write to the PASS field (where password hashes from modules like blowfish # are stored), as well as remove an existing PASS hash if found when writing a # new pbkdf2 hash. In some scenarios (for example, a hub sharing a userfile to # a leaf that does not have a pbkdf2 module loaded) enabling this setting may # result in a user having no password set at all. # # This setting is planned to be enabled by default in Eggdrop 2.0. #set remove-pass 0 #### BLOWFISH MODULE #### # # This module is planned to be removed in Eggdrop 2.0 # # Load this if you intend to use a pre-1.9.0 userfile (Or in other words, do # not load this if you are starting this as a fresh bot and are not linking # it to a botnet that uses blowfish hashes) # # You also need to load this if you use a script that employs the # encrypt/decrypt Tcl commands. # loadmodule blowfish # Specify whether to use ECB or CBC operation modes for the tcl commands # 'encrypt' and 'decrypt'. Prior to version 1.9.0, the less secure ecb # method was used by default. If you are using these commands with older bots, # change this to 'ecb' for compatibility, or upgrade the older bots. set blowfish-use-mode cbc #### 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. # ## New in 1.9.0 - We have updated the core DNS functionality to (hopefully) ## not need to use this module any more. If you want to give this *BETA* ## capability a try, compile Eggdrop with the --enable-tdns flag ## (./configure --enable-tdns). We expect it will *finally* resolve some of the ## long-standing issues Eggdrop has had with DNS and negate the need to use the ## DNS module (In other words, if you enable the new core DNS, don't load this ## DNS module). And lastly, if you enable the new core DNS, it will still ## respect the dns-servers setting below, even though the DNS module is not ## loaded. # 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. Default kernel implementations limit this list ## to 3 servers. #set dns-servers "8.8.8.8 1.1.1.1 185.222.222.222" # 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 "clear.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 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 } # chanmode +/- # This setting makes the bot enforce channel modes. It will always add # the + and remove the - 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 ## What is your network? ## Options are: ## EFnet ## IRCnet ## Undernet ## DALnet ## Libera ## freenode ## QuakeNet ## Rizon ## Twitch (This requires twitch.mod to be loaded as well) ## Other (This is a good, sane default option to use if your network/ircd is ## not listed here. Additional configuration options for this setting ## can be found further down in the IRC MODULE section) set net-type "EFnet" # Set the nick the bot uses on IRC, and on the botnet unless you specify a # separate botnet-nick, here. set nick "clear" # 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 "clear" # 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 "62I 61think perhaps all of us go a little crazy at times." # This is a Tcl script to be run immediately after connecting to a server. If # you want to authenticate Eggdrop with NickServ, uncomment and edit the middle # line below. bind evnt - init-server evnt:init_server proc evnt:init_server {type} { global botnick putquick "MODE $botnick +i-ws" # putserv "PRIVMSG NickServ :identify " } # Set the default port which should be used if none is specified with # '.jump' or in 'set servers'. set default-port 6667 # 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 add [port [password]] # Prefix the port with a plus sign to attempt a SSL connection: # server add +port [password] # # Both the port and password fields are optional. If a port isn't specified, # the default-port setting will be used. If you want to set a password or use # SSL, you must specify a port. # # This format is new as of version 1.9.0. The previous method using # set servers {} will still work for now, but is deprecated and will be removed # in a future release. server add eu.undernet.org 6667 #### CAP Features #### # This section controls IRCv3 capabilities supported natively by Eggdrop. You # can enable individual settings here to be requested as part of the # registration process with the IRC server. Not all servers support all CAP # features. https://ircv3.net/support/networks.html maintains a list of some # popular servers, and you can also use '.tcl cap ls' from the partyline # to list capabilities available on that server. # SASL is a method that allows Eggdrop to authenticate with a NickServ service # as part of the connection process to a server, eliminating the need to later # authenticate via a /msg command. # # To request SASL authentication via CAP, set this to 1 #set sasl 0 # Set SASL mechanism to authenticate with. # Options are: # 0 = PLAIN (normal user/pass exchange, only encrypted # if connected to the IRC server with a # SSL/TLS connection) # # 1 = ECDSA-NIST256P-CHALLENGE (Uses a certificate; usually requires a # public key to be registered with NickServ # or other similar service. Set certificate # to use in sasl-ecdsa-key setting below) # # 2 = EXTERNAL (Some other method you set up. Certificates # used are defined in ssl-certificate and # ssl-privatekey settings in SSL section) # #set sasl-mechanism 0 # Set username to authenticate to IRC NickServ with #set sasl-username "llamabot" # Set password to authenticate to IRC NickServ with #set sasl-password "password" # Specify the location of certificate to use for the SASL # ecdsa-nist256p-challenge. An ECDSA certificate can be generated with the # command: # openssl ecparam -genkey -name prime256v1 -out eggdrop-ecdsa.pem #set sasl-ecdsa-key "eggdrop-ecdsa.pem" # Set SASL failure action # If SASL authentication fails, do you want to connect to the server anyway? # Set to this to 0 to disconnect and retry until success, or 1 to continue # connecting to the server without SASL authentication. #set sasl-continue 1 # # Timeout (in seconds) before giving up SASL authentication #set sasl-timeout 15 # To request the account-notify feature via CAP, set this to 1 #set account-notify 0 # To request the invite-notify feature via CAP, set this to 1 #set invite-notify 0 # To request the message-tags feature via CAP, set this to 1. NOTE: Enabling # this feature may interfere with RAW binds in scripts. #set message-tags 0 # If you have any additional CAP features you would like to request at # registration but are not listed above, set them here as space separated # strings. Setting features here does not guarantee Eggdrop's ability to support # them. #set cap-request "feature1 feature2 feature3" #### End of CAP features #### # 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. # Options are: # 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 # Sets the default RPL_ISUPPORT (raw 005) information to use as a fallback. # These MUST be compatible to all IRCds you might want to connect to. # The actual server settings overwrite these, so you shouldn't need to modify. #set isupport-default "CASEMAPPING=rfc1459 CHANNELLEN=80 NICKLEN=9 CHANTYPES=#& PREFIX=(ov)@+ CHANMODES=b,k,l,imnpst MODES=3 MAXCHANNELS=10 TOPICLEN=250 KICKLEN=250 STATUSMSG=@+" ### SERVER MODULE - OTHER NETWORKS (net-type "Other") ### # 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. The default setting is 0. #set check-mode-r 0 # 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. #set nick-len 9 #### 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. # Options are: # 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 # 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 "IRCnet") ### # Attention: Use these settings *only* if you set 'net-type' to "IRCnet"! # 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 "Other") ### # Attention: Use these settings *only* if you set net-type to "Other"! # 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 don't include the +l limit and +k or -k key modes # in the modes-per-line limitation. Set include-lk to 0 for # these networks. #set include-lk 1 # If your network doesn't use rfc 1459 compliant string matching routines, # set this to 0. #set rfc-compliant 1 #### TWITCH MODULE #### # This module attempts to provide connectivity with the Twitch gaming platform. # While Twitch provides an IRC gateway to connect with it's streaming service, # it does not claim to (and certainly does not) follow the IRC RFC in any # meaningful way. The intent of this module is not to provide the full spectrum # of management functions typically associated with Eggdrop; please see the docs # for additional information. Only load this if you are connecting to Twitch! # Please see doc/TWITCH for Twitch-specific setup information, like how to # configure the required CAP settings in the IRC section above. #loadmodule twitch #### 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 or receiving 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 # By default, Eggdrop will abort the linking process if userfile sharing is # enabled but the userfile transfer fails. Set this to 0 to keep the bots # linked if the userfile transfer fails and retry every minute (both bots must # be v1.9.0 or higher). #set sharefail-unlink 1 #### 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 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 "/home/mydir/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 "/home/mydir/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 "LamestBot.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 # 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?" # 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 #### IDENT MODULE #### # This module adds Eggdrop support for the externally-provided oident # service, or alternatively the ability for Eggdrop to act as its own ident # daemon. Please read the docs at doc/settings/mod.ident for additional # information on correctly configuring this section. If you don't know # what ident or oident are, it is safe to leave this section commented. #loadmodule ident # Set the ident method you wish to use. Each of these methods requires # some form of external configuration in order to function. See # doc/settings/mod.ident for additional information. # Options are: # 0 = oidentd # Your bot will overwrite $HOME/.oidentd.conf right before opening the # socket to the IRC server with the global reply. # NOTE: requires the oidentd service to be running on the host machine # 1 = Builtin # Your bot will automatically turn its builtin identd on and off when # needed so it shouldn't conflict with other identds that do the same. # NOTE: Eggdrop must be granted permissions on the host system to bind # to port 113. #set ident-method 0 # Set the ident port to use for ident-method 1. #set ident-port 113 ##### SCRIPTS ##### # 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 # This script enhances Eggdrop's built-in dcc '.whois' command to allow all # users to '.whois' their own handle. source scripts/dccwhois.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 # Use this script for Tcl and Eggdrop backwards compatibility. # NOTE: This can also cause problems with some newer scripts. #source scripts/compat.tcl # A few IRC networks (EFnet and Undernet) have added some simple checks to # prevent drones from connecting to the IRC network. While these checks are # fairly trivial, they will prevent your Eggdrop from automatically # connecting. In an effort to work-around these, we have developed a couple of # TCL scripts to automate the process. if {[info exists net-type]} { switch -- ${net-type} { "EFnet" { # EFnet source scripts/quotepong.tcl } "0" { # EFnet source scripts/quotepong.tcl } } }