BotTemplate is a fully slash-command Discord.js v14 starter bot focused on a clean structure, categorized commands, and easy customization.
It keeps the setup simple, uses a single app.js entry file, and includes practical starter commands such as /help, /ping, /avatar, /stats, and a developer-only /eval.
- Slash commands only
- Discord.js v14 architecture
- Categorized command folders
- Global command deployment with
npm run deploy - Runtime stats command with CPU, RAM, uptime, developer, and version details
- Avatar command with direct image button
- Developer-only eval command
- Simple configuration through
config.json
-
/helpShows the available command groups. -
/pingShows gateway latency and round-trip time. -
/avatarShows your avatar or another user's avatar. -
/statsShows bot runtime details such as CPU usage, RAM usage, uptime, latency, developer info, platform, and version data.
/evalEvaluates JavaScript code and is limited to the configured developer ID.
This screenshot should show /help returning the categorized command list with the General and Developer sections visible.
This screenshot should show /avatar with the embed image fully visible and the Open Avatar button under it.
This screenshot should show /stats with the embed fields visible, especially CPU Usage, RAM Usage, Uptime, Developer, and the GitHub button.
This screenshot should show a safe sample /eval run in a developer account, ideally with a tiny expression like 1 + 1.
Edit config.json before starting the bot.
{
"token": "YOUR_BOT_TOKEN",
"clientId": "YOUR_CLIENT_ID",
"developerId": "YOUR_DISCORD_USER_ID"
}- Install dependencies:
npm install-
Fill
config.jsonwith your real values. -
Deploy slash commands:
npm run deploy- Start the bot:
npm startOptional development runner:
npm run devOptional local starter:
start.batOptional validation:
npm run checkThe bot should have at least these permissions:
- View Channels
- Send Messages
- Use Slash Commands
- Send Messages in Threads
- Embed Links
Startup logs are intentionally plain. Examples:
[Command] Loaded: stats.js[Event] Loaded: ready.js[Deploy] Synced: 5 global slash commands[Client] Ready: YourBotName#0000
Application commands are registered globally through npm run deploy.
Discord may take a short time to refresh global slash commands after deployment.
app.js
config.json
start.bat
assets/
screenshots/
src/
commands/
developer/
general/
events/
handlers/
utils/
This project is released under the MIT License.


