diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index e3e7476d3..000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-
-name: Bug report
-about: Report incorrect or unexpected behavior of discord.js
-title: ''
-labels: 'bug, need repro'
-assignees: ''
----
-
-
-
-**Please describe the problem you are having in as much detail as possible:**
-
-**Include a reproducible code sample here, if possible:**
-
-```js
-// Place your code here
-```
-
-**Further details:**
-
-- discord.js version:
-- Node.js version:
-- Operating system:
-- Priority this issue should have – please be realistic and elaborate if possible:
-
-**Relevant client options:**
-
-- partials: none
-- gateway intents: none
-- other: none
-
-
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 000000000..d034fa145
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,133 @@
+name: Bug report
+description: Report incorrect or unexpected behavior of discord.js
+title: 'Bug:
'
+labels: [bug, need repro]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Use Discord for questions: https://discord.gg/djs
+ If you are reporting a voice issue, please post your issue at https://github.com/discordjs/voice/issues
+ - type: textarea
+ id: description
+ attributes:
+ label: Issue description
+ description: |
+ Describe the issue in as much detail as possible.
+
+ Tip: You can attach images or log files by clicking this area to highlight it and then dragging files into it.
+ placeholder: |
+ Steps to reproduce with below code sample:
+ 1. do thing
+ 2. do thing in Discord client
+ 3. observe behavior
+ 4. see error logs below
+ validations:
+ required: true
+ - type: textarea
+ id: codesample
+ attributes:
+ label: Codesample
+ description: Include a reproducible, minimal code sample. This will be automatically formatted into code, so no need for backticks.
+ render: typescript
+ placeholder: |
+ const { Client, Intents } = require('discord.js');
+ const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
+
+ client.on('ready', () => {
+ console.log(`Logged in as ${client.user.tag}!`);
+ });
+
+ client.on('interactionCreate', async interaction => {
+ if (!interaction.isCommand()) return;
+
+ if (interaction.commandName === 'ping') {
+ await interaction.reply('Pong!');
+ }
+ });
+
+ client.login('token');
+ - type: input
+ id: djs-version
+ attributes:
+ label: discord.js version
+ description: Which version of discord.js are you using? Run `npm list discord.js` in your project directory and paste the output.
+ placeholder: 13.x.x (we no longer support version 12 or earlier)
+ validations:
+ required: true
+ - type: input
+ id: node-version
+ attributes:
+ label: Node.js version
+ description: Which version of Node.js are you using? Run `node --version` in your project directory and paste the output.
+ placeholder: Node.js version 16.6+ is required for version 13.0.0+
+ validations:
+ required: true
+ - type: input
+ id: os
+ attributes:
+ label: Operating system
+ description: Which OS does your application run on?
+ - type: dropdown
+ id: priority
+ attributes:
+ label: Priority this issue should have
+ description: Please be realistic. If you need to elaborate on your reasoning, please use the Issue description field above.
+ options:
+ - Low (slightly annoying)
+ - Medium (should be fixed soon)
+ - High (immediate attention needed)
+ validations:
+ required: true
+ - type: dropdown
+ id: partials
+ attributes:
+ label: Which partials do you have configured?
+ description: |
+ Check your Client constructor for the `partials` key.
+
+ Tip: you can select multiple items
+ options:
+ - USER
+ - CHANNEL
+ - GUILD_MEMBER
+ - MESSAGE
+ - REACTION
+ multiple: true
+ validations:
+ required: true
+ - type: dropdown
+ id: intents
+ attributes:
+ label: Which gateway intents are you subscribing to?
+ description: |
+ Check your Client constructor for the `intents` key.
+
+ Tip: you can select multiple items
+ options:
+ - GUILDS
+ - GUILD_MEMBERS
+ - GUILD_EMOJIS_AND_STICKERS
+ - GUILD_INTEGRATIONS
+ - GUILD_WEBHOOKS
+ - GUILD_INVITES
+ - GUILD_VOICE_STATES
+ - GUILD_PRESENCES
+ - GUILD_MESSAGES
+ - GUILD_MESSAGE_REACTIONS
+ - GUILD_MESSAGE_TYPING
+ - DIRECT_MESSAGES
+ - DIRECT_MESSAGE_REACTIONS
+ - DIRECT_MESSAGE_TYPING
+ multiple: true
+ validations:
+ required: true
+ - type: input
+ id: dev-release
+ attributes:
+ label: I have tested this issue on a development release
+ placeholder: discord.js@xx.x.x-dev.1530234593.d23280c
+ description: |
+ The issue might already be fixed in a development release. This is not required, but helps us greatly.
+
+ To install the latest development release run `npm i discord.js@dev` in your project directory.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index ae04d138d..000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-
-name: Feature request
-about: Request a feature for the core discord.js library
-title: ''
-labels: 'feature request'
-assignees: ''
----
-
-
-**Is your feature request related to a problem? Please describe.**
-A clear and concise description of what the problem is. Eg. I'm always frustrated when [...]
-
-**Describe the ideal solution**
-A clear and concise description of what you want to happen.
-
-**Describe alternatives you've considered**
-A clear and concise description of any alternative solutions or features you've considered.
-
-**Additional context**
-Add any other context or screenshots about the feature request here.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 000000000..6ea63f7e7
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,36 @@
+name: Feature request
+description: Request a new feature (documented features of the official Discord developer API only!)
+title: 'Feature request: '
+labels: [feature request]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ We can only implement features that Discord publishes, documents and merges into the Discord API documentation.
+ We do not implement unreleased features.
+ Use Discord for questions: https://discord.gg/djs
+ - type: textarea
+ id: description
+ attributes:
+ label: Feature
+ description: A clear and concise description of what the problem is, or what feature you want to be implemented.
+ placeholder: I'm always frustrated when..., Discord has recently released..., A good addition would be...
+ validations:
+ required: true
+ - type: textarea
+ id: solution
+ attributes:
+ label: Ideal solution or implementation
+ description: A clear and concise description of what you want to happen.
+ validations:
+ required: true
+ - type: textarea
+ id: alternatives
+ attributes:
+ label: Alternative solutions or implementations
+ description: A clear and concise description of any alternative solutions or features you have considered.
+ - type: textarea
+ id: additional-context
+ attributes:
+ label: Other context
+ description: Any other context, screenshots, or file uploads that help us understand your feature request.