Commands in the order they were implemented:

changePrimePass <password> <new password>

  Changes the highest-level password

  Must have full access to do so

changeOpPass <password> <new password>

  Changes the mid-level password

  Must have full access to do so

changeMinorPass <password> <new password>

  Changes the low-level password

  Must have mid-level access or higher to do so

op <password> <channel> <nick>

  Causes the bot to op the specified nick.

deop <password> <channel> <nick>

  Causes the bot to deop the specified nick.

voice <password> <channel> <nick>

  Causes the bot to voice the specified nick.

unvoice <password> <channel> <nick>

  Causes the bot to unvoice the specified nick.

ban <password> <channel> <usermask>

  Causes the bot to ban the specified usermask.

kickban <password> <channel> <usermask> <nick>

  Causes the bot to kickban the specified user.

unban <password> <channel> <usermask>

  Causes the bot to unban the specified usermask.

kick <password> <channel> <nick>

  Causes the bot to kick the specified nick.

tell passwords <password>

  The bot will tell you the passwords below your level.

  Level 1 ops may not use this command.

yap <talk password> <channel> <message>

  The bot will say whatever you tell it to.  Don't even think about trying to relay commands...

action <talk password> <channel> <action>

  The bot will do the same thing as the yap command, except it'll do it as if it were a /me action.

sendMsg <talk password> <nickname> <message>

  Relays a message to the specified user

New in 1.1:

thunderbolt <password> <channel> <nickname>

  A more fun way of kicking people...

stupidKick <password> <channel> <nickname>

  Yet another fun way of kicking people...

massUnban <password> <channel>

  Lifts every ban in the channel

returnFire <password> <channel>

  If you get banned from a channel, use this for easy revenge!  Nails everyone that banned you, and invites you back in when it's done...

New in B.otch Pro!

stats

  Gives you a comprehensive stats report about the B.otch bot.  No password required.

clear stats <prime access password>

  Clears the stats.

loaded?

  At the request of HHunter, I've added this.  This is a simple way of finding out if the bot is loaded or not.

noFloodStats

  A condensed stats report that reduces the risk of auto-flood ignores and such.

protectMe <password> <usermask to protect>

  Protects you from being deopped.  The higher level access you give the bot, the more you'll be protected.  Ones access can be instantly removed by simply changing the password, or using the forceLogOff command.  NOTE: You may only set protection on yourself!

tell protections <password>

  Tells you the usermasks that are currently being protected.  You may not view this list if you only have level 1 access!

clear protections <prime access password>

  Clears every protection mask out of the list.  Use in case of extreme emergency...

close protection <password>

  More or less logs yourself out of the bot, which means protection on your usermask becomes disabled.

forceLogOff <prime access password> <mask of user to log off>

  Removes all protection entries corresponding to the mask given.  NOTE: It is much simpler to just copy their usermask than to manually type in their mask in the protection list.

New in B.otch Platinum!

setNotice <password> <Auto-notice message>

  When someone joins, the bot will automatically send them the notice message you give them.  Commonly used types are those "Welcome to #ourchannel!  Here, we (bla bla bla)!  Type !rules for rules!" or stuff like that.

setNoticeChannel <password> <channel>

  Sets the channel that the auto-notice is active on.  WARNING!  You must set this value, or the bot will not use the auto-notice feature.  Enter "clear" in the channel field to deactivate the auto-notice.

dcc <filename>

  Sends the user who requests it the file with the specified name.  NOTE: You now select an auto-DCC folder at startup.  This folder must contain the files you want to be open for reception.

New in 2.2!

help <topic>

Now that I've figured out how to access files, I can finally create an advanced help system!  Woohoo!  Enter "index" as the topic for a list of branching topics.

New in 3.0!

Preferences files!  (No thanks to Apple for their lousy documentation of the read and write commands)  Before you even consider running B.otch, please run the B.otch Setup program.  Unlike previous versions of B.otch, you no longer have to enter all that password junk upon startup.

New in 3.1!

setTopic <Password> <Topic>
setTopicChannel <Password> <Channel>

Work essentially the same as the setNotice and setNoticeChannel commands, except these keep the topic at whatever you set it at.  This way, the topic field won't change to some lamer's twisted desired without your consent first...

New in 4.0!

Userlists!!!  Now, each user can be confined to a separate entry, and up to 16 different levels of user access.  Woohoo!

setAccess <Password> <Mask> <Level> <User password>

Sets the specified mask's level, and password.

killAccess <Password> <Mask>

Removes the specified mask from the list.

signOn <Password> <User password>

Signs you on to the bot.

signOff <Password> <User password>

Signs you off of the bot (When you're finished...)

forceSignOff <Password> <User's userhost (i.e. [email protected])>

Forces a user to sign off of the bot.

users

Reports who is currently in the userlist, and their status.

setStrictness <Password> <on/off>

If strictness is on, a password must be entered for each command.  If it is off, logged on users in the userlist will automatically have their passwords entered for them.  Exceptions to this are the following commands:

signOn, tell, clear, and close protection

Level Reference:

Range Access Level Notes
1-2 Basic Access No talk access
3-5 Basic Access
6-10 Mid-Level Access
10-15 Full Access
16 Full Access Can create userlist entries of any level

New in 4.1!

setDccChannel <Password> <Channel>

Sets the channel that DCC CHAT requests will be automatically accepted from.

setPermBan <Password> <Mask> <Reason>

Creates or edits a perminent ban for the specified mask, and a reason for the ban.

delPermBan <Password> <Mask>

Removes a perminent ban on the specified mask.

listPermBans

Lists the masks, reasons, and placers behind each ban stored in the bot.

New in 5.0!

sendMsg [talk password] [Nickname | Hostmask] <Message>

Leaves a message for the specified nickname or hostmask.  Don't confuse this with the old sendMsg!  That command has been proven to be utterly useless.

getMail

Checks your B.otch mail

Infobot commands

<Bot's nick>, <Object> is <Definition>   to define something
<Bot's nick>, who taught you <Object>?    to see who entered it
<Bot's nick>, forget <Object>    to delete an entry
<Bot's nick>, who/what is <Object>?   to see what it is

You may set an infobit limit, as not to overload your bot.

Greetings

setGreeting [Password] <Mask> <Greeting>

Sets an infoline/greeting for the specified mask.  They will be greeted with the greeting upon entry.

delGreeting [Password] <Mask>

Removes the specified greeting.

listGreets

Lists the current greetings stored in the bot.

New in 5.1!

<Bot's nick>, <Object> is/are <Definition>   to define something
<Bot's nick>, who/what is/are <Object>?   to see what it is

Now, it supports plurals!  So you can say "Fish are tasty" or something like that...

Also, that lame dual-occurance bug was fixed.  Thanx to MattJ131 for pointing it out!

setDccChannel HAS BEEN REMOVED!  It became apparent that it was utterly useless.  E-mail me if you want it back.

New in 5.2!

protectMe <Password> <Level>

It's back!  Although now, it's a LOT more stable!

Protection Reference Table

Level Effect Access needed
1 Reops you 1-5
2 Deops deoppers 6-10
3 Kicks deoppers 11-15
4 Bans deoppers 16

tellPersPass <Password> <Mask>

Tells you the personal userlist password of the specified mask.

New in 5.4!

setPermBan <Password> <Mask> <Type> <Reason>

Type: 1 = standard ban  3 = FlagBan, which is extremely hard to dodge

joinChan <Password> <Channel>

(Requires Prime [L10-16] access)  Joins the specified channel

partChan <Password> <Channel>

(Requires Prime [L10-16] access)  Leaves the specified channel if not opped there.