#!/path/to/eggdrop # ^- set that to the directory eggdrop is in ie "#!/users/lamest/egg/eggdrop" # # This is a sample configuration file for your bot. You will definitely # want to edit this, to set up your bot. Right now it creates a bot called # "LamestBot" which sits on channel #lamest. # # The most vital things are listed at the top of this file, with the more # complicated or obscure options further down. So you don't necessarily # need to edit this whole thing, although it might be a good idea if you # want your bot to be hard to spot, and to work exactly the way you want # it to. ##### GENERAL STUFF ##### # the stuff people will see in /whois set nick "BOTNICK" set altnick "BOTNICK2" ;# if the nick you want is in use set username "SOMETIHING" ;# does not work if you have ident running! set realname "SOMETHING" # who's running this bot? set admin "Lamer " # [0/1] let users introduce themselves to the bot via 'hello'? set learn-users 1 # many irc ops check for bots that respond to 'hello'. you can change this # to another word by uncommenting the following two lines, and changing # "myword" to the word you want to use instead of 'hello' (it must be a # single word) # novice users are not expected to understand what these two lines do; they # are just here to help you. for more information on 'bind', check the file # 'tcl-commands.doc' unbind msg - hello *msg:hello bind msg - myword *msg:hello # the server list -- the bot will start at the first server listed, and cycle # through them whenever it's disconnected # (please note: you need to change these servers to YOUR networks servers) #EFnet bot servers ---v set servers { irc-w.concentric.net:6666 irc.blackened.com:6666 irc.rift.com:6667 irc.cs.cmu.edu:6666 irc.uci.edu:6666 irc.exodus.net:6667 irc2.exodus.net:6667 irc.psinet.com:6667 irc.magic.ca:6667 } # if no port is specified on a .jump, which port should I use? set default-port 6667 # what IRC network are you on? this is just info to share with others on # your botnet, for human curiosity only. set network "I.didnt.edit.my.config.file.net" # [0/1] even if all the servers are down, cycle forever and keep trying to # connect? set never-give-up 1 # how many seconds to wait for a response when connecting to a server # before giving up and moving on? set server-timeout 15 # if the number of servers on the net gets below this number, it will # jump to a new server (ie, it will assume it's on the losing end of a # netsplit) -- set to 0 to turn off # [most irc networks use TS now, so it's to your advantage to turn this off] set servlimit 0 # [0/1] if the bot's nickname is changed (for example, if the intended # nickname is already in use) keep trying to get the nick back? set keep-nick 1 # [0/1] allow users to store an info line? set use-info 1 # [0/1] if this is set, a leading '~' on user@hosts WON'T be stripped off set strict-host 0 # what timezone is you bot in? this is simply used for scripting purposes. set timezone "EST" # several variables exist to better blend your egg in. they are # ctcp-version, ctcp-finger, and ctcp-userinfo. you can use set # to set them to values you like. ##### CHANNEL PROTECTION ##### # do this for each channel you wish to sit on: # NOTE: for some reason Tcl won't let you put comments inside { } -- so # don't try it, cos it'll mess up your channel definition channel add #lamest { chanmode "+nt-likm" idle-kick 0 need-op { putserv "PRIVMSG #lamest :op me please!" } need-invite { putserv "PRIVMSG #lamest :let me in!" } need-key { putserv "PRIVMSG #lamest :let me in!" } need-unban { putserv "PRIVMSG #lamest :let me in!" } need-limit { putserv "PRIVMSG #lamest :let me in!" } } # the things inside the { } are CHANNEL OPTIONS -- they can be set within # the "channel add" command, or by using a "channel set" command as in the # examples below. they list all the options you can set for a channel. # chanmode # what modes will be enforced? '+' modes will always be kept on, '-' modes # will always be kept off # idle-kick # kick channel members after how many minutes of being idle? # (leave out to disable, or set to 0) # need-op # script to run (if any) when the bot needs to be op'd on this channel # need-invite # script to run (if any) when the bot gets locked out of the channel # because the channel is +i # need-key # script to run (if any) when the bot gets locked out of the channel # because it doesn't have the channel key # need-unban # script to run (if any) when the bot gets banned from this channel # need-limit # script to run (if any) when the bot gets locked out of the channel # because the channel limit is full # note that "need-op", "need-invite", etc, are limited to 120 characters, # so if you want to so something more complicated, just write a proc, # and make them call your proc. # there are also a lot of options that can be turned on or off for each # channel. to turn an option on, put a + in front of it. to turn it off, # put a - in front of it. ie, to have auto-op, put: # +autoop # to turn it off, put: # -autoop # clear all channel bans when the bot joins? (ie, force the channel's # ban list to match the bot's internal list) channel set #lamest -clearbans # when a ban is set, kick people who are on the channel and match the # new ban? (ie, they were on the channel before the ban) channel set #lamest +enforcebans # only activate bans on the channel when necessary? (this keeps the # channel's ban list from getting excessively long. the bot still remem- # bers every ban, but it only activates a ban on the channel when it sees # someone join who matches that ban.) channel set #lamest +dynamicbans # 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) channel set #lamest +userbans # op users with the +o (op) flag as soon as they join the channel? # (hint: this is a BAD IDEA) channel set #lamest +autoop # only let users with +o (op) flag be channel ops? channel set #lamest -bitch # say a user's info line when she joins the channel? channel set #lamest +greet # re-op a user with the +o (op) flag if they get deopped? channel set #lamest +protectops # log the channel status line every 5 minutes? (some people think # it's annoying; i think it's neat) channel set #lamest +statuslog # de-op someone that enters the channel with server ops (ie, netsplit # ops) when they didn't have them before the split? channel set #lamest +stopnethack # remember people who deop/kick/ban the bot or valid ops, and punish them? # users with +f (friend) flag are exempt from revenge channel set #lamest +revenge # prevent this channel from being listed on the botnet? (for paranoid # people) channel set #lamest -secret # share user channel info for this channel? channel set #lamest -shared # here's a shorter example: channel add #botcentral { chanmode "+mntisl 1" idle-kick 1 } channel set #botcentral +bitch +clearbans +enforcebans -greet +revenge ##### LOG FILES ##### # you can have up to 5 log files. at midnight every day, the old log files # are renamed and a new log file begins. by default, the old one is called # "(logfilename).yesterday", and any logfiles before yesterday are erased. # events are logged by certain categories -- this way you can specify # exactly what kind of events you want sent to various logfiles. the # events are: # m private msgs/ctcps to the bot # k kicks, bans, mode changes on the channel # j joins, parts, netsplits on the channel # p public chatter on the channel # s server connects/disconnects/notices # b information about bot linking and userfile sharing # c commands people use (via msg or dcc) # x file transfers and file-area commands # r (if defined in eggdrop.h) EVERYTHING sent to the bot by the server # o other: misc info, errors -- IMPORTANT STUFF # w wallops: msgs between IRCops (be sure to set the bot +w in init-server) # each logfile also 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 "*". there are also # five user-defined levels ('1'..'5') which are used by Tcl scripts. # in 'eggdrop.log' put msgs, commands, and errors from any channel: logfile mkco * "eggdrop.log" # in 'lame.log' put joins, parts, and mode changes from #lame: logfile jk #lamest "lamest.log" # [0/1] timestamp entries in the log file? (generally a good idea) set log-time 1 # [0/1] keep logfiles for more than 48 hours -- instead of being called # "(logfilename).yesterday", the log files are named by the current date, # and kept around forever (eventually your directory might get full, so # be careful with this!) set keep-all-logs 0 # once a day the logfiles are switched out and started fresh -- # this specifies when that should happen (in military time) # [note that a leading 0 will make Tcl think this is an octal value, # something you probably don't want.] set switch-logfiles-at 300 # this is the default console mode -- what masters will see automatically # when they dcc chat with the bot (masters can alter their own console # flags once they connect, though) -- it uses the same event flags as # the log files # (note that the console channel is automatically set to your "primary" # channel -- the one you defined first in this file. masters can change # their console channel with the '.console' command, however.) set console "mkcobxs" ##### FILES AND DIRECTORIES ##### # the userfile: where user records are stored set userfile "LamestBot.user" # the notefile: where private notes between users are stored set notefile "LamestBot.notes" # maximum number of notes to allowed stored for each user # (to prevent flooding) set max-notes 50 # where the help files can be found (and there are plenty) set help-path "help/" # where miscellaneous info files are set text-path "text/" # a good place to temporarily store files (ie: /tmp) set temp-path "/tmp" # the MOTD is displayed when people dcc chat to the bot. # check 'help set motd' for tons of motd options. set motd "motd" ##### FILE SYSTEM ##### # the file transfer area works via dcc chat. you can turn the file system # off by not defining the 'files-path' below. # this is the 'root' directory for the file system (set it to "" if you # don't want a 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 incoming-path "/home/mydir/filesys/incoming" # [0/1] alternately, you can set this, and uploads will go to the current # directory that a user is in set upload-to-pwd 0 # eggdrop creates a '.filedb' file in each subdirectory of your dcc area, # to keep track of its own file system info -- if you can't do that (like # if the dcc path isn't owned by yours) or you just don't want it to do # that, specify a path here where you'd like all the database files to # be stored instead (otherwise, just leave it blank) set filedb-path "" # set maximum number of people that can be in the file area at once # (0 to make it effectively infinite) set max-file-users 20 # set maximum number of simultaneous downloads to allow for each user set max-dloads 3 # set the block size for dcc transfers (ircII uses 512 bytes, but admits # that may be too small -- 1024 is standard these days) # set this to 0 to use turbo-dcc (recommended) set dcc-block 0 # maximum allowable file size that will be received, in K # (default is 1024K = 1M) set max-filesize 1024 # [0/1] copy files into the /tmp directory before sending them? this is # useful on most systems for file stability. (someone could move a file # around while it's being downloaded, and mess up the transfer.) but if # your directories are NFS mounted, it's a pain, and you'll want to set # this to 0. set copy-to-tmp 1 ##### STARTUP ##### die "Please edit your config file." # You MUST remove that line for this config file to work. 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 the settings you want. ##### MODULES ###### # # this is only relevant to people who compiled with modules support # ##### IF YOU USE MODULES AND DONT READ THIS YOU ARE A TOTAL WAD ##### # # choose your encryption method now, 'cause once it's there it aint # changing till you get a new userfile, capish? at this stage that leaves # you with one option: blowfish # uncomment this line to load blowfish #loadmodule blowfish # #uncoment this line to load assoc support #loadmodule assoc # #uncoment this line to load the file system module #loadmodule filesys # ##### END OF IMPORTANT STUFF ##### ##### BOTNET ##### # you probably shouldn't deal with this until reading 'botnet.doc' or # something. you need to know what you're doing. # if you want to use a different nickname on the botnet than you use on # IRC, set it here: #set botnet-nick "LlamaBot" # what telnet port should this bot answer? # NOTE: if you are running more than one bot on the same machine, you will # want to space the telnet ports at LEAST 5 apart... 10 is even better listen 3333 all # if you would rather have one port for the botnet, and one for normal # users, you will want something like this instead: #listen 3333 bots #listen 4444 users # note: there are more options listed for the listen command in # doc/tcl-commands.doc # [0/1] share user data with other bots on the channel? set share-users 0 # [0/1] share user greets with other bots on the channel if shareing user data? set share-greet 0 # [0/1] allow other bots userfiles to overwrite yours? set passive 0 # [0/1] users with the +o (global op) flag will still need the +p (party # line) flag to join the dcc chat party line? set require-p 0 # [0/1] allow people to telnet in, type 'NEW', and become a new user? set open-telnets 0 # how long (in seconds) should i wait for a connect (dcc chat, telnet, # relay, etc) before it times out? set connect-timeout 15 ##### MORE ADVANCED STUFF ##### # are you behind a firewall? uncomment this and specify your socks host #set firewall "proxy:178" # or, for a Sun "telnet passthru" firewall, set it this way # (does anyone besides Sun use this?) #set firewall "!sun-barr.ebay:3666" # if you're using virtual hosting (your machine has more than 1 IP), you # may want to specify the particular IP to bind to. you can specify # either by hostname or by IP. you may also want to set the hostname # here if eggdrop has trouble detecting it when it starts up. (it will # let you know if it has trouble -- trust me.) #set my-hostname "virtual.host.com" #set my-ip "99.99.0.0" # # 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 word, and /dcc chat,/ctcp chat or # userfile shareing arent working. Enter you outside IP here, and # #define HAVE_NAT in eggdrop.h # Do not enter anything for my-ip or my-hostname. #set nat-ip "127.0.0.1" # if you want all dcc file transfers to use 1 particular listening port # (this pretty much limits you to one concurrent file transfer at a time), # either because you're behind a firewall, or for other security reasons, # set it here #set reserved-port 9076 # if you want to dynamically change channel settings, and have them saved # for next time the bot restarts, define this filename ( the filename # you set here *MUST* exist else the bot won't load. Just create an empty # file for this to work) #set channel-file "LamestBot.chan" # script to run (if any) when first connecting to a server set init-server { putserv "MODE $botnick +iw-s" } # how many msgs in how many seconds from the same host constitutes a flood? set flood-msg 5:60 # how many public msgs in how many seconds? set flood-chan 10:60 # how many joins/nick changes in how many seconds? set flood-join 5:60 # how many CTCPs in how many seconds? set flood-ctcp 3:60 # temporary bans will last how many minutes? set ban-time 120 # temporary ignores will last how many minutes? set ignore-time 15 # normally the user file is saved once an hour, on the hour # you can change that here (for example, "20" means to save every # hour at 20 minutes past the hour) set save-users-at 00 # normally users are notified once and hour, on the hour, if they have any # notes on the bot. You can change that here (for example, "15" means to # notify every hour at 15 minutes past the hour) set notify-users-at 00 # send a note to anybody when I learn new users? set notify-newusers "HQ" # if compiled with owner, the following user(s) will ALWAYS have the # owner (+n) flag set owner "MrLame, MrsLame" # what flags should new users get as a default? # check 'help whois' for tons of motd options. set default-flags "px" # what user-defined fields should be displayed in a '.whois'? # this will only be shown if the user has one of these xtra fields # set with 'user-set'. set whois-fields "url birthday" # some networks allow you to stack lots of channel modes into one # line. as of november 1996, the major networks allowed: # EFnet 4 # IRCnet 3 # Undernet 6 # Dalnet 6 # they're all guaranteed to support at least 3, so that's the default, # but if you know your network supports more, you may want to adjust # this value. this value must be less that or equal to 6. set modes-per-line 3 # 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 -- most people are fine at 300 though set max-queue-msg 300 # time (in seconds) to wait for someone to return from a netsplit set wait-split 300 # time (in seconds) that someone must have been off-channel before # re-displaying their info set wait-info 180 # time (in seconds) that a dcc file transfer can remain inactive # before being timed out set xfer-timeout 300 # time (in days) to let stored notes live before expiring them set note-life 60 ##### SCRIPTS ##### # load that toolkit of useful scripts (some script packages may depend # on this being loaded) source scripts/toolkit.tcl # these are some commonly loaded (and needed) scripts. source scripts/toolbox.tcl source scripts/action.fix.tcl