Welcome to BlackBoT, a modular, modern, multi‑instance capable IRC bot written in Python.
Check https://uptime.tclscripts.net for BoT Uptime Contest
- 🔥 Multi‑Instance Manager (create, start, stop, edit, delete bots)
- 📦 Per‑instance environment configuration (
.env) - 🔐 NickServ authentication (with optional ident requirement)
- 🛡️ SSL/TLS support (server TLS + optional client certificates)
- 🧠 Auto‑update system
- 🚓 Flood protection
- 🎚️ Per‑instance logging
- 🧵 ThreadWorker supervisor (safe background workers)
- 📡 DCC support
- 🔄 BotLink system (inter‑bot communication)
- 🧩 Modular command system (channel + PM + DCC commands)
BlackBoT/
│── Manager.py
│── Launcher.py
│── BlackBoT.py
│── commands.py
│── environment_config.py
│── SQL.py
│── ...
│
└── instances/
└── <InstanceName>/
├── .env
├── logs/
├── data/
├── <bot>.db
└── <bot>.pid
- Python 3.8+
- Git
- OpenSSL (for SSL IRC connections)
- A Linux system is recommended, but Windows works too
git clone https://github.com/tclscripts/BlackBoT.git
cd BlackBoT
Run the launcher:
python3 Launcher.py
This will:
- Create a virtual environment (
.venv) - Install all required dependencies
- Validate environment
If everything succeeds, you’re ready to create a bot instance.
python3 Manager.py
You will see an interactive menu:
- Create new instance
- Start instance
- Stop instance
- Restart instance
- Edit configuration
- Delete instance
python3 Manager.py start
python3 Manager.py start <InstanceName>
python3 Manager.py stop <InstanceName>
python3 Manager.py restart <InstanceName>
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.
BlackBoT includes an advanced modular command system. All commands can be executed in:
Use the command prefix (default !) inside any channel where the bot is present.
Send the bot a private message with the same command syntax.
If you open a DCC session with the bot, all commands also work there.
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 channel‑specific help while in PM/DCC:
!help #channel
Access is based on flags stored in the SQLite DB:
N– Boss Ownern– Ownerm– MasterM– ManagerA– AdminO– OpV– VoiceP– ProtectedB– 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 bot‑to‑bot communication.
Same instructions as original README.
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.
- !hello — private greeting
- !uptime — show bot uptime
- !version — show bot version
- !help — show help for commands
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
- !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
- !add [#channel] — grant access
- !delacc [#channel] — remove access
- !del — delete user
- !userlist [#channel] — list users with access
- !info <nick|#channel> — inspect info
- 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
- !ban [options] — advanced regex/mask ban
Pull requests and feature requests are welcome.