|
Welcome to this eggdrop bot configuration tutorial. Installing a eggdrop is pretty easy. That is probally why the eggdrop has become such a popular bot on IRC. But the true art lies in a proper configuration file. All to often the bot installed by a fairly inexperienced user will start to behave weird. It will deop users who supposed to be opped, the flood settings are to tight and the bot kicks almost everyone out, the bot can not be DCC chatted to get on the partyline, etc etc etc. For those users we have setup this tutorial, where we collected tips and tricks from several experienced eggdrop users into a easy to read article. Let me remind you, this is NOT a copy/paste afair. Only use this tutorial as a guide to setup your own eggdrop configuration file. This tutorial only helps with the configuration of the eggdrop config file. For help with the actual installation, check out the "installing your eggdrop" tutorial on this website. All the lines in green are the actual configuration file lines.
set mod-path "modules/"
set help-path "help/"
set text-path "text/"
Just some paths so the bot knows where to look for things. Usually you can leave these settings alone.
loadmodule dns
loadmodule channels
loadmodule server
loadmodule ctcp
loadmodule irc
loadmodule notes
loadmodule console
checkmodule blowfish
Loads the several modules the bot needs to perform its tasks on IRC. Let me explain what some of them do. In case you dont want a module, you can comment it out from the configfile (add a # in front of it, so you can simply enable it again in case you do want the module to be loaded again).
The ctcp module will make the bot react to the ctcp pings, finger, etc.
The irc module is one of the most important modules. Not really usefull to not load it, and expect the bot to even join the IRC network ;)
The notes modules is also a very usefull module, with this function users can send eachother short notes, that the bot will tell the receiver of the moment he joins the channel. See it as a bit like email. Type .help note on the partyline to learn more about this.
If you want to have the partyline enabled on the bot, you also need to load the console module. To get on the partyline you must DCC chat the bot, and enter on a sort of mini server where all the users with the +p flag set can join on to. Depending on what flags users have set (only a voice, a op, or master or owner) the users can perform certain tasks and configure the bot on the partyline. There are many more commands available in the partyline then there are available with simply messaging the bot. Normally you want to have the partyline enabled.
And finally, the blowfish module. You would want some sort of encryption to be used by the bot to protect passwords and other sensitive data. And since blowfish is currently the only encryption module available, leave this on (the bot wont even startup if you turn this off).
set nick "IrcJunkie"
The nick the bot will use on IRC.
set altnick "IrcJunk??"
The alternative nick in case the previous set nick is already in use. The ? will be replaced with a random number.
set realname "http://www.irc-junkie.org"
This is what will show up in the realname field if someone will /whois your bot. Officially its meant for your real name, but more commonly its being used to put a nice one liner, or the URL to the users homepage.
set servers {
you.need.to.change.this:6667
you.need.to.change.this:6667
}
The servers the bot uses to connect to IRC. Be sure to check if the bot doesnt use servers who do not allow bots. It is simply checked with reading the motd (message of the day) of the server (you get it when you connect to the server, or type /motd deventer* to check the motd of the deventer.nl.eu.linuxboxen.org server on the network for example).
Now its time to set some flood protection settings. This is one of the points where users often have problems with. Set it to tight, and the bot will kick users out of the channel all the time, set it to high, and the bot will not kick anyone who is actually flooding the channel. The settings are done in times:seconds. So the flood deop is set to: 3 deops in 10 seconds is considered to be a deop flood. Usually you want the flood settings to be the same across all channels, so there is no need to set the settings on a per channel basis. The next settings work fine for me, but ofcourse everything is open for experimentation.
set global-flood-chan 10:30
set global-flood-deop 3:10
set global-flood-kick 3:10
set global-flood-join 5:60
set global-flood-ctcp 3:60
set global-flood-nick 5:60
Time to start adding some channels:
channel add #yourChannel {
chanmode "+nt"
idle-kick 0
stopnethack-mode 0
}
Channelmode n is to make sure only users on the channel can send text to it (prevents spammers from outside the channel to send text to it), and the t flag makes sure only opped people can change the topic. Idle kick will kick someone out of the channel if she/he doesnt talk for a longer period of time, normally you want this off. Stop nethack will deop all users who return after a split, and where not opped before it. EFNet and Undernet, along other IRC networks already have protection against nethacks, so this feature is becoming obsolete more and more.
channel set #yourChannel +enforcebans +dynamicbans +userbans
channel set #yourChannel -dynamicexempts -userexempts -dynamicinvites
channel set #yourChannel -autoop -bitch +protectops +protectfriends +dontkickops
channel set #yourChannel +greet -statuslog -userinvites
channel set #yourChannel +revenge +autovoice
channel set #yourChannel -secret -shared +cycle
channel set #yourChannel -inactive -seen +nodesynch
Here you set a series of behaviours for the bot in the channel called #yourChannel. The way above are what we recommend. Let me clarify the most important setting, and why they are enabled, or disabled..
Dynamicbans, very usefull to keep the banlist tidy. This will make the bot remove the banmask from the channel after some time, but not from its own memory. So when the banned person enters the channel, he will get banned again. This will prevent the banlist to fill up completely, so that you wont be able to add new bans nomore.
Userbans, enabling this will let ops in the channel who are not added to the bot also set bans. Normally you would want to enable this.
Autoop , one of those things you *really* need to be carefull off. Normally you do NOT want to auto-op everyone matching a hostmask of a added op. Imagine a AOL user who gets auto-opped. Everyone can get a AOL account, and simply change the ident to that of the op, enter your channel, and then gets opped....
Protectfriends, this will make the bot protect everyone who has the +f flag set. Also, users with the +f flag will not be kicked out the channel when any flood settings are triggered set in the config file.
Revenge, one to be carefull with. This will make the bot remember anyone who deopped him. And make sure that person will never be opped. Many times people make fun with deopping a bot, and then wonder why that bot does not like them to be opped nomore. Now you know why... (in case it happens, remove the user from the partyline with .-user hisNick, or remove the d flag set for him.)
Cycle is also a very important setting to enable. Once the channel will get opless, and the bot notices that he is the only user on the channel, he will cycle the channel to regain ops. Even if you have a network service like ChanServ on Dalnet or X on Undernet, leave it on, services can be offline, and having to manually kill the bot and restart it to cycle a channel is a bitch. Besides the fact it needs the person with access to the shell to be online.
Note: Especially the protection settings (ie -protectops -protectfriends -revenge, etc) are open for experimentation. What might work well for one channel, might be unwanted in another.
Now we have set the defenitions for one channel. But you can add more channels into the configuration file if you want the bot to join more channels. And ofcourse you can set any settings again for this channel you want.
channel add #yourOtherChannel {
chanmode "+nt"
idle-kick 0
stopnethack-mode 0
}
If you only temporary want to add a channel, then you better do it on the bots partyline. With .+chan #theNewChan you can add a channel, and with .-chan #theChan remove it again. A lot easier then to login, change the configuration file, and rehash the bot.
See it this way: the channels you add in the configuration file are channels the bot should always be on. It adds some extra security as well. Only the person who has access to the shell can remove these channels.
set net-type 0
Here you set what network the bot will join. 0 = Efnet (non +e/+I hybrid), 1 = IRCnet, 2 = Undernet, 3 = Dalnet, 4 = Efnet +e/+I hybrid, 5 = Others
listen 3333 all
This is where the bot will listen for incoming telnet sessions. Remember to CHANGE THIS!! Many just leaves it, but there can only be one bot per port, so if two people on one machine use this as a default, neither will work. So CHANGE this!! I usually change it to a large number, like 25600 or something...
Also remember to keep telnet ports seperated by 10 or so at least. Having a telnet port in use on 2500 and 2501 will often cuase weird problems.
set owner "yourUsername"
Here you set the owners on the bot. Make sure you choose your owners with great care, becuase they are allowed to pratically do what they please with/on the bot. It's recommended that you set owners via a DCC CHAT session since you can't remove owner status to someone listed in this config file unless you edit the configuration file.
set notefile "IrcJunkie.notes"
The file where the bot stores the notes in users send to eachother.
set userfile "IrcJunkie.user"
This is where info on all of your users will be saved.
set chanfile "IrcJunkie.chan"
This is where info on all of the channels the bot is in will be saved.
set temp-path "/tmp"
Tip for windows eggdrop users: this directory you need to make.The setup doesnt make this directory, and without it, your bot will not start up.
logfile msbxco * "logs/eggdrop.log"
This is log of all commands that are used on the bot (look at the description of the console flags to see what each option does).
logfile jpk #yourChannel "logs/channel.log"
This is a log of what happens in a certain channel
set console "mkcobxs"
Default console flags, here it is specified what masters on a channel will see if they are on the partyline. Masters can change the flags as they please. A short description of the available flags:
m display private msgs/ctcps to the bot
p display public talk and ctcps on the channel
k display kicks/bans/mode changes on the channel
j display joins/parts/nick changes/signoffs/etc on the channel
b display bot links/unlinks/userfile-sharing
s display server messages and connect/disconnects
w display msgs between IRCops (wallops) channel master only:
c display user commands (dcc and msg)
o display other bot notices [HIGHLY RECOMMENDED] master only:
x display file transfers and file-area commands
d display debug messages that only coders would care about owner only:
r display all raw text from the server (if enabled)
v display raw text SENT to the server (if enabled)
source scripts/alltools.tcl
source scripts/action.fix.tcl
source scripts/compat.tcl
source scripts/userinfo.tcl
loadhelp userinfo.help
These are some commonly loaded (and needed) scripts.
It is very common that users add their own tcl scripts for additional functionality to the bot. For example a extensive seen script, or a news system, the possibilities are endless. For a few websites where you can start looking for scripts, check the links page.
After you added a script in this configuration file, get on the partyline of the bot, and type .rehash to let the bot reload the configuration file.
? Discuss This Article here.
|