How to Make Your First Discord Bot

Adam Crivello
Adam Crivello  |  September 19, 2019

“Mods are asleep, post pictures of ducks.”

Running a Discord server can be demanding.The potential consequences of leaving a channel unattended are worrisome (hint: worse than duck spam). In an ideal world, community members would behave themselves and nothing would go wrong while the heroic moderator left to eat dinner or sleep.

That’s where bots come in. Discord allows users to create bots to perform a variety of functions including sending out scheduled messages, issuing warnings, or even  playing music for the server. 

How to create a Discord bot in 2019

Even without coding experience, creating a Discord bot isn’t as daunting as it sounds. Here’s a step-by-step guide to prove it. 

1. Set up your Discord server and access npm

If you don’t have a Discord account and a server already, head to discordapp.com and set yourself up. Once you have an account, click the + button on the left side of your home screen to add a server.

Set up a server on Discord to house your bot

You’ll use JavaScript to build your bot, and you’ll need access to npm, a package manager for JavaScript.  While there are many ways to accomplish this, for our purposes we’ll use Node.js. Head to nodejs.org and install it. Lastly, make sure you have a text editor, the canvas for your code. 

Optimistic about curating your own virtual utopia?  Check out our ultimate guide to building an online community.

Create new application in developer portal

Now, just create a bot. 

Okay, I’m pulling your leg. But, you will need an application on Discord to serve as the temporary shell of your bot. 

Head over to your developer portal. Click New Application, then create a super cool name for your bot, like DuckWatch. Once you settle on a good name (allow up to three hours) click Create

how to create a discord bot in your developer portal

Pick an icon and description for your bot, then click the Bot button on the left side of the screen. From there, click Add Bot

Pick an icon and set a description for discord bots

Get the bot’s token

With Bot button selected, you should see a clickable link that says “Click to Reveal Token.” Clicking it reveals your bot’s authorization token, allowing you to send code to your bot. You don’t want any old schmuck controlling your bot, so don’t share your bot’s authorization token with anyone. If your bot’s token gets into the wrong hands, make sure to click Regenerate to get a new, secure token.

get bot token to set up discord bot
For now, keep that token on hand. 

Put your bot in your Discord server

From the developer portal, click OAuth2 on the left side of the screen. Under the Scopes header, select the box for Bot. Then click Copy just below that to grab the URL. 

How to add a discord bot on your server

Paste the URL into a new tab or window to navigate there. From there, select your server and click Authorize

Authorize the discord bot on your server for it to appear as a new user

Your lifeless husk of a bot should now appear as a new user in your server. Hooray!

Make a folder for your bot’s code

You’ll want a folder for the text files that make your bot tick. Create one and give it a simple, memorable name. (Something like “DuckBot,” but more relevant to your bot’s functionality.) 

Make a folder to house all the code for your bot

Make your bot’s files with your text editor

“package.json” and “bot.js”  are a couple files that allow your Discord bot to operate correctly and provide relevant information about itself. 

To create the first file, open your text editor and paste the following: 

{

"name": "DuckWatch",

"version": "1.0.0",

"description": "No Ducks Allowed",

"main": "bot.js",

"author": "Your Name",

"dependencies": {}

}

example of json code file for discord bot

Feel free to replace “DuckWatch,” “No Ducks Allowed,” and “Your Name” with more relevant text. This file is for informational purposes, so you’ll want something that makes sense to you if you need it. Save this file as “package.json” and put it in your bot’s code folder.

Now, initialize the bot’s folder. On Mac, you’ll want to right-click on the folder and select New Terminal at Folder. On Windows, you can hold down the Shift key and right-click the folder, then open a command window. In the Terminal or command window, paste the following: 

npm install discord.js

Use npm to install your bot and grant access to libraries your bot code references

After pasting, hit Enter. This uses npm, to grant access to some necessary libraries your bot will reference in its code. You’ll see some new files pop up in your bot folder when this is complete.

Next, you’ll need the code that tells your bot what to do and when to do it. This step is a great reason to learn to code even if you’re not a developer. In this case you’ll want to learn more about JavaScript to give yourself deeper control over your bot’s behavior, but for now you can paste the following to give your bot some functionality (namely banning users for sending the message “ducks”). Below is some functional code for that purpose: 

const Discord = require('discord.js')

const client = new Discord.Client()

 

client.on('ready', () => {

  console.log(`Logged in as ${client.user.tag}!`)

})

 

client.on('message', message => {

  if (message.content === 'ducks') {

   const guild = message.guild;

    const member = guild.member(message.author);

    message.reply('Banned.')

    member.ban();

  }

})

 

client.login('token')

setting a token for your discord bot

Remember the authorization token you grabbed earlier? Replace the word token with your bot’s token, ensuring that the apostrophes remain intact. Remember, whoever has your bot’s authorization token can control your bot. If you think your bot’s token has been compromised make sure to navigate back to your bot’s token in the developer portal and click Regenerate for a new, secure token. 

Save this file as “bot.js” in your Discord bot folder. 

Run the bot

You’re all set! To run your bot, initialize your bot’s folder again (as described earlier) and type “node bot.js” in the command prompt or Terminal, followed by the Enter key. You should see your bot come online through Discord, at which point you can test it out! Hooray!

run the discord bot by initializing your bot again in the Terminal

watch the bot in action
This guide has provided a solid foundation for building bots, but Discord bots can do much more than ban users for saying “ducks” if you’re willing to put in the research. They’re useful for sending automated messages at scheduled times, managing channel members, logging and documenting interactions for future review, and more. 

Learn more about how Discord can work for your business →

 

More resources on bots

Check out additional resources on how to create bots on various social networks and communities, including:

Adam Crivello
Author

Adam Crivello

Adam is an associate research analyst focused on cloud, development, and IT software. He started at G2 in July 2019 and leverages his background in comedy writing and coding to provide engaging, informative research content while building his software expertise. In his free time he enjoys cooking, playing video games, writing and performing comedy, and avoiding sports talk.