An open source
discord.js
bot template which is based on official discord.js guide to get started on making your very personal discord bot!
🏠 Homepage
NamVr
Discord Bot Template is an open source discord.js based bot template to get started on a new bot project. It is classic javascript template, not requiring any external dependencies unlike other famous frameworks. (This is not a framework!)
You can scale any kind of bot project using this template. (single server based or multiple server based) It all depends on your creativity!
🛠️ NEW! This template now supports in-built typing (typescript-assistance) support too, which means you will get all typescript-like assistant in vanilla javascipt! (Visual Studio Code tested, working 100% as expected)
This template comes in with many in-built useful and flexible features, such as
- My template comes in with a dynamic command handler! Using the command handler, you don't need to indulge in main bot files to create your very own command!
- You can simply make command groups (categorized as folders) in the commands folder.
- Your JavaScript commands goes inside respective category folders. A sample command is provided as ping command. You can use the same skeleton for all commands you want!
- All events goes inside the events folder. You don't need to use
client.on()
in the mainbot.js
file to handle events. - Using simple skeleton code for events, you can make any amount of events in the events folder using the event handler.
- Triggers occur when a specific "phrase" is said in a message content. For example, if you want your bot to react with ❤️ when someone say
welcome
in their message, you can do that with this trigger handler! - Trigger Handler also has the same skeleton structure as of command handler. The trigger handler is associated with the triggers folder. There are trigger categories, like reactions folder, in the trigger folder.
- A sample trigger command is given in the
hello.js
trigger file.
- My template comes with a dynamic slash command handler with very easy to customize and make slash commands.
- The commands, in the slashCommands folder, receive an
CommandInteraction
object. You can see the documentation of discord.js for all the properties and methods available. - IMPORTANT: In the template, we are sending the slash commands to discord to be registered only to 1 guild. That is because their are 2 types of slash commands, guild and global. Guild commands are restricted to 1 guild but whenever you update them, they take effect immediately, whereas global commands take upto 1 hour to take effect. So use guild commands in development and global commands for production.
- This template comes with a dynamic button interaction handler to receive and process button interactions.
- Buttons can be classified in two category folders.
- Easily handle incoming modal submittions using the template handler!
- Modals can be categorized in different folders.
- All new addition to discord API is context menus! You can right click a user or message -> Apps to find these options!
- This template will register all your context menu options and dynamically interact with them! Worth a try.
- Easily handle incoming autocomplete requests using the template handler!
- Perfectly dynamic for all your needs!
Using the template is so easy and fun, you would know. As the template does not rely on any external dependencies and written in javascript, it is highly customizable to any extend. There's no end to your creativity!
It's yours, you have full control.
npm install
- Rename
config-example.json
toconfig.json
and fill the token and other values. Extend config.json according to your needs!
npm start
I'm working to make it more professional and easy to use for everyone. There will be a documentation out very soon.
👤 Naman Vrati
- Website: https://namanvrati.cf/ [broken lol]
- Twitter: @namanvrati [inactive]
- Github: @NamVr [follow here]
👤 Thank you so much to Krish Garg and Thomas Fournier for giving awesome contributions to the project.
Contributions, issues and feature requests are welcome!
Feel free to check issues page. You can also take a look at the contributing guide.
Give a ⭐️ if this project helped you! Star-ring the project gives me encouragement to continue it. You can also sponsor the project and get listed as a contributer! Thanks a lot.
Copyright © 2021 Naman Vrati.
This project is Apache-2.0 licensed.