Skip to content


Armour configuration is held in the ./armour/armour.conf file. This file should be renamed to refer to each bot running Armour, just as with the eggdrop config file in the parent directory.

cd ~/bots/armour
cp armour.conf.sample mybot.conf


The configuration has sensible default values but many variables must be changed otherwise the bot will not operate as expected.

Please ensure you thoroughly read this configuration file and make all necessary changes before loading the script on your eggdrop.

Sample Configuration

The sample armour.conf.sample configuration file can be viewed here


The config file is separated into distinct sections:

Section Description
General Core functions to reference the bot's identity for config and db files, password behaviour, and debug
Updates Behaviour relating to automatic script version checks and updating
User Registration Options to define user self registrations
Network Connection settings and network specific behaviour
Bot Methods to trigger bot commands and various optional behaviour settings
Note Control of the bot's system to send notes between users
Channel Channel settings including primary channel and optional reporting channel
Service Authentication Options to control authentication and use of network services
Kickban Options relating to channel kickbans incl. metho and timings
Scanner Control of inbuilt scanners incl. DNSBL and portscaner
Text CAPTCHA Settings relating to optional CAPTCHA from
IP Quality Score Settings controlling behaviour from optional IPQS checks from
IRCBL Options relating to IRCBL service when adding and removing RBL entries
Text Matches Behaviour relating to blacklist entries of text type
Line Flood Options to control text line flood thresholds and actions in channels
Adaptive Regex Configuration to determine floodnet detection match types
Report Settings controlling when user or channel notices are sent for different events
Custom Queue Timers to finely control the custom queue behaviour for channels in secure mode
Floodnet Control of channel lockdown behaviour when floodnet is detected
Trakka Control of timers and action when trakka score tracking is enabled in channels
External Scripts Ability to send channel joins to external scripts only when all scans have passed
Bot Protection Optional list of network SILENCE masks, for added protection
Paranoia Control of behaviour when in secure mode, incl. CAPTCHA, CTCP VERSION, and clones
DroneBL Options relating to DroneBL service when adding and removing RBL entries
OpenAI Settings relating to the optional openai plugin for ChatGPT integration
Command Levels Ability to control the required level and accepted methods (pub, msg, dcc) for every command


Armour comes with some optional script plugins found within the plugins directory.

To load these plugins, uncomment the respective line(s) at the end of the Armour configuration file.

#set addplugin(quote) "./armour/plugins/quote.tcl";           # -- quote management
#set addplugin(openai) "./armour/plugins/openai.tcl";         # -- openai (ChatGPT)
#set addplugin(tell) "./armour/plugins/tell.tcl";             # -- tell
#set addplugin(trakka) "./armour/plugins/trakka/trakka.tcl";  # -- trakka
#set addplugin(smsbot) "./armour/plugins/smsbot.tcl";         # -- SMS (via
#set addplugin(push) "./armour/plugins/push.tcl";             # -- push (via
#set addplugin(email) "./armour/plugins/email.tcl";           # -- email
Plugin Configuration

Some plugins have configuration in the plugin TCL file, others are configured from Armour itself. Ensure to read any instructions in the plugin *.tcl file before loading.


Before loading Armour, ensure:

  • the eggdrop bot is running, connected to IRC, and that your are added as bot master with a password set;
  • the Armour configuration file has been fully read and edited

To load Armour, its configuration file needs to be loaded by eggdrop. To do this, add the below line to the eggdrop configuration file and rehash the bot.

Rename mybot.conf to an appropriate name for your bot, so multiple Armour bots can easily be ran from the same installation directory with different configuration files.

source ./armour/mybot.conf

Common Mistake

Do not load armour.tcl from the eggdrop configuration file. Load the armour *.conf file, and it in turn will automatically load the armour TCL script and all dependencies.

Next, rehash the bot from one of two ways:


Change mybot to the name of your eggdrop:

kill -HUP `cat pid.mybot`

Debug Logging

Armour can create some very helpful and interesting debug logging. This can be enabled form the partyline and it's therefore recommended to be watching the partyline when the script is being loaded.

To enable debug logging, enable the desired log levels (1-5). Useful logging without being too excessive, is up to log level 3. To enable this level, all commands below must be typed:

.console +1
.console +2
.console +3

Create User#

Once Armour is laoded, a special one-time-use command is enabled which allows the first Armour user to be automatically created.


The below commands should only be used once your user is first aded to the eggdrop database using the hello command.

It's advisable to have the partyline (DCC or telnet) open with debug levels 1-3 enabled before typing the below, so any errors can be captured for troubleshooting, if needed.

Only proceed once the above has been done.

From IRC:

/msg <botnick> inituser <user> [account]
/msg <botnick> login <user> <password>
/msg <botnick> newpass <newpassword>


The inituser command only works when the Armour user database is empty.

The user is your desired username in the Armour bot. It can be the same as your eggdrop handle.

Use account to represent your network account (e.g., X username on Undernet). This will be used for autologin.

Running the inituser command will generate a random password that can then be changed. This password can be used when autologin is unavailable, otherwise is not typically required in future.

/msg <botnick> inituser <user>
/msg <botnick> login <user> <password>
/msg <botnick> newpass <newpassword>


The inituser command only works when the Armour user database is empty.

The user is your desired username in the Armour bot. It can be the same as your eggdrop handle.

Running the command will generate generate a random password that can then be changed.

Example, with private messages to the bot:

Empus | inituser Empus Empus
 yolk | newuser created. please login: /msg yolk login Empus ks&j8%*%2s

Empus | login Empus ks&j8%*%2s
 yolk | login successful. 0 unread notes.

Empus | neewpass myNewP@$$w0d
 yolk | password changed.

Network Autologin

If using user accounts (e.g., Undernet/Quakenet), autologin will occur automatically after network authentication, without ever needing to use manual password-based authentication.

Autologin after network auth will be actioned when joining a channel, or by using login on its own (either in a channel or in privmsg)


If the above steps worked and you're now authenticated and changed your password, Armour is ready for use. Congratulations!

The bot will have automatically joined the primary (default) channel set in cfg(chan:def) as well as the console reporting channel set in cfg(chan:report)

Additional channels can be registered with the addchan command.

@Empus | y version
 @yolk | version: Armour v4.0 (revision: 2023090903 -- status: current with 4_0_beta branch)

@Empus | y cmds
 @yolk | commands: access ack add addchan adduser and ask askmode asn ban black chanlist chanscan chuck cmds cocktail conf country dad deluser deop devoice die do exempt fact help history idle image info invite ipqs joke jump kick lang load login logout mod modchan mode moduser newpass newuser note nudge op queue quote register rehash rem remchan remuser restart say scan scanport scanrbl score search set showlog speak stats status tell time topic trivia ub unban update usearch userlist verify version view voice vote
 @yolk | hint: for web documentation, see:

Command use can be checked with the help command and available through the Commands online help.

Troubleshooting Failures

If you have reached this step and did not succeed with inituser (or the subsequent login), then something failed in the setup process.

Check for errors in the partyline (or telnet) by enabling debug Level 3 by typing all of the below lines and trying again:

.console +1
.console +2
.console +3

Errors found in these partyline/telnet debug messages will provide crucial assistance when troubleshooting problems.

If you still have problems, please make contact for support -- ideally on IRC. Instructions can be found on the Contact page.