The Carl Tech - WhatsApp

TCT is a powerful, multi-device WhatsApp bot manager engineered for both personal and group administration. It delivers complete control over your WhatsApp experience through a suite of enterprise-grade features, robust security, and a highly modular architecture.

🚀 Quick Start Guide

Step 1: Generate Your Session ID

Before deploying, you must generate a valid WhatsApp session ID:

Step 2: Choose Your Deployment Method

VPS / Ubuntu PC Deployment
Recommended
One-click setup for VPS and Ubuntu PC
bash <(curl -Ls https://i-tct.com/scripts/vps)
Termux Deployment
Testing
Android Termux setup
bash <(curl -Ls https://i-tct.com/scripts/termux)
Windows Deployment
  1. Open PowerShell as Administrator.
  2. Run this command to start the installer:
    Windows installer script
    irm https://i-tct.com/scripts/tct | iex
  3. Follow the on-screen instructions in the installer.
  4. If the bot stops, restart it. First, `cd` into the directory (e.g., build or your {botname}):
    Change directory (example)
    cd C:\Users\USER\Downloads\build
    Start command
    npm start
  5. To stop the bot (if installed with PM2), `cd` to the same directory and run:
    Stop command (example)
    npx pm2 stop {botname}
Heroku Deployment

Cloud deployment with zero configuration

Follow the instructions in the deployment guide

Step 3: Configure Environment

Edit your environment variables after deployment:

Environment configuration
# OpenWeatherMap API key
OPENWEATHER_API_KEY=your_key_here

# Football Data API key
FOOTBALL_API_KEY=your_key_here

# Your session ID from Step 1
SESSION_ID=tct_xxx

Edit config.yml to set your timezone and preferences.

Step 4: Start Using

Start command
npm start
Alternative
yarn start

Need help? Join our Community Support

Deployment Tutorials

Deployment Tutorials

Learn how to deploy your applications across different platforms with these step-by-step video guides.

VPS Deployment

Learn how to deploy your application on a Virtual Private Server (VPS) with this comprehensive guide.

Windows PC Deployment

Step-by-step instructions for deploying your application on a Windows PC environment.

Termux Deployment

Deploy your application directly from your Android device using the Termux terminal emulator.

Heroku Deployment

Learn how to deploy your application to Heroku's cloud platform with this easy-to-follow tutorial.

All video content is embedded from YouTube. Tutorials created by the deployment team.

Connection & Defaults System

The Connection system is a powerful JID (group ID) store that saves you from retyping long group IDs. Create short aliases for your groups and activate them as "defaults" to supercharge your commands.

Core Concepts

  • Admin-Shared: Any connection created by one admin in the master group can be used by all other admins in that same group.
  • Two-Step Activation: First, you save a JID with an alias using `connection`. Then, you must activate it using `setdefault` before other commands can use it.

The Workflow

💾
1. Save JIDs with `connection`
2. Activate with `setdefault`
🚀
3. Use in Other Commands

Command Guide

`connection`

Saves one or more group JIDs under easy-to-remember aliases. This command has two styles:

Style 1: Bulk Add (Multi-line)

To add multiple connections at once, use `connection .` (with the dot) followed by each alias and JID on a new line.

connection .
groupA [email protected]
groupB [email protected]

Style 2: Single Add

To add just one connection, use the command with the alias and JID on the same line.

connection mygroup [email protected]

`setdefault`

Activates one or more saved connections, making them the "default" targets for other commands (like `antilink`, `wlc`, etc.). This is the most crucial step.

setdefault groupA
setdefault groupA,groupB

You can set a single default or multiple, comma-separated defaults.

`listconnection`

Displays a list of all connection aliases you have saved.

listconnection

`getdefault`

Shows you which connection aliases are currently active as the default targets.

getdefault

`delconnection`

Removes one or more saved connections from your JID store.

delconnection groupA
delconnection groupA,groupB

Remember: Saving a `connection` does not automatically use it. You MUST run `setdefault` to activate it for other bot commands.

Plugin Manager Guide

Easily manage your bot's plugins. List, add, or remove functionality from external sources. A bot restart is required for changes to take effect.

Installing Plugins

Bot Owner/Sudo Only All plugin commands must be used in a private message (PM) with the bot.

List Available Plugins

Displays a complete list of all plugins available to install.

plugin list

Install Specific Plugins

Downloads and installs one or more plugins. Names must be comma-separated without spaces. Alias: `install`

plugin add cc,time,weather

Install All Plugins

Downloads and installs all available plugins from the list at once.

plugin all

Removing Plugins

Bot Owner/Sudo Only Use these commands to delete plugins from your bot.

Remove Specific Plugins

Deletes one or more specific plugins. Protected plugins cannot be removed. Alias: `delete`

plugin remove cc,time

Remove All Plugins

Deletes all non-protected plugin files from your bot's modules directory.

plugin remove all
Anti-Edit Message Logger

This module is a silent, passive logger that automatically detects and reports when a user edits a message, providing transparency and a clear moderation trail.

How It Works

The Anti-Edit module runs automatically in the background. It is always active and requires no commands to enable or disable it. Its sole purpose is to capture the original and new content of an edited message and forward it to a designated log location.

Configuration

This module has no commands of its own. It shares its log destination with the **Anti-Delete (Delete Recovery)** module. To configure where the edit logs are sent, you must use the `delete` command.

To Send Logs to a Specific Group:

Use the `delete` command followed by the group's JID.

delete [email protected]

To Send Logs to Your Private Chat (Default):

Clear the target JID. The bot will default to sending all logs to your PM.

delete clear

Bot Owner/Sudo All `delete` configuration commands must be run in a private message with the bot.

Understanding the Log

When a message is edited, you will receive a detailed log that looks like this:

✏️ Message Edited

👤 User: @1234567890

💬 Chat: My Awesome Group

🆔 Message ID: ABCDEFGHIJK

🔁 Original Message: Hello world!

✏️ Edited To: Hello everyone!

Anti-Viewonce Media Saver

Never lose a "view-once" image or video again. This module allows you to easily save view-once media by simply replying to the message.

How to Recover a View-Once Message

Step 1: Receive a view-once image or video in any chat.

Step 2: To save it, reply directly to that specific view-once message.

Step 3: Your reply message must start with a single underscore (`_`). The rest of the message doesn't matter.

_

Step 4: The bot will automatically download the media and send it as a normal, saved message to your configured destination.

Configuration Commands

Bot Owner/Sudo Only All `viewonce` commands must be used in a private message (PM) with the bot.

Check Current Status

Shows the current settings, including notification status and save destination.

viewonce

Toggle Detection Notifications

Enable or disable the alert that tells you when a view-once message has been detected.

viewonce notify on
viewonce notify off

Set Save Destination

Choose where the recovered media and notifications are sent.

viewonce p (or pm)Sends to your PM
viewonce g (or group)Sends to a specific group

Set Target Group JID

If your destination is set to `group`, you must specify which group to send to.

viewonce [email protected]

Clear Target Group

Removes the configured target group JID from memory.

viewonce clear
Bot Update Manager

Keep your bot up-to-date with the latest features and fixes. This module allows you to check for, apply, and automate updates for both core files and plugins.

Manual Update Commands

Bot Owner/Sudo Only All update commands must be used in a private message (PM) with the bot.

Check for Updates

Checks if any new updates are available without applying them. The bot will tell you if an update is ready to be installed.

update

Apply Updates Now

Immediately downloads and applies all available updates. If core files are changed, a reboot will be required.

update now

Automatic Update Commands

Bot Owner/Sudo Only Configure the bot to check for and apply updates automatically.

Check Auto-Update Status

Shows whether automatic updates are currently enabled or disabled, and when the next check is scheduled.

autoupdate

Enable Automatic Updates

Turns on the scheduler. The bot will automatically check for and apply updates every 24 hours.

autoupdate on

Disable Automatic Updates

Turns off the automatic update scheduler. You will need to check for updates manually.

autoupdate off
Downloader Module Guide

How to Use the Downloader Module

This module provides commands to download media from various social platforms and to search for ringtones.

Permissions

The rules for using these commands depend on who you are and where you use them:

  • Bot Owner: The bot owner can use all commands in any chat.
  • Group Admins: In a group chat, only group admins can use the commands. The downloaded media will be sent directly to the group.
  • Sudo Users: In a private chat (PM), only sudo users can use the commands. The downloaded media will be sent to the sudo user's private chat.

Commands

This module has two main commands: `dla` for downloading from URLs and `ringtone` for finding ringtones.

➡️ `dla <URL>`

This is a universal downloader that supports several platforms.

  • Supported: Twitter (x.com), TikTok, Instagram, Facebook (fb.watch), Pinterest, Mediafire.
  • Usage: `dla <URL_of_media>`
dla https://www.tiktok.com/@example/video/12345

➡️ `ringtone <search_query>`

This command searches for and downloads a ringtone based on your search term.

  • Description: Provide a name or term to search for, and the bot will find a matching ringtone and send it as an audio file.
  • Usage: `ringtone <search_term>`
ringtone mission impossible
Delete Recovery Module

How to Use the Delete Recovery Module

This module works silently to save messages and media. If a user deletes a message, this module will recover the content and forward it to a designated location.

Configuration Commands

Bot Owner/Sudo Only All `delete` commands must be used in a **private message (PM)** with the bot.

➡️ `delete` (Check Status)

Shows current settings, including send mode (PM/Group) and cleanup days.

delete

➡️ `delete p` (Set to PM)

Sets the destination for all recovered messages to your private chat.

delete p (or delete pm)

➡️ `delete g` (Set to Group)

Sets the destination mode to a specific group. You must also set the target JID.

delete g (or delete group)

➡️ `delete <group_jid>` (Set Target)

Sets the specific group where recovered messages will be sent.

delete [email protected]

➡️ `delete clear` (Clear Target)

Removes the configured target group JID. Falls back to PM.

delete clear
Welcome Module Guide
Welcome Module

How to Use the Welcome Module

This module automatically greets new members with a customizable, visually appealing welcome card when they join a group.

The Welcome Card

When a new user joins, the bot will send a message that includes:

  • A card-style background.
  • The new member's profile picture (if enabled) or a random welcome image.
  • A mention of the new user.
  • The group's name.
  • Your custom welcome message.
  • The new total member count (e.g., YOU'RE MEMBER: 51/1025).

To keep the chat clean, the bot will also attempt to delete the previously sent welcome message when a new one is posted.


Profile Picture Feature

You can control whether the card uses the new member's profile picture:

  • Enabled: Shows the member's actual profile picture.
  • Disabled: Uses a random welcome card image (default).

Permissions & Targeting

Group Admin Only All commands must be used by a group admin in the group chat.

  • Default Targeting: When an admin uses a command, it will apply to their "default connection" group(s).
  • Specific Targeting: To manage a different group, include gp:<target> in your command.

Commands

➡️ `wlc` (Set Welcome Message)

Sets or updates the welcome message. The command wlc must be on the first line, followed by your message. Use profilepic on or profilepic off on a new line to control the PFP.

Example (PFP Enabled):
wlc
Please read the group rules in the description.
We look forward to your participation!
profilepic on
Example (PFP Disabled):
wlc
Welcome to our community!
Feel free to introduce yourself.
profilepic off
Example (Specific Group when setting view pm ):
wlc
This is the welcome message for the dev team.
profilepic on
gp:dev_team_alias

➡️ `delwlc` (Delete Welcome Message)

Deletes the welcome configuration, disabling the feature for the target group(s).

Usage (Default Connection):
delwlc
Usage (Specific Group when setting view pm ):
delwlc gp:my_other_group

Key Points

  • The profile picture setting is saved per group.
  • If not specified, the previous setting is maintained (defaults to off for new groups).
  • If a profile picture can't be fetched, it falls back to a random welcome image.
Alive Bot Commands

Provides a customizable "alive" message with a random image, bot uptime, and a "Quote of the Day." Quotes are managed automatically.

Important: Usage Modes

This module has two ways to use commands:

Group Usage

Commands are run by **group admins** directly inside a group. They affect only the group where the command is used.

PM Usage

Commands are run by the **bot owner or sudo users** in a private message. These commands **MUST** include a gp:<target> specifier.

➡️ `alive`

Manually sends the alive message.

Group Usage Group Admin

alive - Sends to the current group.
alive all - Sends to all your default connection groups.

PM Usage Sudo/Owner

alive gp:my_group_alias - Sends to the specified group.
alive gp:all - Sends to all groups the bot is in.

➡️ `setalive`

Sets a custom multi-line message for the alive broadcast.

Example (Group Usage) Group Admin

setalive
This is my group's
custom alive text!

Example (PM Usage) Sudo/Owner

setalive
This is the new message.
gp:my_group_alias

➡️ `delalive`

Deletes the custom alive message, reverting to default.

Group Usage Group Admin

delalive

PM Usage Sudo/Owner

delalive gp:my_group_alias

➡️ `alivedaily`

Manages the automatic daily sending of the alive message.

Group Usage Group Admin

alivedaily - Shows current daily status for this group.
alivedaily on 07:30 - Enables daily sends at 7:30 AM (Time optional, defaults to 08:00).
alivedaily off - Disables daily sends for this group.

PM Usage Sudo/Owner

alivedaily on 09:00 gp:all - Enables daily sends for all groups at 9:00 AM.
alivedaily off gp:my_group_alias - Disables daily sends for the specified group.

➡️ `listquote`

Displays a sample list of the globally available quotes.

Group Admin Sudo/Owner

This command can be used by admins in-group or by sudos in PM. No gp: specifier is needed.

listquote
Filter Module (gfilter)

Create automatic replies (filters) that trigger on specific keywords or patterns. Filters can be global or group-specific.

How It Works & Permissions

The behavior of commands changes depending on who uses them and where.

In a Group Chat (Group Admins)

Manages filters for your "default connection" group(s). You can add gp:<target> to override this.

In a Private Chat (Sudo/Owner)

Manages **global filters** (for all groups) by default. You can add gp:<target> to manage filters for a specific group instead.

➡️ `gfilter` (Create or Update)

Sets a new filter or overwrites an existing one. The first line is gfilter <triggers>, followed by response lines, each starting with !.

Example 1: Single Trigger/Response

gfilter hello
!Hi there! How can I help you?

Example 2: Multi-Trigger/Response

gfilter thanks,thank you
!You're welcome!
!No problem at all.

Example 3: Targeting Specific Group

gfilter info
!Here is the info for the tech group.
gp:tech_group_alias

➡️ `glistfilter` (List Filters)

Shows all active filter triggers. Behavior depends on context (group vs. PM).

glistfilter - Lists filters for your context (default groups or global).
glistfilter gp:my_group_alias - Lists filters for a specific group.

➡️ `gdelfilter` (Delete Filter)

Removes one or more filters. Aliases: gdelfilters, gdelf.

gdelfilter hello,thanks - Deletes the 'hello' and 'thanks' filters.

Warning: Delete ALL Filters

This command is extremely powerful and will **erase every single filter** from the database. Use with extreme caution.

gdelfilter all

Advanced Matching

You can use patterns for triggers, not just exact words.

Wildcard (`*`)

The * acts as a placeholder for any characters.

gfilter go*d - Matches "good", "gold", "goood", etc.

Regex

Start the trigger with regex: to use regular expressions.

gfilter regex:help|support - Matches any message containing "help" or "support".
PM Filter Module (pfilter)

Create automatic replies for private messages (PMs) sent to the bot. Filters are global and apply to any user who messages the bot.

Permissions

Bot Owner/Sudo Only Commands to create, list, or delete filters (`pfilter`, `plistfilter`, `pdelfilter`) can only be used by the bot owner or sudo users in a private message.

Any User Once a filter is set up, it can be triggered by **any user** who sends a PM to the bot.

➡️ `pfilter` (Create or Update)

Sets a new PM filter or overwrites an existing one. The first line is pfilter <triggers>, followed by response lines, each starting with !.

Example

pfilter hello,hi,hey
!Hello! This is an automated response.
!Hi there! How can I assist you today?

➡️ `plistfilter` (List Filters)

Shows all active PM filter triggers.

plistfilter

➡️ `pdelfilter` (Delete Filter)

Removes one or more PM filters. Aliases: pdelfilters, pdelf.

pdelfilter hello,hi - Deletes the 'hello' and 'hi' filters.

Warning: Delete ALL PM Filters

This command is extremely powerful and will **erase every single PM filter** from the database. Use with extreme caution.

pdelfilter all

Advanced Matching

You can use patterns for triggers, not just exact words.

Wildcard (`*`)

The * acts as a placeholder for any characters.

pfilter price* - Matches "price", "prices", and "pricing".

Regex

Start the trigger with regex: to use regular expressions.

pfilter regex:buy|sell - Matches any message containing "buy" or "sell".
Warn System

A warning system for groups. Admins can warn manually, or the bot can warn automatically for blocked words/media. Max warnings result in removal.

➡️ `/warn`

Manually issues a warning to a user.

Group Admin Only (This is a group-only command)

Usage (Reply)

/warn Please stay on topic. - Reply to a user's message with this command.

Usage (Mention)

/warn @user1 Continued spamming.

➡️ `/warnlock`

Adds one or more items to the automatic warning blocklist. Block media types with * (e.g., *img, *vid).

Usage Group Admin

/warnlock badword *pdf *exe

Usage Sudo/Owner (in PM)

warnlock spamlink *img gp:my_awesome_group

➡️ `/warnunlock`

Removes one or more items from the blocklist.

Usage Group Admin

/warnunlock badword *pdf

Usage Sudo/Owner (in PM)

warnunlock spamlink gp:all

➡️ `/warnlist`

Displays all items currently in the blocklist.

Usage Group Admin

/warnlist

Usage Sudo/Owner (in PM)

warnlist gp:my_awesome_group

➡️ `/resetwarns`

Resets a user's warning count to zero.

Usage Group Admin

/resetwarns @user1

Usage Sudo/Owner (in PM)

resetwarns @1234567890 gp:my_awesome_group
Utility: Weather & Time

➡️ `weather`

Fetches the current weather conditions for a specified location using the OpenWeatherMap API.

Bot Owner/Sudo Only This command can only be used by the bot owner or a sudo user.

Usage: `weather <location>`

Fetches the current weather for the specified location.

weather Nairobi

➡️ `time`

Allows authorized users to get the current date and time for a specific location. You can use a country, city, or IANA timezone.

Bot Owner/Sudo Only This is a **PM-only** command and will be ignored in groups.

Usage: `time <location>`

Retrieves the current time for the specified location.

time Kenya
time Nairobi
time Europe/London
Additions Notifier

Notifies you when new participants are added to groups you monitor, sending one clean summary message.

Important: Permissions

Group Admin Only All commands must be used in a group and can only be run by a group admin.

➡️ `additiongroup`

Tells the bot to **start monitoring** one or more groups for new additions. You can separate JIDs with a space or use multiple lines.

Usage (Single Line)

Usage (Multi-line)

➡️ `deladditiongroup`

Tells the bot to **stop monitoring** one or more groups. Aliases: removeadditiongroup.

deladditiongroup [email protected] - Example (by JID)
deladditiongroup 2 4 - Example (by index)
deladditiongroup 1 [email protected] - Example (mixed)

➡️ `listadditiongroups`

Shows all currently monitored groups with their index numbers. Aliases: additiongroups.

listadditiongroups

➡️ `additions`

A global toggle to enable or disable the entire additions notification system.

additions on
additions off

➡️ `additiontarget`

Sets a specific chat where **all** notifications will be sent, instead of the group where it happened.

additiontarget [email protected] - Sets a target JID for all notifications.
additiontarget clear - Clears the target, reverting to default behavior.

➡️ `additionstatus`

Provides a summary of all current settings for the additions module.

additionstatus
Spam Detector

Automatically detects and manages message spam in groups. Issues warnings and can remove users who send messages too rapidly.

➡️ `antispam`

Controls the spam detection feature. Actions are on, off, or show.

Usage Group Admin

Applies the setting to your default connected group(s).

antispam on

Usage Sudo/Owner (in PM)

Applies the setting to a specific group.

antispam off my_group

Usage (Global) Sudo/Owner (in PM)

Sets the default spam detection behavior for all groups.

antisspam on global

➡️ `resetspam`

Clears all spam warnings for a specific user. You must @mention the user.

Usage Group Admin

Resets warnings for the mentioned user in your default group(s).

resetspam @someUser

Usage Sudo/Owner (in PM)

Resets warnings for the mentioned user in a specific group.

resetspam @someUser my_group
Config Editor (var)

Dynamically view and edit the bot's `config.yml` file directly from a private message (PM). This is a powerful tool for live configuration changes.

Permissions

Bot Owner/Sudo Only This command only works in PM and ignores all group messages.

➡️ Setting a Variable

This is the primary command to set or update a configuration key.

var STATUS_BROADCAST=true
var +YT_COOKIE=your_cookie_value_here

➡️ Setting the Command Prefix

You can set a single prefix or multiple space-separated prefixes for the bot.

var PREFIX=?
var PREFIX=. ! /

➡️ Enabling/Disabling Features

Quickly toggle core features on or off. This is an alias for setting keys like ANTILINK.DEFAULT_ENABLED. Supported Features: SPAM, ANTILINK, WELCOME, LOCKS.

var ANTILINK=on
var WELCOME=off

➡️ Commenting a Variable

This disables a configuration key by commenting it out. Using null as the value achieves the same result.

var -PORT
var PREFIX=null

➡️ Listing Variables

Lists all the variables that are currently specified in the `config.yml` file, helping you see what can be configured.

var list
Multi-Forward (mgf)

Allows you to send a single message to multiple chats simultaneously as a reply to a customizable quote.

Permissions

In a Group Chat The mgf command can only be used by **group admins**.

In a Private Chat (PM) The mgf command can be used by **all users**.

➡️ Sending a Message

Sends your message to your "default connection(s)" or to specific JIDs provided at the end of the message.

Basic Sending (to default connections)

mgf Hello everyone, this is an update.
mgf
This is a multi-line
message update.

Sending to Specific Recipients

List JIDs at the end of your message, each on a new line.

mgf
This message is for the dev and test groups only.
[email protected]
[email protected]

➡️ Managing Your Custom Quote

Each user can set their own personal quote. If no custom quote is set, a default one will be used.

Set Your Quote (`mgf quote <text>`)

mgf quote This is my new official quote.
mgf quote
This is a longer,
multi-line quote.

Show Your Quote (`mgf quote show`)

mgf quote show

Clear Your Quote

To clear your custom quote, just set an empty quote.

mgf quote
(leave this part empty)
Kick Module

This module provides commands for removing members from a group.

Important: Permissions

Group Admin Only All commands in this module can only be used by group admins.

➡️ Kicking a Single Member

To kick one person, you must reply to one of their messages with the kick command.

How to Use

  1. Find a message from the person you want to remove.
  2. Reply to that message.
  3. Type kick in your reply text.
kick - (Used as a reply to a user's message)

➡️ Kicking All Members

This is a two-step process to prevent accidents. The bot will kick all participants **except for other admins and the bot itself**.

Step 1: Start the Process

The bot will ask for confirmation.

kick all

Step 2: Confirm the Action

The **same admin** who typed `kick all` must reply with `yes`.

yes
Schedule (sched)

Schedule messages to be sent at a specific time or on a recurring basis.

Permissions

Group Admins Manage schedules for their default connected group(s).

Sudo/Owner (in PM) Must specify a target group via PM using gp:<alias>.

➡️ `sched add`

Schedules a new message. Time formats can be 14:30 (daily), in 30 minutes, or 2025-12-25T10:00.

sched add 08:00 Good morning team!

➡️ `sched once`

Schedules a one-time message. You can optionally specify a number of days in the future.

sched once 20:00 7 This is a reminder for next week's event

➡️ `sched list`

Views all currently scheduled messages for the target group(s), showing their corresponding number.

sched list

➡️ `sched delete`

Deletes one, multiple, or all scheduled messages. Use the number from sched list.

sched delete 3
sched delete 1,5

➡️ `sched edit`

Changes the time of an existing scheduled message.

sched edit 2 15:00

➡️ `sched frequency`

Sets the repeat interval for a recurring message (e.g., `1` for daily, `7` for weekly).

sched frequency 2 7 - Sets schedule #2 to repeat every 7 days.

➡️ `sched disable` / `sched enable`

Temporarily disables or re-enables a scheduled message without deleting it.

sched disable 4
sched enable 4
Status Lock (sbl)

Automatically deletes messages that mention or forward a status update into a group, with configurable warnings and removal.

➡️ `statusgpl` (Global Lock)

Sets the default behavior for the status lock across all groups.

Bot Owner/Sudo Only This command must be used in a Private Message (PM).

statusgpl <on|off|show>

➡️ `sbl` (Per-Group Lock)

Manages the status lock and warning settings for specific groups. Admins manage their default groups; Sudos can target any group from PM.

`sbl on|off|show`

Enables, disables, or shows the lock status for a target group.

sbl on - Group Admin (in group)
sbl on gp <group_alias> - Sudo/Owner (in PM)

`sbl warnmsg`

Views or sets the custom warning message. Placeholders: {user}, {max_warns}, {remaining_warns}.

sbl warnmsg
sbl warnmsg set @{user}, please do not share statuses here.

`sbl maxwarns`

Views or sets the number of warnings a user can receive before being kicked.

sbl maxwarns
sbl maxwarns set 3

`sbl resetwarns`

Resets the warning count for a specific user to zero.

sbl resetwarns @user
Media Search (movie & lyrics)

Provides commands to search for information about movies and songs.

Permissions

Bot Owner/Sudo Only These commands can only be used by the bot owner or a sudo user.

➡️ `movie`

Searches for detailed information about a movie, including plot, rating, and trailer. Sends the trailer video if found.

Usage: `movie <movie name>`

movie Inception

➡️ `lyrics`

Searches for the lyrics of a given song. Sends the results as an image with a caption containing the full lyrics.

Usage: `lyrics <song name>`

lyrics Bohemian Rhapsody
Lock Module

Locks words or phrases in a group. When a non-admin uses a locked word, the message is deleted and the user can be warned.

Permissions & Command Context

In a Group Chat (Group Admins) Manages locks for your "default connection" group(s).

In a Private Chat (Sudo/Owner) You **must** specify a target group using gp:<target>.

➡️ `lock <word1,word2,...>`

Locks one or more words, preventing non-admins from using them.

lock badword
lock word1,word2,another word

➡️ `listlock`

Lists all currently locked words for the target group, showing an **ID number** for each.

listlock

➡️ `unlock <ID_or_phrase>`

Unlocks a word using its ID number (from `listlock`) or the exact phrase.

unlock 123
unlock badword

➡️ `unlockall`

Removes **all** locked words from the target group. Use with caution.

unlockall

➡️ `locknotify <on|off>`

Toggles admin notifications for when a locked word is deleted.

locknotify on
locknotify off

Advanced Locking

You can lock more than just exact words by using special prefixes.

Wildcard (`*`)

The * can stand in for any characters.

lock b*d - Locks "bad", "bed", "blood", etc.

Regex

Start the trigger with regex: to use regular expressions.

lock regex:bad(word|phrase) - Locks "badword" and "badphrase".
Leave Message Module (lvc)

Sets a custom message sent as a PM to users who voluntarily leave a group. Use placeholders: {user} and {group}.

Permissions & Command Context

In a Group Chat (Group Admins) Manages the leave message for your "default connection" group(s).

In a Private Chat (Sudo/Owner) You **must** specify a target group using gp:<target> (e.g., `gp:all`).

➡️ `lvc` (Leave Message Config)

The main command to set, enable, or disable the leave message.

`lvc add` (Set Message)

Sets the message text and automatically enables it. Use `lvc add` on the first line, followed by your message.

lvc add
Goodbye {user}! We're sorry to see you leave {group}.
gp:my_group_alias
lvc add
Goodbye {user}! We're sorry to see you leave {group}.

`lvc on` / `lvc off` (Toggle)

Turns the leave message on or off for the target group(s) without deleting the message text.

lvc off gp:all
lvc on

➡️ `dellvc` (Delete Message)

Completely removes the leave message configuration for the target group(s).

dellvc gp:my_group_alias
dellvc
JID Module

Provides a simple way to get the unique identifier (JID) for a group chat or a user.

➡️ `jid`

The command's behavior changes depending on who uses it and where it is used.

jid

In a Group Chat

Group Admin Only The bot will reply with the **JID of that specific group**. Non-admins will be told they lack permission.

In a Private Chat (PM)

  • Bot Owner: The bot will reply with its **own JID**.
  • Sudo Users: The bot will reply with that **sudo user's JID**.
  • Other Users: The bot will **silently ignore** the command.
Miscellaneous Modules

➡️ `antidelete status`

This module automatically saves status updates from your contacts. If a contact deletes their status, the bot will recover the saved version and forward it to you.

Bot Owner Only Note: The commands to control this feature are for the bot owner only and must be sent in a private message to the bot.

`antidelete status on`

Enables the status anti-delete feature. The bot will start saving statuses and forwarding any that are deleted.

antidelete status on

`antidelete status off`

Disables the status anti-delete feature. The bot will stop saving and forwarding deleted statuses.

antidelete status off

`antidelete status show`

Checks and displays the current state of the feature (either ON or OFF). This is the default action.

antidelete status show (or antidelete status)

➡️ Auto Read Receipt

Automatically marks incoming messages as "read," which sends the blue tick read receipt to the sender.

This module is entirely passive and has **no commands**. Its behavior is controlled by the AUTOREAD_MESSAGES setting in the bot's main configuration file.

  • To Enable: Set AUTOREAD_MESSAGES: true.
  • To Disable: Set AUTOREAD_MESSAGES: false (default).

➡️ `autoviewstatus`

Automatically marks new status updates from your contacts as "viewed" by the bot's account.

Bot Owner/Sudo Only All commands must be used in a Private Message (PM).

autoviewstatus on
autoviewstatus off
autoviewstatus status

➡️ `cc` (Video Note Converter)

Converts a standard video into a circular "video note" (PTV) and sends it to a specified person or group.

In Private Chat (PM): This command can **only** be used in a PM with the bot. It will be ignored in groups.

Reply to a video *in PM* with the command, or send a video *in PM* with the command in the caption.

cc 254712345678 - (Replying to a video or in caption)
cc [email protected]

➡️ `autostatus`

Automatically forwards all status updates from your contacts directly to your own number (the bot's chat), letting you view them without marking them as seen.

Bot Owner Only These commands must be sent in a private message to the bot.

autostatus on
autostatus off
autostatus show (or autostatus)
cmd (Tag & Mention)

Allows admins to create custom emoji-based shortcuts to mention all, list all, or send a predefined message to their "default" group(s).

Important: Permissions & Targeting

Group Admin Only All commands and triggers are for admins. All actions are sent to the admin's configured **default group(s)**, not necessarily the chat where the command is typed.

➡️ `cmd add`

Creates a new emoji-triggered command.

cmd add <emoji> <mapping>
cmd add 👋 @ Hello everyone!

➡️ `cmd list`

Displays all saved commands for your default group(s).

cmd list

➡️ `cmd delete`

Removes one or all saved commands.

cmd delete 👋
cmd delete index 1
cmd delete all

Mapping Types Explained

The <mapping> tells the bot what to do when the emoji is used.

Mention All (`@`)

Tags every member in the group. The text after `@` is the message.

@ Team meeting starts now!

List All (`@@`)

Lists all members by name, tags them, and appends your message.

@@ Please confirm your attendance.

Raw Text

Simply sends the mapping as a plain text message.

Here is the link to the report: https://...

Using a Saved Command

To trigger a saved command, simply type the emoji in any chat. Any text you type after the emoji will be added to the end of the mapped message.

Example: If 📣 is mapped to @ Important Update, typing the following...

📣 The server will be down for maintenance.

Direct Tagging (No Saved Command Needed)

Admins can also perform a direct mention or list without creating a command first. Just type @ or @@ followed by your message in any chat.

@ Quick huddle in 5 minutes.
@@ <your message>
Owner and More Tools

➡️ Media Converter

Tools to convert and edit media files.

Bot Owner/Sudo Only (Must be used in PM)

`tomp3`

Extracts audio from a video. Reply to a video, optionally providing a filename.

tomp3 My Converted Song

`cutmp3`

Trims an audio file or voice note. Reply to audio and specify start/end times in seconds.

cutmp3 30 - Keeps audio from 30s onward.
cutmp3 -10 - Removes last 10s.
cutmp3 15 20 - Starts at 15s, removes final 20s.

➡️ `fetch`

Fetches content from a public URL and sends it back as the appropriate file type.

Bot Owner/Sudo Only (Must be used in PM)

fetch <url>

➡️ Football Commands

Fetches football (soccer) information like team details, league standings, and match schedules.

Group Admin / Sudo / Owner

`.sportshelp`

Shows a list of all available football commands.

.sportshelp

`.team <team name>`

Fetches detailed information about a specific football team.

.team Manchester United

`.standings <code>`

Displays the current league table for a competition.

.standings PL

`.today` / `.live`

Shows matches for the current day (EAT) or matches currently live.

`.next <team name>`

Shows the next five upcoming fixtures for a specified team.

.next Liverpool

`.league <league name>`

Searches for a league by name to find its code.

.league Bundesliga

➡️ `img`

Searches Bing for images and sends the results back. Default is 6 images.

Bot Owner/Sudo Only

img sunsets
img 3 trees

➡️ `url` (URL Uploader)

Gets a permanent public link for media by uploading it to Cloudinary. Reply to an image, video, audio, or document. 50MB limit for videos.

Bot Owner/Sudo Only (Response is sent to your PM)

url - (Reply to media)

➡️ `sudo`

For the bot owner only. Manages "sudoers"—users with special permissions.

Bot Owner Only

`sudo add`

sudo add 254712345678

`sudo delete`

Aliases: `del`, `remove`, `rm`.

sudo delete 254712345678,254700000000

`sudo list`

Alias: `ls`.

sudo list

➡️ `gp` (Groups)

Acts like an address book. Lets you save long JIDs under short aliases.

Bot Owner/Sudo Only

`gp add <name> <jid>`

gp add test [email protected]

`gp delete <name1,name2>`

Aliases: `del`, `remove`, `rm`.

gp delete test,chatbot

`gp list`

Lists all registered aliases and their JIDs. Alias: `ls`.

gp list

`gp jids` / `gp uniquejids` / `gp entries`

Lists JIDs, unique JIDs, or all entries (`name -> jid`).

➡️ Backup & Restore

Allows download (`get`) and upload (`set`) of the bot's core database and configuration files.

Bot Owner/Sudo Only (Must be used in PM)

`getdb`

getdb

`setdb`

Restores database. Attach a `.db` file with the caption `setdb` or reply to it.

`getconfig`

getconfig

`setconfig`

Restores config. Attach a `.yml` or `.json` file with the caption `setconfig` or reply to it.

➡️ `ping`

Checks the bot's responsiveness and network latency.

Bot Owner/Sudo Only

`ping`

Measures current `Proc` (processing) and `Net` (network) latency.

ping

`ping history`

Displays a list of the last 20 ping measurements. Alias: `ping stats`.

ping history

➡️ `reboot`

Restarts the bot's system.

Bot Owner Only (Must be used in PM)

reboot

➡️ `setpp`

Updates the profile picture of either a group or the bot itself by replying to an image.

  • In a Group Chat: Changes the **group's** profile picture.
  • In a Private Chat (PM): Changes the **bot's** profile picture.
setpp - (Reply to an image)

➡️ `health`

Provides a detailed system and process health report (Memory, CPU, Uptime, Disk, etc.).

Bot Owner/Sudo Only (Must be used in PM)

health

➡️ Sticker Module

Create stickers from media and convert stickers back into images or videos.

Group Admin or Sudo/Owner

`sticker` or `s`

Creates a sticker from an image or short video (max 15s). Reply to media or use caption.

sticker MyPack

`toimage`

Converts a static sticker back into a PNG image. Reply to a static sticker.

toimage

`tovideo`

Converts an animated sticker back into a video. Reply to an animated sticker.

tovideo
Auto Read Module (autoread)

Automatically marks incoming messages as "read" (sends blue ticks). This feature can be toggled on or off with commands.

Permissions

Bot Owner/Sudo Only All commands must be used in a **Private Message (PM)**.

➡️ `autoread <on|off|status>`

Controls the auto read receipt feature.

Enable Auto Read

autoread on

Disable Auto Read

autoread off

Check Status

autoread status (or autoread)

Note: First-Time Use

If no setting is found in the database (e.g., on first run), the module will use the value from AUTOREAD_MESSAGES in the main `config.js` file as the default. After that, the commands will control the setting.

Auto-Like (autolike)

Automatically reacts to new status updates from your contacts using the '💚' (green heart) emoji.

Permissions

Bot Owner/Sudo Only All commands must be used in a **Private Message (PM)**.

➡️ `autolike <on|off|status>`

Controls the automatic status reaction feature. The bot will always use a '💚' emoji.

Enable Auto-Like

autolike on

Disable Auto-Like

autolike off

Check Status

autolike status (or autolike)

Important Note

This module only sends a native emoji reaction. It will **not** send a text message as a fallback. If the reaction fails (due to an incompatible Baileys version), it will log an error but will not send a visible chat message.

TikTok Downloader

Downloads TikTok videos without a watermark.

Permissions

Bot Owner/Sudo Only This command must be used in a **Private Message (PM)**.

➡️ `tiktok <url>`

Downloads the video from the provided TikTok URL.

tiktok <url>
Auto Group Mute (mutesched)

Provides a robust scheduler for daily mute/unmute cycles in WhatsApp groups.

Permissions

Group Admin Only Commands must be run in the default/master group.

➡️ `mutesched`

Schedules a new daily mute/unmute cycle. Time format must be HH:mm|HH:mm.

mutesched 22:00|06:00 - Applies to all default connection groups.
mutesched 20:00|07:30 [email protected] - Applies only to the specified group JID.

➡️ `listmutes`

Shows all active mute/unmute schedules and their ID number.

listmutes

➡️ `delmute`

Deletes a specific schedule (by ID number from `listmutes`) or all schedules.

delmute 3
delmute all

➡️ `togglemute`

Pauses or resumes a specific schedule by its ID number.

togglemute disable 2
togglemute enable 2