A feature-rich, fully configurable Discord bot built with discord.js v14. Packed with 94+ commands across multiple categories including moderation, music, fun, anime reactions, giveaways, and more. Supports both slash commands and prefix commands out of the box.
🎵 Music System: Full YouTube streaming with yt-dlp, cookie authentication, and FFmpeg transcoding.
- Dual Command System — Slash commands + prefix commands, independently toggleable
- 94+ Commands — Moderation, music, fun, anime, image, giveaways, and more
- 🎵 Full Music System — YouTube streaming with yt-dlp, Opus codec, FFmpeg transcoding
- 12 music commands: play, queue, skip, pause, resume, stop, loop, shuffle, clear, volume, leave, nowplaying
- Cookie-based authentication for better YouTube access
- Fallback to play-dl library on bot detection
- Interactive controller with buttons for playback control
- Interactive Help Menu — Category select dropdown with paginated command browsing
- Rich Embeds — Every response uses clean, color-coded embeds
- Moderation Suite — Ban, kick, softban, timeout, warn, purge, voice moderation
- Image Manipulation — Filters, generators, and overlays
- Anime Reactions — GIF reaction commands for social interaction
- Fun Commands — Games, facts, memes, and more
- Giveaways System — Full giveaway management
- Warning System — Database with add and view capabilities
- Webhook Logging — Error and guild join/leave notifications
- Rotating Status — Live stats (servers, users, commands)
- Category System — Enable/disable entire categories
- Cooldown System — Owner bypass option
- Auto-loading — Discord.js best practices
- Node.js 18+ (v24.14.1 recommended)
- npm or yarn
- Discord Bot Token
- FFmpeg (auto-bundled via ffmpeg-static)
|
softban| Ban and immediately unban to purge messages | |timeout| Timeout a member for a duration | |untimeout| Remove timeout from a member | |warn| Issue a warning to a member | |warnings| View warnings for a member | |nick| Set or reset a member's nickname | |purge| Bulk delete messages | |purgeuser| Delete messages from a specific user | |purgebots| Delete messages from bots | |purgelinks| Delete messages containing links | |purgeattachment| Delete messages with attachments | |vmute| Server mute a member in voice | |vunmute| Unmute a member in voice | |deafen| Server deafen a member in voice | |undeafen| Undeafen a member in voice | |disconnect| Disconnect a member from voice | |move| Move a member to another voice channel |
| Command | Description |
|---|---|
flip |
Flip a coin or flip text upside down |
meme |
Fetch random memes from Reddit |
wyr |
Would You Rather questions with voting |
hack |
Fake hacking simulation animation |
animal |
Random animal pictures and facts |
facts |
Random interesting facts |
pickupline |
Random pickup lines |
| Command | Description |
|---|---|
say |
Send a message as the bot to a channel you choose |
| Command | Description |
|---|---|
help |
List all commands or get info about a specific command |
ping |
Shows the current ping from the bot to Discord servers |
botinfo |
Shows information about the bot |
| Command | Description |
|---|---|
afk |
Set your AFK status with an optional reason |
bigemoji |
Enlarge a custom or unicode emoji |
encode |
Encode text into binary |
decode |
Decode binary into text |
translate |
Translate text to another language |
urban |
Search Urban Dictionary for a term |
weather |
Get current weather and forecast for a location |
| Command | Description |
|---|---|
hug |
Hug someone with an anime GIF |
kiss |
Kiss someone |
slap |
Slap someone |
pat |
Pat someone |
cuddle |
Cuddle someone |
poke |
Poke someone |
tickle |
Tickle someone |
feed |
Feed someone |
smug |
Show a smug face |
wink |
Wink at everyone |
Filters (11): blur, brighten, burn, darken, distort, greyscale, invert, pixelate, sepia, sharpen, threshold
Generators (10): ad, beautiful, jokeoverhead, wanted, circle, heart, lolice, its-so-stupid, horny, simpcard
Overlays (7): wasted, jail, gay, passed, triggered, comrade, glass
# Clone repo
git clone https://github.com/AnupSharma12/Cyborg.git
cd Cyborg
# Install dependencies
npm install
# Copy environment template
cp .env.example .env
# Edit .env with your bot token
# DISCORD_TOKEN=your_token_here
# DISCORD_CLIENT_ID=your_client_id_here
# Start bot
npm start
# For development with auto-reload
npm run devv- Create a new egg/instance
- Set Start Command:
npm install && npm startpm start - Set Java/Node Version: Node.js 18+ (v24 recommended)
- Set Memory: 256MB minimum, 512MB+ recommended
- Add environment variables from
.env
- Connect your GitHub repo
- Set Build Command:
npm install - Set Start Command:
npm start - Add secrets for
DISCORD_TOKENandDISCORD_CLIENT_ID
FROM node:24-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
CMD ["npm", "start"]For YouTube streaming, add cookies for better access:
Using Netscape Format (.txt):
Export from your browser using a cookie extension and save as cookies.txt in the project root.
Using Chrome Export (.json):
Export cookies as JSON and save as cookies.json in the project root.
The bot will auto-detect and use cookies from: cookies.txt, cookies.json, youtube_cookies.txt, youtube_cookies.json
- Node.js v18 or higher
- A Discord Bot Token
git clone https://github.com/AnupSharma12/Cyborg.git
cd Cyborg
npm install
cp .env.example .envnv.env — Add your credentials:
DISCORD_TOKEN=your_bot_token_here
DISCORD_CLIENT_ID=your_client_id_here
# Optional webhook logging
ERROR_LOG_WEBHOOK=your_error_webhook_url
GUILD_LOG_WEBHOOK=your_guild_webhook_urlconfig.js — Customize bot behavior:
module.exports = {
OWNER_IDS: ['your_user_id'],
SUPPORT_SERVER: 'https://discord.gg/your-server',
PREFIX_COMMANDS: {
ENABLED: true,
DEFAULT_PREFIX: '!',
},
INTERACTIONS: {
SLASH: true,
CONTEXT: true,
GLOBAL: false, // Set true for production
TEST_GUILD_ID: 'your_guild_id', // For development testing
},
PRESENCE: {
ENABLED: true,
STATUS: 'online', // online | idle | dnd | invisible
ACTIVITIES: [
{ name: '/help', type: 'LISTENING' },
{ name: '{servers} servers', type: 'WATCHING' },
{ name: '{users} users', type: 'WATCHING' },
],
INTERVAL: 30, // Rotation interval in seconds
},
COOLDOWN: {
DEFAULT: 5, // Default cooldown in seconds
OWNER_BYPASS: true, // Owners skip cooldowns
},
CATEGORIES: { // Enable/disable command categories
ADMIN: { enabled: true },
INFORMATION: { enabled: true },
FUN: { enabled: true },
IMAGE: { enabled: true },
ANIME: { enabled: true },
MODERATION: { enabled: true },
OWNER: { enabled: true },
UTILITY: { enabled: true },
},
};npm startSlash commands are automatically registered on startup.
- Manage Messages, Kick Members, Ban Members, Moderate Members
- Manage Nicknames, Mute Members, Deafen Members, Move Members
- Embed Links, Attach Files
Enable in the Discord Developer Portal:
- Server Members Intent
- Message Content Intent
Cyborg/
├── bot.js # Entry point
├── config.js # Bot configuration
├── .env # Credentials (git-ignored)
└── src/
├── commands/
│ ├── information/ # help, ping, botinfo
│ ├── moderation/ # 20 moderation commands
│ └── fun/ # fun, anime, image commands
├── contexts/ # Context menu commands
├── database/ # Warning system
├── events/ # Discord.js event handlers
├── handlers/ # Command & context execution
├── helpers/ # EmbedUtils, Logger, Validator, WebhookLogger
└── structures/ # BotClient, Command, CommandCategory
ory
mmandCategory
Create a file in any src/commands/ subdirectory:
module.exports = {
name: "hello",
description: "Says hello!",
category: "FUN",
cooldown: 5,
command: { enabled: true },
slashCommand: { enabled: true, options: [] },
async messageRun(message, args) {
await message.reply("Hello there!");
},
async interactionRun(interaction) {
await interaction.followUp("Hello there!");
},
};Commands are auto-loaded on startup. No manual registration needed.
- Runtime: Node.js
- Library: discord.js v14
- Architecture: CommonJS with module-alias
- Database: File-based JSON
Made with ❤️ by Anup Sharma