* Create config.yml Instead of making an entire new page with just text talking about the discord server (which they could ignore, as most people don't read), just link people directly to the discord server * Delete question---general-support-request.md
Table of contents
About
discord.js is a powerful Node.js module that allows you to easily interact with the Discord API.
- Object-oriented
- Predictable abstractions
- Performant
- 100% coverage of the Discord API
Installation
Node.js 10.2.0 or newer is required.
Ignore any warnings about unmet peer dependencies, as they're all optional.
Without voice support: npm install discordjs/discord.js
With voice support (node-opus): npm install discordjs/discord.js node-opus
With voice support (opusscript): npm install discordjs/discord.js opusscript
Audio engines
The preferred audio engine is node-opus, as it performs significantly better than opusscript. When both are available, discord.js will automatically choose node-opus. Using opusscript is only recommended for development environments where node-opus is tough to get working. For production bots, using node-opus should be considered a necessity, especially if they're going to be running on multiple servers.
Optional packages
- zlib-sync for faster WebSocket data inflation (
npm install zlib-sync) - erlpack for significantly faster WebSocket data (de)serialisation (
npm install discordapp/erlpack) - One of the following packages can be installed for faster voice packet encryption and decryption:
- sodium (
npm install sodium) - libsodium.js (
npm install libsodium-wrappers)
- sodium (
- bufferutil for a much faster WebSocket connection (
npm install bufferutil) - utf-8-validate in combination with
bufferutilfor much faster WebSocket processing (npm install utf-8-validate)
Example usage
const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
});
client.on('message', msg => {
if (msg.content === 'ping') {
msg.reply('pong');
}
});
client.login('token');
Links
- Website (source)
- Documentation
- Guide (source) - this is still for stable
See also the WIP Update Guide also including updated and removed items in the library. - Discord.js Discord server
- Discord API Discord server
- GitHub
- NPM
- Related libraries
Extensions
Contributing
Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the
documentation.
See the contribution guide if you'd like to submit a PR.
Help
If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle nudge in the right direction, please don't hesitate to join our official Discord.js Server.

