A new type of irc robot coded in Python
  • Python 100%
Find a file
2025-11-26 08:17:28 +02:00
core # solved bugs, added ban and unban 2025-11-26 08:17:28 +02:00
modules Delete modules/modules 2025-06-10 14:36:20 +03:00
BlackBoT.py # solved bugs, added ban and unban 2025-11-26 08:17:28 +02:00
changes # added Launcher that implements the possibility to have multiple robots on same archive 2025-11-18 14:56:55 +02:00
Launcher.py # solved issue in Launcher.py 2025-11-18 15:58:35 +02:00
LICENSE Initial commit 2023-10-20 11:58:28 +03:00
Manager.py # solved issue in Manager.py 2025-11-18 16:55:08 +02:00
README.md # modified README.md 2025-11-19 15:09:07 +02:00
requirements.txt # modified the way the bot starts, added bash file to create python enviroment and install packages 2025-07-06 19:41:46 +03:00
VERSION # solved bugs, added ban and unban 2025-11-26 08:17:28 +02:00

🤖 BlackBoT Modern IRC Bot with MultiInstance Manager

Welcome to BlackBoT, a modular, modern, multiinstance capable IRC bot written in Python.

Check https://uptime.tclscripts.net for BoT Uptime Contest


🚀 Features

  • 🔥 MultiInstance Manager (create, start, stop, edit, delete bots)
  • 📦 Perinstance environment configuration (.env)
  • 🔐 NickServ authentication (with optional ident requirement)
  • 🛡️ SSL/TLS support (server TLS + optional client certificates)
  • 🧠 Autoupdate system
  • 🚓 Flood protection
  • 🎚️ Perinstance logging
  • 🧵 ThreadWorker supervisor (safe background workers)
  • 📡 DCC support
  • 🔄 BotLink system (interbot communication)
  • 🧩 Modular command system (channel + PM + DCC commands)

📁 Project Structure

BlackBoT/
│── Manager.py
│── Launcher.py
│── BlackBoT.py
│── commands.py
│── environment_config.py
│── SQL.py
│── ...
│
└── instances/
    └── <InstanceName>/
        ├── .env
        ├── logs/
        ├── data/
        ├── <bot>.db
        └── <bot>.pid

🛠 Installation

1 Requirements

  • Python 3.8+
  • Git
  • OpenSSL (for SSL IRC connections)
  • A Linux system is recommended, but Windows works too

2 Clone Repository

git clone https://github.com/tclscripts/BlackBoT.git
cd BlackBoT

3 Initial Setup (Automatic)

Run the launcher:

python3 Launcher.py

This will:

  • Create a virtual environment (.venv)
  • Install all required dependencies
  • Validate environment

If everything succeeds, youre ready to create a bot instance.


▶️ Running BlackBoT

Start MultiInstance Manager

python3 Manager.py

You will see an interactive menu:

  1. Create new instance
  2. Start instance
  3. Stop instance
  4. Restart instance
  5. Edit configuration
  6. Delete instance

Start All Bot Instances

python3 Manager.py start

Start One Instance

python3 Manager.py start <InstanceName>

Stop a Running Instance

python3 Manager.py stop <InstanceName>

Restart a Bot

python3 Manager.py restart <InstanceName>

Check Process Running

Instances write their PID file here:

instances/<Name>/<Name>.pid

Logs are stored at:

instances/<Name>/logs/

To follow logs live:

tail -f instances/<Name>/logs/<Name>.log

Follow the instructions as before.


🧩 Using Commands

BlackBoT includes an advanced modular command system. All commands can be executed in:

✔️ Channel (public)

Use the command prefix (default !) inside any channel where the bot is present.

✔️ Private Message (PM)

Send the bot a private message with the same command syntax.

✔️ DCC Chat

If you open a DCC session with the bot, all commands also work there.


Getting Help About Commands

Use:

!help

This will show all commands you have access to, grouped by:

  • Public commands available to everyone
  • Local (Channel) commands depend on your access flags in that channel
  • Global commands require higher privileges

To get help for a specific command:

!help command

Example:

!help op

To view channelspecific help while in PM/DCC:

!help #channel

🧩 Command Access System

Access is based on flags stored in the SQLite DB:

  • N Boss Owner
  • n Owner
  • m Master
  • M Manager
  • A Admin
  • O Op
  • V Voice
  • P Protected
  • B Bot

Each command lists the flags required. Use !help command to check.


  • Bot can accept DCC CHAT sessions.
  • Commands work identically over DCC.
  • BotLink uses DCC internally for bottobot communication.

▶️ Running Bots

Same instructions as original README.


📚 Complete Command List

Below is the full list of commands supported by BlackBoT, extracted from the bot's internal command registry. Commands may be used in channel, via private message, or over DCC, depending on access.


🟢 Public Commands (no access flags required)

  • !hello — private greeting
  • !uptime — show bot uptime
  • !version — show bot version
  • !help — show help for commands

🏷️ Channel-Level Commands (require channel access)

These depend on your access inside each channel.

  • !op [nick] — give +o
  • !deop [nick] — remove +o
  • !voice [nick] — give +v
  • !devoice [nick] — remove +v
  • !hop [nick] — give +h
  • !hdeop [nick] — remove +h
  • !cycle [#channel] — part + rejoin
  • !say — send message through bot

🌐 Global Commands (require global flags: N,n,m,M,A,O depending on command)

🔧 Bot Management

  • !addchan #channel — register/join channel
  • !delchan #channel — unregister/part channel
  • !channels — list stored channels
  • !jump — change to next server
  • !restart — restart bot
  • !die — shut down bot
  • !rehash — reload configuration
  • !update check/start — check or run updater
  • !status — system & thread status report

👤 User & Access Management

  • !add [#channel] — grant access
  • !delacc [#channel] — remove access
  • !del — delete user
  • !userlist [#channel] — list users with access
  • !info <nick|#channel> — inspect info

🔒 Authentication Commands

  • auth — authenticate (PM only)
  • auth save — save current host
  • pass — set your password (PM)
  • newpass — change password (PM)
  • deauth — logout current host
  • myset — change user settings

🚫 Moderation

  • !ban [options] — advanced regex/mask ban

❤️ Contribute & Support

Pull requests and feature requests are welcome.