# Configuration file for IRPG bot. Prefix comments with a #. Line must start # with a # to be a comment (no leading spaces and no comments starting in the # middle of a line). # # If you don't personally know your admins, or you're just not the trusting # type, you may want to look at the ownerpevalonly, owneraddonly, and # ownerdelonly options. ownerpevalonly prevents non-owner accounts from using # the PEVAL command, which can allow admins to execute arbitrary code under the # username that the bot runs as. owneraddonly prevents non-owner accounts from # assigning admin status to users. ownerdelonly prevents non-owner accounts from # removing admin status from users # # 'disablepeval' option was renamed to 'ownerpevalonly' # # Command line options override options in this file. # # Any setting marked "MUST SET" needs to be properly configured before the bot # is started for the first time. # remove or comment out this line so the bot knows that you edited the config # file die # local hostname or address to bind to. leave blank or comment out if you don't # want to use a vhost #localaddr myvhost.domain.com # MUST SET: server name:port, enter as many as you like #server miami.fl.us.irc-network.org:6667 #server dallas.tx.us.irc-network.org:7000 #server brussels.be.eu.irc-network.org:6660 server chat.freenode.net:6667 # MUST SET: bot's nickname botnick bot-nick # MUST SET: bot's username botuser bot-username # MUST SET: real name field botrlnm bot real name # MUST SET: channel name (followed by optional key, if your channel requires # a key) botchan #bot-channel s3cr3t.p4ss # MUST SET: (identify) command to send upon successful connect. if using a # privmsg command, you must begin the text of the message with a ":" -- see # below last parameter is account password # # note: this is very dependent on the services being used. The following # works on freenode and other networks using atheme or similar services botident PRIVMSG NickServ :identify ilovedink # MUST SET: modes to set bot upon successful connect. verify these are # correct for your network botmodes +ix # MUST SET: command to send upon joining channel. %botnick% will evaluate to # the bot's current nickname, so you don't have to worry about opping the # wrong person. if using a privmsg command, you must begin the text of the # message with a ":" -- see below # # note: this is very dependent on the services being used. The following # works on freenode and other networks using atheme or similar services botopcmd PRIVMSG ChanServ :op #bot-channel %botnick% # command sent to recover nick if bot's primary nickname is in use if using a # privmsg command, you must begin the text of the message with a ":" -- see # below # # note: this is very dependent on the services being used. The following # works on freenode and other networks using atheme or similar services # # this is not currently properly implemented and is provided as a placeholder botghostcmd PRIVMSG NickServ :ghost bot ilovedink # URL to send users to for help # note: running the web code is not necessary but is _strongly_ encouraged helpurl http://localhost/ # admin commands list (for admin help) # note: running the web code is not necessary but is _strongly_ encouraged admincommurl http://localhost/admincomms.txt # base time to level up, 600 = 10 minutes rpbase 600 # time to next level = rpbase * (rpstep ** CURRENT_LEVEL) rpstep 1.16 # penalty time = penalty * (rppenstep ** CURRENT_LEVEL) rppenstep 1.14 # player database file dbfile irpg.db # where quests/godsends/calamities are stored eventsfile events.txt # debug mode on/off flag, merely prints what text was received, what queue # number outgoing text is given, and what text is sent to server (to the # debug file, no longer to STDOUT) debug off # choose filename to send debug output to. text is appended to this file # while the bot is in debug mode, in lieu of STDOUT debugfile debug.txt # Use URL-type banning for non-logged-in users that have been on the channel # less than 90 seconds? doban on # URLs containing these terms will not be banned by the 'http:' # advertisement ban (if you have it turned on). enter as many as you like okurl ultrazone.org okurl idlerpg.net # modes of silence. in mode 0, bot sends all privmsgs. in mode 1, only # chanmsg() is disabled. in mode 2, only privmsg() to non-channels is # disabled. in mode 3, privmsgs to users and channels are disabled silentmode 0 # write quest info file? all this file does is give outside programs info # about the active quests, its participants, their positions, and time to # completion # # note: this is required for quest reloads on game restart to function writequestfile on # filename for the above-mentioned file questfilename questinfo.txt # voice users on login (and register)? if you like, you can set your channel # +m, then +v clients as they login, cutting down on spam. however, if your # users generally bring in a second client to chat with, that client won't # be able to speak in the channel voiceonlogin on # disallow usernames and character classes with control codes (bold, color, # underline, bell, etc)? noccodes on # disallow usernames and character classes that contain "non-printable" # characters? it's a good idea to leave this option on, as I have had # problems in the past with using binary hash keys nononp on # MUST SET: URL where users can reach the online quest map, if available. # if not offering a map to users, leave this blank mapurl http://localhost/quest.php # allow a STATUS command for users? this is a p0 command to view information # on an irpg user. useful if you don't have a website where users can view # their stats statuscmd on # filename to write our PID to. leave blank or comment out if pidfile is # unnecessary to you pidfile irpg.pid # attempt to reconnect if disconnected? reconnect on # seconds to wait before attempting to reconnect? don't hammer your irc # network, please; 90+ seconds is suggested reconnect_wait 120 # this is what the bot considers to be an "internal clock" of sorts. some # examples of where this is used: $freemessages lines of text from the # message queue are sent every self_clock seconds; every self_clock seconds, # the players move on the map (self_clock times to simulate movement every # second); HOGs, calamities, godsends, etc. are given a chance to occur # every self_clock seconds; and the list goes on. if you have problems with # the bot flooding off, try increasing this number to 4 or 5. if your bot # appears to 'lag' because it is queueing too much text, you can set this # as low as 1. this must be an integral value (no fractions), and it must be a # factor of 60 (or certain events will not occur, like database rewrites) self_clock 3 # file into which character modifier texts are appended modsfile modifiers.txt # disallow the registration of usernames already existing in a different # case? ie, jon == Jon == JON casematters on # allow rudimentary netsplit detection, and a) give no penalty and b) log # them back in upon return? I always suggest to users that they switch to # the server that the bot is on, but this has been a frequent request, so. # will pick up quit messages that match /^\S+\.\S+ \S+\.\S+$/. if your # network does not prefix quit messages with "Quit: " (or something other # string), then users can cheat this at their whim detectsplits on # time to wait for netsplit users to return? in seconds. 900 = 15 minutes, good # for large nets splitwait 900 # allow non-admin users some information on the bot, such as the server it # is connected to and the nicknames of online admins via a p0 INFO command? allowuserinfo on # ignore the new scaling features and use the old method for calculating the # odds of events occurring? if you have a very large game and were # comfortable with the speed that HoGs, Godsends, Calamities, etc. were # occurring, you may want to set this noscale off # allow bot to access http://jotun.ultrazone.org/g7/count.php?new=1 each # time someone registers a new username? it only takes a second, and I'd # really like to be able to keep up with the total player count :^) # # The above URL no longer resolves; disabled now by default phonehome off # username of the bot's owner. this account cannot be DELADMINed and has access # to PEVAL even if it is disabled owner botadmin # disable the PEVAL command for non-owner accounts? this command allows the # execution of arbitrary Perl code by bot admins, effectively giving them # complete control of the account under which the bot runs. I prefer to leave # this command available and choose my admins with care, but, whatever :^) ownerpevalonly on # only owner account can use the MKADMIN command to assign admin status to # users? owneraddonly on # only owner account can use the DELADMIN command to remove admin status from # users? ownerdelonly on # check for newer versions each time the bot starts up? this will access the # URL http://jotun.ultrazone.org/g7/version.php?version=$version and report on # any updated versions and what features there are/bugs have been fixed # # The above URL no longer resolves; disabled now by default checkupdates off # send list of usernames that are automatically logged back in when we restart # (iff that list is < 1 k)? this should, hopefully, no longer cause the bot to # flood off. the function that sends text to the server will no longer send more # than 768 bytes to the server every self_clock seconds. the old function would # send as much as 5 * 512b or 2.5k each self_clock seconds, and as this was # usually the feature that caused such a large amount of text to be sent at # once, if your channel had a large amount of users, this would cause it to # flood off. so, though I think the bug is fixed, I offer the option to turn # this off senduserlist on # limit maximum amount of penalty for one event? this will prevent a user from # being penalized more than seconds for one event: part, privmsg, notice, # kick, etc. set to 0 if you want to disable limiting. # 604800 == 7 * 86400 == 1 week limitpen 604800 # if you would like a custom-sized map, define the width of your map here: mapx 500 # if you would like a custom-sized map, define the length of your map here: mapy 500 # specify modes / line. the bot will override this from what it grabs from the # server's 005 numeric, though, if anything. used only for auto-login voicing modesperline 3 # do we want to receive new user repors emails? newuserreports off # MUST SET: where do new user emails go; unnecessary if newuserreports is off # # note: the escape on the '@' is mandatory; ignored if newuserreports is off newuserdest user\@email.tld # MUST SET: from addr on newuser report email; unnecessary if newuserreports # is off; ignored if newuserreports is off newuserfromaddr idlerpg-monitor\@email.tld # MUST SET: from name on newuser report email; unnecessary if newuserreports # is off; ignored if newuserreports is off newuserfromname IdleRPG Monitor # MUST SET: game title used in channel announcements, emails, etc; unnecessary # if newuserreports is off gametitle game title