4.6 Modulation System Setup


The module setup is another core aspect of the project. Each application installed under the Communication Systems section comes with its own modulation system. Due to modularity, all routines and functions within an InspIRCd environment can be managed and controlled, or even developed and extended according to individual requirements. Therefore, this documentation entry is limited to Eggdrop; descriptions for all other standard module groups can be accessed via a link to the manufacturer, see Section 3.4 in the Table of Contents. The Eggdrop bot is written in the C programming language and provides interfaces for C modules and TCL scripts, greatly expanding the bot’s functionality. The standard modulation can be divided into the following categories.

  • Statistics
  • User and Channel Management
  • User and Channel Tracking
  • Information Storage and Search
  • Channel Member Greetings
  • File Serving and Distribution
  • IRC Services (ChanServ, NickServ)
  • Filters and Channel Bans
  • Botnet Management
  • Online Games

The Eggdrop bot also has a botnet, allowing multiple instances to connect, exchange data, and act in coordination. The botnet supports a "Party Line" accessible via DCC and terminal applications. Users can communicate on different channels within the botnet in a mini-IRC. Custom modules can be included at the end of a configuration file. Many modules also allow integration of entire projects and databases, or management of forums, enabling applications and programming languages, e.g., Java, to be used on another development level. The table below illustrates how the modulation system is structured.


# Base Modules All modules listed in this table are provided by the manufacturer as part of the standard installation.
alltools.tcl Base module, part of Eggdrop standard, provides basic functionality distribution.
action.fix.tcl Base module, part of Eggdrop standard, optimizes the integrated DCC chat communication protocol.
dccwhois.tcl Base module, provides a protocol to query information about Internet domains and IP addresses and their owners from a distributed database system.
userinfo.tcl Base module, part of Eggdrop standard, supports functions of dccwhois.tcl.
loadhelp userinfo.help Base module, part of Eggdrop standard, provides a small help file or user guide.

# Support Modules All modules listed in this table are developed and offered by the manufacturer and users.
libtclsqlite3.so Database module, supports SQLite databases.
bgexec1.8.tcl System module, starts process pipelines in the background and retrieves output via configurable callback.
egghttp.tcl Network module, needed to fetch information from web servers.
expr_parse.tcl Application module, allows reading triggers from a channel and sending them to other functions or modules.
fsck.tcl Application module, provides text processing tools for other modules.
http.tcl Network module, needed to fetch information from web servers.
inidb.tcl Database module, creates a PostgreSQL database cluster.
sha1.tcl Security module, verifies files and indicates whether they are error-free.
tls.tcl Network module, provides an encryption protocol for secure data transmission over the Internet.

# User Modules All modules listed in this table are developed and offered by users. Advertisement modules and language modules are also programmed by me; other modules may be modified and bugs fixed.
adbible.tcl Advertisement module for promoting theological content in the channel.
adradio.tcl Advertisement module for promoting radio stations in the channel.
adsermons.tcl Advertisement module for promoting theological news in the channel.
alice.tcl Language module, allows using an AI in the chat.
allprotection.tcl Security module, protects the channel through precise inputs.
audiokjv.tcl Advertisement module for promoting theological audiobooks in the channel.
bmotion.tcl Language module, allows using an AI in the chat. Consists of a base module and hundreds of submodules.
botnet.tcl Network module, required to link multiple bots or control them simultaneously.
countdown.tcl Entertainment module, starts/stops a Scrabble puzzle and math task run.
darksky.tcl Information module, provides weather information via an API in the channel.
diatheke.tcl Information module, provides theological literature in the channel.
dispatch.tcl Communication module, supports the exchange of user information.
entertainment.tcl Language module, allows the use of an AI in chat.
geonames.tcl Information module, retrieves location data and forwards it to other modules (e.g., weather module).
identify.tcl Authentication module, automatically registers the bot with internal server services (see Atheme).
imdb.tcl Information module, reads movie title information from a database and displays it in the channel.
love.tcl Entertainment module, displays ASCII art in the channel.
megahal.tcl Language module, allows the use of an AI in the chat.
message.tcl Information module, outputs text under predefined triggers in the channel.
nick.tcl Information module, displays the current participant list of a channel on a website.
notice.tcl Information module, script for freely providing information, includes a user guide for the channel.
quran.tcl Information module, provides theological literature in the channel.
readfile.tcl Information module, reads text files directly from the local storage and displays them in the channel.
rss-synd.tcl Information module, shows changes on news sites and optionally displays them in the channel (see web feeds).
say.tcl Application module, allows the bot to chat in the channel or perform actions.
seen.tcl Information module, stores the last connection status of a user.
superscript.tcl Control module, allows the bot to be controlled directly from the channel and execute commands.
tell.tcl Communication module, supports the exchange of user information.
translator.tcl Information module, performs translation of foreign languages in the channel via the Yandex API.
trivia.tcl Entertainment module, allows starting/stopping a trivia game in the channel.
urltitle.tcl Information module, reads title information of a URL and displays it in the channel.
walkthrough.tcl Information module, provides theology-based literature in the channel.
wolframagaz.tcl Information module, Wolfram Alpha API, a semantic search engine for retrieving and presenting information in the channel.
xAutoKnown.tcl Database module, registers participants at set intervals in the channel database.

Configurations Configurations can additionally reference other modules that should be included.
adminserv.conf References a service module, includes ChanServ and NickServ modules.

Next Generation Bots

The modulation setup of Python bots is roughly similar. However, using Python simplifies many things. For example, Eggdrop modules consisting of master and slave units are already included during the installation of Limnoria. Next-generation bots can be deployed more efficiently and even save up to 90% of system resources. However, configuration options are not always as extensive and precise as with older models or programming languages.


Example, User Guide notice.tcl:



Download Module
Frame right
Frame bottom