Preliminary Documentation for BNX Bot v1.0 BETA

Congratulations! You have downloaded BNX Bot, the most advanced 
bot on Battle.net today. This is the preliminary documentation file, 
intended to get your new bot up and running. More complete 
documentation will follow after the beta test period has ended.

Installing BNX Bot

BNX Bot is simple to install and set up. First, if you have not 
already done so, unZIP the distribution archive into its own 
subdirectory (e.g. c:\bnx). Throughout this document, we'll refer to 
this directory as the "bot root directory." This completes the 
installation process.

Next, decide on a name for your bot. Using StarCraft or Diablo 
1.05 or later, create an account on Battle.net with your bot's name and 
a password you select (i.e. connect to Battle.net, click the "New 
Account" button, and enter your bot's name and password). It's possible 
that the name you want is unavailable; if so, simply pick a different 
name. 
Once you have sucessfully created your bot's Battle.net account, 
edit the file BOT.CFG in your bot root directory. BOT.CFG has 6 
entries; the important ones at this time are username, password, and 
home. Set username to the name of the bot you chose earlier. Set 
password to the bot's password. Set home to the name of the bot's home 
channel (i.e. the channel where you want the bot to hang out). Leave 
the other entries alone for now. Save the file and exit.
Next, edit the file ACCESS.LST in your bot's root directory. This 
file controls who can issue commands to your bot. Each line in the file 
represents one user and contains their username, their access level, 
and their password, all separated by spaces. For now, use a text editor 
to add yourself to the file by putting your name, access level 100, and 
a password. Save the file and exit.
Now it's time to fire up the bot. Double-click on the BNX.EXE 
icon in the bot's root directory. An empty text-mode window will come 
up - this is normal. No output is ever actually sent to this window, so 
go ahead and minimize it. Now log onto Battle.net with your StarCraft 
or Diablo game client and go to the channel you specified earlier as 
your bot's home channel. Your bot should be there waiting for you. If 
he's not, double check that you've edited the bot.cfg file correctly.
Now that your bot is online, it's time to get him to do stuff. 
Before you can give your bot commands, you have to log in. Whisper the 
bot "login <password>" where <password> is the password you specified 
in the ACCESS.LST file earlier. Your bot should whisper back to you 
"Your wish is my command, master." If he does not, double-check your 
ACCESS.LST file.
Now that you are logged in, you can command your bot to do your 
bidding. You issue commands to BNX by whispering to him; for example, 
to have him say "Hello, all!" you would whisper the command "say Hello, 
all!" to your bot. Note that for security reasons, your login will 
exipre after 5 minutes. This is to help prevent someone from logging on 
with your name (after you have logged off) and issuing commands to your 
bot. If you find that your bot has stopped responding to your commands, 
simply login again.
BNX understands the following commands:

? Say - Tells the bot to say something. 
? Kick - Kicks a user (if the bot has Ops). 
? Ban - Bans a user.
? Login - Allows an authorized user to issue commands to the 
bot.
? Shitadd - Adds a user to the shitlist. Users on the shitlist 
will be banned on sight by the bot (if he has Ops). Use this 
to keep undesirables out of your channel. NOTE: Usernames in 
the shitlist can have wildcards (see the Customization section 
below for more info on wildcards).
? Shitdel - Removes a user from the shitlist. 
? Shitlist - Lists users in the bot's shitlist.
? Join - Tells the bot to join a new channel and call it his 
home.
? Chatter - Tells the bot to talk to people. This is on by 
default.
? Designate - Tells the bot to designate another user.
? Ignore - Tells the bot to ignore someone.
? Logout - Tells the bot you no longer want to issue commands.
? Shutdown - Tells the bot to shut down and log off of 
Battle.net.
? Shutup - Tells the bot to stop talking out loud to the 
channel. He will still respond to your whispered commands, but 
will not respond when ordinary people address him.
? Splatterkick - A more elaborate way to ban someone from the 
channel - try it!
? Squelch - Tells the bot to squelch a user.
? Unban - Tells the bot to unban someone.
? Unsquelch - Tells the bot to unsquelch someone.
? Useradd - Adds a user to the bot's userlist. Format is useradd 
<username> <accesslevel> <password>. Access levels are from 0 
to 100, with 100 being full access. Typically, only the bot's 
owner has level 100; friendly users can be given level 60 
which will allow them to instruct the bot to ban, unban, kick, 
etc. but will NOT allow them to add or delete other users.
? Userdel - Delete a user from the bot's userlist.
? Userlist - Displays the bot's userlist.
? Voteban - The bot will conduct a vote, asking the users in the 
channel whether or not the named user should be banned from 
the channel. If the users vote the user out, he gets a nice 
splatterkick.
? Where - Tells the bot to tell you which channel he's in. 
Useful if you forget where you parked your bot.

Customizing BNX Bot

BNX's chatter is highly customizable. All his chatterbot 
responses are contained in the file RESPONSE.TXT, located in the bot 
root directory. The responses form groups, where each response group 
consists of one or more patterns followed by one or more responses. 
Each pattern specifier begins with a `P' at the start of the 
line. Patterns are regular expressions, with special wildcard 
characters similar to the wildcard characters used in DOS/Windows 
filenames. The wildcard characters for patterns are as follows:

? * - matches 0 or more characters of any type
? ? - matches exactly one character of any type
? % - matches any number of non-space characters
? ~ - matches at least one space character
? \ - the literal escape character

Each group can have multiple patterns, each on a separate line. 
After the pattern lines are one or more response lines. Each response 
begins with an `R' at the beginning of the line, followed by the 
response. NOTE: The spaces after the `P' and `R' are important - be 
sure not to leave them out! The current response group ends when the 
next `P' line is read, or the end of file is reached.
When input addressed to the bot matches any of the patterns in a 
response group, one of the responses from that group is picked randomly 
and sent back to the speaker. The number of patterns and responses is 
limited only by your computer's available memory.

