Incubot

Incubot is an IRC bot from the mid 90s used to control IRC channels, host file archives, and perform other services. It was used in many of the early Doom channels, and its usage has carried over to several Quake channels. The Incubot is one of the most well-known bots in a large family of bots. The bot has several quotes and features that reference Doom and games culture in general.

For many years an Incubot served WAD and LMP files to users in various EFNet channels.

Key features

 * User lists and access levels.
 * Various channel protection capabilities to reduce flooding and reduce abuse.
 * Comprehensive help system available via DCC.
 * Passworded login to use certain functions.
 * File archive possibility and DCC support.
 * Multi-head support, run several bots from one process.
 * Authenticates and communicates with other bots that support its command set and requests operator status from them.

Code origin
Incubot has a complicated source code history, with many authors. One quirk of the source code is that the original bot had a source file called vlad-ons.c that had code for handling of various commands and events. When the bot was forked new authors added more of these files, named after the author. This makes it complicated to find and understand functionality as it is often grouped into files by who made the functionality, not how they relate to each other or what the code does.

Vladbot
The base of the source code is from VladBot 2.x-branch, a C-bot written by VladDrac (irvdwijk@cs.vu.nl) who has had lots of help from Richie_B (richie@morra.et.tudelft.nl). Development on Vladbot continued into a 3.0-version, but these changes are not part of the Incubot family.

Chronic bot fork
New features and commands added by The-Black (starks@cs.ucdavis.edu) and further extensively modified by BadCRC (ralto@kendaco.telebyte.com). Many of the changes are found in crc-ons.c and tb-ons.c. Based on Vlad-bot.

Incubot fork
Based on Chronic bot, updated by incubus (|nc) and had many new features and bug fixes. This bot formed the basis for several other forks. This fork also contains some code from the Eggdrop IRC bot. On-line docs written by MeGALiTH (acable@sound.demon.co.uk) and appended/kept up to date first by Wendigo (bhess@widomaker.com). Many of the changes were added to incu-ons.c and mega-ons.c. The bot was not Y2K-compliant, and an event in 2001 could be listed as 101.

Incubot ByxNet fork
Based on Incubot, this fork has been used in the #quake channel on ByxNet for about 25 years. A few very minor modifications to the source have been done to make it compile cleanly on modern operating systems.

Revbot fork
Basec on Incubot, this fork was primarily coded by Revzoot and this was the bot used in EFNet #quake from the late 90s. It has many updates and a few features seldomly used have been removed.

Mikribot fork
Based on Incubot, this was a fork with the purpose of fixing bugs and adding sought after features. It was primarily written by Kim Roar Foldøy Hauge (Zokum) with a bit of help from Colin Phipps (cph) and Reep. Many of the additions were put into mikri-ons.c. It has been in use for over 20 years in several EFNet channels.

Documentation was updated by Reep and Zokum. Zokum also wrote an open source web version of the help reader utility that reads the same help files as the bot and that are used by the console helpread program.

Added features

 * Encrypted bot-to-bot communication.
 * Authentication is shared with other bots.
 * Uses fewer IRC commands to update itself when it (re)connects to a server.
 * A lot of the commands' output was updated to make it easier to understand and read.
 * Spy mode to see messages sent to the bot and relay mode to see channel chat.
 * Can echo server traffic to the console.
 * Increased seen database and an important bug fix to send back correct data.
 * The quotes and games references were updated and expanded upon, adding references to newer games.