Discord Bot written in Node.js with a modular, file-based architecture.
A feature-complete guild management bot with welcome/leave messages, server stats display, moderation tools, and a flexible command framework with per-guild settings.
⚠️ This project uses discord.js v12, which is EOL and no longer maintained. It may stop working at any time due to Discord API changes.
- Welcome & leave messages — configurable per guild via an interactive setup; supports
{user}, {server}, and {member count} placeholders.
- Server stats display — creates a dedicated category with voice channels showing member count, online member count, bot count, and server age; auto-updates every 5 minutes.
- Per-guild prefix — each guild can set its own command prefix; falls back to the global default.
- Moderation tools — ban, kick, mute/unmute, bulk message delete, and channel nuke.
- Announcement tools — send plain text or colored embed messages as the bot, optionally to a different channel.
- Cooldown system — per-command cooldown with in-progress tracking to prevent duplicate executions.
- Permission checks — guild-only, creator-only, and Discord permission-based access control per command.
- Console chat — send messages to a Discord channel directly from the terminal while the bot is running.
- SQLite database — all guild settings are persisted locally via Sequelize; the database is initialized automatically on first run.
- Written in Node.js with a modular file-based structure — commands and events are auto-registered by scanning folders at startup.
- Uses discord.js v12 — ⚠️ EOL and unmaintained.
- Uses Sequelize v6 with sqlite3 v5 for local data persistence.
- Sensitive values (bot token, creator ID) are not stored in source code and must be provided via
utils/config.js before running.
| Command |
Description |
Permission |
ping |
Shows bot and API latency. |
— |
uptime |
Shows how long the bot has been online. |
— |
avatar |
Shows the avatar of the mentioned user, or your own. |
— |
avatar server |
Shows the server icon. |
— |
| Command |
Description |
Permission |
ban |
Bans the mentioned member. |
Ban Members |
kick |
Kicks the mentioned member. |
Kick Members |
mute |
Mutes the mentioned member by assigning the Muted role. Creates the role if it doesn't exist. |
Manage Roles |
unmute |
Removes the Muted role from the mentioned member. |
Manage Roles |
clear <amount> |
Bulk deletes up to 100 messages in the current channel. |
Manage Messages |
nuke |
Deletes and recreates the current channel, preserving its name and permissions. |
Manage Messages |
say [#channel] <text> |
Makes the bot send a plain text message. Optionally targets a different channel. |
Manage Messages |
embed [@color] [#channel] <text> |
Makes the bot send a colored embed. Supports a custom color prefix and an optional target channel. |
Manage Messages |
| Command |
Description |
Permission |
prefix |
Shows the current prefix and available prefix commands. |
Manage Guild |
set prefix <new> |
Sets a new prefix for the guild. |
Manage Guild |
reset prefix |
Resets the prefix back to the default. |
Manage Guild |
| Command |
Description |
Permission |
welcome message |
Shows the current welcome message status. |
Manage Channels |
setup welcome message |
Starts an interactive setup for the welcome message and channel. |
Manage Channels |
remove welcome message |
Disables the welcome message. |
Manage Channels |
| Command |
Description |
Permission |
leave message |
Shows the current leave message status. |
Manage Channels |
setup leave message |
Starts an interactive setup for the leave message and channel. |
Manage Channels |
remove leave message |
Disables the leave message. |
Manage Channels |
| Command |
Description |
Permission |
stats |
Shows the current server stats configuration. |
Manage Channels |
setup stats |
Starts an interactive setup to enable/disable individual stats (member count, online count, bot count, server age). |
Manage Channels |
remove stats |
Removes all stats channels and the stats category. |
Manage Channels |
| Command |
Description |
bot shutdown |
Shuts down the bot process. |
console chat |
Opens or closes a live chat session between the terminal and a Discord channel. |
invite |
Sends the bot invite link. |
| Event |
Description |
ready |
Syncs the guild database and starts all background updaters on startup. |
guildMemberAdd |
Sends the configured welcome message when a member joins. |
guildMemberRemove |
Sends the configured leave message when a member leaves. |
message |
Parses and dispatches prefix-based commands. |
messageUpdate |
Reserved for message edit logging. |
messageDelete |
Reserved for message delete logging. |
