Repository files navigation

Logo

DiscordNPM VersionNPM LicenseNPM Downloads

DiscoBase

The modern, production-ready framework for building powerful Discord bots with ease.

DiscoBase provides everything you need to create scalable, feature-rich Discord bots using Discord.js v14. Whether you're building a simple utility bot or a complex multi-server system, DiscoBase gives you the tools and flexibility to succeed.

✨ Built on Discord.js v14
πŸš€ Production-ready architecture
🌐 Documentation:discobase.site

πŸš€ Quick Start

Create your Discord bot in seconds:

npx create-discobase@latest

The interactive setup will guide you through:

  • βœ… Edition Selection: Core (package-based) or Source (full customization)
  • βœ… MongoDB Integration: Optional database setup
  • βœ… Admin Dashboard: Built-in web dashboard
  • βœ… Auto Installation: All dependencies installed automatically

⚑ Core Features

πŸ“¦ Command System

  • Slash Commands - Modern Discord interactions
  • Prefix Commands - Traditional text-based commands
  • Hot Reload - Changes apply instantly without restart
  • Command Generator - Scaffold new commands with npm run generate
  • Command Manager - Enable/disable commands with npm run manage

πŸ” Advanced Controls

  • Bot Permissions - Automatic bot permission validation
  • User Permissions - Role-based access control
  • Cooldowns - Built-in rate limiting per user
  • Cooldown Messages - Custom cooldown feedback
  • Role Requirements - Restrict commands to specific roles
  • Owner/Admin Only - Special access controls
  • Dev Mode - Test commands in specific servers

πŸ“Š Dashboard & Monitoring

  • Real-time Stats - Monitor bot performance live
  • Guild Management - View and manage all servers
  • Command Analytics - Track slash & prefix command usage separately
  • Error Logging - Automatic error tracking
  • Activity Tracker - Monitor file changes in real-time

βš™οΈ Developer Experience

  • Auto-detect Intents - Never miss required intents
  • Structured & Scalable - Clean, organized codebase
  • MongoDB Integration - Built-in database support with Mongoose
  • Configurable Functions - Advanced function options
  • Error Recovery - Graceful error handling

πŸ“¦ Installation

Interactive Setup

npx create-discobase@latest

🧩 Command Options

Powerful options available for every command:

OptionTypeDescription
ownerOnlybooleanOnly bot owner can use this command
adminOnlybooleanOnly users in bot.admins can use it
devOnlybooleanOnly works in developer servers
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
cooldownnumberCooldown in seconds before reuse (default: 3)
disabledbooleanDisable command without deleting it
requiredRolesarrayArray of role IDs required to run command

Example Command:

module.exports={data: newSlashCommandBuilder().setName('ping').setDescription('Replies with pong!'),cooldown: 5,botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],asyncexecute(interaction,client){// Your command logic here}};

πŸ“… Event Options

Configure your event handlers with these options:

OptionTypeDescription
namestringRequired. The Discord.js event name (e.g., 'messageCreate', 'guildMemberAdd')
customIdstringFor button/select menu interactions - matches the component's customId
cooldownnumberCooldown in seconds before reuse
cooldownMessagestringCooldown message to send when user uses command while on cooldown. Use {time} for showing remaining time in message
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
rateLimitobjectRate limit configuration

Example Event:

module.exports={name: 'interactionCreate',customId: 'verify-button',//or multiple customIds in array ['verify-button', 'verify-button2']cooldown: 5,cooldownMessage: 'You are on cooldown! Please try again in {time}.',botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],rateLimit: {type: 'user',// 'user', 'guild', 'channel',max: 5,// max useswindow: 60000// 60 seconds},asyncexecute(interaction,client){// Your event logic here}};

βš™οΈ Configuration

Your config.json structure:

ParameterTypeDescription
bot.tokenstringRequired. Your Discord bot token
bot.idstringRequired. Your Discord bot ID
bot.adminsarrayOptional. List of admin user IDs
bot.ownerIdstringOptional. The owner's user ID
bot.developerCommandsServerIdsarrayOptional. Server IDs for dev-only commands
database.mongodbUrlstringOptional. MongoDB connection URL
logging.guildJoinLogsIdstringOptional. Channel ID for guild join logs
logging.guildLeaveLogsIdstringOptional. Channel ID for guild leave logs
logging.commandLogsChannelIdstringOptional. Channel ID for command logs
logging.errorLogsstringOptional. Webhook URL for error logging
prefix.valuestringOptional. Prefix for text commands

πŸ”§ Function Options

Advanced function configuration:

PropertyTypeDescription
oncebooleanRun once then stop
intervalnumberTime (ms) between repeated executions
retryAttemptsnumberNumber of retries if function fails
maxExecutionnumberMaximum number of executions allowed
initializernumberInitial value/state for setup

Example:

constexampleFunction=async()=>{console.log("Function executed!");};exampleFunction.config={once: false,interval: 10000,// Run every 10 secondsretryAttempts: 3,maxExecution: 100,initializer: 0};module.exports=exampleFunction;

πŸ” Activity Tracker

Monitor all file changes in real-time through discobase.json:

{
"activityTracker": {
"enabled": true,
"ignoredPaths": [
"**/logs/**",
"**/node_modules/**",
"**/private/**"
]
}
}

✨ Generate Commands & Events

Create new commands and events instantly:

npm run generate

Supported Builders:

  • EmbedBuilder - Rich embedded messages
  • ButtonBuilder & ActionRowBuilder - Interactive buttons
  • StringSelectMenuBuilder - Dropdown menus
  • ModalBuilder & TextInputBuilder - Input forms

The CLI automatically generates imports and example code!

πŸ“Š Manage Commands & Events

Edit, pause, or delete commands and events:

npm run manage

Features:

  • Enable/disable commands without deleting
  • Edit command properties
  • View all commands and events
  • Bulk operations

πŸ“š Documentation

For complete guides, tutorials, and API reference:

🌐 discobase.site

πŸ’¬ Community & Support

Join our Discord community:

Discord Server

πŸ”— Links

πŸ“œ License

Apache-2.0 Β© DiscoBase Team

Built with ❀️ by the DiscoBase Team

About

Easily create and manage your Discord bot with our powerful toolkit! πŸš€

Resources

Contributing

Stars

31 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Logo

DiscordNPM VersionNPM LicenseNPM Downloads

DiscoBase

The modern, production-ready framework for building powerful Discord bots with ease.

DiscoBase provides everything you need to create scalable, feature-rich Discord bots using Discord.js v14. Whether you're building a simple utility bot or a complex multi-server system, DiscoBase gives you the tools and flexibility to succeed.

✨ Built on Discord.js v14
πŸš€ Production-ready architecture
🌐 Documentation:discobase.site

πŸš€ Quick Start

Create your Discord bot in seconds:

npx create-discobase@latest

The interactive setup will guide you through:

  • βœ… Edition Selection: Core (package-based) or Source (full customization)
  • βœ… MongoDB Integration: Optional database setup
  • βœ… Admin Dashboard: Built-in web dashboard
  • βœ… Auto Installation: All dependencies installed automatically

⚑ Core Features

πŸ“¦ Command System

  • Slash Commands - Modern Discord interactions
  • Prefix Commands - Traditional text-based commands
  • Hot Reload - Changes apply instantly without restart
  • Command Generator - Scaffold new commands with npm run generate
  • Command Manager - Enable/disable commands with npm run manage

πŸ” Advanced Controls

  • Bot Permissions - Automatic bot permission validation
  • User Permissions - Role-based access control
  • Cooldowns - Built-in rate limiting per user
  • Cooldown Messages - Custom cooldown feedback
  • Role Requirements - Restrict commands to specific roles
  • Owner/Admin Only - Special access controls
  • Dev Mode - Test commands in specific servers

πŸ“Š Dashboard & Monitoring

  • Real-time Stats - Monitor bot performance live
  • Guild Management - View and manage all servers
  • Command Analytics - Track slash & prefix command usage separately
  • Error Logging - Automatic error tracking
  • Activity Tracker - Monitor file changes in real-time

βš™οΈ Developer Experience

  • Auto-detect Intents - Never miss required intents
  • Structured & Scalable - Clean, organized codebase
  • MongoDB Integration - Built-in database support with Mongoose
  • Configurable Functions - Advanced function options
  • Error Recovery - Graceful error handling

πŸ“¦ Installation

Interactive Setup

npx create-discobase@latest

🧩 Command Options

Powerful options available for every command:

OptionTypeDescription
ownerOnlybooleanOnly bot owner can use this command
adminOnlybooleanOnly users in bot.admins can use it
devOnlybooleanOnly works in developer servers
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
cooldownnumberCooldown in seconds before reuse (default: 3)
disabledbooleanDisable command without deleting it
requiredRolesarrayArray of role IDs required to run command

Example Command:

module.exports={data: newSlashCommandBuilder().setName('ping').setDescription('Replies with pong!'),cooldown: 5,botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],asyncexecute(interaction,client){// Your command logic here}};

πŸ“… Event Options

Configure your event handlers with these options:

OptionTypeDescription
namestringRequired. The Discord.js event name (e.g., 'messageCreate', 'guildMemberAdd')
customIdstringFor button/select menu interactions - matches the component's customId
cooldownnumberCooldown in seconds before reuse
cooldownMessagestringCooldown message to send when user uses command while on cooldown. Use {time} for showing remaining time in message
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
rateLimitobjectRate limit configuration

Example Event:

module.exports={name: 'interactionCreate',customId: 'verify-button',//or multiple customIds in array ['verify-button', 'verify-button2']cooldown: 5,cooldownMessage: 'You are on cooldown! Please try again in {time}.',botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],rateLimit: {type: 'user',// 'user', 'guild', 'channel',max: 5,// max useswindow: 60000// 60 seconds},asyncexecute(interaction,client){// Your event logic here}};

βš™οΈ Configuration

Your config.json structure:

ParameterTypeDescription
bot.tokenstringRequired. Your Discord bot token
bot.idstringRequired. Your Discord bot ID
bot.adminsarrayOptional. List of admin user IDs
bot.ownerIdstringOptional. The owner's user ID
bot.developerCommandsServerIdsarrayOptional. Server IDs for dev-only commands
database.mongodbUrlstringOptional. MongoDB connection URL
logging.guildJoinLogsIdstringOptional. Channel ID for guild join logs
logging.guildLeaveLogsIdstringOptional. Channel ID for guild leave logs
logging.commandLogsChannelIdstringOptional. Channel ID for command logs
logging.errorLogsstringOptional. Webhook URL for error logging
prefix.valuestringOptional. Prefix for text commands

πŸ”§ Function Options

Advanced function configuration:

PropertyTypeDescription
oncebooleanRun once then stop
intervalnumberTime (ms) between repeated executions
retryAttemptsnumberNumber of retries if function fails
maxExecutionnumberMaximum number of executions allowed
initializernumberInitial value/state for setup

Example:

constexampleFunction=async()=>{console.log("Function executed!");};exampleFunction.config={once: false,interval: 10000,// Run every 10 secondsretryAttempts: 3,maxExecution: 100,initializer: 0};module.exports=exampleFunction;

πŸ” Activity Tracker

Monitor all file changes in real-time through discobase.json:

{
"activityTracker": {
"enabled": true,
"ignoredPaths": [
"**/logs/**",
"**/node_modules/**",
"**/private/**"
]
}
}

✨ Generate Commands & Events

Create new commands and events instantly:

npm run generate

Supported Builders:

  • EmbedBuilder - Rich embedded messages
  • ButtonBuilder & ActionRowBuilder - Interactive buttons
  • StringSelectMenuBuilder - Dropdown menus
  • ModalBuilder & TextInputBuilder - Input forms

The CLI automatically generates imports and example code!

πŸ“Š Manage Commands & Events

Edit, pause, or delete commands and events:

npm run manage

Features:

  • Enable/disable commands without deleting
  • Edit command properties
  • View all commands and events
  • Bulk operations

πŸ“š Documentation

For complete guides, tutorials, and API reference:

🌐 discobase.site

πŸ’¬ Community & Support

Join our Discord community:

Discord Server

πŸ”— Links

πŸ“œ License

Apache-2.0 Β© DiscoBase Team

Built with ❀️ by the DiscoBase Team

About

Easily create and manage your Discord bot with our powerful toolkit! πŸš€

Resources

Contributing

Stars

31 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Logo

DiscordNPM VersionNPM LicenseNPM Downloads

DiscoBase

The modern, production-ready framework for building powerful Discord bots with ease.

DiscoBase provides everything you need to create scalable, feature-rich Discord bots using Discord.js v14. Whether you're building a simple utility bot or a complex multi-server system, DiscoBase gives you the tools and flexibility to succeed.

✨ Built on Discord.js v14
πŸš€ Production-ready architecture
🌐 Documentation:discobase.site

πŸš€ Quick Start

Create your Discord bot in seconds:

npx create-discobase@latest

The interactive setup will guide you through:

  • βœ… Edition Selection: Core (package-based) or Source (full customization)
  • βœ… MongoDB Integration: Optional database setup
  • βœ… Admin Dashboard: Built-in web dashboard
  • βœ… Auto Installation: All dependencies installed automatically

⚑ Core Features

πŸ“¦ Command System

  • Slash Commands - Modern Discord interactions
  • Prefix Commands - Traditional text-based commands
  • Hot Reload - Changes apply instantly without restart
  • Command Generator - Scaffold new commands with npm run generate
  • Command Manager - Enable/disable commands with npm run manage

πŸ” Advanced Controls

  • Bot Permissions - Automatic bot permission validation
  • User Permissions - Role-based access control
  • Cooldowns - Built-in rate limiting per user
  • Cooldown Messages - Custom cooldown feedback
  • Role Requirements - Restrict commands to specific roles
  • Owner/Admin Only - Special access controls
  • Dev Mode - Test commands in specific servers

πŸ“Š Dashboard & Monitoring

  • Real-time Stats - Monitor bot performance live
  • Guild Management - View and manage all servers
  • Command Analytics - Track slash & prefix command usage separately
  • Error Logging - Automatic error tracking
  • Activity Tracker - Monitor file changes in real-time

βš™οΈ Developer Experience

  • Auto-detect Intents - Never miss required intents
  • Structured & Scalable - Clean, organized codebase
  • MongoDB Integration - Built-in database support with Mongoose
  • Configurable Functions - Advanced function options
  • Error Recovery - Graceful error handling

πŸ“¦ Installation

Interactive Setup

npx create-discobase@latest

🧩 Command Options

Powerful options available for every command:

OptionTypeDescription
ownerOnlybooleanOnly bot owner can use this command
adminOnlybooleanOnly users in bot.admins can use it
devOnlybooleanOnly works in developer servers
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
cooldownnumberCooldown in seconds before reuse (default: 3)
disabledbooleanDisable command without deleting it
requiredRolesarrayArray of role IDs required to run command

Example Command:

module.exports={data: newSlashCommandBuilder().setName('ping').setDescription('Replies with pong!'),cooldown: 5,botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],asyncexecute(interaction,client){// Your command logic here}};

πŸ“… Event Options

Configure your event handlers with these options:

OptionTypeDescription
namestringRequired. The Discord.js event name (e.g., 'messageCreate', 'guildMemberAdd')
customIdstringFor button/select menu interactions - matches the component's customId
cooldownnumberCooldown in seconds before reuse
cooldownMessagestringCooldown message to send when user uses command while on cooldown. Use {time} for showing remaining time in message
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
rateLimitobjectRate limit configuration

Example Event:

module.exports={name: 'interactionCreate',customId: 'verify-button',//or multiple customIds in array ['verify-button', 'verify-button2']cooldown: 5,cooldownMessage: 'You are on cooldown! Please try again in {time}.',botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],rateLimit: {type: 'user',// 'user', 'guild', 'channel',max: 5,// max useswindow: 60000// 60 seconds},asyncexecute(interaction,client){// Your event logic here}};

βš™οΈ Configuration

Your config.json structure:

ParameterTypeDescription
bot.tokenstringRequired. Your Discord bot token
bot.idstringRequired. Your Discord bot ID
bot.adminsarrayOptional. List of admin user IDs
bot.ownerIdstringOptional. The owner's user ID
bot.developerCommandsServerIdsarrayOptional. Server IDs for dev-only commands
database.mongodbUrlstringOptional. MongoDB connection URL
logging.guildJoinLogsIdstringOptional. Channel ID for guild join logs
logging.guildLeaveLogsIdstringOptional. Channel ID for guild leave logs
logging.commandLogsChannelIdstringOptional. Channel ID for command logs
logging.errorLogsstringOptional. Webhook URL for error logging
prefix.valuestringOptional. Prefix for text commands

πŸ”§ Function Options

Advanced function configuration:

PropertyTypeDescription
oncebooleanRun once then stop
intervalnumberTime (ms) between repeated executions
retryAttemptsnumberNumber of retries if function fails
maxExecutionnumberMaximum number of executions allowed
initializernumberInitial value/state for setup

Example:

constexampleFunction=async()=>{console.log("Function executed!");};exampleFunction.config={once: false,interval: 10000,// Run every 10 secondsretryAttempts: 3,maxExecution: 100,initializer: 0};module.exports=exampleFunction;

πŸ” Activity Tracker

Monitor all file changes in real-time through discobase.json:

{
"activityTracker": {
"enabled": true,
"ignoredPaths": [
"**/logs/**",
"**/node_modules/**",
"**/private/**"
]
}
}

✨ Generate Commands & Events

Create new commands and events instantly:

npm run generate

Supported Builders:

  • EmbedBuilder - Rich embedded messages
  • ButtonBuilder & ActionRowBuilder - Interactive buttons
  • StringSelectMenuBuilder - Dropdown menus
  • ModalBuilder & TextInputBuilder - Input forms

The CLI automatically generates imports and example code!

πŸ“Š Manage Commands & Events

Edit, pause, or delete commands and events:

npm run manage

Features:

  • Enable/disable commands without deleting
  • Edit command properties
  • View all commands and events
  • Bulk operations

πŸ“š Documentation

For complete guides, tutorials, and API reference:

🌐 discobase.site

πŸ’¬ Community & Support

Join our Discord community:

Discord Server

πŸ”— Links

πŸ“œ License

Apache-2.0 Β© DiscoBase Team

Built with ❀️ by the DiscoBase Team

About

Easily create and manage your Discord bot with our powerful toolkit! πŸš€

Resources

Contributing

Stars

31 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Logo

DiscordNPM VersionNPM LicenseNPM Downloads

DiscoBase

The modern, production-ready framework for building powerful Discord bots with ease.

DiscoBase provides everything you need to create scalable, feature-rich Discord bots using Discord.js v14. Whether you're building a simple utility bot or a complex multi-server system, DiscoBase gives you the tools and flexibility to succeed.

✨ Built on Discord.js v14
πŸš€ Production-ready architecture
🌐 Documentation:discobase.site

πŸš€ Quick Start

Create your Discord bot in seconds:

npx create-discobase@latest

The interactive setup will guide you through:

  • βœ… Edition Selection: Core (package-based) or Source (full customization)
  • βœ… MongoDB Integration: Optional database setup
  • βœ… Admin Dashboard: Built-in web dashboard
  • βœ… Auto Installation: All dependencies installed automatically

⚑ Core Features

πŸ“¦ Command System

  • Slash Commands - Modern Discord interactions
  • Prefix Commands - Traditional text-based commands
  • Hot Reload - Changes apply instantly without restart
  • Command Generator - Scaffold new commands with npm run generate
  • Command Manager - Enable/disable commands with npm run manage

πŸ” Advanced Controls

  • Bot Permissions - Automatic bot permission validation
  • User Permissions - Role-based access control
  • Cooldowns - Built-in rate limiting per user
  • Cooldown Messages - Custom cooldown feedback
  • Role Requirements - Restrict commands to specific roles
  • Owner/Admin Only - Special access controls
  • Dev Mode - Test commands in specific servers

πŸ“Š Dashboard & Monitoring

  • Real-time Stats - Monitor bot performance live
  • Guild Management - View and manage all servers
  • Command Analytics - Track slash & prefix command usage separately
  • Error Logging - Automatic error tracking
  • Activity Tracker - Monitor file changes in real-time

βš™οΈ Developer Experience

  • Auto-detect Intents - Never miss required intents
  • Structured & Scalable - Clean, organized codebase
  • MongoDB Integration - Built-in database support with Mongoose
  • Configurable Functions - Advanced function options
  • Error Recovery - Graceful error handling

πŸ“¦ Installation

Interactive Setup

npx create-discobase@latest

🧩 Command Options

Powerful options available for every command:

OptionTypeDescription
ownerOnlybooleanOnly bot owner can use this command
adminOnlybooleanOnly users in bot.admins can use it
devOnlybooleanOnly works in developer servers
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
cooldownnumberCooldown in seconds before reuse (default: 3)
disabledbooleanDisable command without deleting it
requiredRolesarrayArray of role IDs required to run command

Example Command:

module.exports={data: newSlashCommandBuilder().setName('ping').setDescription('Replies with pong!'),cooldown: 5,botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],asyncexecute(interaction,client){// Your command logic here}};

πŸ“… Event Options

Configure your event handlers with these options:

OptionTypeDescription
namestringRequired. The Discord.js event name (e.g., 'messageCreate', 'guildMemberAdd')
customIdstringFor button/select menu interactions - matches the component's customId
cooldownnumberCooldown in seconds before reuse
cooldownMessagestringCooldown message to send when user uses command while on cooldown. Use {time} for showing remaining time in message
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
rateLimitobjectRate limit configuration

Example Event:

module.exports={name: 'interactionCreate',customId: 'verify-button',//or multiple customIds in array ['verify-button', 'verify-button2']cooldown: 5,cooldownMessage: 'You are on cooldown! Please try again in {time}.',botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],rateLimit: {type: 'user',// 'user', 'guild', 'channel',max: 5,// max useswindow: 60000// 60 seconds},asyncexecute(interaction,client){// Your event logic here}};

βš™οΈ Configuration

Your config.json structure:

ParameterTypeDescription
bot.tokenstringRequired. Your Discord bot token
bot.idstringRequired. Your Discord bot ID
bot.adminsarrayOptional. List of admin user IDs
bot.ownerIdstringOptional. The owner's user ID
bot.developerCommandsServerIdsarrayOptional. Server IDs for dev-only commands
database.mongodbUrlstringOptional. MongoDB connection URL
logging.guildJoinLogsIdstringOptional. Channel ID for guild join logs
logging.guildLeaveLogsIdstringOptional. Channel ID for guild leave logs
logging.commandLogsChannelIdstringOptional. Channel ID for command logs
logging.errorLogsstringOptional. Webhook URL for error logging
prefix.valuestringOptional. Prefix for text commands

πŸ”§ Function Options

Advanced function configuration:

PropertyTypeDescription
oncebooleanRun once then stop
intervalnumberTime (ms) between repeated executions
retryAttemptsnumberNumber of retries if function fails
maxExecutionnumberMaximum number of executions allowed
initializernumberInitial value/state for setup

Example:

constexampleFunction=async()=>{console.log("Function executed!");};exampleFunction.config={once: false,interval: 10000,// Run every 10 secondsretryAttempts: 3,maxExecution: 100,initializer: 0};module.exports=exampleFunction;

πŸ” Activity Tracker

Monitor all file changes in real-time through discobase.json:

{
"activityTracker": {
"enabled": true,
"ignoredPaths": [
"**/logs/**",
"**/node_modules/**",
"**/private/**"
]
}
}

✨ Generate Commands & Events

Create new commands and events instantly:

npm run generate

Supported Builders:

  • EmbedBuilder - Rich embedded messages
  • ButtonBuilder & ActionRowBuilder - Interactive buttons
  • StringSelectMenuBuilder - Dropdown menus
  • ModalBuilder & TextInputBuilder - Input forms

The CLI automatically generates imports and example code!

πŸ“Š Manage Commands & Events

Edit, pause, or delete commands and events:

npm run manage

Features:

  • Enable/disable commands without deleting
  • Edit command properties
  • View all commands and events
  • Bulk operations

πŸ“š Documentation

For complete guides, tutorials, and API reference:

🌐 discobase.site

πŸ’¬ Community & Support

Join our Discord community:

Discord Server

πŸ”— Links

πŸ“œ License

Apache-2.0 Β© DiscoBase Team

Built with ❀️ by the DiscoBase Team

About

Easily create and manage your Discord bot with our powerful toolkit! πŸš€

Resources

Contributing

Stars

31 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Logo

DiscordNPM VersionNPM LicenseNPM Downloads

DiscoBase

The modern, production-ready framework for building powerful Discord bots with ease.

DiscoBase provides everything you need to create scalable, feature-rich Discord bots using Discord.js v14. Whether you're building a simple utility bot or a complex multi-server system, DiscoBase gives you the tools and flexibility to succeed.

✨ Built on Discord.js v14
πŸš€ Production-ready architecture
🌐 Documentation:discobase.site

πŸš€ Quick Start

Create your Discord bot in seconds:

npx create-discobase@latest

The interactive setup will guide you through:

  • βœ… Edition Selection: Core (package-based) or Source (full customization)
  • βœ… MongoDB Integration: Optional database setup
  • βœ… Admin Dashboard: Built-in web dashboard
  • βœ… Auto Installation: All dependencies installed automatically

⚑ Core Features

πŸ“¦ Command System

  • Slash Commands - Modern Discord interactions
  • Prefix Commands - Traditional text-based commands
  • Hot Reload - Changes apply instantly without restart
  • Command Generator - Scaffold new commands with npm run generate
  • Command Manager - Enable/disable commands with npm run manage

πŸ” Advanced Controls

  • Bot Permissions - Automatic bot permission validation
  • User Permissions - Role-based access control
  • Cooldowns - Built-in rate limiting per user
  • Cooldown Messages - Custom cooldown feedback
  • Role Requirements - Restrict commands to specific roles
  • Owner/Admin Only - Special access controls
  • Dev Mode - Test commands in specific servers

πŸ“Š Dashboard & Monitoring

  • Real-time Stats - Monitor bot performance live
  • Guild Management - View and manage all servers
  • Command Analytics - Track slash & prefix command usage separately
  • Error Logging - Automatic error tracking
  • Activity Tracker - Monitor file changes in real-time

βš™οΈ Developer Experience

  • Auto-detect Intents - Never miss required intents
  • Structured & Scalable - Clean, organized codebase
  • MongoDB Integration - Built-in database support with Mongoose
  • Configurable Functions - Advanced function options
  • Error Recovery - Graceful error handling

πŸ“¦ Installation

Interactive Setup

npx create-discobase@latest

🧩 Command Options

Powerful options available for every command:

OptionTypeDescription
ownerOnlybooleanOnly bot owner can use this command
adminOnlybooleanOnly users in bot.admins can use it
devOnlybooleanOnly works in developer servers
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
cooldownnumberCooldown in seconds before reuse (default: 3)
disabledbooleanDisable command without deleting it
requiredRolesarrayArray of role IDs required to run command

Example Command:

module.exports={data: newSlashCommandBuilder().setName('ping').setDescription('Replies with pong!'),cooldown: 5,botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],asyncexecute(interaction,client){// Your command logic here}};

πŸ“… Event Options

Configure your event handlers with these options:

OptionTypeDescription
namestringRequired. The Discord.js event name (e.g., 'messageCreate', 'guildMemberAdd')
customIdstringFor button/select menu interactions - matches the component's customId
cooldownnumberCooldown in seconds before reuse
cooldownMessagestringCooldown message to send when user uses command while on cooldown. Use {time} for showing remaining time in message
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
rateLimitobjectRate limit configuration

Example Event:

module.exports={name: 'interactionCreate',customId: 'verify-button',//or multiple customIds in array ['verify-button', 'verify-button2']cooldown: 5,cooldownMessage: 'You are on cooldown! Please try again in {time}.',botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],rateLimit: {type: 'user',// 'user', 'guild', 'channel',max: 5,// max useswindow: 60000// 60 seconds},asyncexecute(interaction,client){// Your event logic here}};

βš™οΈ Configuration

Your config.json structure:

ParameterTypeDescription
bot.tokenstringRequired. Your Discord bot token
bot.idstringRequired. Your Discord bot ID
bot.adminsarrayOptional. List of admin user IDs
bot.ownerIdstringOptional. The owner's user ID
bot.developerCommandsServerIdsarrayOptional. Server IDs for dev-only commands
database.mongodbUrlstringOptional. MongoDB connection URL
logging.guildJoinLogsIdstringOptional. Channel ID for guild join logs
logging.guildLeaveLogsIdstringOptional. Channel ID for guild leave logs
logging.commandLogsChannelIdstringOptional. Channel ID for command logs
logging.errorLogsstringOptional. Webhook URL for error logging
prefix.valuestringOptional. Prefix for text commands

πŸ”§ Function Options

Advanced function configuration:

PropertyTypeDescription
oncebooleanRun once then stop
intervalnumberTime (ms) between repeated executions
retryAttemptsnumberNumber of retries if function fails
maxExecutionnumberMaximum number of executions allowed
initializernumberInitial value/state for setup

Example:

constexampleFunction=async()=>{console.log("Function executed!");};exampleFunction.config={once: false,interval: 10000,// Run every 10 secondsretryAttempts: 3,maxExecution: 100,initializer: 0};module.exports=exampleFunction;

πŸ” Activity Tracker

Monitor all file changes in real-time through discobase.json:

{
"activityTracker": {
"enabled": true,
"ignoredPaths": [
"**/logs/**",
"**/node_modules/**",
"**/private/**"
]
}
}

✨ Generate Commands & Events

Create new commands and events instantly:

npm run generate

Supported Builders:

  • EmbedBuilder - Rich embedded messages
  • ButtonBuilder & ActionRowBuilder - Interactive buttons
  • StringSelectMenuBuilder - Dropdown menus
  • ModalBuilder & TextInputBuilder - Input forms

The CLI automatically generates imports and example code!

πŸ“Š Manage Commands & Events

Edit, pause, or delete commands and events:

npm run manage

Features:

  • Enable/disable commands without deleting
  • Edit command properties
  • View all commands and events
  • Bulk operations

πŸ“š Documentation

For complete guides, tutorials, and API reference:

🌐 discobase.site

πŸ’¬ Community & Support

Join our Discord community:

Discord Server

πŸ”— Links

πŸ“œ License

Apache-2.0 Β© DiscoBase Team

Built with ❀️ by the DiscoBase Team

About

Easily create and manage your Discord bot with our powerful toolkit! πŸš€

Resources

Contributing

Stars

31 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Logo

DiscordNPM VersionNPM LicenseNPM Downloads

DiscoBase

The modern, production-ready framework for building powerful Discord bots with ease.

DiscoBase provides everything you need to create scalable, feature-rich Discord bots using Discord.js v14. Whether you're building a simple utility bot or a complex multi-server system, DiscoBase gives you the tools and flexibility to succeed.

✨ Built on Discord.js v14
πŸš€ Production-ready architecture
🌐 Documentation:discobase.site

πŸš€ Quick Start

Create your Discord bot in seconds:

npx create-discobase@latest

The interactive setup will guide you through:

  • βœ… Edition Selection: Core (package-based) or Source (full customization)
  • βœ… MongoDB Integration: Optional database setup
  • βœ… Admin Dashboard: Built-in web dashboard
  • βœ… Auto Installation: All dependencies installed automatically

⚑ Core Features

πŸ“¦ Command System

  • Slash Commands - Modern Discord interactions
  • Prefix Commands - Traditional text-based commands
  • Hot Reload - Changes apply instantly without restart
  • Command Generator - Scaffold new commands with npm run generate
  • Command Manager - Enable/disable commands with npm run manage

πŸ” Advanced Controls

  • Bot Permissions - Automatic bot permission validation
  • User Permissions - Role-based access control
  • Cooldowns - Built-in rate limiting per user
  • Cooldown Messages - Custom cooldown feedback
  • Role Requirements - Restrict commands to specific roles
  • Owner/Admin Only - Special access controls
  • Dev Mode - Test commands in specific servers

πŸ“Š Dashboard & Monitoring

  • Real-time Stats - Monitor bot performance live
  • Guild Management - View and manage all servers
  • Command Analytics - Track slash & prefix command usage separately
  • Error Logging - Automatic error tracking
  • Activity Tracker - Monitor file changes in real-time

βš™οΈ Developer Experience

  • Auto-detect Intents - Never miss required intents
  • Structured & Scalable - Clean, organized codebase
  • MongoDB Integration - Built-in database support with Mongoose
  • Configurable Functions - Advanced function options
  • Error Recovery - Graceful error handling

πŸ“¦ Installation

Interactive Setup

npx create-discobase@latest

🧩 Command Options

Powerful options available for every command:

OptionTypeDescription
ownerOnlybooleanOnly bot owner can use this command
adminOnlybooleanOnly users in bot.admins can use it
devOnlybooleanOnly works in developer servers
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
cooldownnumberCooldown in seconds before reuse (default: 3)
disabledbooleanDisable command without deleting it
requiredRolesarrayArray of role IDs required to run command

Example Command:

module.exports={data: newSlashCommandBuilder().setName('ping').setDescription('Replies with pong!'),cooldown: 5,botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],asyncexecute(interaction,client){// Your command logic here}};

πŸ“… Event Options

Configure your event handlers with these options:

OptionTypeDescription
namestringRequired. The Discord.js event name (e.g., 'messageCreate', 'guildMemberAdd')
customIdstringFor button/select menu interactions - matches the component's customId
cooldownnumberCooldown in seconds before reuse
cooldownMessagestringCooldown message to send when user uses command while on cooldown. Use {time} for showing remaining time in message
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
rateLimitobjectRate limit configuration

Example Event:

module.exports={name: 'interactionCreate',customId: 'verify-button',//or multiple customIds in array ['verify-button', 'verify-button2']cooldown: 5,cooldownMessage: 'You are on cooldown! Please try again in {time}.',botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],rateLimit: {type: 'user',// 'user', 'guild', 'channel',max: 5,// max useswindow: 60000// 60 seconds},asyncexecute(interaction,client){// Your event logic here}};

βš™οΈ Configuration

Your config.json structure:

ParameterTypeDescription
bot.tokenstringRequired. Your Discord bot token
bot.idstringRequired. Your Discord bot ID
bot.adminsarrayOptional. List of admin user IDs
bot.ownerIdstringOptional. The owner's user ID
bot.developerCommandsServerIdsarrayOptional. Server IDs for dev-only commands
database.mongodbUrlstringOptional. MongoDB connection URL
logging.guildJoinLogsIdstringOptional. Channel ID for guild join logs
logging.guildLeaveLogsIdstringOptional. Channel ID for guild leave logs
logging.commandLogsChannelIdstringOptional. Channel ID for command logs
logging.errorLogsstringOptional. Webhook URL for error logging
prefix.valuestringOptional. Prefix for text commands

πŸ”§ Function Options

Advanced function configuration:

PropertyTypeDescription
oncebooleanRun once then stop
intervalnumberTime (ms) between repeated executions
retryAttemptsnumberNumber of retries if function fails
maxExecutionnumberMaximum number of executions allowed
initializernumberInitial value/state for setup

Example:

constexampleFunction=async()=>{console.log("Function executed!");};exampleFunction.config={once: false,interval: 10000,// Run every 10 secondsretryAttempts: 3,maxExecution: 100,initializer: 0};module.exports=exampleFunction;

πŸ” Activity Tracker

Monitor all file changes in real-time through discobase.json:

{
"activityTracker": {
"enabled": true,
"ignoredPaths": [
"**/logs/**",
"**/node_modules/**",
"**/private/**"
]
}
}

✨ Generate Commands & Events

Create new commands and events instantly:

npm run generate

Supported Builders:

  • EmbedBuilder - Rich embedded messages
  • ButtonBuilder & ActionRowBuilder - Interactive buttons
  • StringSelectMenuBuilder - Dropdown menus
  • ModalBuilder & TextInputBuilder - Input forms

The CLI automatically generates imports and example code!

πŸ“Š Manage Commands & Events

Edit, pause, or delete commands and events:

npm run manage

Features:

  • Enable/disable commands without deleting
  • Edit command properties
  • View all commands and events
  • Bulk operations

πŸ“š Documentation

For complete guides, tutorials, and API reference:

🌐 discobase.site

πŸ’¬ Community & Support

Join our Discord community:

Discord Server

πŸ”— Links

πŸ“œ License

Apache-2.0 Β© DiscoBase Team

Built with ❀️ by the DiscoBase Team

About

Easily create and manage your Discord bot with our powerful toolkit! πŸš€

Resources

Contributing

Stars

31 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Logo

DiscordNPM VersionNPM LicenseNPM Downloads

DiscoBase

The modern, production-ready framework for building powerful Discord bots with ease.

DiscoBase provides everything you need to create scalable, feature-rich Discord bots using Discord.js v14. Whether you're building a simple utility bot or a complex multi-server system, DiscoBase gives you the tools and flexibility to succeed.

✨ Built on Discord.js v14
πŸš€ Production-ready architecture
🌐 Documentation:discobase.site

πŸš€ Quick Start

Create your Discord bot in seconds:

npx create-discobase@latest

The interactive setup will guide you through:

  • βœ… Edition Selection: Core (package-based) or Source (full customization)
  • βœ… MongoDB Integration: Optional database setup
  • βœ… Admin Dashboard: Built-in web dashboard
  • βœ… Auto Installation: All dependencies installed automatically

⚑ Core Features

πŸ“¦ Command System

  • Slash Commands - Modern Discord interactions
  • Prefix Commands - Traditional text-based commands
  • Hot Reload - Changes apply instantly without restart
  • Command Generator - Scaffold new commands with npm run generate
  • Command Manager - Enable/disable commands with npm run manage

πŸ” Advanced Controls

  • Bot Permissions - Automatic bot permission validation
  • User Permissions - Role-based access control
  • Cooldowns - Built-in rate limiting per user
  • Cooldown Messages - Custom cooldown feedback
  • Role Requirements - Restrict commands to specific roles
  • Owner/Admin Only - Special access controls
  • Dev Mode - Test commands in specific servers

πŸ“Š Dashboard & Monitoring

  • Real-time Stats - Monitor bot performance live
  • Guild Management - View and manage all servers
  • Command Analytics - Track slash & prefix command usage separately
  • Error Logging - Automatic error tracking
  • Activity Tracker - Monitor file changes in real-time

βš™οΈ Developer Experience

  • Auto-detect Intents - Never miss required intents
  • Structured & Scalable - Clean, organized codebase
  • MongoDB Integration - Built-in database support with Mongoose
  • Configurable Functions - Advanced function options
  • Error Recovery - Graceful error handling

πŸ“¦ Installation

Interactive Setup

npx create-discobase@latest

🧩 Command Options

Powerful options available for every command:

OptionTypeDescription
ownerOnlybooleanOnly bot owner can use this command
adminOnlybooleanOnly users in bot.admins can use it
devOnlybooleanOnly works in developer servers
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
cooldownnumberCooldown in seconds before reuse (default: 3)
disabledbooleanDisable command without deleting it
requiredRolesarrayArray of role IDs required to run command

Example Command:

module.exports={data: newSlashCommandBuilder().setName('ping').setDescription('Replies with pong!'),cooldown: 5,botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],asyncexecute(interaction,client){// Your command logic here}};

πŸ“… Event Options

Configure your event handlers with these options:

OptionTypeDescription
namestringRequired. The Discord.js event name (e.g., 'messageCreate', 'guildMemberAdd')
customIdstringFor button/select menu interactions - matches the component's customId
cooldownnumberCooldown in seconds before reuse
cooldownMessagestringCooldown message to send when user uses command while on cooldown. Use {time} for showing remaining time in message
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
rateLimitobjectRate limit configuration

Example Event:

module.exports={name: 'interactionCreate',customId: 'verify-button',//or multiple customIds in array ['verify-button', 'verify-button2']cooldown: 5,cooldownMessage: 'You are on cooldown! Please try again in {time}.',botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],rateLimit: {type: 'user',// 'user', 'guild', 'channel',max: 5,// max useswindow: 60000// 60 seconds},asyncexecute(interaction,client){// Your event logic here}};

βš™οΈ Configuration

Your config.json structure:

ParameterTypeDescription
bot.tokenstringRequired. Your Discord bot token
bot.idstringRequired. Your Discord bot ID
bot.adminsarrayOptional. List of admin user IDs
bot.ownerIdstringOptional. The owner's user ID
bot.developerCommandsServerIdsarrayOptional. Server IDs for dev-only commands
database.mongodbUrlstringOptional. MongoDB connection URL
logging.guildJoinLogsIdstringOptional. Channel ID for guild join logs
logging.guildLeaveLogsIdstringOptional. Channel ID for guild leave logs
logging.commandLogsChannelIdstringOptional. Channel ID for command logs
logging.errorLogsstringOptional. Webhook URL for error logging
prefix.valuestringOptional. Prefix for text commands

πŸ”§ Function Options

Advanced function configuration:

PropertyTypeDescription
oncebooleanRun once then stop
intervalnumberTime (ms) between repeated executions
retryAttemptsnumberNumber of retries if function fails
maxExecutionnumberMaximum number of executions allowed
initializernumberInitial value/state for setup

Example:

constexampleFunction=async()=>{console.log("Function executed!");};exampleFunction.config={once: false,interval: 10000,// Run every 10 secondsretryAttempts: 3,maxExecution: 100,initializer: 0};module.exports=exampleFunction;

πŸ” Activity Tracker

Monitor all file changes in real-time through discobase.json:

{
"activityTracker": {
"enabled": true,
"ignoredPaths": [
"**/logs/**",
"**/node_modules/**",
"**/private/**"
]
}
}

✨ Generate Commands & Events

Create new commands and events instantly:

npm run generate

Supported Builders:

  • EmbedBuilder - Rich embedded messages
  • ButtonBuilder & ActionRowBuilder - Interactive buttons
  • StringSelectMenuBuilder - Dropdown menus
  • ModalBuilder & TextInputBuilder - Input forms

The CLI automatically generates imports and example code!

πŸ“Š Manage Commands & Events

Edit, pause, or delete commands and events:

npm run manage

Features:

  • Enable/disable commands without deleting
  • Edit command properties
  • View all commands and events
  • Bulk operations

πŸ“š Documentation

For complete guides, tutorials, and API reference:

🌐 discobase.site

πŸ’¬ Community & Support

Join our Discord community:

Discord Server

πŸ”— Links

πŸ“œ License

Apache-2.0 Β© DiscoBase Team

Built with ❀️ by the DiscoBase Team

About

Easily create and manage your Discord bot with our powerful toolkit! πŸš€

Resources

Contributing

Stars

31 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Logo

DiscordNPM VersionNPM LicenseNPM Downloads

DiscoBase

The modern, production-ready framework for building powerful Discord bots with ease.

DiscoBase provides everything you need to create scalable, feature-rich Discord bots using Discord.js v14. Whether you're building a simple utility bot or a complex multi-server system, DiscoBase gives you the tools and flexibility to succeed.

✨ Built on Discord.js v14
πŸš€ Production-ready architecture
🌐 Documentation:discobase.site

πŸš€ Quick Start

Create your Discord bot in seconds:

npx create-discobase@latest

The interactive setup will guide you through:

  • βœ… Edition Selection: Core (package-based) or Source (full customization)
  • βœ… MongoDB Integration: Optional database setup
  • βœ… Admin Dashboard: Built-in web dashboard
  • βœ… Auto Installation: All dependencies installed automatically

⚑ Core Features

πŸ“¦ Command System

  • Slash Commands - Modern Discord interactions
  • Prefix Commands - Traditional text-based commands
  • Hot Reload - Changes apply instantly without restart
  • Command Generator - Scaffold new commands with npm run generate
  • Command Manager - Enable/disable commands with npm run manage

πŸ” Advanced Controls

  • Bot Permissions - Automatic bot permission validation
  • User Permissions - Role-based access control
  • Cooldowns - Built-in rate limiting per user
  • Cooldown Messages - Custom cooldown feedback
  • Role Requirements - Restrict commands to specific roles
  • Owner/Admin Only - Special access controls
  • Dev Mode - Test commands in specific servers

πŸ“Š Dashboard & Monitoring

  • Real-time Stats - Monitor bot performance live
  • Guild Management - View and manage all servers
  • Command Analytics - Track slash & prefix command usage separately
  • Error Logging - Automatic error tracking
  • Activity Tracker - Monitor file changes in real-time

βš™οΈ Developer Experience

  • Auto-detect Intents - Never miss required intents
  • Structured & Scalable - Clean, organized codebase
  • MongoDB Integration - Built-in database support with Mongoose
  • Configurable Functions - Advanced function options
  • Error Recovery - Graceful error handling

πŸ“¦ Installation

Interactive Setup

npx create-discobase@latest

🧩 Command Options

Powerful options available for every command:

OptionTypeDescription
ownerOnlybooleanOnly bot owner can use this command
adminOnlybooleanOnly users in bot.admins can use it
devOnlybooleanOnly works in developer servers
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
cooldownnumberCooldown in seconds before reuse (default: 3)
disabledbooleanDisable command without deleting it
requiredRolesarrayArray of role IDs required to run command

Example Command:

module.exports={data: newSlashCommandBuilder().setName('ping').setDescription('Replies with pong!'),cooldown: 5,botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],asyncexecute(interaction,client){// Your command logic here}};

πŸ“… Event Options

Configure your event handlers with these options:

OptionTypeDescription
namestringRequired. The Discord.js event name (e.g., 'messageCreate', 'guildMemberAdd')
customIdstringFor button/select menu interactions - matches the component's customId
cooldownnumberCooldown in seconds before reuse
cooldownMessagestringCooldown message to send when user uses command while on cooldown. Use {time} for showing remaining time in message
botPermissionsarrayRequired bot permissions (e.g., ['SendMessages', 'ManageChannels'])
userPermissionsarrayRequired user permissions (e.g., ['Administrator', 'KickMembers'])
rateLimitobjectRate limit configuration

Example Event:

module.exports={name: 'interactionCreate',customId: 'verify-button',//or multiple customIds in array ['verify-button', 'verify-button2']cooldown: 5,cooldownMessage: 'You are on cooldown! Please try again in {time}.',botPermissions: ['SendMessages'],userPermissions: ['SendMessages'],rateLimit: {type: 'user',// 'user', 'guild', 'channel',max: 5,// max useswindow: 60000// 60 seconds},asyncexecute(interaction,client){// Your event logic here}};

βš™οΈ Configuration

Your config.json structure:

ParameterTypeDescription
bot.tokenstringRequired. Your Discord bot token
bot.idstringRequired. Your Discord bot ID
bot.adminsarrayOptional. List of admin user IDs
bot.ownerIdstringOptional. The owner's user ID
bot.developerCommandsServerIdsarrayOptional. Server IDs for dev-only commands
database.mongodbUrlstringOptional. MongoDB connection URL
logging.guildJoinLogsIdstringOptional. Channel ID for guild join logs
logging.guildLeaveLogsIdstringOptional. Channel ID for guild leave logs
logging.commandLogsChannelIdstringOptional. Channel ID for command logs
logging.errorLogsstringOptional. Webhook URL for error logging
prefix.valuestringOptional. Prefix for text commands

πŸ”§ Function Options

Advanced function configuration:

PropertyTypeDescription
oncebooleanRun once then stop
intervalnumberTime (ms) between repeated executions
retryAttemptsnumberNumber of retries if function fails
maxExecutionnumberMaximum number of executions allowed
initializernumberInitial value/state for setup

Example:

constexampleFunction=async()=>{console.log("Function executed!");};exampleFunction.config={once: false,interval: 10000,// Run every 10 secondsretryAttempts: 3,maxExecution: 100,initializer: 0};module.exports=exampleFunction;

πŸ” Activity Tracker

Monitor all file changes in real-time through discobase.json:

{
"activityTracker": {
"enabled": true,
"ignoredPaths": [
"**/logs/**",
"**/node_modules/**",
"**/private/**"
]
}
}

✨ Generate Commands & Events

Create new commands and events instantly:

npm run generate

Supported Builders:

  • EmbedBuilder - Rich embedded messages
  • ButtonBuilder & ActionRowBuilder - Interactive buttons
  • StringSelectMenuBuilder - Dropdown menus
  • ModalBuilder & TextInputBuilder - Input forms

The CLI automatically generates imports and example code!

πŸ“Š Manage Commands & Events

Edit, pause, or delete commands and events:

npm run manage

Features:

  • Enable/disable commands without deleting
  • Edit command properties
  • View all commands and events
  • Bulk operations

πŸ“š Documentation

For complete guides, tutorials, and API reference:

🌐 discobase.site

πŸ’¬ Community & Support

Join our Discord community:

Discord Server

πŸ”— Links

πŸ“œ License

Apache-2.0 Β© DiscoBase Team

Built with ❀️ by the DiscoBase Team

About

Easily create and manage your Discord bot with our powerful toolkit! πŸš€

Resources

Contributing

Stars

31 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages