QUEEN RIAM is a modern WhatsApp multi-device bot built with Node.js and Baileys. It works in both group and private chats, supports multiple languages, and lets you install extra commands instantly β no coding required.
Please use responsibly and for educational purposes only.
Generate your Session ID to connect your WhatsApp account:
VPS / Pterodactyl:
git clone https://github.com/Dev-Kango/Queen-Riam.git
cd Queen-Riam
npm install
cp .env.example .env # fill in your values
npm start| Feature | |
|---|---|
| π | Install extra commands instantly via a link β no coding needed |
| β»οΈ | Plugins load live β no restart required |
| π± | Full multi-device support |
| π | Multi-language β EN, ES, PT, FR, HA, HI |
| π | NSFW category (18+, 20 commands, owner-toggled) |
| π₯ | Group tools β anti-link, anti-bad-word, welcome/goodbye, warn system |
| π€ | AI commands β Gemini, GPT, DeepSeek, image generation |
| βοΈ | Auto-status react/reply, auto-read, auto-type |
| ποΈ | Session storage β local folder, Supabase, PostgreSQL, MySQL, MongoDB, Redis |
| π³ | Docker-ready |
Copy .env.example to .env and set these values:
| Variable | What it is |
|---|---|
OWNER_NUMBER |
Your WhatsApp number with country code β no +. Example: 233501234567 |
BOT_NAME |
What you want the bot to call itself |
BOT_OWNER |
Your display name |
PREFIX |
The symbol before commands. Default is . |
TIMEZONE |
Your timezone. Example: Africa/Accra, America/New_York |
COMMAND_MODE |
public β anyone can use commands Β· private β only you |
SESSION_ID |
Leave blank to pair by code, or paste your ID from the pairing site |
Everything else in .env.example is optional with safe defaults already set.
By default the bot saves its session to a folder on disk β perfect for VPS and Pterodactyl.
If you're on a platform that wipes files on restart (Render free, Heroku, Railway), you need a database backend or the bot will ask you to re-pair every time. Set DB_TYPE in your .env:
DB_TYPE value |
Platform |
|---|---|
| (leave blank) | VPS, Pterodactyl, local machine |
supabase |
supabase.com β free, no card needed |
mongodb |
MongoDB Atlas β free 512 MB |
postgres |
Railway Postgres, Neon, Heroku Postgres |
redis |
Railway Redis, Render Redis, Upstash |
sqlite |
VPS single-file option |
mysql |
Railway MySQL, PlanetScale |
Then set the matching connection variable (e.g. SUPABASE_DB_URL, MONGO_URI, DATABASE_URL, REDIS_URL). All examples are in .env.example.
Plugins add new commands to your bot. Anyone can share a plugin as a GitHub Gist link or any raw .js URL β you install it with one message, no coding involved.
Send this in any chat where your bot is active (owner only):
.install https://gist.githubusercontent.com/username/abc123/raw/myplugin.js
The bot downloads the plugin, loads it immediately, and tells you which new commands were added. No restart needed.
.remove myplugin
Replace myplugin with the filename of the plugin you installed (without .js).
.reloadplugins
Forces a fresh reload of every plugin β useful after editing a plugin file directly on the server.
- GitHub Gist β gist.github.com β anyone can share a plugin as a public gist. Copy the Raw link and use
.install. - Raw GitHub files β a direct link to any
.jsfile on GitHub also works. Click the file β click Raw β copy the URL. - Community sharing β plugin links shared in groups or by the bot's developer can be installed the same way.
β οΈ Only install plugins from people you trust. A plugin runs on your bot with full access.
Every plugin is a plain .js file. The only requirement is that it calls bot() at the bottom with a config and a handler. Here is the minimum structure β copy this, fill in the blanks, paste it into a new public Gist, and share the Raw link.
const { bot } = require('../lib/pluginLoader');
bot({
command: 'hello', // the command users type (without the prefix)
description: 'Say hello', // shows up in .help
category: 'fun', // which menu section: fun, tools, general, ai, etc.
}, async (sock, chatId, message) => {
await sock.sendMessage(chatId, { text: 'Hello! π' }, { quoted: message });
});When installed, users trigger it with .hello (or whatever prefix the owner set).
Multiple commands / aliases β pass an array so the same plugin responds to more than one trigger:
bot({
command: ['hi', 'hey', 'hello'],
description: 'Greet the bot',
category: 'fun',
}, async (sock, chatId, message) => {
await sock.sendMessage(chatId, { text: 'Hey there! π' }, { quoted: message });
});Reading what the user typed after the command β use query (the full text) or args (each word as an array):
bot({
command: 'say',
description: 'Make the bot repeat something',
category: 'fun',
}, async (sock, chatId, message, args, query) => {
if (!query) {
return sock.sendMessage(chatId, { text: 'β Example: .say hello world' }, { quoted: message });
}
await sock.sendMessage(chatId, { text: query }, { quoted: message });
});Available categories: ai Β· download Β· fun Β· games Β· general Β· group Β· nsfw Β· owner Β· photo Β· religion Β· text Β· tools
How to share via GitHub Gist:
- Go to gist.github.com
- Name your file
myplugin.js(must end in.js) - Paste your plugin code
- Click Create public gist
- Click the Raw button β copy that URL
- Send
.install <that url>to your bot
Send .update to check for and apply the latest version from GitHub. Your session, data, and installed plugins are kept safe β only core files are updated.
| Minimum | |
|---|---|
| Node.js | 20.x |
| npm | 10.x |
| FFmpeg | Required for media commands |
| Active mobile account |
| DevKango | github.com/Dev-Kango |
| OfficialKango | github.com/OfficialKango |
| Baileys | github.com/WhiskeySockets |
Educational use only. Do not use this bot for spam, harassment, or any illegal activity. WhatsApp may ban accounts that violate their Terms of Service.
Made with love in Ghana by Hector Manuel
