How To Create A Discord Bot Using NodeJs

Published on 30th April, 2025

Creating a Discord bot can be a fun and rewarding project, especially if you enjoy coding or want to automate tasks in your server.

In this guide, we’ll walk you through the process of building a simple bot using Node.js. Whether you’re new to programming or already have some experience. This tutorial will help you get started step by step.

Let’s dive in and bring your bot idea to life!

Step 1: Setting Up Your Environment

Before we start coding, make sure you have the following installed on your computer:

  1. Node.js: Download and install it from nodejs.org.
  2. A Code Editor: I recommend using Visual Studio Code.
  3. Discord Account: If you don’t already have one, sign up at discord.com.

Once you have these ready, you’re good to go!

Step 2: Create a New Discord Application

  1. Go to the Discord Developer Portal.
  2. Click on the New Application button.
  3. Give your application a name and click Create.

This will create a new application for your bot. You’ll use this to manage your bot’s settings.

Step 3: Generate a Bot Token

  1. In your application, go to the Bot tab.
  2. Click Add Bot and confirm.
  3. Under the bot settings, you’ll see a Token. Click Copy to save it somewhere safe. You’ll need this token to connect your bot to Discord.

Step 4: Setting Up Your Project

  1. Create a new folder for your bot project.

  2. Open a terminal in that folder and run the following command to initialize a new Node.js project:

    npm init -y
    

    This will create a package.json file.

  3. Install the Discord.js library by running:

    npm install discord.js
    

Step 5: Writing Your Bot Code

In this step, you'll create the main file for your bot and write the code that defines its behavior. Follow these instructions:

  1. Create a new file in your project folder and name it index.js. This will be the entry point for your bot.

  2. Add the following code to index.js:

const { Client, GatewayIntentBits } = require('discord.js'); // Import the Discord.js library and specific features needed for the bot.
const client = new Client({ intents: [GatewayIntentBits.Guilds] }); // Create a new Discord client with the intent to interact with guilds (servers).

const TOKEN = 'YOUR_BOT_TOKEN_HERE'; // Replace this with your bot's token from the Discord Developer Portal.

client.once('ready', () => {
     // This event triggers when the bot successfully logs in and is ready to interact.
     console.log(`Logged in as ${client.user.tag}!`); // Log a message to the console with the bot's username.
});

client.on('messageCreate', (message) => {
     // This event triggers whenever a new message is sent in a channel the bot has access to.
     if (message.content === '!roll') { 
          // Check if the message content is exactly "!roll".
          const diceRoll = Math.floor(Math.random() * 6) + 1; 
          // Generate a random number between 1 and 6 to simulate a dice roll.
          message.reply(`You rolled a ${diceRoll}!`); 
          // Reply to the user with the result of the dice roll.
     }
});

client.login(TOKEN); // Log the bot into Discord using the provided token.

What This Code Does:

  1. Imports the Discord.js Library: The require('discord.js') statement imports the Discord.js library, which provides tools to interact with the Discord API.

  2. Creates a Discord Client: The Client object is the core of your bot. It connects to Discord and listens for events like messages or user interactions. The GatewayIntentBits.Guilds intent allows the bot to interact with servers. You can learn more about intents in the Discord.js Guide on Intents.

  3. Defines the Bot Token: The TOKEN variable holds your bot's unique token, which you get from the Discord Developer Portal. This token authenticates your bot.

  4. Handles the ready Event: The client.once('ready', ...) block runs once when the bot successfully logs in. It logs a message to the console to confirm the bot is online.

  5. Handles the messageCreate Event: The client.on('messageCreate', ...) block listens for new messages. If a user sends a message with the content !roll, the bot generates a random number between 1 and 6 (like rolling a dice) and replies with the result.

  6. Logs the Bot In: The client.login(TOKEN) line starts the bot by logging it into Discord using the provided token.

Next Steps:

  • Replace YOUR_BOT_TOKEN_HERE with the token you copied earlier from the Discord Developer Portal.
  • Save the file and run your bot using the command node index.js in your terminal. Make sure you're in the project folder when running this command.
  • Test your bot in a Discord server by typing !roll in a channel where the bot is active. It should respond with a dice roll result!

Step 6: Running Your Bot

To start your bot, run the following command in your terminal:

node index.js

If everything is set up correctly, you should see a message in your terminal saying your bot is logged in. Go to your Discord server and type !roll in a channel where your bot is active. Your bot should respond with a dice roll!

Conclusion

Congratulations! You’ve just created a simple Discord bot using Node.js. From here, you can expand your bot by adding more commands and features. The possibilities are endless, so have fun experimenting and building something awesome!

If you run into any issues, don’t hesitate to check the Discord.js documentation or ask for help in the community.

Happy coding!

Comments

Please login to publish your comment!

By logging in, you agree to our Terms of Service and Privacy Policy.


No comments here!