So here's a general *programming* introduction to what the different modules do and what services they provide. It is, however, only an introduction. Read the modules themselves for a much more detailed explanation :) fix.py: Stuff that Python should (but doesn't) include by default. cdb.py: A constant database library, translated from C (and my O'Caml version) More information available at http://cr.yp.to/cdb.html. Not currently used since we switched to PySQLite. ansi.py: Contains different ANSI color sequences. Mostly used by the debug module. conf.py: The configuration file for the bot -- it sets a lot of variables that other modules check for when they have questions about what they need to do. world.py: Just a dropping off place for some globals that need to be shared among all the modules. It's obviously not used *a lot*, but some things seem to fit better here than anywhere else. privmsgs.py: Basic stuff relating to callbacks.Privmsg, the base class for most plugins. callbacks.py: A few basic callbacks providing significant functionality. You'll likely be inheriting from Privmsg quite a bit. ircdb.py: The users and channels databases are here, as well as the IrcUser and IrcChannel classes. Look here when you want to restrict a command to only certain users. irclib.py: Provides the most important class in the irclib, Irc. It represents a connection to an IRC server, but it's entirely separate from the network implementation. It's connected to the network (or whatever else drives it) by a "driver" module which uses its feedMsg/takeMsg functions. drivers.py: The baseclass (IrcDriver) for various drivers to drive irclib.Irc classes. Also, the driving mechanism. asyncoreDrivers.py: The asyncore-based drivers for use with the bot. socketDrivers.py: The plain old socket-based drivers for use with the bot. twistedDrivers.py: The Twisted drivers for use with the bot. ircmsgs.py: The IrcMsg class (get to know it :)) and various functions for making the creation of IrcMsgs easier. ircutils.py: Various utility functions for Irc -- read the module to see what goodies are there :) schedule.py: A schedule driver (which is automatically registered with the drivers module) to run things at a particular time, or at specified periods of time.