DEV Community

Cover image for Discord Developer Cheat Sheet
Emīls Oto Leimanis
Emīls Oto Leimanis

Posted on

2 1 1 3

Discord Developer Cheat Sheet

A quick reference guide for creating, managing, and troubleshooting Discord bots and applications.


Bot Basics

1. Creating a Discord Application

2. Generating a Bot Token

  • Navigate to Bot > Click Add Bot.
  • Copy the token. Keep it secure.

3. Setting Bot Permissions

  • Go to OAuth2 > URL Generator.
  • Select bot scope and assign required permissions.
  • Use the generated URL to invite the bot.

Key Libraries

1. Discord.js (JavaScript)

  • Install: npm install discord.js
  • Example Initialization:
  const { Client, GatewayIntentBits } = require('discord.js');
  const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages] });

  client.once('ready', () => console.log('Bot is online!'));

  client.login('YOUR_TOKEN');
Enter fullscreen mode Exit fullscreen mode

2. Discord.py (Python)

  • Install: pip install discord.py
  • Example Initialization:
  import discord

  client = discord.Client()

  @client.event
  async def on_ready():
      print('Bot is online!')

  client.run('YOUR_TOKEN')
Enter fullscreen mode Exit fullscreen mode

Useful API Endpoints

1. List Guilds

  • GET /users/@me/guilds
  • Returns a list of guilds the bot is in.

2. Send Message

  • POST /channels/{channel.id}/messages
  • JSON Payload:
  {
    "content": "Hello, World!"
  }
Enter fullscreen mode Exit fullscreen mode

3. React to Message

  • PUT /channels/{channel.id}/messages/{message.id}/reactions/{emoji}/@me

Common Bot Features

1. Command Handling

  • Discord.js Example:
  client.on('messageCreate', (message) => {
      if (message.content === '!ping') {
          message.reply('Pong!');
      }
  });
Enter fullscreen mode Exit fullscreen mode

2. Embed Messages

  • Discord.js Example:
  const { MessageEmbed } = require('discord.js');

  const embed = new MessageEmbed()
      .setTitle('Hello!')
      .setDescription('This is an embed.')
      .setColor('#0099ff');

  message.channel.send({ embeds: [embed] });
Enter fullscreen mode Exit fullscreen mode

3. Role Assignment

  • Discord.js Example:
  const role = message.guild.roles.cache.find(r => r.name === 'Member');
  const member = message.mentions.members.first();
  member.roles.add(role);
Enter fullscreen mode Exit fullscreen mode

Tips and Best Practices

  1. Secure Your Tokens:

    • Use environment variables to store sensitive information.
    • Example: process.env.DISCORD_TOKEN
  2. Test Locally Before Deploying:

    • Use tools like nodemon for live testing.
  3. Rate Limits:

    • Discord enforces rate limits. Avoid spamming API calls.
  4. Logging:

    • Add logs to monitor bot activity and errors.

Troubleshooting

1. Bot Not Responding

  • Ensure the bot is online and has the necessary permissions.
  • Check token validity.

2. Permission Errors

  • Revisit OAuth2 permission settings.
  • Ensure the bot has role-based permissions in the server.

3. Rate Limit Errors

  • Add delays between API calls.
  • Respect Discord’s rate limits to avoid bans.

This cheat sheet serves as a starting point for Discord development. Explore the Discord API Documentation for advanced features!

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Engage with a sea of insights in this enlightening article, highly esteemed within the encouraging DEV Community. Programmers of every skill level are invited to participate and enrich our shared knowledge.

A simple "thank you" can uplift someone's spirits. Express your appreciation in the comments section!

On DEV, sharing knowledge smooths our journey and strengthens our community bonds. Found this useful? A brief thank you to the author can mean a lot.

Okay