*** Status: Offline
Zulfikar an eggdrop bot version 1.6.6 generously provided by fredbob.
The commands which are currently available in the channel are:
If you have never set a password on the bot, be sure and do so by typing '/msg zulfikar pass <password>' (if you've never been added to the bot, contact fredbob, davenport, or fuzuoko)
You can also DCC chat with Zulfikar in order to join a channel party-line and change your personal settings on the bot (you must have a password set first). To DCC chat with Zulfikar, type '/dcc chat Zulfikar'.
If the bot suddenly stops recognizing you, type '/msg zulfikar ident <password>'.
For help type '/msg Zulfikar help'.
DCC Commands for Zulfikar
Any commands starting with '+' may be preceded by '-' instead.) All commands begin with '.' and all else goes to the party line, except for lines starting with a single quote (') which go only to local party-line users on Poesia. Text starting with ',' is sent ONLY to bot-masters. You can get help on individual commands: '.help (command)'
Common DCC Commands:
For masters only:
MSG commands for Zulfikar:
For help on a command, /MSG Zulfikar HELP (command)
+ban (hostmask) [comment] adds a ban to the list of permanent bans stored on the bot, with an optional comment. this ban will be in effect for every channel on the bot, and is stored with your nickname and comment. see also: bans, -ban, kickban
+bot (bot) (address:port) creates a user record for a new bot with the nickname given. the hostmask table have one entry ("none"), and the bot (b) flag will be set for the user. the internet address field of the user will also be set to the address given. you can use this command and 'chpass' to completely set up a record for a future bot. or you can let the two bots negotiate a password for themselves, the first time they link.
+host (nickname) (hostmask) adds a hostmask to a user's record on the bot. the hostmasks are where the bot will identify that user from. usually you will not need to use this command since a user can add hostmasks to her own record via the /MSG IDENT command. but it's here if you need it.
+ignore (hostmask) adds a hostmask to the ignore list. an ignore added manually like this becomes "permenent", ie, it will not expire auto- matically. to make the bot stop ignoring this hostmask, you must eventually use a '-ignore' command.
+user (nickname) (hostmask) creates a new user record for the nickname given, with one entry in the hostmask table. the new user record will have no flags (ie, not be a master, op, friend, etc) and no password.
-ban (hostmask or number) removes the ban from the list of permanent bans stored on the bot -- you may reference the ban by the number shown in '.bans'.
-bot (bot) is exactly the same as '-user', but is included for convenience. it erases a user record.
-host (nickname) (hostmask) removes a hostmask from a user's record on the bot.
-ignore (hostmask or number) removes the ignore from the list of ignores stored on the bot -- you may reference the ignore by the number shown in '.ignores'.
-info (user) removes the information line for a user. (see 'info')
-user (nickname) erases the user record for the nickname given.
act (text) performs an action on the current console channel, as if the bot did it, just like the /me command in IRC. see also: console
addlog (text) writes your comment into the bot's log file. bot masters can go back later and review the log, and will see your comment (with your name attached). this is useful for explaining confusing activity.
adduser (nickname) creates a new user record for a user on the channel, using their current hostname. it's similar to a user msg'ing the bot 'hello' except that no information is sent to that user. if the bot already knows someone by that nickname, and the user on the channel doesn't have a bot record, then it does the equivalent of an 'ident' for that user -- except that, again, no information is sent to the user telling them that anything was done.
assoc [(channel #) (name)] creates a name for a channel. the name will propagate across your botnet (if you're hooked into one) and can be used instead of the channel # when changing chat channels (see '.chat'). if you omit the channel # and name, it will just dump a list of the current named channels, and their names.
assoc (channel #) wipes out the name for a channel, if there was one.
away [away-message] marks you as "away" on the party line. your away message will show up in the '.who' list, and will be displayed to anyone who tries to send you a note. your notes will be stored, and then displayed to you as soon as you are no longer away. saying something on the party line will automatically remove your "away" status, or you can type '.away' by itself.
ban (nick) [reason] (if user is on channel) ban (nick!user@host) [reason] (otherwise) places a temporary ban on the channel, with an optional comment. Your nickname will be attached to the ban/comment. Remember, most servers only allow 20 bans per channel. NOTE: DO NOT USE THE SECOND FORM IF THE USER IS ON THE CHANNEL - IT CAN CREATE BOT CONFLICTS!!!!!
banner (text) displays a message to everyone currently using the bot's party line or file area -- useful for announcing that the bot will go down, etc.
bans [wildcard] bans all shows you a list of the global bans active on the current channel, and the list of channel-specific bans, as well as any bans that are on the channel but weren't placed by the bot. here's a sample entry; [ 5] *!*lamer@*doofus.com (perm) redbird: ctcp floods Created 15:10 the number (5) can be used to reference the ban if you wish to remove it (see '.-ban'). next is the actual hostmask being banned. the "(perm)" means that the ban is "permenent": that is, it doesn't automatically expire. if there is an elapsed time showing instead, the time displayed is how long the ban has been active. those kind of bans expire after one hour. the second line of the ban entry is the comment ("ctcp floods") and who put the ban there (redbird). the last line shows when the ban was added, and possibly the last time the ban was activated on the channel (if it's different from the creation time). sometimes there will be a "!" or "*" right before the number. a "!" means the ban is in the bot's permban list, but is not currently on the channel. a "*" marks a ban which is NOT in the perman list but IS on the channel. if you use 'bans' it will show you only the bans which are currently in action on the channel. if you use 'bans all' it will show you every ban in memory. (with 'perm-bans' on, these are identical.) if you use 'bans (wildcards)' it will list all the bans (active or not) that match against your wildcard. consider it a 'bans all' list matched against your wildcard. the ban list may change according to which channel you're currently viewing in the console. different bans may be active on different channels. see also: -ban, +ban, kickban, console
binds [type] shows the TCL bindings in effect, in a list similar to this: Command bindings: TYPE FLGS COMMAND BINDING (TCL) msg - rose msg_rose msg - go msg_go dcc m bind cmd_bind pub - gross pub_gross the fields should be self-explanatory. if not, go read the file 'tcl-commands.doc' for help on the TCL bind command. note that the builtin commands are now shown. you may also specify a type of binding to show (ie, '.binds msg') if you want to narrow the field a bit.
boot (nickname) [reason] boot (nick@bot) [reason] will kick a user off the party line, and display the reason if you give one. you can attempt to boot someone from another bot (in a botnet), though it may be rejected if that bot does not allow remote boots.
botinfo requests information from every bot currently in the botnet. each bot should eventually send you one line listing its version and other information.
bots shows the list of bots currently in the botnet. example: Bots: cEvin, ruthie, Killa1 there is no indication of which bots are directly connected to this one. use 'who' or 'bottree' for that information.
bottree shows a tree-format diagram of the bots currently in the botnet. it's just a nice way to get a feel for how the bots are connected physically. see also: bots, link, botinfo
chaddr (bot) (address:port#) changes the internet address for a bot. this is the address your bot will try to telnet to in order to create a connection and link up. see also: link, +bot
chanmotd [all] Without the optional "all" parameter, displays all channel motd (message of the day) announcements which you have not yet seen. With the "all" parameter, displays all stored motd announcements.
channel [channel-name] shows you an extensive display of the users on a channel, and the current channel attributes. by default, it shows you the channel you are currently viewing on the console, but you can specify another channel if you wish. the first line will look like: Channel #hiya, 8 members, 45 users, mode +tn: (mem: 9k) this means that the bot is sitting on channel #hiya, where 8 other irc'ers are. there are 45 people that the bot knows by hostmask, and the channel mode is +tn. the user list (those 45 users) is taking up 9 kilobytes of memory. if the bot isn't currently on the channel it is supposed to be on, it will say "Desiring channel #hiya" instead... next is a list of the users on the channel, with each entry looking like this: 1. @Trey Trey (23:29) MO email@example.com the "@Trey" means that the user's nickname is Trey and that he is a chanop. the second "Trey" is the nickname that the bot knows him by. sometimes this will differ from the nickname a person is using. the time displayed is the time the user joined the channel. the next field is the attributes: I - idle for more than 15 mins O - can get ops (+o) M - bot master or owner D - cannot get ops (+d) the last field is the user@host he is using irc from. see also: status, whois
chat off chat (channel # or name) changes your channel on the dcc chat connection. when you first connect to the bot, it places you on channel 0 (the party line). you can move to another channel where basically nobody can see you (except anyone else who decides to join that channel). valid channel numbers are 1 thru 99999. some channels may have assigned names -- for those, you can specify the channel by name instead of number if you wish. 'chat off' removes you from any channel at all. you can still use normal bot commands and see the console, but you can't talk to anyone except via '.note' 'chat on' returns you to the party line (channel 0) if you were elsewhere.
chattr (nickname) [attributes] lets you view and change the attributes (flags) field for a user. for example, to give Lamer the p and f flags: .chattr Lamer +pf or to remove Denali from the deop list: .chattr Denali -d you may also do any combination of the above: .chattr Fred1 -m+dk-o whether or not you change any flags, it will show you the user's attributes afterwards. if this bot uses the owner flag, only the owner may add or remove the 'n' (owner), 'm' (master), and 's' (bot: userfile share) flags. to get a list of the flags possible, do 'help whois'.
chemail (user) [email address] sets the email address for a user. this info isn't really used by the bot for any reason except to display.
chinfo (user) [info-line] sets the information line for a user. this line is shown via /msg commands 'who' and 'whois', and if you have set greet on, it is shown when a user joins the channel. if the info line begins with a '@', then it is "locked", and that use may no longer change it.
chinfo (user) none erases a user's info line.!master
chpass (handle) (newpassword) changes a user's password on the bot. if you change someone's password to "nopass", they effectively no longer have a password set. the password is needed to get ops, join the party line, and other things (but only required if one is set).
comment (user) (comment...) creates or changes the comment field for a user. the comment field can only be seen via 'user' or 'match' -- non-masters can never see user comments. (the +c 'common' flag) sometimes a lot of people use irc from the same account -- for example, a telnet site. in that case, a whole bunch of people will have the same user@host. so they can't use a traditional user record because they will appear to all be the same person. in this case, you create a user record for the account, and mark it +c, or "common access". that means that it shouldn't be used as a definitive address. when someone introduces herself to the bot (ie, by /msg'ing "hello"), if she matches as a +c user, she will be given a new user record which identifies her BY NICKNAME. obviously people with that kind of user record shouldn't be given much special access, since when they change nicknames, the bot will identify them as someone else.
console [channel] [modes] changes your console level, so that you will see only those types of console messages that you want to. your current console channel is the channel (that the bot is on) which you can view from the party line, and which channel-specific commands (like 'say' and 'op') take affect on. valid levels are: 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 c display user commands (dcc and msg)%] x display file transfers and file-area commands o display other bot notices [HIGHLY RECOMMENDED] (note that only masters may use 'c', 'x', or 'o'.) the mode can also be a modifier like '+p' or '-jk' or '+mp-b'. if you omit the channel and modes, it will show your current console channel and setting. console (user) [channel] [modes]%] is used to set the console level of another user. this can even be used on users who normally would not be able to set their own console mode.
dccstat displays a table-format list of all the "dcc" connections the bot is handling. "dcc" means "direct client-to-client communication" and eggdrop expands this to cover every open socket. so any type of network connection to the bot is considered a "dcc" connection (except connections to a server). the headings of the table are: SOCK the socket of this connection (always unique) ADDR the IP-number of the host the connection is to, if applicable PORT the port number being used for communication NICK the nickname of the user or bot, if it's a user or bot HOST sometimes, the hostname corresponding to the IP address TYPE the type of dcc connection (see below) the types of connection currently possible are as follows (but more are being added literally all the time): chat user in dcc-chat command mode pass user entering dcc chat (being asked for her password) send raw data connection: user sending a file get raw data connection: sending a file to a user getp pending get (waiting for the user to acknowledge) teln telnet listening port (there is never more than one) t-in incoming telnet user (being asked for his nickname) file user in dcc-chat file area edit user in dcc-chat editor (must be a master) tand bot in tandem communication tnd* pending tandem bot (waiting for acknowledgement) rela user in relay connection to another bot >rly bot being relay'd to (one for each "rela") fork pending telnet connection out (forked out) new new user via telnet, entering a handle newp new user via telnet, entering a password in addition, 'chat' and 'tand' have flags listed for each con- nection. capital letters mean the flag is on, and lowercase letters mean the flag is off. for 'chat', the flags are: M master/owner X file area access C in file area, but allowed to return to party line S using 'ntalk' (or compatable) script P party line access only (no +o access) T telnet connection (instead of dcc chat) E echo is on for 'tand', the flags are: P ping sent, waiting for reply U user-file sharing is active C this bot initiated the connection O user-file offered, waiting for reply S in the process of sending the user-file G in the process of getting the user-file W warned this bot to stop hubbing L leafed bot (not allowed to hub) for 'chat' users, the party-line channel is also listed.
debug will display a dump of memory allocation, assuming the bot was compiled with DEBUG defined. it's useless to anyone but program- mers hacking on the bot and trying to find memory leaks.
delmotd (announcement - number) This will remove the designated announcement from the bot's list of known motd announcements. Make absolutely certain the announcement-number comes from the full chanmotd all listing, and not the limited chanmotd list.
deop (nickname) will remove chanop from the person you specify, so long as the bot is opped on this channel, and the person you specify isn't on the bot's list of authorized chanops. see also: op, console
die [reason] kills the bot. the bot goes offline immediately, logging who gave the 'die' command. you shouldn't have to use this too often. if you specify a reason, it's logged, otherwise the reason is "dead by request"
dump (text) dumps the text to the server. keep in mind that this bot doesn't run through ircII, so ircII commands will most likely not work this way. they need to be raw irc codes.
echo (on/off) sets whether you want your messages echoed back to you. if it's on, then when you say something on the party line, it will be displayed to you just like everyone else will see it. if it's off, then that won't happen.
email [email address] sets your email address. this data isn't really used by the bot, but it will show up if someone does a 'whois' on you. if you don't specify an address, the bot will show you the email address it currently has for you (if any).
email none clears your email address.
files will move you into the file transfer sub-system, if it has been enabled on this b00" noshade>desc (file) (description) changes the description for a file. if you are a master or file janitor, you can change the description for any file. otherwise you can only change the descriptions for files you have uploaded. the description is restricted to 5 lines of 60 characters each, and is broken up between words. you can force a line break by putting a '|' in the comment.
get (filename(s)) [nickname] sends you the file(s) requested, over IRC. you should get a DCC SEND notice on IRC, and have your client accept it. if your nickname on IRC is different than the one you use on the bot, you should specify a nickname too. you can also use that to send files to other people. if a file you want is actually on another bot, it may take a little bit longer so be patient. if that bot isn't on the botnet right now, it will say the file isn't availble. there is a limit to the number of transfers you can have going simultaneously, so if you go over this limit, the remainder of your file requests will be queued. as the first files finish transferring, the queued files will be sent. see also: pending, cancel Zulfikar file system commands: (wildcard expressions are allowed) get (file) [nick] send a file over IRC (DCC send) pending list queued file transfers cancel (file) cancel a queued file transfer ls [filemask] show list of files in this directory pwd display present working directory cd dir change current directory desc (file) (desc> set description of (file) to (desc) quit leave the file system Masters only: hide share mkdir cp rm lsa unhide unshare rmdir mv ln You can get help on any command via: help (command) (To upload a file, just start your dcc transfer.)
hide (file(s)) marks a file as hidden, so that normal users can't see it. only a master or file janitor using 'lsa' can see hidden files. see also: unhide, lsa
ln (bot:filepath) (localfile) creates a link to a file on another bot. the filepath has to be complete, like '/gifs/uglyman.gif'. if the bot is not connected to the botnet, nobody will be able to download the file until that bot connects again. the local filename can be anything you want. example: ln Snowbot:/gifs/uglyman.gif ugly.gif see also: share, unshare, get
ls [filemask] displays the files in the current directory. subdirectories are shown with "(dir)" next to them, and other files will display their size (typically in kilobytes), who uploaded them (and when), and how many times each file has been downloaded. if a descrip- tion of the file exists, it is displayed below the filename. you can restrict the file listing by specifying a mask, just like in unix. see also: cd, pwd, get
lsa [filemask] works just like lsa, but hidden files are displayed too. hidden files are displayed with a "(hid)" next to them, and shared files are displayed with a "(shr)" next to them. see also: hide, share
mkdir dir [flags] creates a subdirectory from this one, with the given name. if flags are specified, then those flags are required to enter or even see the directory. you can use the 'mkdir' command again to alter or remove those flags. see also: rmdir
mv (source> (dest) moves a file or group of files from one place to another. (it can also be used to rename files.) see also: mv
pending gives you a listing of every file you've requested which is still waiting, queued, or in the process of transferring. it shows you the nickname on IRC that the file is being sent to, and, if the transfer is in progress, tells you how far along the transfer is. see also: cancel
pwd tells you what your current directory is. see also: cd
quit exits the file system
rm (file(s)) erase a file for good.
rmdir dir removes an existing directory, if there are no files in it. see also: mkdir
share (file(s)) marks a file as shared. this means that other bots can get the file remotely for users on their file systems. by default, files are marked as unshared. see also: unshare, lsa, ln
unhide (file(s)) makes a file be not hidden any more. see also: hide, lsa
unshare (file(s)) removes the shared tag from a file. see also: share, lsa, ln
handle (oldnick) (newnick) changes the handle/nickname of a user record. for example, to change the nickname of user 'gavroche' to 'jamie', you would type: 'handle gavroche jamie'
ignores lists the hostmasks that the bot is currently discarding msgs, etc from. the ignores are numbered, so they can be easily removed with '-ignore' by number. a permanent ignore looks like this: [ 1]: ( Jayben) *!robey@* (perm) this kind of ignore can only be stopped by using '-ignore'. a temporary ignore looks like this: [ 2]: ( Jayben) *!*@ohio.eng.clemson.edu (active 3:19) that means the ignore was made automatically by the bot three minutes and 19 seconds ago, probably because of some sort of flooding. it can be removed with '-ignore', or it will expire after it has been active a certain amount of time (specified by 'ignore-time'). the name in parens is the person who placed the ignore. see also: +ignore, -ignore
info [info-line] sets your info line. this is shown via /msg commands 'who' and 'whois', and possibly when you join the channel. if you omit the info line, it will just show you what your current info line is.
info none removes your info line.
invite (nickname) invites someone from irc into your current console channel. this is most useful when the channel is +i. a user with the +o flag can also request an invite from the bot with /MSG INVITE see also: console
jump [server [port]] makes the bot jump to another server. if you don't specify a server, it will jump to the next server in its internal list (see 'help servers'). if you specify a server, it will jump to that server (default port is 6667), and if that server is not in the internal list already, it will add it. jumping servers ALWAYS makes the bot lose ops!
kick (nickname) will kick a user off your current console channel with the reason "requested". see also: kickban, console
kickban (nickname) [comment] kicks a user off the channel and bans her by a reasonable host- mask. your nickname will be attached to the ban in the bot's internal ban list, and the ban will last for one hour -- only on this channel. use '.+ban' for a more permanent ban which will be activated on every channel the bot monitors. if you use a comment, that will also be attached to the ban in the ban list, but it will not be used as the kick comment -- kick comment is "requested". see also: +ban, bans
link [some-bot] (new-bot) tries to link in a new bot. if you use the form .link newbot then your bot must have a record for the new bot (see '.+bot'). you can either set a password on each end or they will negotiate one the first time they link. if you use the form .link somebot newbot then the request will be sent to "somebot" for it to link to "newbot".
match +(attr) [[start] limit] shows you user records which have the attributes listed (such as '.match +of' to show all users who are friends and ops)
match (wildcard-string) [[start] limit] shows you user records where the nickname or any of the hostmasks match the wildcard string shown. the default limit is 20, meaning that if more than 20 user records match your requirements, only the first 20 will be shown. you can change this limit by specifying one on the command line, though. if you include a limit, you may also include a starting place (the default is 1). for example, to list the first 15 users who have hostmasks from clemson.edu: .match *clemson.edu 15 to get the next 10 (if there are more than 15), you ask to list numbers 16 thru 25: .match *clemson.edu 16 25
me (text) performs an action on the party line.
motd will redisplay the party-line message of the day, which was shown when you first joined.
msg (nickname) (text) sends a private message to someone from the bot, just as if the bot had typed /msg.
newpass (password) changes your password on the bot, just like the /msg command 'pass', except you don't need to type your old password.
nick (new-nick) changes your nickname on the bot. that's the handle that the bot will know you as forever and ever, and what you have to use when telnetting in or IDENT'ing yourself, so remember it.
note (nickname) (message) sends a private note to a user on the party line. if that user is currently on the party line, and not marked as away, she will receive the message immediately. otherwise it will be stored and displayed the next time that user joins the party line. if you join the channel, and have notes stored for you on the bot, it will tell you. to send a note to someone on a different bot, use "nick@bot" for the nickname. see also: whom, notes
notes index notes read (# or ALL) notes erase (# or ALL) lets you manipulate notes that have been stored up for you while you were gone. 'notes index' gives a listing of all the notes stored up: who they are from, and when they were left. 'notes read' lets you read a particular note, or all of them at once. and 'notes erase' erases notes after you are done with them. see also: note, whom
op (nickname) will grant chanop to the person you specify, so long as the bot is opped on your current channel, and the person you specify isn't being actively deopped by the bot. see also: deop, console
pinvite (nickname) will cause the bot to invite the user (nickname), currently on the bot's channel, to join the party line, and initiate a dcc chat connection with that user, provided the user has a current record on the bot. If there is no record for (nickname), the bot will inform (nickname) of your attempt to issue an invitation, and ask (nickname) to /msg Zulfikar hello
quit removes you from the party line and disconnects your dcc chat session with the bot.
rehash reloads the config file for the bot, which resets all the 'set' variables and reloads any TCL scripts your config loads. it also reloads the user file from disk, which will only have an effect if you have set 'periodic-save' on
relay (botname) will relay you via telnet to another bot that your bot knows of, whether or not they are currently connected. your dcc-chat/telnet connection to this bot will be relayed to the other bot until the other bot drops your relay, or until you send "*bye*" on a line by itself. see also: bots
reset [channel] clears out the bot's channel information and makes it gather the information from the server all over again, as if it had just joined that channel. it's not really useful much, but could be if an odd bug causes the channel information to get scrambled. unfortunately this command used to get a lot of use. you can omit the channel name to make it reset ALL channels.
resetbans resets the ban list on the channel you're currently viewing in the console. any bans on the channel that aren't in the ban list (either the global list or the local channel ban list) will be removed, and if there are any bans in the global ban list or channel ban list that are not currently on the channel, they will be added. see also: bans, reset, console
save makes the robot write its entire user list to the disk. this is useful if you are running with "periodic-save" on (meaning the bot only saves the user list once an hour) and you have just made some major changes to the user list and want to make sure they're stored on disk, for safety.
servers lists the servers that the bot has in its server list. this is the list it rotates through when changing servers. it starts with a static list which it loads from its config-file when the bot is booted up. after that, you can add servers with the '.jump' command. the server list will indicate which server the bot is currently on, and, if a helpbot is running, which server the helpbot is on.
set (variable) [value] changes the values of internal settings of the bot, or, if used without a value parameter, shows the current value of a setting. the bot starts out with settings as given in the configuration file. possible variables to be changed are: log-time strict-host ignore-time helpbot keep-nick isolate nick helpdir dcc-block keep-all-logs username tempdir dcc-maxsize passive realname init-server textdir owner ban-time notify-newusers learn-users userfile console ctcp-version require-x upload-to-cd dcc-path ctcp-finger require-p telnet dcc-incoming default-flags notefile servlimit motd never-give-up use-info flood-msg admin open-telnets share-users flood-chan save-users-at switch-logfiles-at copy-to-tmp flood-join use '.help set (variable)' for more info on each variable.
set admin "(admin info)" specifies the admin info for your bot. it's just human- readable text that is displayed every once in a while. it shouldn't be very long (no more than about 60 characters) and ought to say who's running the bot, and maybe an email address too. here's an example: set admin "Robey (firstname.lastname@example.org)"
set ban-time <#> specifies how long (in minutes) a temporary ban will last on the bot before being purged
set bitch (0/1) specifies whether the bot is in "bitch mode". In bitch mode, only users with the 'o' flag may have channel ops; everyone else will be deopped. Also, none of the bot's commands will work unless the user has a password set.
set chan-updates (0/1) specifies whether to show lines like this 10 members, 4 chops, 5o 0m 0d, 14 bans every five minutes, giving information about the channel. these "update" lines tell how many people are on the channel, and how many of them are channel-ops. it also tells how many people have +o, +m, or +d on the bot, and how many bans are on the channel.
set chanmode "(channel modes)" specifies the channel modes that the bot will enforce on its home channel. this should be a string just like you would use in an irc /MODE command. here are some examples: set chanmode "+nt-l" (always make channel +nt but always remove a limit) set chanmode "+k toblerone" (make sure the channel key is always "toblerone") set chanmode "-mi+lk 23 toblerone" (don't let the channel be set to moderated or invite-only, and keep the limit at 23 and the channel key as "toblerone")
set channel-key (channel-key) specifies the default channel key for the channel your bot is supposed to be on. most of the time, this can be set to "". however, if your bot's home channel is usually protected with a channel key, you need to set this to the key that is normally used, so that the bot can enter the channel.
set clear-bans (0/1) specifies whether the bot should, when getting ops on the channel for the first time, remove all the bans which aren't on its own ban-list.
set console (console-flags) specifies the default console mode for masters and ops when they first get on the dcc chat connection with the bot. for more info about console flags, see 'console'.
set ctcp-finger "(text)" specifies the response to send to a CTCP FINGER request. you might want to set this to look like a response from a normal irc client, so irc-ops can't tell this is a bot. one example is: Robey (robey@wc130), idle 0 seconds Note that the nickname is no longer automatically prepended, like it was in previous versions.
set ctcp-version "(text)" specifies the response to send to a CTCP VERSION request. you might want to set this to look like a response from a normal irc client, so irc-ops can't tell this is a bot. one example is: ircII 2.8 Linux 1.2.4 :ircii 2.6: almost there...
set dcc-block <#> specifies the block size to use in DCC file transfers. the ircII client defaults to 512, but admits that it may be too small. most toolboxes set it to 1024, which is the recommended value.
set dcc-incoming (path) specifies the directory where files dcc'd to the bot will go. if you have turned off the file section by setting 'dcc-path' to "", then this has no effect since all files offered by dcc to the bot will be rejected anyway. if you have set the 'upload-to-cd' to 1, then this will be ignored, and all files uploaded (sent) to the bot will go into whichever directory the user is in currently, or was in last.
set dcc-limit <#> specifies the maximum number of downloads (dcc gets) a user can have going at once. to effectively disable this, set it to 99. the default is 3. when a user reaches this limit, she will be unable to 'get' any more files from the file area until either the current transfers complete, or any pending transfers event- ually timeout.
set dcc-maxsize <#> specifies the maximum allowable size (in kilobytes) of a file that the bot will accept in a dcc send. the default is 1024, which is 1 meg.
set dcc-path (path) specifies where the bot's dcc file directory is. if you don't want a file transfer section on your bot, define this as "". otherwise, the directory given will be the root directory for users in the file section. they may move into any subdirectory and download any file you make visible, but may never move out past the dcc-path directory.
set default-flags (flags) specifies the flags to give to a user when they first introduce themselves to the bot with /MSG HELLO. obviously this has no effect if you have 'learn-users' turned off. for a list of the flags, see 'whois'.
set enforce-bans (0/1) specifies whether the bot should kick people off the channel when it notices their user@host matches a ban on that channel
set flood-chan <#> specifies the flood threshold for channel messges. if the same host talks on the channel more than this many times consecutively within 60 seconds, it's considered a flood and the user is kicked off the channel.
set flood-join <#> specifies the flood threshold for channel joins. if the same host joins the channel more than this many times consecutively within 60 seconds, it's considered a flood and the host is site-banned.
set flood-msg <#> specifies the flood threshold for /MSG or party line chatter. if the same host dumps more than this many /MSG's to the bot within 60 seconds, it is considered a flood and that host is put on automatic ignore. on the party line, if someone sends more than 'flood-msg' messages in a second, it's also considered a flood, and that user is booted off the line.
set forbid-bans (0/1) specifies whether the bot will forbid user-placed bans. if set to 1, the bot will remove bans placed by non-masters. the users will have to enter bands through the bot to get them activated. this has the positive side-effect of discouraging users from using lame "toolboxes" like phoenix or textbox.
set gain-ops "(raw irc string)" specifies optional text to send to the server when the bot does not have channel ops and there are others on the chan- nel who do.
set greet (0/1) specifies whether the bot will automatically "greet" users who have specified an info line, when they join the channel. each user can set a sort of "bio" line for themselves using the 'info' msg command. if 'greet' is on, when the user joins the channel, the bot will send their info line to the channel. if the user's nickname is not in the info line, the bot will add it. if you have set 'use-info' off, this seting is meaningless, and users may not set their info anyway.
set helpbot (helpbot-nickname) specifies the nickname to use for a helpbot. if you don't want a helpbot, set this to "". the advantage of using a helpbot is that long text files and information get sent to users through the helpbot, leaving the main bot free to do channel protection, etc. the disadvantage is that you now effectively have TWO bots on irc, which some irc opers get upset about. usually, having a helpbot is more trouble than it's worth, unless you are running an info server of some sort.
set helpdir (help-path) specifies the path to the help/ directory for the bot. if you can read this, it was set right. :)
set home-channel (channel-name) specifies the channel that the bot is supposed to sit on and protect. each eggdrop can only protect one channel at a time. (there are a million reasons for this which aren't worth explaining here.)
set idle-kick <#> specifies how long (in minutes) a user can be idle on the channel before being kicked. set this to 0 to disable it.
set ignore-time <#> specifies how long (in minutes) a temporary ignore will last on the bot before being purged
set init-server "(raw irc text)" specifies text to send to the server when first connecting there. this is usually used to set the bot's mode to +i or something equally unimportant.
set isolate (0/1) specifies whether your bot's party line will be isolated or be merged with the joint party line on the botnet. NOTE: this is somewhat obsolete now.
set keep-all-logs (0/1) specifies whether to keep logs older than 48 hours or not. if this is set off, at midnight, the current logfile will be re- named to "(logfile).yesterday" and a new logfile started. the old "(logfile).yesterday" will be erased. if this is set on, at midnight, the current logfile will be renamed to "(logfile). (date)" and a new logfile started. eventually your directory will be full of files like "LameBot.log.14Jul94".
set keep-nick (0/1) specifies whether the bot will keep trying to regain its nickname if it is forced to change nicks. if this is on, and you change the bot's nick on irc through a TCL script or the '.dump' command, then the bot will change back to its intended nick within 60 seconds.
set learn-users (0/1) specifies whether the bot will add users on the fly when they send the "hello" msg. if turned off, the only way to add users is with the '.adduser' or '.+user' commands. if turned on, users can introduce themselves without your intervention.
set log-time (0/1) specifies whether or not to time-stamp all log entries.
set motd (motd-file) specifies the "Message Of The Day" file. this should be a text file. it will be displayed to users as they enter a dcc chat session with the bot (so it shouldn't be TOO long). there are a few %-variables you can insert into the motd, which will be interpreted by eggdrop: %%B bot's nickname (ie, "Zulfikar") %%V current eggdrop version (ie, "%V") %%C channel the bot is on (ie, "%C") %%A whatever is set in 'admin' (see 'set admin') %%T the current time (ie, "%T") %%N the current user's nickname (ie, "%N") %%%% a percent sign ("%%") you can also encode messages just for ops or masters: %%(Anything between "%%(" and "%%)" is shown only to ops.%%) %%[Anything between "%%[" and "%%]" is shown only to masters.%%]
set never-give-up (0/1) specifies whether the bot should loop forever. If never-give-up is set false, then the bot will shut down if it goes through the entire server list once without getting a connection. Thirs via the /MSG HELLO command. obviously this has no effect unless the /MSG HELLO command is activated. the bot will send a note (see 'note') to each user listed in notify-newusers. this can be just one nick: set notify-newusers "Robey" or several, separated by commas: set notify-newusers "Guy, Eden@Priscilla" if you don't want anyone to be informed, just set it to "".
set op-on-join (0/1) specifies whether the bot should op recognized users with the 'o' (op) flag as soon as they join the channel. note that with this on, no password checking is done. password checking is only used when a user requests ops with the msg'd 'op' command.
set open-telnets (0/1) specifies whether to accept new users via a telnet connection. if set to 0, the bot will only accept telnet connections from people who already have user records. if set to 1, someone can enter "NEW" after telnetting to the bot, and create a new user record.
set (variable) [value] changes the values of internal settings of the bot, or, if used without a value parameter, shows the current value of a setting. the bot starts out with settings as given in the configuration file. possible variables to be changed are: log-time strict-host ignore-time helpbot keep-nick isolate nick helpdir dcc-block keep-all-logs username tempdir dcc-maxsize passive realname init-server textdir owner ban-time notify-newusers learn-users perm-bans userfile console require-x upload-to-cd dcc-path ctcp-finger require-p telnet dcc-incoming default-flags notefile servlimit motd never-give-up use-info flood-msg admin open-telnets ctcp-version flood-chan save-users-at switch-logfiles-at share-users flood-join use '.help set (variable)' for more info on each variable.
set owner "(nicknames)" specifies the user(s) who are to ALWAYS be bot owners. it is impossible to remove the +n flag from anyone listed here. if the bot was compiled with the owner flag turned off, this variable has no significance.
set passive (0/1) specifies whether the user data sharing of this bot (set share- users must be on) will be "passive" or "aggressive". a passive bot will always download the user file from another bot. an aggressive bot will always upload its user file to other bots. therefore, two aggressive bots will be unable to share user data. two passive bots will be able to share, however -- the bot that did the actual link will be the one to download. (setting both bots passive allows the user file of the bot which has been online longest to take precendence, usually.)
set perm-bans (0/1) specifies whether the bot's ban list should be mirrored in the channel or not. if perm-bans is on (1), the bot will make sure every ban in its internal ban list is active on the channel. if you have a large ban list (i've heard of one bot that had over 200), this could be a big pain. with perm-bans off, the bot only makes a ban active on the channel if someone joins who matches one of its internal bans. the ban will then "expire" (be removed from the channel) after about an hour, or whatever length of time you specified in 'ban-time'.
set protect-ops (0/1) specifies whether the bot should automatically re-op users who get deopped. it could be a security hole since no password is required to regain ops this way. !
set raw-files (0/1) specifies whether to provide a 'screen' between users and files in the file area. if this is on, the file area will deal with the files directly, as they are found in their directories, and will not store file descriptions, etc. if this is off, the file area will create a hidden file in each directory, where it will store file descriptions and other info. the benefit of raw-files is that you will not have to 'import' files in a pre-existing file area. the downside is that you will not be able to use file descriptions, or track who uploaded what file, and how many times it has been downloaded. if raw-files is on, the file area commands 'hide', 'import', and 'desc' are disabled.
set realname "(realname field)" specifies the real name field to use on IRC. this usually shows up in a /WHOIS as the thing in parenthesis after some- one's user@host. it can be anything you want, but IRC sets a maximum length so it might get cut off if you set it too long.
set require-p (0/1) specifies whether users with 'o' (op) also need the 'p' flag to join the party line.
set require-p (0/1) specifies whether users with 'o' (op) also need the 'x' flag to enter the file system.
set revenge (0/1) specifies whether the bot should be in "revenge" mode or not. if the bot is in "revenge" mode, it will punish users who do things the bot does not approve of, such as de-opping users with the 'o' flag, de-opping or kicking the bot, mass-kicking, maas-banning, etc. if 'revenge' is off, the bot will note each bad deed done, but will sit quiet and do nothing.
set servlimit <#> specifies the minimum number of servers the bot should accept. if the bot's home channel ever empties out, and the number of servers on the irc net becomes less than the 'servlimit', the bot will jump to a new server. this is to prevent it from getting stuck on the wrong end of a netsplit. to disable it, just set it to 0.
set share-users (0/1) specifies whether the bot should ever share user data with another bot. if this is on, it will use each bot's 's' flag to determine whether or not to share user data. if this is off, all user data requests are automatically refused.
set strict-host (0/1) specifies whether the bot should leave leading ~ in users' host- names. if this is on, leading ~ will be left in (the bot will differentiate between valid-ident usernames and invalid ones). typically this is set off, since most sites are not running the ident protocol, and therefore may get ~ put in front of their username when their username is valid.
set telnet (port #) specifies the port # that eggdrop should listen to for telnet connections, and bot links. once the bot has been loaded, it's really too late to change this.
set tempdir (path) specifies a temporary directory where eggdrop can store files for a short period of time. right now this is used to hold copies of files while people dcc-transfer them, so that changes made to the file in the file transfer area won't affect the dcc-get. under all normal circumstances, this ought to be set to "/tmp".
set textdir (text-path) specifies the path to the text directory for the bot. that's where miscellaneous things are stored -- things which aren't really help files, that the bot dumps to people at various times.
set upload-to-cd (0/1) specifies whether uploads to the bot's file area go to the user's current directory (1), or to the directory specified in 'dcc-incoming' (0).
set use-info (0/1) specifies whether to activate the info system. if this is off, the bot will not accept changes to any user's "info line" (the line shown for '/msg whois' and '/msg who' requests, and shown when a user joins the channel is you have set 'greet' on). this disables '/msg whois' and '/msg who' obviously, and makes the setting of 'greet' meaningless.
set userfile (userfilename) specifies the filename where eggdrop should store user records. you normally don't want to change this once you have started using the bot.
set username (username) specifies the username the bot will try to use on IRC. if your machine is running ident, this won't work, and the bot will show up as the user who started up the bot.
simul (nickname) (text) if the user is on the party line, the bot will simulate them typing the text you specify. example: .simul dweeb .quit makes it just as if "dweeb" typed ".quit"
status status all displays a condensed block of information about how the bot is running. here's an example from Snowbot: I am Snowbot, running eggdrop v1.0: 400 users (mem: 42k) Admin: Robey (email@example.com) #turtle : 2 members, enforcing "+tn-mlk" (greet, bitch) #gloom : 3 members, enforcing "+tn-i" (greet) Server minnie.cc.utexas.edu:6667 Online for 4 days, 06:18 (background) CPU 14:18 cache hit 55.3% Mode(s): revenge, learn users. the first line tells you the bot's name, what version of eggdrop it's running, the number of users the bot has records of, and the amount of memory being used. the second line, if present, is the contents of your 'admin' line in the config file. next is a line for each of the channels your bot is currently monitoring. for each channel, it lists the number of people on the channel ("members"), what channel modes it's trying to enforce, and which options are set for that channel. if your bot is sharing user files with anyone, and is currently either transmitting or receiving the userfile from a bot, it will say so here, and tell how many users have been received so far, or how many more users need to be transmitted. the next few lines show the current server, and if the helpbot is in use, its nickname and current server. to prevent server flooding, both the bot and its helpbot use queues to store replies to queries from users. if either queue has a significant amount of information in it, this status display will show how full (%) the queue is. the next line tells you how long the bot has been online, and whether it is operating in the background or foreground. if it's in the foreground, it will tell you whether it's in terminal mode or channel display mode. (terminal mode makes the local console simulate a dcc chat connection, and channel display mode displays a '.status' and '.channel' output every few seconds.) it will also give you an estimate of the amount of CPU time (minutes and seconds) the bot has used so far, and how well the cache is working. (the cache is an attempt to keep the CPU time down, and anything over 50% or so is just great.) the last line tells any significant modes set with the '.set' command, like revenge, learn users, and userfile sharing modes. if you do '.status all' you will see another pageful of info, showing every internal setting as specified in the config file. it should be self-explanatory to anyone who needs to use it. see also: set, channel, debug
topic (text) changes the channel's topic, assuming the bot is a chanop or the channel is not +t (uses your current console channel) see also: console
trace (bot) sends out a trace signal to another bot. if that trace signal returns (and it should!) you will get an output something like this: Trace result -> Valis:Stonewall:NoBoty:SomeBoty it's a list of the bots between you and the destination bot. see also: bots, bottree
unlink (bot) disconnects the named bot from the botnet, assuming it was connected in the first place.
unlink * disconnects from all bots see also: link
who [bot] lists everyone currently on your channel. a "*" in front of a user's name means he is a bot master. if the user has been idle for more than one minute, the idle time will be displayed, and if the user is marked as away, the away message will be shown below. if you specify a bot's name, as in '.who valis', the who request will be sent to that bot, as long as that bot is on the botnet. a 'who' will list up to three things, for whichever bot you ask: 1. a list of the people on the bot who are on your channel (the party line, if you never changed channels) 2. a list of the bots that this bot is directly connected to 3. a list of the people on the bot who are NOT on your channel masters may also see "(con)" and/or "(talk)" after a user's entry -- "(con)" shows that user's console modes (see the '.console' help page), and "(talk)" means that user is using the enhanced talk ircII script. see also: whom
whois (nickname) will show you the bot information about a user record. there are five headings: HANDLE the handle (nickname) of the user HOSTMASK(S) the hostmasks from which this user is recognized PASS "(yes)" if she has a password set, "(no)" if not ATTR the list of flags for this user (see below) LAST the time or date that the user was last on the channel the valid flags under ATTR are: o op (bot will give this user chanop) d deop (bot will not allow this user to become a chanop) k kick (user is auto-kicked) m master (user is a bot master) n owner (user is the bot owner) f friend (user is not punished for doing bad things) x xfer (user has file-area access) j janitor (user is a file-area master) b bot (user is another bot) p party-line (user has party-line access) c common (user record is a common-access site) [see 'help common'] s (BOT) share (bot is sharing user records) h (BOT) hub (bot is auto-linked at highest priority) a (BOT) auto (bot is auto-linked if no hub bots can be linked) l (BOT) leaf (bot is a leaf, not a hub) r (BOT) reject (bot will not be allowed on the net) --- there are also 10 user-defined flags: 0,1,2,3,4,5,6,7,8,9 --- if the user entry is for a bot, there will be a line below which says "ADDRESS:" and gives the bot's telnet address. some user entries may have "EMAIL:" and "INFO:" entries too. masters: if there is a comment, you will see it under "COMMENT:" see also: '.match', which will show multiple user records.
whom [channel] will display a table of the users currently on the joint party line (formed when you have two or more bots linked together). it will show each user's nickname, preceded by a "*" if they are a master on their bot, or a "@" if they are an op. in other columns it will show the bot the user is on, and his or her host. it may take a second for the table to finish displaying, since it is formed by sending requests to every bot in the bot- net. obviously, if your bot is not linked to any other bot, this command is no different than '.who' (except in format). if you are on a different channel than the party line (channel 0), then this will show the people on every bot who are on your current channel. you can also optionally give the "channel" option to list who is on a particular channel. see also: who, bots, chat
Special Thanks to Stefan Negele