Scroll to navigation

BOT-BASICBOT-PLUGGABLE(1p) User Contributed Perl Documentation BOT-BASICBOT-PLUGGABLE(1p)


bot-basicbot-pluggable - A standard Bot::BasicBot::Pluggable script


version 1.20


This script acts as standard interface for Bot::BasicBot::Pluggable, a generic framework for writing pluggable IRC bots in perl. It enables the user to administrate a full-fledged bot without writing any perl code.


  bot-basicbot-pluggable --nick MyBot --server


The server to connect to. Defaults to localhost.
Read config options from specified FILE. For a discussion of possible value and format refer to the section CONFIGFILE. The default to read the configfile found by Config::Find.
The logging configuration will be read from the specified file. Please refer to Log::Log4perl::Config for its format. The parameter loglevel will be ignored if this options is supplied.
Sets the bots loglevel to one of the following levels in decreasing order of output: trace, debug, info, warn, error or fatal. Defaults to warn.
Nickname to use. Defaults to basicbot.
Channel to connect to. This parameter may be provided several times. You do not have to prefix the channel name with a hash symbol, which would have to be escaped in shell. It's automatically added for you.
Sets the admin password of the Auth module. This also loads the Auth module implicitly. Please be warned that this password will probably been seen on any process listing as on ps or top.
Modules to load. This parameter may be provided several times. You can call --list-modules to get a list of all available modules. If you do not define any module via this option, Auth and Loader are loaded by default.
Lists all installed modules and exits afterwards. No bot is started.
Lists all installed storage modules and exits afterwards. No bot is started.
Defines which storage module is used to save module settings. The default is Memory, which does not save any settings between sessions but does neither leave any files nor need any special settings.

This options take a string in the form key=value and can be specified multiple times. The value of the key type define which storage backend to load, all other parameters are passed to the object constructor as hash reference.

For example:

  ./bot --store type=Deep --store file=foo.deep

That command will create an Bot::BasicBot::Pluggable::Store::Deep object and pass "file => 'foo.deep'" to its constructor.

Charset to use for the bot. Defaults to utf8, but you can use any encoding listed in Encode. The IRC protocol doesn't define a specific character-set to use. This presents a big problem, because if you do not use the same as everybody else in the channel you just receive garbage.
Port to connect to on target host. This defaults to the irc standard port 6667. You won't need to define this in most cases.
The bot does not connect to any irc server, but will wait on stdin on commands from the user. This mode won't actually work with a lot of irc related modules like ChanOp.


The bot read a configfile either found by Config::Find (usually named ~/.bot-basicbot-pluggable.yaml) or specified on the command line via --configfile on startup. The file should be a syntactical correct yaml file with a hash as its first level element. It understands every option listed above and the special settings parameter, which is a hash, where the keys are module names and the value is a hash of configurable module settings. Easier to show than to explain:

 server: host
 nick: bot
     self_ignore: 0
   type: Deep
   file: foo.deep

All modules listed under settings are also loaded on startup.

Please remember that you have to escape hash (or pound) signs in YAML:

   - '#botzone'


Mario Domgoergen <>




Copyright 2005-2009 Mario Domgoergen.

This program is free software; you can redistribute it and/or modify it under the terms of either:

  • the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or
  • the Artistic License version 2.0.
2022-10-14 perl v5.34.0