#github-notifications
1 messages ยท Page 25 of 1
So I was just browsing on discord when I realized I couldn't click out of someones profile without clicking their profile picture. I'm not sure if it's either a new feature or a bug. Please folow these steps to recreate what I experienced.
- First go to the right hand side when you're in a server.
- Click on someones name to pop up their profile.
- Then see if you can click out of it by clicking the chat.
- If not, click other peoples names. This will overlap their profiles.
I am...
This is for API issues, you can report client bugs at Discord Testers or with the form.
Description
A field in the command object to hide that command from the list in DMs.
Why This is Needed
Some commands don't make sense in DMs, for example, moderation commands. It would be best if those commands didn't show in the list.
Alternatives Considered
Erroring when the command is used or ignoring it; those would be a worse user experience
Additional Details
Maybe, instead of hiding, showing them at the bottom of the list but disabled and with text like "T...
i have this problem also, i made an unconventional command that allows users to upload code in .java files to add to the bot, and yes, i read before i add it, but the bot is open source and i added a way to download .java files also, the bot cant upload any source thats over 8mb in size, the command also allows for storing up to 10mb in other types of files per user, zips are denied due to zip bombs, and sometimes a user uploads a file over 8mb and might want it back, so they cant get it
I'm not sure but this could potentially be intended as the channel could be moved to another category after creation.
The solution for this would simply be to not allow the channel to be moved to a root the bot doesn't have Manage Channels permissions to, right?
Having the same problem here, it's a little annoying to be honest.
Description
Seemingly wrong documentation for the interaction object for webhook based slash commands
Steps to Reproduce
Verify webhook endpoint, inspect object that discord POST's to your endpoint
Expected Behavior
Matches documentation
Current Behavior
Several required fields marked as required in the documentation are missing and a new user field is added.
Screenshots/Videos
Here is an example object returned:
{
"id": "",
"...
Ok, should I close this issue or leave it as-is? Since #2568 is referencing code yet to be deployed but this issue is for the live environment.
60f9aaa advaith1's suggestion - daisyzhou
I would like to point out that 1. we don't love this state we're in where some guilds act differently and we want to fix it in the long term, and 2. the 75k number could still change. But it seems better to have the docs reflect reality than pretend it doesn't exist.
This looks good to me, but is the regular behavior documented? The gateway page documents large_threshold as "value between 50 and 250, total number of members where the gateway will stop sending offline members in the guild member list". Are these numbers still accurate? Isn't there an exception for members with roles?
Accidentally lost the "using gateway intents" part which we'll add back.
Yeah I've realized we're actually missing as few headings in the changelog. Will do a pass
37497d4 Fix changelog headings - msciotti
Sorry for the silence on this for a little bit. We've been debating internally what the right path forward is to support this (as much as I love GraphQL in theory it'd be a bit hard to implement only for this since we don't use it elsewhere).
We've done some thinking, and consulted with library and bot developers, and this is the solution that we have come up with! Forgive the link to yet another gist/issue:
https://gist.github.com/msciotti/b1dabde51ebe2f3e875faf73a7a3509b
We think ...
Support for DM commands has been merged on the three platforms! Desktop should roll out over the course of the week. iOS and Android will follow our weekly release trains:
- Testflight (iOS) and beta (Android) will get support on 2/15
- Barring any crashes major bugs, prod builds for both platforms will receive support on 2/22
https://github.com/discord/discord-api-docs/pull/2568!
Support for DM commands has been merged on the three platforms! Desktop should roll out over the course of the week. iOS and Android will follow our weekly release trains:
- Testflight (iOS) and beta (Android) will get support on 2/15
- Barring any crashes major bugs, prod builds for both platforms will receive support on 2/22
This was merged! The minimum length for names will be 1 once the changes are deployed (next day or two).
As an update, support for server-side validation is deployed to our API, but is not yet implemented on our clients (we're dependent on clients sending the option type to the server). So once you start getting that in your interactions payload, you'll know we're validating server-side.
That should come next week, ish!
This looks good to me, but is the regular behavior documented? The gateway page documents
large_thresholdas "value between 50 and 250, total number of members where the gateway will stop sending offline members in the guild member list". Are these numbers still accurate? Isn't there an exception for members with roles?
The "large_threshold" behavior is still correct as documented, this overrides that behavior at the 75k threshold. The exception for members with roles applies to the "l...
cc3d6fc clarify large_threshold section - daisyzhou
6c7e838 fix typo - daisyzhou
The "if you are using Gateway Intents" text is outdated; whatever version you use, you'll need the presence intent switch enabled in the dev portal, and on v8 you must specify intents to connect
The "if you are using Gateway Intents" text is outdated; whatever version you use, you'll need the presence intent switch enabled in the dev portal, and on v8 you must specify intents to connect
Is this true @night ?
Description
A setting to hide the bot's slash commands when the bot is offline. While not useful for all types of applications, it would be very useful for some.
Why This is Needed
I have some test bots which have gateway-powered slash commands; they are only online and working sometimes (usually when I'm working on them). When the bots are offline, their slash commands are unusable but they still take up space in the command list.
Alternatives Considered
- Allowing users...
@daisyzhou yes, that's why mason deleted his earlier comment. in late last year intents became forced on for all users, and unless you have presences intent enabled you won't get presences in the guild create payloads.
Description
The current state of the MANAGE ROLES permission is very inconsistent with the rest of the permission system. The permission behaves differently depending on whether it is used in an override or role. My proposal is to make a channel equivalent of the ADMINISTRATOR permission instead to solve this problem.
Why This is Needed
The MANAGE ROLES permission in an override acts exactly the same as the ADMINISTRATOR permission on roles. It allows the user t...
Description
When trying to use a slash command that has user/channel/group option the command is sent properly ( responds with status code 204) but the interactions endpoint gets null as the data instead of the actual JSON.
Steps to Reproduce
Create a Discord application and set the interactions endpoint URL.
Create a slash command using user/channel/group option.
Send said slash command.
Expected Behavior
Endpoint gets the JSON data of the interaction (slash ...
This was working fine 1-2 days ago. Earlier today the slash command didn't even send properly - https://canary.discord.com/api/v8/interactions returned an error complaining that the only acceptable option types are boolean/string/integer and the endpoint didn't receive anything. Now you can send them but the endpoint gets null data.
Description
The endpoint for Create Guild Ban, when used with the X-Audit-Log-Reason header, will override the json param reason (for this endpoint) entirely.
I assume that this behavior is intentional, however, when using the Get Guild Bans endpoint for bans registered with the X-Audit-Log-Reason header (or when using both, since reason is ignored when using both) no reason is registered.
Steps to Reproduce
Send a Create Guild Ban call with the X-Audit-Log-Reason head...
I can reproduce this with a command using a role argument as well as user/channel arguments as specified in the original issue.
This is somewhat confusing but correct behavior. The audit log reason implicitly becomes the ban reason if not otherwise specified. We pick the ban reason as the default audit log reason if not otherwise specified - because it's a sensible default. However creating a ban has a reason, and so does creating an audit log entry. Thus why the more specific header wins for the audit log reason, but not the ban reason.
Somewhat odd side effect of how things work. But working as intended.
This is somewhat confusing but correct behavior. The audit log reason implicitly becomes the ban reason if not otherwise specified. We pick the ban reason as the default audit log reason if not otherwise specified - because it's a sensible default. However creating a ban has a reason, and so does creating an audit log entry. Thus why the more specific header wins for the audit log reason, but not the ban reason.
Somewhat odd side effect of how things work. But working as intended.
...
Can reproduce here with a channel/user argument with "d" being returned null, all other arguments working fine.
Add this library to the community resources.
Oh sorry I didn't see his comment. thanks night and advaith1!
Hello @jhgg,
currently there is a trend among our members to use these buttons and sometimes to advertise their own Discord servers. My project would automatically warn these users that advertisment is not allowed on my server, but at the moment this endpoint is not available for bots.



Thanks to @advaith1 for pointing out this issue on GitHub, it...
3268ef4 intents are now required - daisyzhou
if you are using Gateway Intents and don't have
Can change to
if you don't have
Then it's consistent with the warn block. After that, LGTM!
78d3058 other spot where intents are required - daisyzhou
Agreed, I think the DMs idea was a good idea but it needs a setting to specify "allow-in-dms: true" and "allow-in-servers: true" or whatever.
I've been hitting this occasionally (usually due to cold starts right now), my personal preference right now would be to somehow ACK the message and then respond with whatever my success message is. That way my end-users know that their command is in the "processing" state.
In general if the timeout was able to be increased (maybe through configuration up to a maximum, but the default being 3 seconds) that would work great for them majority of my use cases. I have a couple other longer ter...
Description
It's impossible to send a slash command that has two options - first one of any type, required, and second one of user/channel/role type, optional - if you include both options.
Steps to Reproduce
Create a slash command with two options - first one of any type, required, and second one of user/channel/role type, optional.
Send a slash command using both options.
Expected Behavior
Slash command is sent properly.
Current Behavior
returns error ...
I thought this was related to #2594 but the other one has been resolved and I still get this problem.
What's interesting you can set both options to not required. Then you can send a slash command with none, both, first or the second option only without any problem.
fa2273d fix Application Command Extra Fields table (#2597) - vBread
Description
The API incorrectly returns an error when trying to send slash commands with 1 or more required options and 1 or more optional options.
Steps to Reproduce
- Create or find a slash command with at least 1 required option as well as at least 1 optional option. (any option types)
- Send the slash command with the options
Expected Behavior
Slash command gets posted normally with no errors from the API.
Current Behavior
The API responds with ...
it looks like this is an oversight with our required + optional validation. we're working on deploying a fix shortly.
Description
In my testing guild (ID: 569855591489470485), using a command in a bot that edits the message that was sent doesn't seem to have effect. This doesn't seem to happen in any other guild
Logs
T 2021-02-11 10:56:30,023 hikari.gateway.0: received payload with size 674
{"t":"MESSAGE_CREATE","s":22,"op":0,"d":{"type":0,"tts":false,"timestamp":"2021-02-11T09:56:29.925000+00:00","referenced_message":null,"pinned":false,"nonce":"809362217001549824","mentions":[],"ment...
Furthermore, this only seems to happen with a specific bot account (ID:649186216436039680)
Description
Currently, premium_since in the guild member structure is marked as an optional field. However, when receiving a GUILD_CREATE event from the gateway, the field is missing from certain guild members; namely, the bot itself. #2044 changed this in the documentation, spurred by the discussion in #1101 (https://github.com/discord/discord-api-docs/issues/1101#issuecomment-529672679) where the assumption was that the lack of the field was due to a backlog of in-memory objects....
Description
When specifying an option of type "channel" for a command, channels users don't have view access to are hidden from the suggestions when entering the command, but this is not the case for categories even if the "View Channels" Permission is disabled for the user/role.
Steps to Reproduce
- Create a slash command with a required channel type argument
- Create a category with with the "View Channels" permission set to forbidden for a non-admin test user and add a few ...
is it only when editing embeds? does it include editing content? do you have a minimum viable repro using something like curl?
I have a feeling #2044 was merged by a newer engineer by mistake. @typpo can you handle this
so was https://github.com/discord/discord-api-docs/issues/1101#issuecomment-529672679 incorrect? it is actually supposed to be optional?
ee46553 Revert "Make guildmember premium_since not opti... - typpo
dbebed4 Revert "Make guildmember premium_since not opti... - typpo
dbebed44cde8858000bf155525eea8e1c941eab6
@advaith1 my comment there is still pretty accurate. old member objects in memory exist permanently so long as you dont leave a guild and it doesn't crash.
Rauf's Slash Command Generator is a JSON payload generator for easily creating slash commands.
3727a50 Add https://rauf.wtf/slash to the Community Res... - ItsRauf
Description
Checking applications.commands.update in the OAuth2 URL Generator in the dev portal always leads to a broken URL, as it is now restricted to client credentials grant. It should be removed.
Why This is Needed
Users keep clicking the scope when they shouldn't and end up with a broken URL
Alternatives Considered
Show a warning/error instead of removing the scope, there isn't really a point though
Description
Dispatch panicking on every command except --help
~$ dispatch branch list 809017491648806932
dispatch v1.0.0-rc3-d42fde1
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:347:21
stack backtrace:
0: 0x55777d9553fb - backtrace::backtrace::libunwind::trace::h034f17449c8f06d2
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/libunwind.rs:88
...
Had some time to test a bit more on this, and found out the root cause. This can actually be reproduced in any guild. If you are missing the Embed Links permission when trying to send/edit a message (with no content) to show an embed, the REST API won't send a Forbidden 403: 'Missing Permissions' as expected (which is what it sent when you try to send an embed only with the permission disabled).
Curls to reproduce
Editing message with embed when no permission
# Create a...
Description
When running slash commands in DMs, the INTERACTION_CREATE event fires once per shard
Steps to Reproduce
- Have some slash commands usable in DMs
- Create a gateway across multiple shards
- Run a slash command
Expected Behavior
Only shard 0 picks up the event
Current Behavior
Every shard receives the event
Screenshots/Videos

This would be great. Additionally, it would be ideal if test guild channels were not subject to rate limiting. Since tests may be run in parallel, they can easily run into rate-limits. As long as test guilds have a small number of members, increasing the rate limits for messages posted to those guilds shouldn't increase load too much.
@muddyfish I wonder how you deal with this issue. I have two bots, the bot under test, and a bot that simulates user actions, both in the same channel in a t...
Any updates / workarounds on this?
[discord/discord-api-docs] New comment on issue #2352: Can't respond to an interaction with gateways
Why is it 3 seconds, literally 5-10 seconds would be much better. Especially for commands that require extra processing.
Description
When fetching the roles from a guild, it would be very useful if the role structure had a "memberCount" property, similar to the guild.memberCount property currently exposed.
Why This is Needed
This is needed so we can avoid fetching all members just to know if a role is used or not. Currently, the only way to know how a role is used / who a role is assigned to, is to fetch the members to check what roles are assigned to them.
Alternatives Considered
...
there's now an endpoint for getting role member counts but bots can't use it yet:

Description
currently when receiving a non-option slash command over the Websocket, it's sending a resolved property filled with member, user, roles and channels data. (tested it with a command that require a argument (optional works too) that works as expected.
It seems to send the data even if you are using it inside a dm with the bot.
Steps to Reproduce
- create a slash command that does not require a option
- use the command
- look at the output
.data - check fo...
I too would be interested in this feature.
Description
Allow interaction tokens to inherit external emoji permissions from either the everyone role or the bot permissions, whichever is more tolerant.
Why This is Needed
Currently, when sending a response to a slash command, assuming you also have a regular bot in the channel, you have two ways of responding to that command (ignoring any manage webhooks you may have as that probably won't change the outcome too much).
- Using the interaction token
- Using ...
I can confirm I am getting this same issue, only i get it with required options so I think any command has the ability to leak random user/member data not just the ones we both listed
I have blocked out the random users info to avoid invading their privacy (not to say that that info isn't already public anyway)
attached is what I get from running this command
below is the command object I am running
{
"data": {
"name": "ban",
"description": "Removes a use...
For certain command patterns like dice-rolling, it's common to implement parsing bot-side. e.g. /roll 4d8 + 2. I suppose a workaround could be to pack these into an "expression" argument, but that could be unclear to users.
Perhaps an alternative design could be an implicit, unnamed string argument that command-implementers may parse on their end:
e.g.
/roll label: stealth gmOnly: false SomeExpressionTextThatLandsInUnnamedDefaultArgument
A more real world example:
`/roll label: s...
allow interaction tokens to inherit external emoji permissions from either the everyone role or the bot permissions, whichever is more permissive.
s/more/less/
Description
Slash command ACK/ACKWithSource doesn't block using of data field, resulting sending a message... while having response type which denies that.
Steps to Reproduce
- Create an application (slash) command
- Setup an handler for it
- Respond to the slash command with
ACK/ACKWithSourcetypes while also having some payload indatafield.
Expected Behavior
Blocking the data field, maybe resulting a error.
Current Behavior
Sending...
Description
Channels received as part of a Guild object sometimes lack the guild_id field. While reasonable once you think about it, it's not documented, and can be quite unexpected when dealing with something like caching logic.
The field is not marked as containing partial objects, and at first glance I believe most people would assume that the field would be included for a guild channel - regardless of whether it's part of a guild object itself when first received. Of course...
Still, maybe this may get more help rather than a single comment :slightly_smiling_face:
53389a8 Changes to interaction responses and flags - msciotti
Slash Commands UI Changes
DISCLAIMER: These changes are still being worked on so this PR will merge when they are complete
Hey all! Another day, another update. This time, we want to talk about UI changes and how we're gonna support them.
We've gotten a lot of feedback that the in-chat view of commands could be improved:

We agree. After seeing some bots integrate and using Slash C...
Howdy all. As an update to our current thinking of pending and error states, check out https://github.com/discord/discord-api-docs/pull/2615 and the designs that will come with it :)
For the ephemeral response demo in the figma, is the initial source message visible to everyone while the command is being sent/application is thinking or is it only sent when the application responds?
@GamingGeek there's a few states:
When the interaction is still being sent to Discord's servers, the source message is only visible to the invoking user.
When the third-party server responds, if it decides to respond ephemerally, the message will stay visible to only the user and well add the blue background.
If it decides to respond publicly, the message will appear in chat for everyone.
We didn't add the blue ephemeral background for the initial "bot has not yet responded" state...
@GamingGeek there's a few states:
When the interaction is still being sent to Discord's servers, the source message is only visible to the invoking user.
When the third-party server responds, if it decides to respond ephemerally, the message will stay visible to only the user and we'll add the blue background.
If it decides to respond publicly, the message will appear in chat for everyone.
We didn't add the blue ephemeral background for the initial "bot has not y...
If you defer responding with a 5, how do you then issue the deferred response? Is that a 4, or a follow-up message?
@monbrey thank you for the question. You do so by using PATCH /@original. Let me update the docs.
711566a clarify responding to deferred - msciotti
| DeferredChannelMessageWithSource | 5 | ACK an interaction and edit to a response later, the user sees a loading state |
Table formatting should probably match up.
What happens if I don't edit the original message after 15 minutes? Not documentation-worthy, just curiosity on my part.
This should probably be moved to a feature request on my end, but I'm not sure all bot developers want to anthropomorphize their bot.
Table formatting should probably match up.
Given everything has a source message now, should the WithSource suffix be removed? (it's extra clutter... Though the entire file about slash commands reads like Java class names...)
My auto-formatter isn't working and it's making me sad. I'll figure it out.
Hey all! Wanted to inform you about a change for servers with a lot of bots in them.
Discord allows for a maximum of 250 roles in a guild. Adding a bot to a server gives that bot a managed role in the server with the requested permissions.
Currently, that managed role ignores our maximum number of guild roles when the bot is added. This is an oversight in our infrastructure that we will be correcting:
- Managed roles from bots will respect the 250 guild role cap
- If you are tryi...
Any chance of "bot name is thinking" being customisable? whether returned in the deferred response, or set globally on the bot.
Description
Discord exit channel event missing
Steps to Reproduce
- Go to our large study server https://discord.com/invite/EHStrAyY
- Study, enter, and exit channel and do voice status changes frequently around noon US EST time.
Expected Behavior
Discord (discord.py) should invoke event upon users' entering and exiting channels
Current Behavior
Each day, about 1 out of 800 users is drawn to have missing events.
Screenshots/Videos
See https://gith...
| content? | string | message content |
| embeds? | array of [embeds](#DOCS_RESOURCES_CHANNEL/embed-object) | supports up to 10 embeds |
| allowed_mentions? | allowed mentions | [allowed mentions](#DOCS_RESOURCES_CHANNEL/allowe...
(FWIW it was never actually required -- like in the Figma, you can send only embeds and no content)
This isn't enough information to go on. It is entirely possible your bot is not receiving the exit events because it's disconnected from the server while those events occur.
If that's the case and the bot re-connects, it would receive a new set of voice_states on the GUILD_CREATE message for the given server, which will have the list of current voice states that will then be kept up-to-date until the connection to the given guild is restarted.
I recommend you reconcile whatever database...
Thank you for the helpful information!
Our server becomes "discord server unavailable due to temporary outage" every day around US EST noon. The only unofficial posts I saw online say it's because we have too many members online. However, I believe we only have 800 or so people on our channels.
Could you kindly point me to the official documentation regarding unavailability? I hope to fix that issue but it seems like changing things like the bitrate won't ...
Is DeferredChannelMessageWithSource only visible to the user who invoked the interaction?
Can you add a flags prop when editing the original message? (In order to make a DeferredChannelMessageWithSource become ephemeral)
ephemeral can be set in the initial "deferred" response, see the example at the bottom of the post and https://github.com/discord/discord-api-docs/pull/2615#issuecomment-780211932
Bitrate won't do much. Biggest issue is you have too many channels with different permission permutations. During peak hours your server is probably falling a bit behind real-time.
For more guidance please reach out to support; https://dis.gd/contact
No, in my case I have to set content as '" or it just gives me an error.
Instead of showing authorize page, this happens

You can't use the oauth2 page for that scope, you need to use client credentials grant.
Slash Commands GUI is a web app to manage the Slash Commands of our bots using a web interface.

Hello @MinnDevelopment, I just saw your reaction, can you please give some explanations? Thank you
Any chance of "bot name is thinking" being customisable? whether returned in the deferred response, or set globally on the bot.
@MeguminSama you could technically customize this yourself but not doing a deferred message and sending an immediate response that looks like a loading message. Customizing that system string is not something planned.
I'm open to other, less anthropomorphized wording though. "Waiting on <Bot>", or something else
Changes/Improvements
Adds a "Description" column to the following tables:
"Awaiting response from XXXX"?
3b28852 Update docs/interactions/Slash_Commands.md - msciotti
I'm open to other wording ๐
Dang, that's really annoying. I was counting down the members until we had analytics.
Just to be clear, with these changes there is no way to respond without a channel message correct? E.g. Some of my commands currently use ACK with source and send a message with the bot separately that gets deleted next time the command is used. This is done mainly because these messages are embeds that have minor changes with each usage and clutter up the history. However, that history is still nice / important to see for some commands.
I can think of a workaround for now - suppressing embe...
@ckohen that is correct. There always has to be both a source message and a bot response message, but you can choose if they are public or ephemeral.
We designed this for what we believe is the 99% use case of command --> reply, but are aware that there are other cases where you might not need a separate reply (our remake of Airhorn bot is this way currently, actually). For now we're going to err more on the side of standardization and wait and see what everyone does once this thing is lau...
Thanks!
On another note, #2410 seems to be closed by this PR. It natively provides the message object when using deferred due to the necessity to PATCH @original and I think this may end up being way more common than channel message anyways in order to avoid the risk of missing the 3 second timeout. Further, there's no longer an id of the "source" message.
I think this may end up being way more common than channel message anyways in order to avoid the risk of missing the 3 second timeout
well that doesn't really change anything; sending a normal channel message will still be used and support for getting that message should still be implemented
Would be nice if we had a count of the number of users with tracking enabled.
That will cause nagging by mods and admins.
We're looking into refactoring & improving how pending works right now per feedback from the community.
So.... this is a wontfix for now. Stay tuned.
Description
When patching a webhook message with an embed to have either content: null or content: "", the content is unchanged.
Steps to Reproduce
curl https://discord.com/api/v7/webhooks/.../.../messages/... -H "Authorization: ..." -H "Content-Type: application/json" -X PATCH --data '{"content": null}'
Expected Behavior
The message content empties
Current Behavior
The message remains unchanged but gains an edited mark
Hey there, I'm having this issue very consistently (with Twitter links) across 10,000+ webhooks produced by my Twitter-orientated Discord Bot, so if someone from Discord wants to use my bot to replicate this then just DM me Maia#1234 (I do already have a Dev support ticket open regarding it, and will post updates if I/them find solutions)
I will find bot statuses like this alot

The !! Appear alot
I hope that eventually a permission system will be implemented, where for each command/subcommand I can say what permissions are required from roles/@everyone. Unless I missed something. Because its pretty eh when normal users can see commands like /ban and I have to check on code side if member has BAN permission. Excluding them from popup menu in first place would be nicer.
Hey hi hello. Back with your not-quite-weekly update about what's been going on!
New Features
- Support for slash commands in DMs!
- A new "Use Slash Commands" permission has been rolled out, allowing you to turn off non-built-in commands on a guild or channel
- Server-side validation is complete, deployed on desktop, and rolling out on mobile
- Check out the new UI changes coming ๐ https://github.com/discord/discord-api-docs/pull/2615
Improvements
- We've raised some l...
This work has been completed! Desktop should be working as advertised, and mobile will roll out over the course of this week and should be in production early next week.
This work has been completed ๐
This change has been shipped! Much like option types and server-side validation, it's out on desktop and should be rolling out to mobile clients by early next week.
MANAGED_EMOJI = 4,
GROUP_DM_CREATE = 16,
RPC_HAS_CONNECTED = 2048,
GATEWAY_PRESENCE = 4096,
GATEWAY_PRESENCE_LIMITED = 8192,
GATEWAY_GUILD_MEMBERS = 16384,
GATEWAY_GUILD_MEMBERS_LIMITED = 32768,
VERIFICATION_PENDING_GUILD_LIMIT = 65536,
EMBEDDED = 131072
also moved the Application Object section above the endpoint for consistency
Description
I know the resolved object is still new but I think this is relevant to bring up!
In the new resolved object and more specifically the resolved.member objects i would like to see a resolved.member[ID].permissions
Why This is Needed
this is to help those bots that use the permissions data in place of roles for running commands on other users, like the example below if I try to run a command on the user/member named Cooper I don't want to ban said user if they a...
Description
In the desktop client
Steps to Reproduce
- Have a command:
[
{
"name": "search",
"description": "Search for things",
"options": [
{
"type": 3,
"name": "terms",
"description": "What are you searching for?",
"required": false
},
{
"type": 5,
"name": "exact",
"description": "Only show results matching your search exactly",
"required": fal...
Description
In the desktop client
Steps to Reproduce
- Have a command:
[
{
"name": "search",
"description": "Search for things",
"options": [
{
"type": 3,
"name": "terms",
"description": "What are you searching for?",
"required": false
},
{
"type": 5,
"name": "exact",
"description": "Only show results matching your search exactly",
"required": fal...
Get Outlook for Androidhttps://aka.ms/ghei36
From: mzrtamp notifications@github.com
Sent: Thursday, February 18, 2021, 8:20 PM
To: discord/discord-api-docs
Cc: Subscribed
Subject: Re: [discord/discord-api-docs] Changes to interaction responses and flags (#2615)
@mzrtamp approved this pull request.
All lookin' good, waiting for incoming commits
โ
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it o...
Hello to all Discord developers. I'm glad to know that they are concerned with the users' experience.
However, it is important to note that there are more benefits than harm in exposing this data, after all, if the problem is to induce the user to boost the server, this problem already exists. If a server owner really wants to, he/she can try using other methods (like a wacky crawler that uses the standard automated messaging), or else do everything manually. So personally it seems to me th...
How would this work for (the bot) uploading an attachment in the response? Currently, its ack -> followup and attachments can be uploaded in the followup, but uploading attachments probably won't be possible when editing the initial response.
@A5rocks pointed out on Discord that the "thinking" message can probably be removed with the Delete Original Interaction Response endpoint; this would be useful for commands where the bot doesn't send a response or doesn't want to show the command sou...
I also have this issue and it's pretty bad... this needs fixing asap.
I believe that I addressed most of the issues listed here in this thread. I do like to say thanks for the feedback and for your patience for me to address them.
The main changes that I want to highlight have been changes to the rate limiter. I'm also currently updating the library to support v8's new features. I have brought over these changes to both the develop and v8 update branches.
Change Log:
https://github.com/yourWaifu/sleepy-discord/compare/61d9c6f..ac4c912
Rate limiter ...
Is there anything else that can be done with flags?
you can see the other message flags in the docs but they are all only set by Discord aside from SUPPRESS_EMBEDS which can currently only be set while editing
Description
This feature already existed in the past and was removed (not sure if unintentionally) in the last few months. Like with identify OAuth2 scope, you were able to redirect a user after inviting a bot to a specific (trusted) uri.
Why This is Needed
This feature allows developers to redirect a user either to a get-started page or for bots with web interfaces back to their web interface to start configuring the bot.
Alternatives Considered
This feature might...
It's working fine over here. Make sure you have a redirect URI and response_type=code in your authorization URL.
this behavior is not a bug, and is working as intended. you must complete the grant flow to finish adding the bot and webhook to the guild.
response_type=code
I wasn't aware of it. I only knew that it worked in the past. Then this report might be a minor suggestion/bug report for the OAuth2 URL Generator available under https://discord.com/developers/applications/CLIENT_ID/oauth2. When generating a bot invite this Query parameter wasn't added.
we ended up fixing this behavior, and there is now a proper member object being returned again
this behavior should be resolved as per #2490
is this behavior still occurring? we did make a change a while back to fix storage of false-y values, which "empty list" would be a potential related issue of the same cause.
if membership screening is enabled we do flag members as pending when they are added to guilds now.
[discord/discord-api-docs] New comment on issue #2443: Concerns about applications\.commands\.update
we moved this scope to client credentials only, which resolves this concern.
this seems more like a product feature request that would be better suited for our feedback website: https://feedback.discord.com
I would recommend relying on one of the existing Java Discord libraries if you're having trouble establishing a connection with our service: https://discord.com/developers/docs/topics/community-resources
The behavior appears working as intended. We do not seem to serialize the response type in our url generator unless you select a non-bot scope where it becomes required to perform the full grant flow.
I see, I had suspected as such but was told that the bot should still get added before completing the flow when I asked the question in DDevs
Description
When I make a GET request to /api/v6/guilds/$GUILD_ID/members, I get back {:message=>"Missing Access", :code=>50001}. The browser app tells me via a top banner that email verification is required. I complete email verification successfully, but get the same error on the next request to that endpoint.
Steps to Reproduce
Make a GET request to /api/v6/guilds/$GUILD_ID/members with authorization token set.
Expected Behavior
I'm not sure of the exact da...
For clarification... Are you using a bot or a user token to do these requsts?
A user token, grabbed from the browser inspector.
Yeah, that'd be why you're seeing these top banners. Using user account tokens outside the official clients is against the TOS and triggers anti abuse systems (i.e the email verification). You should use a bot token for this.
I see. I wasn't intentionally evading anything; I have an old script that gathers statistics, which I guess used to work with user tokens. I'll use a bot token. Thanks for the quick response.
No worries, it happens. And you're welcome. โค๏ธ
Added ApplicationCommandInteractionDataResolved table
Added a field to ApplicationCommandInteractionData
I have a bot whose only purpose is to post notifications in one channel on a server (it works fine). If I use that bot's token in the stats gathering program, on the request I mentioned above, I get back {:message=>"401: Unauthorized", :code=>0}. That's different! Do I need to ask an admin to give that token more privileges or something?
try putting "Bot " before the token
Yes, I think it kind of likes that. I get {:message=>"Missing Access", :code=>50001} again. But I'm not getting any password verification emails; maybe they're going to the server admin. I'll inquire with him. Thanks for your patience.
make sure you have the Server Members Intent enabled in the dev portal
That's got to be it. Thanks very much.
Description
Custom emojis aren't displayed properly in slash-response content and embeds.
Steps to Reproduce
- Create a custom emoji
- Make a slash-command that responses with this emoji
Expected Behavior
The emoji is displayed correctly
Current Behavior
The emoji :name: is displayed instead
That only happens if the @everyone role doesn't have 'use external emojis' permissions, see #2612
@night Care to double check that... [see below video, just now]
Here's a fuller video just now showing the bug I reported as still very much in existence. When membership screening is enabled a guild join returns a 204 no content (same as if the user already a member), but when disabled the same request returns a 201 with member object.
Description
Slash commands for specific users.
Why This is Needed
Some commands could be hidden from everyone except server admins and moderators
Alternatives Considered
- Check for privileges on the server
- When Update or Add the command
{
"name": "admin",
"description": "admin description",
"users": [...(user ids)],
"type": 3,
}...
Additional Details
For example: kick, ban commands etc,
might be useful to have it work for role names/permissions instead of hardcoding it through users
might be useful to have it work for role names/permissions instead of hardcoding it through users
It is a also option
I think this is answered by #2315 (comment) already.
Remove the . to be consistent with the rest of the table?
| USE_SLASH_COMMANDS | `0x80000000` | Allows members to use slash commands in text channels | T |
It seems that the limit has been raised to 25, however, end-users can only see the first 10, with no option to scroll and the rest only accessible by search.
Would be nice if we had a count of the number of users with tracking enabled.
That will cause nagging by mods and admins.
As well as being a privacy leakage in itself, as on small servers you could deduce who does and does not want to be tracked...you're right that this isn't the right way to solve it.
My solution to this would simply be to clarify in the docs that insights will be available upon hitting 500 users with tracking enabled and disable the analytics tab in the se...
probably should use its actual name USE_APPLICATION_COMMANDS and link "slash commands" in the desc to the slash commands page
Capitalize verification levels?
The banner looks better, and removed the "join" part.
[discord/discord-api-docs] New comment on pull request #2630: About resolved objects in interactions
- in JSON they are objects, not dicts
- the user and role objects are not partial
- would be good to mention which fields are provided
- the member object is missing user, deaf, and mute
- partial channel only has id, name, type and permissions (the invoking member's permissions in the channel including overwrites - this should be added to the channel struct)
see https://gist.github.com/msciotti/b1dabde51ebe2f3e875faf73a7a3509b
Thanks for corrections, I've just add...
It is called "use slash commands":

@night I'm still seeing it if I use my example code above, unfortunately. Note that this only happens for top-level commands (options on subcommands are emptied just fine).
Most (if not all) descriptions aren't capitalized, better to keep that consistent
MANAGE_WEBHOOKS is not a voice channel permission
If all of the other PERMISSION_NAMES are based on there internal values, I see no reason to deviate from that now. Maybe we need a new column for common names.
yes it is USE_APPLICATION_COMMANDS internally, maybe add it to the note at the bottom?
Note that these internal permission names may be referred to differently by the Discord client. For example, "Manage Permissions" refers to MANAGE_ROLES and "Use Voice Activity" refers to USE_VAD.
Why hasn't this pr been merged yet?
Can a deffered ephemeral response be made public in the PATCH?
and vice versa?
Merge cannot be cleanly created yet
Can a deffered ephemeral response be made public in the
PATCH?
and vice versa?
No you cannot. I have just tested it in both directions.
No you cannot. I have just tested it in both directions.
How did you manage to test it? Afaik these changes are not live anywhere
I tested it on the current api version. I am not sure if it will change in this version.
I see that team refactored this behavior but did not address this inconsistent response. I can flag this to the team again.
I've just thought of something concerning. How will this roll out? It's an API change that depends on a client change, will their be an overlap period? For example, many of my commands use an ACK and then send a message using a bot, most of this can be cleaned up with PATCH original, however, if the UI is different across devices, I would want to make sure it still provides all the feedback it currently does.
Description
Should be at the top of the list but instead ends up at the bottom.
Edits with the same position move it to the top.
Steps to Reproduce
- Set position to 0 when creating a new channel.
Expected Behavior
The newly created channel is first on the list (/ category).
Current Behavior
The newly created text channel is last on the list.
This is contrary to the result when editing a channel to position 0.
Might make sense to include field descriptions here to keep this consistent with how enum flags are usually documented throughout the docs
any updates on this? we're running into issues that would really benefit from this
Description
Sub command option choices don't work on mobile devices
Steps to Reproduce
- Create a slash-command with a sub command with some option choices
- Fill it until you get to the list of choices
Example of such command:
{
"name": "test",
"description": "...",
"options": [
{
"name": "subcmd",
"description": "...",
"type": 1,
"options": [
{
"n...
Description
Sub command option choices don't work on mobile devices
Steps to Reproduce
- Create a slash-command with a sub command with some option choices
- Fill it until you get to the list of choices
Example of such command:
{
"name": "test",
"description": "...",
"options": [
{
"name": "subcmd",
"description": "...",
"type": 1,
"options": [
{
"n...
Description
Add an option in server settings > integrations to remove the slash commands of an application without removing any bots or webhooks as well.
Slash commands can currently only be removed from a guild by removing the whole application, which also removes any related bot account and webhooks, while bots and webhooks can be kicked/removed individually.
Why This is Needed
Sometimes you only want to remove the slash commands of an application while keeping the b...
as an addition, it would be useful if the [ / ] icon showed in the integrations list, like the bot and webhook icons
duplicate of #2336 ?
No, I don't want to hide the global commands but also remove any guild commands. It should basically remove the authentication for slash commands from the guild, similar to kicking a bot.
my bad, i misunderstood it.
Please how to a get my discord application whitelisted
+1 - having an OpenAPI spec would be amazing.
you can't; these scopes are currently only in a closed beta for select partners but they will likely be open in the future
When an app is assigned to a team and tries to specify scopes other than 'identify' in the OAuth2 Client Credentials flow when requesting a token, HTTP 400 is returned with the following body:
{"error": "invalid_scope", "error_description": "The requested scope is invalid, unknown, or malformed."}
Create an app. Assign it to a team. Using the client credentials flow using the client_id and client_secret, try to request a token while specifying scopes other than/in addition t...
it intentionally only works for identify and applications.commands.update; it wouldn't make sense for other scopes since teams don't have emails or connections and can't be in guilds
Teams can't, but the apps that the teams build can. The client credentials flow is asking for authorization for the application itself, not the team. How could, for example, a Guild Slash Command be created by an app if it can't dynamically identify which guild it's in?
An app not on a team can access all scopes using the client credentials flow because it's an application and is requesting access as an application (I was actually surprised when my application returned my user details wh...
uh, the entire point of client credentials grant (with the exception of applications.commands.update now, although that used to give access to all the owner's bots' slash commands) is to authorize the application's owner, as the docs say:
The client credential flow is a quick and easy way for bot developers to get their own bearer tokens for testing purposes
The OAuth2 protocol as a whole is for authorizing users so I don't see what else you could expect it to do
The OAuth2 protocol as a whole is for authorizing users so I don't see what else you could expect it to do
...except for the client credentials flow which is explicitly used when a client is
requesting access to the protected resources under its control
and not on behalf of a user.
https://tools.ietf.org/html/rfc6749#section-4.4
https://oauth.net/2/grant-types/client-credentials/
Aside from protocol implementations, the documentation specifically mentions using the cli...
so what would you expect client credentials grant to do for email, connection or guilds.join for apps in teams?? since when the app is owned by a user, those (in client credentials grant) give information about the application's owner.
as I said earlier, applications.commands.update (which appears to be your example) can be used by applications in teams, but that is the only OAuth2 scope which gives access to the application instead of a user or guild.
as I said earlier,
applications.commands.update(which appears to be your example) can be used by applications in teams, but that is the only OAuth2 scope which gives access to the application instead of a user or guild.there is no actual functionality which apps in teams do not have currently
I think it's safe to assume the Discord API's OAuth implementation isn't going to be overhauled to treat applications as bot users are treated now even if that would be the more c...
Description
Interactions with slash-commands on mobile devices invoke old-formatted interaction objects (without "resolved" field in InteractionData and without "type" field in InteractionDataOption)
Steps to Reproduce
- Register a command with at least 1 option
- Invoke it from a mobile device
Expected Behavior
The app receives a usual Interaction object
Current Behavior
The app receives a deprecated Interaction object
InteractionData object misses "resolved" f...
I was one of my friend new Servers and got some reaction roles. When i chose the color, the reaction role unreacted and reacted rapidly very fast. What caused, my API to get blocked because of the rate limits! Please, how can get this fixed?
it might not be on stable on all platforms yet, which is why it's not documented yet. the API will reject those outdated interactions once it's fully out to stable on all platforms
Description
Why This is Needed
Alternatives Considered
Additional Details
@advaith1 , so users with old releases installed won't invoke deprecated Interaction objects once API is fully stable on all platforms?
Or they'll have to update their clients in order to interact with slash commands properly?
Any update on this? Currently any attempt at mass modifying channels (in my case the positions in separate API calls) is very detrimental to clients and what looks like the API too from what I could tell.
[discord/discord-api-docs] Issue opened: #2648 Discord Bots are kick from servers None and Undefined
Description
My discord bot is kick from a server called None every day about 4:00 PM and also each time I restart it. You can see the servers logs here. I know another bot it is kick from a server called Undefined (owner : erreur#0000), every day too you can see it's servers logs here.
Go on the servers logs invites I put upper, and see by your eyes.
Screenshots/Videos
__My bot : __

Expected Behavior
No empty message would be sent. It would just show the applications response
Current Behavior
An empty message is sent before or after the actual response fr...
I should also add that a few users have reported crashing on mobile when users have used slash commands ever since the issue with empty messages started occuring but I am unable to reproduce...


 and after a few seconds it connected again and all missed messages were received at once.
Then another crash happened while OP was using ...
We are deploying a fix for this behavior.
This behavior should now be fixed
You will not receive 100% validated data nor the resolved models until we remove support for legacy client. This will likely happen in the next few weeks.
discord sorta does this with subgroups
you can type /moderation ban or /moderation mute
Hello,
This patch updates the Intro doc to reference /slash commands instead of !bang commands, now that Discord supports custom slash commands. I've also linked to that documentation for good measure.
I did a quick check, and didn't find any similar references:
$ rg -o '.{0,4}!\w.{0,4}'
docs/Intro.md
15:wn `!wumpu
docs/Reference.md
237:| <@!USER_
237:| <@!80351
docs/game_sdk/Overlay.md
37:if (!overl
docs/interactions/Slash_Commands.md
332:if (!isVer
docs/ga...
There are a few instances of boolean values being capitalized in the documentation for Slash Commands that I wanted to bring to y'all's attention! :)
- In the first options group in #Registering a Command, change
"required": True,to"required": true, - In the second options group in [#Registering a Command](https://discord.com/dev...
these are all examples in Python, where booleans are capitalized
That is entirely fair and I'm blaming that on my 1 AM brain. Apologies!
I'm pretty sure you're tracking events incorrectly.
We can discuss your code in discord, my tag is EQUENOS#2930
Thank you I'll contact you
In the next week, a bug fix will be going out to address this issue where PUT requests to /guilds/{guild.id}/members/{user.id} for guilds with membership screening-enabled will return a 204 instead if a 201.
Previous behavior before this fix
If members were added to guilds with membership-screening enabled, the API would return a 204 NO CONTENT.
Behavior after this fix goes out
The API will return a `201 CREATED...
Description
When you request to add a custom emoji reaction, it seems to unnecessarily require you to send the reaction in a name:id format. Understandable at first, but the thing is, you can use any name - as long as the ID is correct - and the reaction request will be resolved as normal and the reaction name will be normal to the client also. Requesting to react with the emoji identifier h:803797562594951178, not-an-emoji:803797562594951178 and `discord-lookin-kinda-cool:80379...
without getting into technical specifics, internally emojis are keyed off of name and/or id. we used to do optimizations on this route by relying on the emoji name as a source of truth for certain requests when specified alongside of the id. while we eventually stopped allowing arbitrary names to be passed along, we still keep the same api path. this is not likely to change, and we recommend still passing the correct emoji name to prevent your request from breaking down the road.
Would this fix do anything about integration roles mentioned in #2479 ? I understand pending being set to false when the endpoint is used with specific roles, which addresses part of that issue, however it still doesn't make sense that an integration like twitch bypasses membership screening without any way to change it.
About Ephermeral messages: I think it would still be beneficial to keep the "Only you can see this" somewhere in the message, most non-tech users wouldn't be able to figure out what the blue background means without reading the docs, which can lead to annoying/frustrating situations of
- User runs a command that replies with a ephemeral messages
- User says to his friend "hey look at this!"
- Friend says "I'm not seeing anything"
- User says "stop being dumb the message is right here!...
I think if you want an argument that could either be a guild id or a channel id, or a role id or an arbitrary string, that is probably less likely?
While not likely, I do have some use cases for this: Image Manipulation commands.
Users can use:
/imagemanipulation user_mention_here (will use the user's avatar)
/imagemanipulation user_id_here (will use the user's avatar)
/imagemanipulation link_here (will use the link image)
`/imagemanipulation
...
Description
If the discord gateway could show who deleted a message, instead of only putting it in the audit logs.
Why This is Needed
Some bots depend on this, mine personally. Its unreliable having to match up audit log entries with messages.
Alternatives Considered
Having the audit log return a message id instead.
Possible duplicate of #621 and/or #656
Possible duplicate of #621 and/or #656
Didn't notice those, they are exactly what im asking for.
Would this fix do anything about integration roles mentioned in #2479 ? I understand pending being set to false when the endpoint is used with specific roles, which addresses part of that issue, however it still doesn't make sense that an integration like twitch bypasses membership screening without any way to change it.
We're going to keep the behavior consistent. So, both bots and integrations like Twitch will allow users to bypass membership screening if they are granted a role when t...
214b4e3 capitalization - jamieeeeeeeee
aa65b02 Fix add guild member route so that it always re... - jamieeeeeeeee
PRs for documentation improvements are welcome :)
Since this is not a bug and is working as intended though, I have closed this issue.
You can be banned from the API for 1 to 24 hours depending on how frequently you abuse our rate limits. There's no way to "get this fixed," and you will need to wait for the temporary ban to expire.
I am very excited to see that you already have so many commands that this is a problem ๐ I'll track this internally as a request, but to be transparent, this is not on our roadmap anytime soon. I think subcommands and groups with autocomplete will help this a bit when devs feel more comfortable organizing their commands that way.
Description
Typing events are not delivered to a bot in a large guild (150k+ in this case) while the guild typing event is enabled. It's worth noting that the typing events behave as expected in the client with no flaws.
Steps to Reproduce
It's a bit unclear, since this behaviour arose with no variable changes from us other than guild growth, however a rough idea is:
- Have a bot in a large guild
- Subscribe to typing events
- Observe no typing events being received
...
This could be a bit more specific. guild does not have a MFA/2FA for moderator actions
Might consider changing this to media content sent by all members will be scanned
consider changing this to media content sent by members without roles will be scanned
we sometimes disable typing events in specific guilds. do you have a guild id? we can check if it's disabled for you
Guild ID is 267624335836053506.
Do you have a minimum viable repro demonstrating this? On our end, we simply set the options to whatever is provided in the request, and then save the changes.
Oh, i see. you're trying to unset the value.
It looks like there's a couple issues:
- your python script does not actually succeed at patching (it's getting a 400). this is because you're patching the same name, which already exists.
- the false-y value for options was not propagating to our storage layer properly.
I've fixed both of these issues, and they will be out in the next api release.
We can't do regexes because a pathologically bad regex can freeze the regex engine in the browser.
So this guild is not blocked from getting typing events, but it is quite large and is on a newer internal infrastructure for large guilds. Perhaps that is related. I will inquire with our chat infrastructure team. In the meantime, can you provide the bot user id and bot session id which is affected?
Gotcha, appreciate the help.
Client ID: 409107086526644234
Session ID: ba3bf46cd7ed451ea18709145ca6da4b
Update information about the Get Guild Members endpoint and Privileged Intents.
I believe that the Get Guild Members endpoint now requires a privileged intent, so I changed the warning block.
discord-ext-slash is an extension that adds discord.ext.slash to discord.py in the same manner as the built-in discord.ext.commands.
I also added a sentence that they should be \r\n newlines, that's was really throwing me off trying to implement this.
Description
It would be great if there was a reliable way to tell if any given event (no matter the intended recipient) actually happened in the last few minutes. This could be done by sending the event or its hash back to Discord.
Why This is Needed
A realistic use case for this would be if events were sent from a bot to an external service that would perform impure actions based on the event. The service could easily be exploited if clients sent invalid events, causing it t...
Deno-Discord-Slash-Commands is a simple Deno wrapper for slash commands. It provides get/send/edit/delete methods for handling responses/follow up messages, as well as a verify signature function for receiving slash command requests from discord.
The service could easily be exploited if clients sent invalid events, causing it to do something even though the event was 'fake'.
If this is regarding Slash Commands, there is already a way in place to handle this: https://discord.com/developers/docs/interactions/slash-commands#security-and-authorization
If you are talking about stuff like gateway events, you should not be relying a third-party service's word that the events actually happened.
Use Discord's gateway and respond to ...
If this is regarding Slash Commands, there is already a way to handle this: https://discord.com/developers/docs/interactions/slash-commands#security-and-authorization
I wasn't actually aware of that; thanks!
Otherwise, you risk that third-party service using faked events to take control of your bot; i.e. faking a !eval command coming from you telling it to delete your entire database.
This is why a way to validate gateway events would be useful for certain architectures. To name ...
Description
The string option should allow multiline strings to be sent.
Why This is Needed
One use case would be an embed command. The description option would benefit from multiline strings. Otherwise, you have to send one line and then add.
Alternatives Considered
I'm not sure of any alternative other than the one line at a time method mentioned above.
Additional Details
N/A
The architecture required to resolve this issue can also be used for event replay and notification rollback (for pinged message deletes)
maybe if someone on the applications team has nitro the bot can get up to 100mb?
But then the funny guy who created the upload bot will be back... I personally think verified bots should get higher upload limits, as the bot is trusted by Discord.
Description
It would be an excellent feature if you could set certain slash commands to certain channels.
Why This is Needed
For example, if I have a pokemon battle bot, I want to have a /createroom command in the matchmaking channel, and /usemove in a battle channel, but it would be confusing to have each of those in every channel.
Alternatives Considered
N/A
Additional Details
This should be implemented both user-side and in the API.
Wait I didn't make it a slash commands feature request I'm going to move it to a new issue
Description
It would be an excellent feature if you could set certain slash commands to certain channels.
Why This is Needed
For example, if I have a pokemon battle bot, I want to have a /createroom command in the matchmaking channel, and /usemove in a battle channel, but it would be confusing to have each of those in every channel.
Alternatives Considered
N/A
Additional Details
This should be implemented both user-side and in the API.
Since my last comment was so disliked in such a short amount of time, here's two other suggestions:
- Bump the bot max upload size to 50mb. This is the same max upload size as Nitro Classic. While this doesn't solve the entire issue for Nitro users, this does help the Nitro Classic group. In reality, who uploads 100mb files? The only real answer I can think of is just uploading game ISO's.
- Bot file upload quota. Each bot gets 10GB of file uploads per guild. If the guild is boosted, so...
any thoughts on the possibility of this?
Fixed some grammar issues.
Today, in not-a-lawyer-land, we edit legal documents!
Also lol, several of these edits are either making the grammar incorrect, or actively change the meaning of the sentence.
Today, in not-a-lawyer-land, we edit legal documents!
Also lol, several of these edits are either making the grammar incorrect, or actively change the meaning of the sentence.
Oh sorry for that, I'll close this then.
[discord/discord-api-docs] Issue opened: #2665 API route for the editing/retrieval of Server rules\.
Description
A simple api endpoint to get a list of all the rules a server has with membership screening.
Why This is Needed
Once the users see the rules with membership screening, moderators often need to remind users of a rule. Allowing bots to view the same global editable rule list for the server.
It makes moderation easy, for a single set of editable rules is much easier than updating multiple lists.
Alternatives Considered
I can't think of an elegant s...
It exists but the screening API is currently being redone so it was removed from the docs for now: #2547
This PR adds documentation for instructions on setting up the Discord Game SDK in C++ using no engine.
It is based on the gist by Mason.
Does the batch update factor into this?
If so, will it just add as many commands as it can before failing? Or will it fail early? Or will you lose the rest of your rate limit and none of the commands be registered?
- Global rate limit of 200 application command creates per day per guild
So I am encouraged to try having a shorter description for each option?
Additionally, what does "for each command and its children" mean? What is an example of a command invocation that wouldn't work?
| value | string or int | value of the choice, up to 100 characters if string |
- Rate limit of 5 requests per 20 seconds for all other routes
Is the batch update for guilds keyed by guild ID?
- Rate limit of 2 requests per 60 seconds for batch update
Is there a reason rate limits are documented for slash commands specifically but nowhere else in the docs?
description, and value properties for each command and its subcommand and groups
Is there a reason rate limits are documented for slash commands specifically but nowhere else in the docs?
@RedDaedalus just an oversight on our part. We'll be taking them out in line with the rest of the docs since they're returned in headers. Be nice to Ian he's new ;)
Only create, edit and delete routes have this limit, get, get-all ones are unlimited.
Looks like a dupe of the planned permissions update?
https://github.com/discord/discord-api-docs/issues/2315#issuecomment-761131184
Any chance of using a non-default regex engine that isn't susceptible to this (eg. re2, hyperscan) in the client for this, or is that too far out of potential scope? (Both of these engines would still probably want a maximum length on the pattern allowed, but neither is susceptible to the category of issue)
[discord/discord-api-docs] Issue opened: #2668 401 Unauthorized Error when trying to get guild roles
I am not very sure if this is a bug or not, but i tried everything and nothing worked, so I'm starting to think that this really is a bug. If it's not, I would love any type of help on this problem.
So what I'm trying to do is I'm creating some kind of dashboard for my bot and I want to get the current guilds roles. When I try to do that, I get {'message': '401: Unauthorized', 'code': 0} as response. I tried everything and looked at multiple questions as well as issues on github
You need to use a bot token to get guild roles; that's not accessible through oauth2 (only the endpoints linked to on the oauth2 page are accessible through oauth2)
You need to use a bot token to get guild roles; that's not accessible through oauth2 (only the endpoints linked to on the oauth2 page are accessible through oauth2)
So would this work? {"Authorization": "Bot bot-token"} @advaith1
Assuming the bot is present in the server you're querying, yes
bacece5 Update docs/interactions/Slash_Commands.md - typpo
fc02679 Update docs/interactions/Slash_Commands.md - typpo
Description
Error 20026 message is inaccurate and undocumented
Steps to Reproduce
One of my users reported this after kicking too many members. Spam the API to reproduce.
Expected Behavior
Instructions should be consistent with the options in the T&S form (see screenshot). Error message should be documented on opcodes and status codes page.
Current Behavior
Error 20026 says:
... selecting "Appeal an Action Trust and Safety took on my bot" as the...
873e887 Flags and content are optional - msciotti
I've just thought of something concerning. How will this roll out? It's an API change that depends on a client change, will their be an overlap period? For example, many of my commands use an ACK and then send a message using a bot, most of this can be cleaned up with PATCH original, however, if the UI is different across devices, I would want to make sure it still provides all the feedback it currently does.
That's why the old response types are deprecated, and not deleted. Your functio...
How would this work for (the bot) uploading an attachment in the response? Currently, its ackwithsource -> followup and attachments can be uploaded in the followup, but uploading attachments probably won't be possible when editing the initial response.
We will support sending attachments for non-ephemeral interactions, so this sounds like a workaround anyway?
Will attachments be possible with Edit Original Response (when using deferred response to do processing)? Currently, attachments can't be uploaded when editing messages
Will attachments be possible with Edit Original Response (when using deferred response to do processing)? Currently, attachments can't be uploaded when editing messages
Are you sure they aren't already? Maybe you should try this out
ddc0d13 new message field - msciotti
So, with some changes to messages and interactions in https://github.com/discord/discord-api-docs/pull/2615, this "source message" concept is going away. And, some interaction metadata is sent on the message object that you'd receive in a message create.
So, you could:
- Receive an interaction
- Respond to it, noting it's unique id
- Listen for
MESSAGE_CREATEevents on the gateway with the matching ID
Since deleting the original source message isn't a thing (they're now all on...
I think y'all have it right here that an attachment argument type is the way to go. Trying to stack autocomplete inside that modal would be a nightmare (and isn't how it even works on mobile). That type won't make our V1 release but we know it's necessary ๐
Coming back to this after what, funny enough, was a long discussion. Not months long, but long.
This is working as intended, though I also don't like it. That string you're referencing is the raw value being sent to our servers. We would actually have to do some additional fetching of command data on the server to match value back to name and send it to our clients. Closing this for now, but tracking internally.
That's why the old response types are deprecated, and not deleted. Your functionality still works, it might just look weird with an infinite loading state until you swap/change it. These frontend changes are deployed on all our clients, but the API feature flag will flip next week (we need time for changes to propagate)
I've seen the client side changes and the infinite loading state isn't the worst for the brief period of overlap! My worries about clients were actually unnecessary since...
alright boys. This issue is resolved. Discord is working as intended now.
Would that mean that the interaction id received with the INTERACTION_CREATE payload is now the same as the message id of the response message? Or am I misunderstanding that.
Also, I still believe the GET endpoint would be necessary, as you will get the message object when using type 5 inherently by using the PATCH endpoint to finish your response, but when responding directly, there's no way to achieve this without a bot.
I also assume PATCH would no longer work after the 15 minute e...
I appreciate the issue, but we will not be doing this. Your use cases are valid, but arguably not common. I think if you really want the utmost flexibility and Discord to just get out of the way, you can just use a single string argument and instruct your users on how to do it.
It's not really a matter of storage on our end. We spend plenty of money on infrastructure as is, though we do want to make sure we have sane limits so that people don't DDOS us by registering Slash Commands that ar...
That is unfortunately not how this system works. You would always see all the global commands because those are not specifically registered on the guild. If you don't want the slash commands for an application, you can re-authorize without the applications.commands scope (or don't auth with that scope in the first place).
This is working as intended because an empty string is not valid for that kind of parameter, which is technically the current value. We can make some smarter improvements to this in the future.
If you don't want the slash commands for an application, you can remove it and re-authorize without the
applications.commandsscope (or don't auth with that scope in the first place).
This does not seem to work. Re-authorizing without any scopes shows an error and with just bot the slash commands still exist on the server.
Would that mean that the interaction id received with the
INTERACTION_CREATEpayload is now the same as the message id of the response message? Or am I misunderstanding that.
I believe Mason is referring to https://github.com/discord/discord-api-docs/pull/2615/commits/ddc0d139b8fdd1dee5df9a091091bb105f81279c.
I believe this will be solved in a different way with our proposed permissions ideas. We are considering a visibility flag that can be toggled on and off.
Requiring a reauthorization to remove slash commands seems like an unnecessary complex way, considering it's not needed to remove any of the other authorizations for guilds.
It also requires the user to set up any bots etc. again afterwards.
Ah, I missed that commit ๐คฆ. I still believe the rest of points are valid though.
I am glad to report that the issue now appears to be fixed, with the correct behaviour as now in the updated documentation. There is now a consistent 201 (with member object) on OAuth member join, and where a role is provided membership screening is indeed bypassed. Thanks for working hard to get this fixed.
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
Duplicate of #2474 and #1864
Description
The current behaviour of slash commands over the gateway is to send it to the shard that is appropriate for each guild. I've been informed in ddevs that if the bot is not present in that server, the interaction will fail instantly [(Message Link)](#788586647142793246 message). This feature request proposes that the interaction is sent to the shard that the guild would be on.
Why This is Needed
The cur...
Wouldn't you only add the slash commands to the guild of the bot was added? And when leaving, remove the slash?
it is possible to only add the slash commands by removing the bot scope from the invite as an example
You could also originally be using the webhook and not require the bot originally, then switch to using the gateway instead and have broken commands on some servers.
There is no logic written to prevent an interaction from being sent to bots that are not in the guild over gateway, though I haven't tested this use case personally. Interaction messages are sent to your session, not through the guild. They would, however, go to the shard the guild would be on if your bot was in it (since we consistently shard).
@advaith1 did some testing with this in that conversation and was having this same issue, a screenshot is viewable here though I doubt that adds much https://advaith.is-in-hyper.space/7da5a609b9.png
It appears this does actually work, and was an issue with testing the feature.
Will attachments be possible with Edit Original Response (when using deferred response to do processing)? Currently, attachments can't be uploaded when editing messages
Are you sure they aren't already? Maybe you should try this out
interesting; looks like its undocumented but you can upload attachments while editing webhook messages and interaction responses
This feature request was for a way to remove the applications.commands scope without kicking the bot, which you have to do currently.
Looks like a dupe of the planned permissions update?
No that is for specific roles this is for specific channels
Overrides will be valid for a user or a role
So you can definitely do what you want with it.
Description
Right now there are 3 different representations of timestamps in API:
- ISO8601 timestamp (Guilds, Channels, Templates, Invites, etc) - most used
- UNIX timestamp in seconds (Activities)
- UNIX timestamp in milliseconds (Activity Timestamps)
Usually, programming language and/or library has single built-in or user-defined type for representing absolute time which is reasonable and convenient for end users.
Since discord sends data with same semantics in diff...
Probably the best way would be to have a guild setting for language that would be used by bots (or even including channel languages), most bots won't need the exact user language as stated earlier.
Just chiming in as the same thing has been happening to me as well for a while.
Description
An endpoint which returns if you have a bot/slash command access given a guild id.
Why This is Needed
When determining if a bot has access to slash commands in a server with /applications/.../guilds/.../commands, you get a 403 if you do not, or a 200 if you do.
This works fine until you consider that most guilds will not have slash commands enabled for a bot, so most responses will be 403s. If you want to detect this in say your help command so you can sugges...
Description
When using a slash command, it appears that the 'type' property is missing from the options when the slash command is sent from mobile. It appears correctly when sent from desktop.
See in the screenshot below the diff, with mobile on left and desktop on right:
Steps to Reproduce
Set up a slash command and use the command on discord desktop and then on discord mobile. Compare the 'data' section of the resulting gateway INTERACTION_CREATE events.
**Expected Beha...
not a bug; it requires a client-side update so older mobile app versions can still send the old interactions for now; the API will block those soon
@advaith1 I updated the discord mobile app on my android to 63.5 (1462) and the issue is still present, so are you sure it is an issue with older app versions?
maybe it hasn't fully rolled out yet? it is def client dependent, i've seen the same thing with canary vs non updated stable on desktop it rolled out
Every once in a while, after the latest update, it crashes my Discord client during normal operations. Sometimes it is when copying messages and pasting them again and once when I switch settings in client settings. This is the case after the last update that took place since (03/05/2021).
This repo is only for the Discord API, not the client.
Currently the Limits section details the ability to create 100 global and 100 per-guild commands, but in the Registering a Command section it says 50 of each, this PR changes the Register section to 100/100 rather than 50/50
c37bfc4 update changelog - msciotti
Changes are in! You'll see them next week when we turn on the feature flag in the API. It's disabled for now to give old clients time to get new code.
ac350ce Changes to interaction responses and flags (#2615) - msciotti
Okay so i am using a proxy and how would i use discord when i try it says 404 and then doesnt work https://github.com/nfriedly/nodeunblocker.com

we don't support proxying our application that way.
[discord/discord-api-docs] Issue opened: #2678 Hiding slash command arguments from being broadcasted
Description
It should be possible to set a slash command as "private", which would prevent the arguments from being broadcasted in chat.
Why This is Needed
Would be useful for bots with authentication features - such as linking other accounts to the bot, or entering potentially sensitive info that you wouldn't want random users to see at all.
Alternatives Considered
I mean, the bot can just delete the message, but that seems inefficient.
I'm not against the idea, but if you feel you need to hide a command's parameters, I might suggest looking into other solutions.
For example, perhaps you could ask for all the non-sensitive info in the command's parameters. When the user uses it, it'll hold onto that info for a moment, and then direct them to the bot's DMs (or even the bot's website), where the user would enter the "sensitive info" there.
That said, depending on the "potentially sensitive info" you're asking for, I migh...
why can't you just not send the source message, or do an ephemeral response? (sources will be ephemeral if the response is ephemeral starting next week)
Query String Parameters -> Query String Params (due to JSON Params)
Querystring Params -> Query String Params (prevalence)
There exists a concept of ephemeral messages, which sounds like the optimal use case for this. In an ephemeral message, only the sender receives it in response. You can set flag 1 << 6 when sending a response message to dictate it as ephemeral.
I'm guessing that this https://github.com/discord/discord-api-docs/pull/2615#issuecomment-783291122 is not possible, but can i get confirmation of this?
When a bot is added to a server its slash commands will instantly update.
the cache is ignored for that server
no, they're just cached on the server so when it's added to a new server, they aren't already cached in that server
The READY event contains an array of guild objects. Anyone can also see the channels of a particular guild which are private i.e. cannot be viewed by the user with a particular role. This can be a possible vulnerability for certain guild owners. Please look into this.
i think shortening it to params is a bad idea, it makes it harder to understand for non english speakers. If i run it through a translator it can't translate it to my native language
Channel structures are not considered private data, hence why you shouldn't ever store secret information in channel topics
This feels wrong. What if the channel name is a secret project for a server? It wouldn't make sense to not have the channel aptly named.
I would imagine 99% of discord server owners wouldn't expect this information to be accessible externally by any member on the server.
The ability to request user input over a series of requests/questions would be great.
Especially in the case of multiple questions that fetch multiple arguments to generate responses or results that are based on a set of conditions... or simply just to collect a group of multiple responses.
The common workaround is to request not-so-reliable user text input or make use of reactions to correspond to various options but it's super clunky. The user experience is also extremely poor when ha...
Description
In many programming languages, as well as many existing command libraries for bots, overloads are a first-class concept that allow flexibility in the way commands are executed and used. Slash commands should also support this well-known and widely used feature in order to reach parity.
For those who are unfamiliar, an overloaded function in most programming languages is a function with the same name but another set of parameters as another. For example, the below two...
Description
When editing the initial response of a message that was sent with flags: 64, you get a 500
Steps to Reproduce
- Run
/interactions/{interaction_id}/{token}/callbackwith type 4 and flags: 64 - Run
/webhooks/{user_id}/{token}/messages/@original
Expected Behavior
Some kind of 4xx response
Current Behavior
500 response code
Possibly a (slightly better explained) duplicate of #2369 ?
also fixes broken links and image
not really anything new, as a user you can just send a get request to https://canary.discord.com/api/guilds/<guild_id>/channels
discord returns the full list of channels, their topics, the last message id, and the last time a message was pinned in that channel
the only slight vulnerability might be if someone uploads an image with a generic name such as image0.jpg you could snatch it, but that would require them running a a script at all times and sending requests pretty much every seco...
the only slight vulnerability might be if someone uploads an image with a generic name such as image0.jpg you could snatch it, but that would require them running a a script at all times and sending requests pretty much every second
attachment urls use the attachment id, not the message id
Hm. Fair enough. As a server owner though, I would expect this message to be true. It's not. The channel can be viewed, it's the contents that cannot.

How would you delete it otherwise?
Hm. Fair enough. As a server owner though, I would expect this message to be true. It's not. The channel can be viewed, it's the contents that cannot.
Arguably, viewing means to see the contents of the channel, all this "vulnerability" gives is the ability to see it's existence
Description
Slash command with an integer option will convert the integer to string and is likely to have off by one errors if the input is above 2^54 (9007199254740992) or below -(2^53)
- Interactions with
9007199254740992will be correct - Interactions with
9007199254740993will return9007199254740992as a number in the interaction JSON - Interactions above
9007199254740993will return the input as a string in the interaction JSON, and often be off by one.- e.g....
The interaction data JSON has the correct number as a number not a string
This would violate JSON spec. The best solution here would be to pass large numbers as strings.
I wasnt able to find another issue in this github but I joined the API server and it seems to have been discussed

So it might be js / discord.js related rather than API related.
Either way it might be nice to specify limits on integer inputs for slash commands.
Specifically it's related to all parsers that consume valid JSON only. Java and JavaScript are among languages that cannot consume large numbers as numbers for one reason or another.
Number in JSON is the same as in JS - a 64-bit IEEE754 binary floating-point number. It has a 53-bit mantissa and that's where the precision limit comes from. If you puke large numbers into it as numbers and not strings, you will break compliant parsers.
Should also point out: above is the same reason why IDs are encoded as strings.
wait wait wait, resolved? when it returned to interaction?
These two channels are considered synced by the client:
[
{"id": "163772719836430337", "allow": 0, "deny": 0, "type": "role"},
{"id": "658513573412077589", "allow": 0, "deny": 537133056, "type": "role"}
]
[
{"id": "658513573412077589", "allow": 0, "deny": 537133056, "type": "role"}
]
Description
For certain interactions you don't want the user to re-run the command / run a new command. Prior to slash commands you might have the bot react to its own message with emotes like buttons and let the user click them for further interaction.
For example there is a list of items you want to show that is too big for one message you can have a left and right arrows reacted on the message and listen for the person who issued them to add to them.
For longer lists of re...
I think there was going to be the option to add actual buttons later on which would work better than reacts
yes, buttons are coming this year, and creating messages with reactions has already been denied
Addressed here: https://github.com/discord/discord-api-docs/issues/182#issuecomment-262388833
What you want is buttons, not reactions. Which are on the roadmap :)
Description
This option will add + sign after this option name. This will add new sub-option. After command invoke, in interaction, value of this option will be an array.
Screenshots/Videos
Looks like it has been already requested. #2331
Oh sorry, 2331 asked way better. Closing this
Specifically it's related to all parsers that consume valid JSON only. Java and JavaScript are among languages that cannot consume large numbers as numbers for one reason or another.
Number in JSON is the same as in JS - a 64-bit IEEE754 binary floating-point number. It has a 53-bit mantissa and that's where the precision limit comes from. If you puke large numbers into it as numbers and not strings, you will break compliant parsers.
The limit on numbers in JSON is implementation-...
"User or role"-specific is different than channel-specific
[discord/discord-api-docs] New comment on pull request #2692: Document rtc\_region on voice channels
should probably mention that null = automatic
[discord/discord-api-docs] New comment on pull request #2692: Document rtc\_region on voice channels
I followed the same setup as user_limit which only states specifics of the parameter in the Modify section. I had initially put it in both though, should I add it back to the main structure?
the concept of being in sync is purely a user interface feature. for our api there is no notion of a channel being in sync with another, so i'm not sure it makes sense to document client behavior in an api documentation.
overwrites do not appear to be ignored either. it looks like our client interprets the lack of a channel overwrite for the everyone role as allow 0, deny 0. the result of permissions computation results in them being technically equivalent, which is why we show them as syn...
the concept of being in sync is purely a user interface feature. for our api there is no notion of a channel being in sync with another
There are endpoints that have a lock_permissions boolean which is just syncing a channel with the category.
Besides, I see no reason not to documented this since bots are capable of creating channels and have an interest in making them synced with the respective category.
overwrites do not appear to be ignored either
I mean, whether you inte...
I obviously don't expect this to be merged until closer to their release (hence draft). Descriptions will be filled out once more information comes to light.
11 is PUBLIC_THREAD and 12 is PRIVATE_THREAD; I assume devs will document those with the rest of the feature on release though
Thanks. I'll leave it up just in case.
ok
Sent from Yahoo Mail on Android
On Tue, Mar 9, 2021 at 3:06 PM, Breadnotifications@github.com wrote:
Thanks. I'll leave it up just in case.
โ
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
after looking into the client behavior more closely this is likely considered a bug instead, since the client may display a channel is in sync when it is in fact not being synced (and channel mutations will not propagate to their children).
I did find some suspicious behavior too:
- When you click sync on a channel that has an empty
@everyoneoverwrite it won't delete that overwrite even when the category doesn't have one - The channel doesn't act as synced when it has an empty overwrite but shows as if it was
- When you remove all allow/deny permissions in the client it won't delete the
@everyoneoverwrite and it will remain existing for eternity (until a bot removes it)
The clients support the Watching activity type and users can now have it.
I'd like to add on to this maybe the possibility to have a separate toggle for slash command responses (per integration would be nice, but as a general thing would be fine).
It may be desirable to have an integration with application commands where most people do not have a role and external emojis disabled. This would make it a requirement to add the bot to the server just to override its permissions to use external emojis.
this will be available in the next api deploy.
I have a slash command that doesn't use an interactions URL (only the gateway interactions.create event). It was working as intended, but today I noticed that when I attempt to trigger it, I get an ephemeral message stating "This interaction failed". The gateway event still goes through and triggers my handler behind the scenes, though.
I'm the co-founder of a compute platform (autocode.com) and we likely have other users seeing this - could you help shed some light on what changed here?
...
The application has to respond to the interaction within 3 seconds
Even if I'm not using an interaction URL? What event should I send back over the socket?
This was not happening a few days ago when I last checked.
You have to respond to the interaction whether you receive them over HTTP or gateway, and you use the endpoint: https://discord.com/developers/docs/interactions/slash-commands#responding-to-an-interaction
The way to respond to an interaction hasn't changed since release
Oh, I missed that part of the docs. Thanks for the clarification and for pointing me in the right direction.
Description
While at least in the user facing interface Giving a user Slash Commands does not allow them to use Slash Commands in a channel where they cannot send messages.
It would be nice for command only channels to be able to restrict users to using Slash Commands but not sending messages. Especially with Ephemeral messages that never really get sent this would be super useful for large communities with roles channels that allow users to self assign roles. It would be signific...
Description
Currently, the API can only track used invites for the default generated invite URLs through the server itself, not the edited ones to specify how many days or uses, so invites generated through the DMs are also not tracked.
Why This is Needed
It is essential to fight abusers who raid servers for fun. Since Discord server raids are pretty common, having this addition in the API will contribute greatly to stopping abuse from the core by filtering out the source...
duplicate of #448
I'd like to add to that issue that invite tracking is supported right now by the API, just not the customized invites for some reason.
If some invites aren't showing in the invites list, that sounds more like a bug
Adding to this since someone asked me a question within discord.

Users while sometimes well intention-ed likely won't discover slash commands are available on their own. I like the idea of having a #roles channel on my discord with self assignable roles users can choose from. Right now I either need to write a crappy / slightly user hostile script that...
Description
Slash commands have the type of 20 rather than 0 on version 6
Steps to Reproduce
- Connect to gateway V6
- Run a slash command (done with slash commands over http)
- The type of the slash command is type 20
Expected Behavior
The type of the message object should be type 0 over V6
Current Behavior
The type of the message object is type 20
Screenshots/Videos
.
Steps to Reproduce
- Use a global Slash Command in the DMs of a bot.
- API's response will not contain any User ID.
Expected Behavior
User ID available somewhere, in Members or in a new Author field.
Current Behavior
User ID is not stored in Guild ID, Channel ID and Member field is empty.
Client and System Information
I use DiscordGo. (latest)
https://github....
There should be a user object in the interaction object
https://discord.com/developers/docs/interactions/slash-commands#interaction
Do you have the raw payload you are receiving? It could be a library issue or you're not accessing the correct property
I'll check the library, thanks for the info !
This is intentional and documented
This is intentional and documented
according to the doc in v6 the type is meant to be 0
https://discord.com/developers/docs/resources/channel#message-object-message-types

Oh, sorry, I misread the issue
Self-explanatory: POST https://discord.com/api/oauth2/token/rpc does not work as it always gives a 404 status code and a JSON response {"message": "404: Not Found", "code": 0}, even with correct credentials.
This is not a bug, and the endpoint no longer exists. RPC is not something we generally support for general usage (as it stated at the top of its documentation, it's a private beta). Its documentation is outdated and doesn't reflect an accurate state of the world.
After some rigorous testing (by spamming the API), I figured out the rate limits for the follow-up endpoints.
- 5/2s per interaction
- 30/60s per guild/global (hard to test)
Since all these endpoints use the application_id as their webhook_id parameter, the major parameter is incorrect in this case. The new major parameter seems to be interaction_token then.
I'm asking if there is a specific ...
Description
Respecting rate limits on the client side is impossible to do reasonably without a CORS proxy, as X-RateLimit-Reset-After is not exposed to the client and the system clock may be inaccurate.
Steps to Reproduce
Fetch API:
fetch("https://discordapp.com/api/webhooks/id/token?wait=true", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
content: "test message",
}),
}).then(response => {
co...
fwiw it looks up the interaction id and uses that for ratelimiting; afaik in practice it would act the same as ratelimiting by the interaction token though
Is that screenshot the message object as recieved by your bot or by the client? The type is still 20 on the client as its already on v8, no matter what version your bot is on.
Is that screenshot the message object as recieved by your bot or by the client? The type is still 20 on the client as its already on v8, no matter what version your bot is on.
@ckohen the message object from my bot
Ah, interesting. Are you getting type 19 for replies as well?
Ah, interesting. Are you getting type 19 for replies as well?
@ckohen i havn't tested it for the gateway but i did for the rest and it returned type 0
with my dev bot running on my pc the type for a slash command is now 0 but on my VPS its still type 20.
Description
When referencing the Discord web application on how it behaves on the gateway connection using the Firefox DevTools network panel, I noticed that the webapp is sending IDENTIFY packets with fields not documented in the Discord dev docs. To be precise, the fields are "capabilities" and "client_state". Even if these fields would not be normally sent by bot libraries, I believe that they should be documented anyway.
Steps to Reproduce
View the websocket payloads bein...
There are lots of things that the clients send that are not documented. You should assume that if a field is not documented, you should not (and are not expected to) send those fields. The same goes for the API endpoints: If it's not documented, you're not supposed to be using it.
Description
Let's say that an integration is connected on a server only through integrations (no bot user).
If you use a Slash Command and put a reaction on this message, the program running the integration will not be aware of this reaction.
Why This is Needed
I uses reactions for updating menus, switching pages in inventory, and all kinds of stuff.
Alternatives Considered
The alternative would be the ability to disallow people from adding an application as an int...
every application seems to have RPC_HAS_CONNECTED ๐ค so I'm not sure what that does
I'm not really sure about MANAGED_EMOJI and GROUP_DM_CREATE either, I expected gamewisp to have MANAGED_EMOJI but it doesn't
ik the others tho
Description
Currently Slash Commands only allow these option types. It'd be extremely useful to allow users to be able to select dates using a UI (similar to the one in Search).
Why This is Needed
For me personally, I am building a project tracker which includes setting deadlines. The bot uses the deadline date to send reminder messages to the users (if they haven't updated...
Description and Why This is Needed
Currently, there are only two and a half choices regarding to message retention: persistent, persistent with hidden by channel visibility, and ephemeral. Some chats are rapid-fire and we know that issuing many message deletes at once are not really compatible with how Discord back-end works (https://blog.discord.com/how-discord-stores-billions-of-messages-7fa6ec7ee4c7). Therefore, I propose a new feature, channels with limited retention.
**Alternat...
I imagine group DM create is whitelisting for creating more then 10 active group DMs.
Description
Interactions already compute and provide the invoking member's (and provided members') permission values. However, it doesn't include the bot's permissions (if the application has a bot in the server).
Why This is Needed
Bots are expected to check permissions and not try to make requests that will 403. While this is easy in situations where all roles and channels are cached (usually throug...
Description
When requesting webhook(s) with .../webhooks/{webhook_id}, .../channels/{channel_id}/webhooks, .../guilds/{guild_id}/webhooks endpoints from a guild, where the application's bot is not in, will yield a wrong error code (and message).
Steps to Reproduce
Request webhook(s) with a bot from a guild, where the bot is not in.
Expected Behavior
The API should send:
Status: 403 Forbidden
Error code: 50001
Message: Missing Access
**Current Behav...
What is the current state of this?
For the record do I still encounter the described Ratelimit errors without using/doing any requests outside of the library's provided methods and therefore should work within the rate limits set by Discord...
I have noticed that your API offset could be very important to following the ratelimits. At the time of writing this I'm somewhere between 1.5-2.5 seconds (exact ms unknown because the precision of the server date header is only to 1 second). I am behind the server date. If you were ahead though, and sent a request at the timestamp provided, the server wouldn't actually be at said timestamp yet, so you'd hit a 429. I'd assume your library does handle calculating api offset, but it is someth...
Shouldn't only the channel id be accessible? Why the name + even the description?
Its over two years now
A note for reviewers.
This is a shallow-clone of an existing repository ( https://github.com/MeguminSama/discord-slash-commands/ ), with git history removed, and MIT license modified.
This repository is infringing upon the MIT license and a DMCA notice has been issued.
I request that you do not consider this PR until the repository has implemented the issues requested by the DMCA notice, or the repository has been removed entirely.
I have some great news. The error has been updated to describe the form accurately
is the fix live? this is still happening for me on Canary 79615 (34bdfa3)
@jhgg this has been resolved amicably with the developer and they have rebased the repository to credit the other contributors in the logs & corrected the license.
I'm happy for this to be reopened now.
Just a note, I did not intend to do anything malicious. I simply made mistakes with git and still learning how LICENSE works.
Description
Allow the everyone role to be selected for role options in slash commands.
Why This is Needed
Users expect to be able to be able to interact with the everyone role the same way they interact with every other role.
Alternatives Considered
I use a string option and parse it out server-side, but that sort of defeats the entire purpose of the role option.
At the moment, you can use the guild's id for the everyone role - but I think adding the everyone role to the list would make it easier for users
At the moment, you can use the guild's id for the everyone role
You can't actually select it in the UI
yep - that's why I said "I think adding the everyone role list would make it easier for users"
because it's not there now
Bump, IMO Embedding links in field's name is extremely useful.

There are many multi-purpose bots, economy bots, highly configurable ones that have hundreds of commands. Sub-commands do exist but it will get messy if you try to fit like 130+ commands in them.
Check the docs again, its the limit is now 100. Didn't notice
Would be also nice if users could input something like 1m, 1h, 1d etc... This is useful for things like timers and some commands that are temporary for example a temp-mute command.
A date and a duration are different things, both of which should be added.
Yeah I'm fine if large numbers become strings but off by one errors, arbitrary digit limits that are inconsistent between mobile and pc should at least be documented.
Info
Separate command option type(s) that support mentioning multiple roles/channels or users.
Why this is needed
This can save a lot of time, instead of typing out a command multiple times which requires a role. You can just mention several roles at once.
would probably be best to show a "this number is too high" error; currently it just 400s if the number is really high
I would also like a way to limit the size of the INTEGER type. If not to a specific max, at least to have something like int32 and int64. Maybe also a way to allow positive only and other reasonable restrictions. To support unbounded integers there could be another type that would send it as a string, but check that it's a valid number.
Launched a completely fresh Discord app yesterday and continue to see this intermittent behavior. Given how random it seems, I'm guessing @night's analysis that it's either a device or app version issue.
Current object for GET /users/@me/guilds:
{
"id": "80351110224678912",
"name": "1337 Krew",
"icon": "8342729096ea3675442027381ff50dfe",
"owner": true,
"permissions": "36953089",
"features": ["COMMUNITY", "NEWS"]
}
Requested object for GET/users/@me/guilds:
{
"id": "80351110224678912",
"name": "1337 Krew",
"icon": "8342729096ea3675442027381ff50dfe",
"owner": true,
"permissions": "36953089",
"features": ["COMMUNITY", "NEWS"],
...
Sounds like you're requesting it for OAuth; it's already pretty easy to do with OAuth so the proper solution to this issue would be just a bot endpoint which takes a user id
Isn't that covered by #2331?
Description
Currently it is not possible to use slash commands while replying: the command executes independently. It would be nice for Discord to send the messageId of the selected message with the interaction.
Why This is Needed
Various use cases:
- Bots that provide message formatting helpers (like the
/mebuilt-in command). - It would be really helping for reporting certain messages.
- It would help in support guild-specific message management features lik...
when uploading Rich Presence Assets to an application when i save it and change to another page like bots its deletes the image
read/duplicate of #2220
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
To clarify this command create limit is per guild yes? Does this share a limit with global commands?
yes and no
well yes, but not really at the same time
Description
- We all know it is not free to host a bot, while yes stuff like Heroku is free but it has a limit for how long free servers can be running.
Why This is Needed
- Most developers probably don't want to buy a server just to host a discord bot, I think it would be a good idea for discord to have a way to host bots.
Nothing in this world is free, and computing costs.
So, are you suggesting that Discord should charge money for you to host your bot on Discord?
Discord is a for-profit company. What do they stand to gain from throwing resources away for free?
And on that note, you can get a cheap VPS for as little as $2.50 a month.
You could use the GCP free tier, or make a slash command bot on a free serverless platform such as Cloudflare Workers
Description
Currently, when you have two or more required options, after completing the first one the slash commands will automatically move you to the second field. This function is really good but currently doesn't work with optional fields.
I think that slash commands should tab automatically to the next option (if present) when typing in an empty field (I'm pretty sure that this would work with every single type excluding the STRING one, correct me if I'm wrong).
Also, the client...
Discord needs money too. It costs money to host.
Description
When a guild template is made from a guild with a hidden channel, the corresponding channel in the template object has a type of 0.
Steps to Reproduce
- Create a channel, and make it private.
- Create a guild template in settings.
- Fetch this template over the API.
Expected Behavior
It should be expected that the channel's type is the source channel's type.
Current Behavior
The channel has a type of 0.
Screenshots/Videos
...
Soon the client will reject your very large numbers. Leaving this open to track the need for consistent limits cross-platform
Not sure if this was asked here before (or if there are particular reasons for this) but does it make much sense to mention the name of the bot in the command message now?
Since the command is now "attached" to the response of the bot does it seem pointless to have with <bot> on it. Just having <user> used /<command> would now be enough to have here.
I'm referring to [this here](https://camo.githubusercontent.com/e397a7df22af267ece8c5b139405e10db37f8d82a81cd00044b6939e08268c2c/6874747...
- yes it was changed to just user used /command
- the changes aren't live yet due to app store issues
gift code update is a weird event. It may get abused later on, but who knows
Description
My suggestion would be to allow marking a slash command as NSFW, such that it is hidden in channels without NSFW enabled. Discord is a place where there are underage children and, although bots can verify that the channel of execution of the slash command is NSFW or not, it is possible that the descriptions of the command suggest a vocabulary or words that, perhaps are not the most suitable for his age.
**Example of two commands that should NOT be displayed outside of NS...
I think that they should provide their own hosting which integrated the best way with their api and they may charge but keep the fees nominal.
this interests me A LOT, wanna get my app embedded now
I think that they should provide their own hosting
Which is far harder than you might think.
which integrated the best way with their api
There are plenty of community-made bindings to their API already. There's bound to be one that you'll enjoy using. If you don't like the community offerings, Discord also provides documentation to build your own: https://discord.com/developers/docs
but keep the fees nomina...
Having the same issue as well. I've been a long-time supporter of Discord (including financially) and really expect more/better at this point. So many of the features we want/need are hidden behind "boosts" or silly requirements like this 500 metric that is not even properly tracked. Just give your users what they want and stop dangling the carrot! VERY disappointed in Discord over the last few years and starting to wish there was a quality alternative.
Description
If you use the API and send with PATCH with the custom status blank, a blank will be created in the profile window. If you set it from the client application without using the API normally, the custom status should be deleted if it is blank.
Steps to Reproduce
Send json using API.
{
"custom_status": {
"text": ""
}
}
Expected Behavior
Custom status is reset.
Current Behavior
A blank occurs.
Screenshots/Videos
...
... in what API would sending an empty string clear a field?
Description
An update to date way to grab the latest official discord default emojis.
Why This is Needed
This is will allow users to be able to grab the official default emojis list, thus making it easier to detect valid emojis or wrappers like discord.py can cache them as well if needed.
Alternatives Considered
External emoji libs, outdated user ripped emojis stuff, trying to find the internal list in my inspect element(not found).
Additional Details
I...
Discord justs uses twemoji for the emojis, which has a distribution with all the data you need. If anything, documenting which version they use would be nice.
Twemoji doesn't have Discord's names
- That ^ from adviath
- Discord will not use the latest twejomi and it's not gunatreed that they will use all of the twejomi
- With this method you only need to grab it from the api and you wouldn't need an external library to detect if it's a valid default emoji or not.
I would rather also not dig into discord's source code to find their emoji lists.
Well I would rather not have to find the thing I am looking for.
Twemoji doesn't have Discord's names
Those are Unicode's CLDR short names, which you can find in https://unicode.org/Public/emoji. Twemoji's versioning works by matching those of Unicode's (e.g. Twemoji 12.0 strictly contains Unicode 12.0's emojis).
Discord will not use the latest twejomi and it's not gunatreed that they will use all of the twejomi
You can grab data from specific versions, and Discord announces when they upgrade Unicode, like they did a year ago when they went fr...
I know it goes to unicode, but you if you grab unicode's emoji lists, then you got emojis that don't exist in discord but do exist there, also discord may decide not to include every twejomi.
Discord justs uses twemoji for the emojis, which has a distribution with all the data you need. If anything, documenting which version they use would be nice, since it's hard to find.
If you know the version, you know which file from the aforementioned link to read when validating.
Although this wouldn't cover special cases which are unique to Discord like which emojis Discord's clients append a ๏ธVariation Selector-16 on when using them from the emoji ...
Then ask discord to be able to handle those circumstances?
Those are Unicode's CLDR short names, which you can find in https://unicode.org/Public/emoji
Discord chooses its emoji names, they often do not match Unicode names
Then ask discord to be able to handle those circumstances?
Just have the list work for both.
There's already an internal emoji list, just make this list work with an api endpoint, that's what I want(with some changes ofc)
There's already an internal emoji list, just make this list work with an api endpoint, that's what I want(with some changes ofc)
It currently does, the problem is that makes it really hard to validate. I think what you suggested would be the optimal way to do it ,or maybe, there could be a section in the docs with the up to date list of all emojis (something like https://www.unicode.org/emoji/charts/emoji-list.html)
if they actually had a proper list then it wouldn't be as much of an issue.
Just gonna add my 2 cents. I'd very much like to see OG audio support as well. It'd help me personally but I also know quite a few music community channels and game dev channels where it would be very beneficial.
If I recall correctly I read an issue on here about per-channel permissions for each slash command, wouldn't that cover this? Could just deny certain slash commands from being used in all channels except for ones that are NSFW.
If I recall correctly I read an issue on here about per-channel permissions for each slash command, wouldn't that cover this? Could just deny certain slash commands from being used in all channels except for ones that are NSFW.
Edit: Found the issue, it was one of the ones in the pin: #2315 (comment).
That fixes absolutely nothing, since if you want to use another command (ex: /ban) you have to enabl...
Description
Command choices are currently a dictionary, defined when a command is created/updated. It would be really helpful, if these dictionaries were separated from the commands, as one such dictionary can be used by multiple commands and options within the application. Application command would then only refer to these pre-created dictionaries.
Why This is Needed
I am currently working on a bot, that hosts a fighting game directly in discord. This game has player...
free heroku hosting gives you 550 hours monthly, about 22 days
if you add a credit card you get 1000 hours monthly, about 40 days
you can get free hosting for 40 out of 30 days a month
We let people who boost gift a "Nitro Booster Ticket" to themselves or a friend once per month. It looks like this:

Isn't it cute? It can be redeemed for some fun perks on our website, including this snazzy badge on your profile:

_Nitro Booster: Showed how cool t...
Description
As of now if Slash commands have options with choices, a user can only input one of the choices into the option of the command and not anything of their own. My request is to make some way so that besides the choices, people will be able to give their own input in an option.
Why This is Needed
For example I make an embed command that has an option color. For beginners I can put some of the commonly used colors as choices in the option, but for more experienc...
+1, literally any spec would be amazing and would mean I can finally retire my hacky docs-parsing tool.
I use something like a schema in my library. Here's an example:
There are some issues tho, lazy parsing is required for some of Discord's structures like the gateway payload and slash command values. I don't use any standardized json schema, but to define all the types, there needs to be some generics or placeholder type specifiers.
I think this would be solved by auto-complete suggestions as a broader feature of slash commands. The application could stream in suggested queries, such as youtube searches or your example of color choices, which would allow a lot of use-cases to be covered in one feature.
But, I do agree that there should be a way to make choices optional and allow users to set other values as well.
I think this would be solved by auto-complete suggestions as a broader feature of slash commands. The application could stream in suggested queries, such as youtube searches or your example of color choices, which would allow a lot of use-cases to be covered in one feature.
But, I do agree that there should be a way to make choices optional and allow users to set other values as well.
I like the idea but like I cannot auto-complete hex codes, can I? (Just for the example, there mi...
Description
It would be cool if there was a way to pre-fill slash commands for users. For example, the "Forrest Gump" in the screenshot below could start a pre-filled slash command as shown:
This would be similar to how deep-linking works for iOS apps, or how Google Forms lets you create pre-filled links with some values already filled in for convenience. For example, the "Forrest Gump" in the image above could point to a URL like: `https://discord.com/api/v8/applications/{app i...
Description
Please add functionality to the Game SDK for 3D audio. E.g. If a player stays left from my position, I will hear the player on the left side of my headphones.
Maybe there could be a method to send own position to Game SDK with (x, y, z) and the position of the other player and Discord calculates the correct direction of sound.
Why This is Needed
3D audio is necessary for role play games like Arma3, GTA or other. Without 3D audio, players can only be l...
Any news on when this will be live?
Any news on this? Will there still be a GET method or will watching for the message in the event stream be the only way to get the message ID?
The change got pushed back due to an app store issue, last I heard the issue is resolved and the api change will go live in a few days so people have time to update.
Quick hackish workaround:
You can use the interaction webhook token as a normal webhook execution with ?wait=true and get the message id from that.
I would recommend against adding other people's libraries to this list, unless you have obtained permission first. From what I've seen, it's typically frowned upon (some may not want to deal with the burden of being on an official list until they feel their library is ready).
The library is not as unstable as their readme sais. Me and 2 friends are using this library in production and the only reason why it is currently declared as "unstable", is because voice is not supported yet.
But it's still not your library, right?
Slapping it on this list will result in an influx of users, which consequently brings bug reports, feature requests, and other overhead for maintainers. Which is why, unless you are the maintainer, you probably shouldn't be adding someone else's library here.
This is will allow users to be able to grab the official default emojis list, thus making it easier to detect valid emojis or wrappers like discord.py can cache them as well if needed.
Many wrappers implement the behavior described by you. Since it is really easy to pull out the emoji list from the Discord client, an actual emoji list would not improve any library's quality.
This seems only like a library design issue and not an actual issue towards Discord itself. Before choosing a w...
Since it is really easy to pull out the emoji list from the Discord client, an actual emoji list would not improve any library's quality.
The problem is that list includes VARIANT SELECTOR-16, which the API does not enforce, leaving to cases like this: https://github.com/discord/discord-api-docs/issues/2723#issuecomment-804304582, which is better seen here https://github.com/discord/discord-api-docs/issues/2723#issuecomment-804289857
@davfsa if you feel like it is needed, I can make a repo or a pr containing all the emojis.
We talked about this on the Kord Discord server and kord already applied for this themselves. Also a kord dev will reply to this
Hello there,
Applying to the list was during the 0.6.x life-cycle of Kord. However, Kord isn't in a position where we would like to promote it right now. We don't see that merging this PR at the time being will be beneficial to us, but we would like this PR to remain open until we work our way to a stable release.
@NyCodeGHG made the PR based on our older discussions in public channels. We would have got into writing a PR sooner or later, so thank you for opening the PR.
While we a...
In that case, I'd like to apologize to you, @NyCodeGHG. I wasn't aware of the context behind you making this PR. So I apologize if I seemed a bit antagonistic.
Description
Currently when getting data from a slash commands interaction, in the ApplicationCommandOptionType for USER the ID of the user is currently only shown. My proposed idea is providing the user and/or guild member object instead which also includes the ID just like the information provided from the interaction caller.
Why This is Needed
For a fair amount of commands that slash commands to get the user, it would reduce the amount of requests to get further data a...
resolved field has IDs mapped to objects. See https://gist.github.com/msciotti/b1dabde51ebe2f3e875faf73a7a3509b
Some of the information on the Gateway page was slightly outdated. I've updated it with these changes:
- I removed the note โIntents are optionally supported on the v6 gateway but required as of v8โ under the Gateway Intents category because v6 was deprecated. (Line 200, Gateway.md)
- Under Privileged Intents under the Gateway Intents category, I updated the note about October 7th to use past tense. (Line 300, Gateway.md)
Some of th...
The line was removed because v6 was deprecated.
I would really like a thourough list if possible
I personally think this would be useful
if you're going to remove an info box you need to remove > info too
if you're going to remove an info box you need to remove
> infotoo
Oh yeah, I'll do that now.
On **October 7, 2020** the events under the `GUILD_PRESENCES` and `GUILD_MEMBERS` intents were turned **off by default on all gateway versions**. If you were using **Gateway v6**, you would have received those events if you had enabled the flags for those intents in the Developer Portal and had been verified if your bot was in 100 or more guilds. You did not need to use Intents on Gateway v6 to receive these events; you just needed to enable the flags.
@davfsa if you feel like it is needed, I can make a repo or a pr containing all the emojis.
I can get the internal list of emojis from the app if I really needed, but the problem here is no consistency on the API nor the client side, leading to things like what I pointed out here https://github.com/discord/discord-api-docs/issues/2723#issuecomment-805573825. They should enforce some type of consistency to be able to safely use the emojis, and not cause weird bugs
Looks like this has been rolled out to the API, should be resolved!
Description
Responding to an interaction at POST /interactions/{interaction.id}/{interaction.token}/callback with { type: 5, data: {} } returns status code 500.
Steps to Reproduce
- Respond to an interaction with
{ type: 5, data: {} }.
Expected Behavior
- Status code 204
- Response created on Discord "[name] is thinking..."
Current Behavior
- Status code 500
- Command invocation gets deleted, no response
**Client and System Informati...
+1, another use case is confirming person xyz owns application abc, and also meta-application things where you can make a bot, for example (so that you don't have to worry about the different between bot id and application id, for example).
Description

this looks cluttered and the replies are not necessary
Why This is Needed
While replying to the initial followup might be wanted in some cases, in most cases, it just looks cluttered and is an unwanted change.
Alternatives Considered
Instead of just making it not reply at all, maybe add a parameter such as replyToOriginal when sending the followup.
A special note in the case of an ephemeral original message with non-ephemeral followups. The sender will see this

whereas everyone else sees

After dismissing, the sender gets the Original message was deleted in the reply.
As advaith mentioned this feels cluttered, ...
Description
After sending a deferred interaction response, editing it to a message with an attachment or sending a followup with an attachment (which replaces the Thinking message) does not show the attachment.
Untouched code which used to show the attachment properly in a followup now does not show the attachment.
Sending a type 4 response and then sending a followup with an attachment does show the attachment.
Steps to Reproduce
- Send a deferred interaction response
- u...
Looks like the change has gone live.
Description
Currently when doing a PATCH to a ephemeral deferred response without the ephemeral flag the response remains ephemeral, and vice versa.
I am requesting that the flags (for ephemeral) are respected in the first PATCH made to a deferred response.
Why This is Needed
So that bots can do processing, and still be able to send either type of response.
For example I do some processing and based on that processing i send an ephemeral message if it errors and a non...
Not to commit the cardinal sin of resurrecting a long-since-passed thread, but, I came to this repository to suggest this exact thing.
I also do not know how the backend is structured, but perhaps something like docusaurus would work? It has versioned documentation, which would resolve the concerns of @JoeStrout (and many other users), provide search functionality (typically through Algolia although I'm sure there are alternatives), et cetera.
Good point, forgot to change that
Couple of key points:
- Some Discord definitions contain the
variation selector 16codepoint (0xFE0F) suffix on some "early" emotes (single-codepoint ones introduced in early versions of Unicode standard). - Discord uses Twemoji 12 or 13 at this point, however not all of it is used. There are definitions in the client that the client can consume, but cannot produce, and some that client can neither consume nor produce (most notably multi-diversity emotes).
- Discord naming doesn't match...
I would prefer if discord made a list like this public(so it's always update to date)
This will be fixed in the next api deploy
b8c1ccc Slash commands permissions - msciotti
This code is actually already live in production, so feel free to play around with it. Documentation is WIP not because we're not done building it, just because it might not be 100% correct yet ๐
this is so handy, thanks for pushing this out!
You can also set a `default_permission` on your commands if you want them to be disabled by default when your app is added to a new guild. Setting `default_permissions` to `false` will disallow _anyone_ in a guild from using the command--even Administrators--unless a specific overwrite is configured.
de4641a Permissions example - msciotti
- [`GET Application Command Permissions`](#DOCS_INTERACTIONS_SLASH_COMMANDS/getapplicationcommandpermissions)
There probably should be a way to PUT/DELETE single entries in these whitelists similar to how permission overwrites and role add/remove work. Seems like right now you can only replace the entire list.
## Get Guild Application Command Permissions % GET /applications/{application.id#DOCS_TOPICS_OAUTH2/application-object}/guilds/{guild.id#DOCS_RESOURCES_GUILD/guild-object}/commands/permissions
For now, disabled commands still show up in the command picker, but are unable to be used.
Do you plan to change this soon or is it postponed? I imagine the picker flooded with commands that I can't even use and this makes me disappointed.
A `default_permission` field has also been added to the [ApplicationCommand](#DOCS_INTERACTIONS_SLASH_COMMANDS/applicationcommand) model. This field allows you to disable commands for everyone in a guild by default, if you prefer to make some of your commands an opt-in experience.
You can also set a `default_permission` on your commands if you want them to be disabled by default when your app is added to a new guild. Setting `default_permission` to `false` will disallow _anyone_ in a guild from using the command--even Administrators--unless a specific overwrite is configured.
url = "https://discord.com/api/v8/applications/<my_application_id>/guilds/<my_guild_id>/commands/<my_command_id>/permissions"
"id": MODERATOR_ROLE_ID,
Do you plan to change this soon or is it postponed? I imagine the picker flooded with commands that I can't even use and this makes me disappointed.
It's a difficult problem. I can't promise it'll be soon, but it is top of mind. In a pathologically bad case of a bot having 100 slash commands and they are all disabled, our clients would have to do multiple requests before we had a full list of commands to show a user (and the user would think Discord/your bot is being super slow).
Next...
does admin/owner override slash command per-command permissions? or does the app really have full control over who gets to use what
6e490a5 You are all very helpful and we appreciate you - msciotti
All bots were granted the applications.commands scope today, making slash commands usable in every server.
Servers which do not want regular users to be able to use most commands can not disable specific app's slash commands, even by re-adding an app without the scope, as it will be re-attached a few minutes later.
Steps to Reproduce
- Have a bot with slash commands in a server
- Kick the bot
- Re-add it using only the
botscope - Wait some amount of time
- Observe that sla...
Would it be worth it to specify that's it's a 204 status code? I'm not sure if this is necessary, but I wanted to give the idea.
It might be better to clear up that it'll be unable to be used by people who don't have the permissions, but not everyone.
[discord/discord-api-docs] New comment on issue #2738: Unable to remove applications\.commands scope
For anyone else experiencing this, I was told that this will start working properly tomorrow, I'll close this issue once it's fixed.
Does the @everyone role id not work for permissions?
I set permissions for the everyone role in a guild for a command with default_permission set as false and from looking at the client's logs I can see the permissions are being returned to the client in the GUILD_APPLICATION_COMMANDS_UPDATE event (payload below) but I am still unable to use the command
{
"application_commands":[
{
"application_id":"764995504526327848",
"default_permission":false,
...
Setting default_permission: false disables the command in DM's as well. I personally like this, but some commands may want to be overridden for DM's. If this can't be done, it should be noted.
Also, it seems like many bots will end up with a /config or similar to set up moderator roles and / or users (maybe buttons when those are a thing). Is there a plan for a system to allow those with MANAGE_SERVER to set these overwrites in the client? E.g. if default_permission: false and someth...
Oh, all the create / edit endpoints also didn't get the additional default-permission param
Description
After sending a public deferred response and deleting it with Delete Original Interaction Response, trying to followup returns Unknown Message.
Steps to Reproduce
- Send a public deferred response (
{ "type": 5 }) - DELETE
/:appid/:interactiontoken/messages/@original - Send a followup
Expected Behavior
The followup message is sent
Current Behavior
the API returns an Unknown Message error when doing the followup
**Client and System Informatio...
Alternatively instead of an option, automatically disable the reply when the follow-ups are directly after the original message with no other messages between them. I do see the benefit of replying if the follow-up is split up from the original message, but if the follow-ups are immediately after the original message it just creates clutter in the chat:

Does the editor has changed now?
YouTube together future, how can I make it with slash commands ?
Seems this endpoint returns more than just an array of ApplicationCommandPermissions from what I can see

@Abu-Maher You don't. It's an experimental feature and you shouldn't be trying to give yourself access to it by any means... Also, the YT/Voice Activities thing has nothing to do with this PR and Slash Commands/Interactions.
Or you could just send an ephemeral response listing valid targets if no target is provided. Might not be ideal, but certainly better than having to thrash discord servers
Can confirm it works with editing a slash command response too, might want to add that.
Also, might want to change it to file?? Not sure if any of the other params are optional
Will attachments be possible with Edit Original Response (when using deferred response to do processing)? Currently, attachments can't be uploaded when editing messages
Are you sure they aren't already? Maybe you should try this out
interesting; looks like its undocumented but you can upload attachments while editing webhook messages and interaction responses, not for normal messages tho
would anyone happen to know if it also works when creating webhook messages...
Is there any update on this issues?
In addition to the mentioned use cases, this would be wonderful to have in bots offering automagic moderation (such as swearword filtering, deleting invite links, โฆ).
From a usability perspective, it would be nice to be able to inform users that and why their content was deleted or changed. However, sending this in chat clutters it more then it's worth; sending DMs for such things has the danger of being missed if the user disabled notifications or has disabled DMs. (Also, getting a DM eve...
The example is wrong, the json should be:
json = {
"permissions": [
{
"id": MODERATOR_ROLE_ID,
"type": 1,
"permission": True
}
]
}
The bulk permission update endpoint (PUT https://discord.com/api/v8/applications/{application.id}/guilds/{guild.id}/commands/permissions) isn't documented in this PR
see up #2737 (review)
Oh, didn't see that as I had files changed open while implementing it, not conversation
@cmsteffey you can use the guild's id??? (how?)
@somebody1234 it's already documented for creating webhook messages so that isn't new; it doesn't work for creating interaction responses though (gotta use deferred + edit original for that)
just paste the guild id into the role option field, same as you can paste any other role id @somebody1234
A few bugs / issues / discrepancies with the new slash command update + permissions that me and others have encountered today:
- Limit of 10 permissions (users + roles combined) per command. This simply isn't enough. For example, in my use case, I have advanced users that might have 3/4 support categories, with a separate support team for each category, with multiple roles and users in each team.
- Obviously users could assign a single staff role to all members. However, this is adding ...
Also in addition a description of the permission should be added so whenever a user is blocked from using a command they will actually have an idea why, because otherwise they will likely be confused and not understand what is going on.
Description
When responding to a slash command with a type 5 response with flags: 64 and then a followup with flags: 0, Discord posts a message with flags: 64
Steps to Reproduce
POST /api/v8/interactions/.../.../callback {'type': 5, 'data': {'flags': 64}}
POST /api/v8/webhooks/.../... {'content': 'Some Content Here', 'flags': 0}
Expected Behavior
Ephemeral 'Is thinking' message followed by normal message with content 'Some Content Here'
**Current Behav...
If you create a message after sending a deferred ack response (type 5) fast (e.g. ack and then send a message 2ms later), the bot is left in the thinking state forever, since Discord seems to process the message before it's fully acknowledged your ack. Note, I am using slash commands over HTTP, not the gateway.
This issue should only occur very rarely if you implemented everything correctly and are using type 5 only when it's actually needed. You also can't get cloudflare banned for 404 ...
Description
TLDR: A security method preventing multiple connections to the bot.
A new option would be added onto the bot menu, 'Double Log-in', where if two or more (or a custom) amount of connections to one bot token is reached, it prevents any connection to the token unless fixed.
Essentially, lets say a token is 'veryrealtoken01'. A guy living in California uses this token. Suddenly, a guy living in Texas uses the same token. Both connections immediately shut off and requ...
You can't really limit bots to one connection because of sharding. Just secure your token properly.
- Many users reporting crashes when using / seeing slash commands on iOS, claiming to have latest app version. Can't verify since I don't own an iPhone.
This is because the update isn't actually showing in the app store unless you search for it yourself. The devs are aware. If their changelog version shows 63.0, sometimes they'll crash and sometimes it'll be blank messages. They need to be on 65.0 or later.
Night has already said this is a wontfix, however, this leaves the response type 5 in a completely broken state. You have 2 choices:
You may have misread something somewhere. Nowhere did I or anyone else state it as a wontfix. It is a bug in our backwards compatible logic, and I suggested an alternative as a quick fix.
@ everyone in webhooks. Now that the scope migration has gone ahead, I'm sure many bots will add /say commands without using allowed_mentions. Enough said.
I just had this get abused in my server, pinged 110k people :/
slash commands or not, bots should be using allowed_mentions when sending any user input... it's disappointing that big bots aren't doing this
also I added a warning box in the slash commands page specifically for this
slash commands or not, bots should be using allowed_mentions when sending any user input... it's disappointing that big bots aren't doing this
The allowed_mentions system is relatively new and things like this weren't always the case -- previously we'd resort to escaping the text. However, in the older bot system this wasn't as big of a problem because the server administrator had control over the permissions of the bot. This means they can turn off the everyone pinging permission for ...
- if your token gets compromised, that probably means all of discord is compromised
- it's too long to be guessed within, like, a million years
- so the only way it'd be leaked is if you accidentally leak it yourself by, say, accidentally sharing a file containing the token, or a repo which previously held the token
@UltimateSppy765 no, but you could auto-complete every other color of course, making an option with choices much less necessary.
With the new way that discord renders commands, this problem appears to have resurfaced.
Node.js / discord.js code to reproduce (need to define interaction.id and interaction.token, I used client.ws.on('INTERACTION_CREATE', interaction => { ... code here ... })
var body = Buffer.from(JSON.stringify({ type: 4, data: { content: '@everyone', allowed_mentions: { parse: [] } } }));
var req = require('https').request({
hostname: 'discord.com',
path: `/api/v8/interactions/$...
[discord/discord-api-docs] New comment on issue #2738: Unable to remove applications\.commands scope
From the testing I've just done, this is now fixed/working properly.
There was a regression in validation logic which was deployed around 5pm PT that caused allowed_mentions to no longer be respected. We're deploying a fix for this behavior, and it should be hour within the next hour.
slash commands or not, bots should be using allowed_mentions when sending any user input... it's disappointing that big bots aren't doing this
also I added a warning box in the slash commands page specifically for this
Well Dank Memer apparently was using allowed_mentions but due to an issue on Discord's end.. it wasn't respected causing the bug to be exploited in multiple servers.
[Night's Announcement](#api-announcements message...
It is fixed for the servers I'm in.
There was a regression in validation logic which was deployed around 5pm PT that caused allowed_mentions to no longer be respected. We're deploying a fix for this behavior, and it should be out within the next hour.
It would probably also be appropriate to publish a support article regarding this, since quite a few large bots were affected by this and this was also done when [music bots were unable to play music from certain sources](https://support.discord.com/hc/fr/articles/36003501035...
it's been fully deployed.
What server is this? I'd want to join to see future updates.
it's been fully deployed.
What server is this? I'd want to join to see future updates.
one thing to consider is that unless you heavily nest commands, in any moderation focused server the moderation commands will take up way more (screen) space than the non-moderation ones, making it extremely difficult to find a usable command for the vast majority of users.
of course, this isn't an issue with most bots, however quite a lot of general purpose bots do exist, and i believe it'd be a blocker for them to switch to slash commands.
re: not supporting setting it by discord perm...
Night has already said this is a wontfix, however, this leaves the response type 5 in a completely broken state. You have 2 choices:
You may have misread something somewhere. Nowhere did I or anyone else state it as a wontfix. It is a bug in our backwards compatible logic, and I suggested an alternative as a quick fix.
๐ Good to know, assumed it was a wontfix due to the backwards compatible bit.
slash commands or not, bots should be using allowed_mentions when sending any u...
I just discovered this implementation of bot commands via slash and it is very interesting but in the case of my bot, it bases some user commands on a level system and the levels are identifiable within Discord by roles. Likewise my moderation commands are linked to a role rather than a permission.
According to me (and because it suits me ^^"), it would be to link the command with one or more roles (either the id of the role, or by the name)
This appears to still be an issue with ephemeral messages when you try to edit it with an embed.
it's been fully deployed.
Not so sure about that, tried it in a server about 2 hours ago and it pinged everyone
These fields should be marked as optional
In https://discord.com/developers/docs/topics/opcodes-and-status-codes JSON error code 30016 states that the maximum amount of invites for one guild is 1000, this is outdated. Guilds can have much more than that now. Shown below is a guild with more than 5000 invites.

We Should Have to know whether a user has nitro or not if a normal user can see it why not bots?
Will the related dispatch events, like: APPLICATION_COMMAND_PERMISSIONS_UPDATE, and error codes, like: 10066 Unknown application command permissions documented with this PR?
Description
Fetching the users for a message's reactions returns an empty list if the emoji is a custom emoji. Fetching users for a reaction with a custom emoji works properly.
Steps to Reproduce
Route: "GET", "/channels/733139375835185264/messages/826296722849792050/reactions/noumenon:796877374099947550"
Expected Behavior
Expected returned response:
[{'id': '462364255128256513', 'username': 'PhenoM4n4n', 'avatar': 'c50f161f797b18e4e040265698637b55', 'di...
I can reproduce this with the desktop client, no reaction users loaded and there is an error printed onto the console.
Attempting to add to a custom reaction by pressing on it also returns error code 50013 if you do not have permissions to add new reaction in that channel.
I can reproduce this on Ubuntu Linux with discord.py 1.6 as well.
While I can understand that roles are meant to group permissions, I can't think of any friendly/scalable way to link specific commands with specific roles or users for every guild a bot is in. Being able to link commands to specific permission ints would be way more useful and intuitive. It also isn't a bad idea to consider supporting both.
I really, really think linking commands to permissions is way too restrictive.
Note that it'd fall upon the server owners/moderators to manage the roles that are allowed to use certain commands, and unless you have 100 moderation roles or 100 moderation commands, it won't take long to set up the commands for every role from scratch.
Would it be possible for a webhook to reply to it's own messages?
As somebody1234 says, the best solution will be the roles. When I looked for bots for my server before making mine, many bots were based on the name of a role, a room or a user etc... and very few were on a permission. Basically, it was the rule of : If you install my bot, you abide by my naming requirements.
When it comes to customizable commands with an administration interface to manage them, the problem is less because the id of a role is reusable when the command is created.
I thin...
When I looked for bots for my server before making mine, many bots were based on the name of a role, a room or a user etc... and very few were on a permission. Basically, it was the rule of : If you install my bot, you abide by my naming requirements.
I have never come across a bot like this in all of my years in discord. Every moderation/multi-purpose bot I can think of goes off of permissions.
Note that moderation bots go off of permissions because there is currently no interface in Discord.
I strongly believe that setting slash commands by role is the objectively correct way to go, since they are pretty much just custom permissions.
sounds like you guys might not be aware that there is already support for setting command permissions by user/role: #2737
however imo setting permissions by Discord permissions is much more user friendly and needed, I'm not sure if I'll integrate the current permission system but I'd definitely use permission-based permissions (currently I just check permissions in the code like for message-based commands)
Note that you can simulate setting permissions by Discord permissions by adding a role for each permission. You cannot do the converse (simulating setting permissions by role if you can only set permissions based on Discord permissions).
Again, as I've said above it should not take much time at all to enable commands based on roles, no? The only issue is with older servers with a lot of roles, and even then you only need to do it once (the single time being now, when slash commands have j...
Surely it doesn't need to be one or the other? Both approaches have their valid uses - roles and user overrides are more flexible, but discord permissions are more generic and easy to use. Conversely, role and user overrides are difficult - if not impossible - to implement at a global scope, and discord permissions may be too limited (or too broad).
The best of both worlds (and something that would be incredibly useful for future interaction types) would be a way to define and use our own ...
That's like saying using roles to grant permissions is a hack...
Simulating Discord permissions does not work in the general case; only 10 overrides are allowed at most.
Also, keeping this in sync whenever you start up would take tens of thousands of requests even for relatively modestly sized bots. Introducing a single new command would require millions of requests, which even at a higher global rate limit would still take hours.
Keeping this in sync
I do not believe this is needed whatsoever; the idea here is that the responsibility falls on the server owners, therefore you would make exactly zero requests to keep this in sync (since the bot would then not manage permissions whatsoever)
I think that slash command permissions should be as open and flexible (for developers) as possible.
A few things I would like to see
Permissions based on user permissions
An option for permissions for all guilds for that command, ideally in the command object when registering the command. This would support both user permissions and user ids
User ids because there might be some commands you want to enable for certain users regardless of guild. eg dev only commands
A bulk permissions ...
Okay I think it's important to differentiate between public and private Discord bots in this conversation.
For private bots is makes sense to have commands tied to roles or users since the bot owner can easily modify those on demand. This is already possible as mentioned by advaith1.
For public bots this is not really practical. There is a reason global slash commands exist and maintaining guild slash commands for every guild is just unreasonable and not practical.
So what I think would ...
For public bots this is not really practical.
I still strongly believe this is not true. As I have said multiple times, this is because it would be the server owner's/mods' responsibility, not the bot owner's, to select the roles that can use certain commands.
all moderation roles required someone to go through and enable each individual permission in the first place
Yes, that's usually the case. But don't forget that many inexperienced Discord users get started using server templates and don't actually set this up themselves. Now picture those people adding a bot, would you really think they would figure out why they can't access a command?
it should not be much more effort to configure the additional permissions that a moderation bot woul...
An in app way of admins controlling commands is great, however i think that it could very easily become confusing / hard to navigate. (Worst case scenario 500 commands iirc). A parameter for allowing a command to be controlled by admins, and permission grouping would help with that, it should also allow devs to completely disable commands (meaning server admins can't enable them and see them).
For public bots this is not really practical.
I disagree, depending on rate limits, this would o...
TL;DR my point: I feel like for the vast majority of cases, the commands you're offering will not have a 1:1 correspondence with existing Discord permissions; at most the bot should enable certain commands based on permissions when it first joins.
Now picture those people adding a bot, would you really think they would figure out why they can't access a command?
Trivially solved by sending the admins/mods a message on join; a large number of bots have on-join messages (for every user)...
@AnotherZane Some bots might not be using allowed_mentions, which is what causes them to ping everyone
If this were to be implemented, it would be nice if there was a "stop receiving notifications from this bot" or "stop receiving permissions related notifications from this bot".
Perhaps we could get an interaction token whenever we delete a message ourselves. Or perhaps being able to send permissions requests to any user who is able to grant the permissions we're looking for without any "interaction"
Leaving the previous ideas aside for a moment, I'd like to expand a bit on what I mean by custom permissions now that I'm at a proper keyboard.
Generally speaking, the goal of this feature request is to allow creators of slash commands to efficiently hide, block, or otherwise make unavailable certain commands from certain subsets of users - a typical permission functionality. What I believe would be the best way of solving this in the general case is the introduction of distinct, user-crea...
@AnotherZane Some bots might not be using
allowed_mentions, which is what causes them to ping everyone
Was a friend's bot, it was using allowed mentions. And even if it wasn't using it, according to the announcement made in discord developers, only user mentions are now parsed by default for slash commands so it shouldn't have pinged everyone.
Since nobody else has said anything yet, I might as well, I guess (re: the unresolved issues)
How do builtin Discord permissions fit into this?
I think it'd be fine given that this would move visibility completely to permissions rather than individual slash commands. (As others have mentioned, this is especially useful for moderation commands, especially the ones that 1:1 correspond to Discord permissions, e.g. ban/kick-related commands.)
Should permissions be able to depend on t...
Question because the guild owner gets weird things (like access to all channels iirc, etc.): does this impact guild owners too?
Should this also be a python snippet like the following snippet? (for consistency.)
How am I supposed to correlate the permissions and the command they belong to with this route? (if it really does only return an array of ApplicationCommandPermissions, which it might not... I didn't check.)
MODERATOR_ROLE_ID = "<moderator_role_id>"
Matches the following line of code by not mentioning a specific ID.
Should this be a 0 and 1 for just general consistency (see: channel overrides/overwrites/whatever they are called.)
Description
This proposal suggests the ability to upload one, or potentially more, images as arguments for slash commands
Why This is Needed
Many bots take images and attachments as arguments in their commands, however slash commands cannot, meaning the user would have to link them. as a result many bots would not be able to change over to slash commands due to this
Alternatives Considered
alterntives are:
- requesting an image posted after the slash comma...
i want to make a bot that spams my friend, pls help
@msciotti @advaith1 pls help
i want a bot to say welcome to a new people in my server
If default_permission is false, guild owners do not have access to the command
Description
It seems the most recent incident with reactions have broken some messages. Users are unable to see the reaction on a message (including myself) and when I react with the emoji that used to be there, I can see the users that had reacted before the incident but the reaction does not persist. If I open the same channel in the browser version or reload the client, I can't see the reaction anymore
Steps to Reproduce
I personally only have one message where reactions are b...
What if someone is an admin on a server and doesn't want to see slash commands? (cause autocomplete is messed up)
Permissions are ignored for admins so this wouldn't work.
Maybe a switch in client settings to disable autocomplete and slash commands UI?
If nothing else, maybe have a way for developers to request an increased upload limit. Maybe you could try emailing discord support for it to be raised for you specifically?
Well that just sounds like special privileges... I don't think Discord wants to manage custom rate limits for individual bots either...
Adding a bit here. In my testing yesterday with this bug while testing to see if it's connected to the long-running bug that affects at least large guilds spread across multiple nodes, it would appear the client renders reactions on a message in some way attached to the reaction's name. After the outage yesterday, many current reactions lost their names, thus when you add an additional reaction to a message, the client hits the reaction endpoint directly, and renders all reactions on the mess...
ApplicationCommand.id == ApplicationCommandPermissions.id.
If an application command has no permission overwrites set in the guild, then the array wont contain an ApplicationCommandPermissions object for it.
9aacfd9 Document request to speak timestamp. - tpcstld
Summary
This PR adds documentation for stage channels. Go wild!
Please note that this feature is still under active development (even though it is launched), and thus there is higher than normal risk of things possibly changing. Nevertheless, we are confident that everything documented in this PR should be "pretty stable", with the exception of the REQUEST_TO_SPEAK permission, which we may (but there is no current plan) remove for alternative options of selective gating.
I'm not too happy with how I effectively listed a bunch of product behaviour here and below. Things that are mostly in flux too and probably improved in the future. Perhaps I should move this to another section/page? Not sure how we do things in other sections.
[discord/discord-api-docs] New comment on pull request #2751: API Documentation for Stage Channels\.
Nice, would love to see this.
We chose to not set request_to_speak_timestamp, so that bots would effectively "auto speak" when they were invited. The advantage is that most bots (once they are able to join the stage channel), wouldn't have to do anything to support going "onto the stage".
The disadvantage is that maybe there is some unique usecase where a bot would like to accept when they got voluntold up to the stage. But we haven't been able to come up with anything substainally useful. Please note that bots are...
8c2acf1 Separate stage from voice permission - tpcstld
ea75205 remove "V" from MANAGE_WEBHOOKS channel type (#... - DaStormer
7e408c0 Document Interaction.application_id (#2741) - FasterSpeeding
d028747 Application.verify_key is hex encoded, not base... - FasterSpeeding
6d3aaef Document application commands PUT endpoint (#2713) - typpo
This is very annoying to deal with. Guilds that have roles such as Muted or similar don't need, and don't want, these permissions enabled on every role. The muted role in one of my servers has permissions such as "Video" or "Use Slash Commands" enabled for absolutely no reason and discord also has made no effort to communicate to me, as a server moderator/owner, that this has occurred.
There is also no practical use in enabling permissions on every role. The everyone role of a guild is e...
not sure if type 22 is type 0 or 22 in API v6 though, so didn't edit that warn box
Thanks for your feedback, but this may not be the right place for this. Permission rollouts are not related to Discord's API outside of documentation. Core product feedback is better posted over on Discord's feedback site.
@night that site doesn't let me log in since 2016.
Seems to be fixed now, thanks! I've moved my feedback post here: https://support.discord.com/hc/en-us/community/posts/1500000659082-The-handling-of-new-permissions-is-counter-productive-inconvenient-and-unintuitive-
stage channels dont have video.
they still have the property and the setting in the client

{
id: '826946920634253362',
type: 13,
name: 'stage-mode',
position: 1,
parent_id: null,
topic: null,
bitrate: 40000,
user_limit: 1000,
rtc_region: null,
video_quality_mode: 2,
guild_id: '252296452708106240',
permission_overwrites: [],
nsfw: false
}
A video showing me adding a different reaction, reloading the client and seeing both the reaction I just added and the original reaction appearing but once I remove the new reaction and reload the old one is gone too:
https://user-images.githubusercontent.com/29981918/113143182-c3b71b80-9223-11eb-8856-65e0cff40311.mp4
@GamingGeek This is super interesting. Could you show me what the message payload looks like after you add the extra emoji?
I also noticed that (as the comment above st...
Could you show me what the message payload looks like after you add the extra emoji?
https://h.inv.wtf/apagexoqew.json
A potential fix for the ghost reactions is to remove a reaction (as a single user) and add it back. This should fix the msg.reaction which tells our services to fetch counts
This seems to have worked, thank you @lytefast :D
After the outage yesterday, many current reactions lost their names, thus when you add an additional reaction to a message, the client hits the reaction endpoint directly, and renders all reactions on the message, but leaves the broken reaction with a name of
:null:. Re-adding the broken reaction after adding an additional one seems to correct the null name and count bug, but once you re-add the reaction, it must stay there to properly restore the name, leading me to assume it's only rend...
That's a client bug. Let's not propagate that to the docs too.
Description
Slash command interactions that take place in a guild can be received by a gateway event, whether that command is guild-scoped or global. However, if a user uses a (global) slash command in a DM with a bot, that interaction is only sent via outgoing webhook (specifically, the ["Interactions Endpoint URL"](https://user-images.githubusercontent.com/1214564/113235213-89677180-9257-11eb-8cbb-3b0efe711a4b...
can't reproduce, I can use my bot's slash commands in DMs and it doesn't have an endpoint URL set, it only receives over gateway
I'm using Discord.js (and hijacking their websocket connection). This may be something wonky with d,js internals. What are you using for your bot?
Hm. I'll close this for now and dig in a little deeper.
This causes 32-bit int overflow. Even unsigned.
Description
The current table of listed Guild features is a bit messy because the features are in a seemingly random order in the table.
It would be beneficial to have the entries listed in alphabetical order.
Why This is Needed
Better readability. Instead of constantly looking through the table to find feature X in it can you look at where it should be according to the alphabetical ordering, which in the end helps finding the feature much faster.
**Alternatives Considere...
And also to eventually sync the emoji types too so yeah
which is why they are sent as strings, you should parse them with your language's BigInt (or similar) functionality, or a library for it. permissions should be stored as bigints, read the docs: https://discord.com/developers/docs/topics/permissions
[discord/discord-api-docs] New comment on pull request #2692: Document rtc\_region on voice channels
yeah people often seem to ask why its null so would be good to clarify that
also probably should mark guild.region as deprecated? since afaik it isn't used anymore, and isn't shown in the client anymore
Probably want to document this as a field on the Modify Channel endpoint as well
| rtc_region? | ?string | [voice region](#DOCS_RESOURCES_VOICE/voice-region-object) id for the voice or stage channel, automatic when set to null |
| rtc_region | ?string | channel [voice region](#DOCS_RESOURCES_VOICE/voice-region-object) id, automatic when set to null | Voice, Stage |
Is it just for me but when the command doesn't have any permissions set it errors 404?
I'm using GET with specificed application command
Information regarding Announcement Channels are wrong.
[discord/discord-api-docs] New comment on pull request #2751: API Documentation for Stage Channels\.
Users with the MANAGE_CHANNELS permission are able to bypass the user limit on voice channels - does this also apply to stage channels?
Is it just for me but when the command doesn't have any permissions set it errors 404?
I'm using GET with specificed application command
It is not only for you. Try checking whether you get error code is 10066 or other one.
I need to admit, an empty payload for this case would be more intuitive.
[discord/discord-api-docs] New comment on pull request #2751: API Documentation for Stage Channels\.
Users with the
MANAGE_CHANNELSpermission are able to bypass the user limit on voice channels - does this also apply to stage channels?
I think the permission is MOVE_MEMBERS actually. Nevertheless, yes, this bypass works right now, but this is more of an implementation detail and may change in the future.
Description
If interaction responses and it fails (in my case 400) UI shows Sending command... forever.
Steps to Reproduce
Data:
{
-- content = "", We are missing this to invoke the error
embeds = {
{
title = "Test Command",
description = "This message is private. You sent: "
}
},
flags = 64
}
Type: ChannelMessageWithSource
Expected Behavior
This interaction failed
Current Behavior
Stuck at Sending command...
...
Just want to note that flag 64 (ephemeral) responses are not supported with embeds in case you didn't know. My guess for the problem is that it doesn't fail since you did respond correctly, but it wasn't actually able to send the message.
Yeah embeds are not working I see, but the error is still freezing the UI
I guess it's not classified as library?
[discord/discord-api-docs] New comment on issue #2340: Allow slash commands to use external emojis\.
this will be fixed in the next api deploy
Wowowow thanks ๐
I guess it's not classified as library?
This is more of a framework than a library (although they are mostly interchangeable). The community resources listed here are generally agnostic of each other/have their own unique implementations.
Is there any way to edit/delete the original message if it's ephemeral?
I can PATCH and DELETE at the /@original endpoint just find if I don't set flags, but if I set "flags": 64 on the InteractionApplicationCommandCallbackData then trying to talk to /@original gives me a 404.
This is a duplicate of #788
I see a reaction to my previous message, so I'll try to explain my reaction, and will leave this thread since I've picked another solution to my problem:
- The original feature request for this is https://github.com/discord/discord-api-docs/issues/448. It was raised in 2017 and closed for comments (limited to collaborators only. It's not possible to ask questions about the feature status in this thread
- I've created a new issue to ask about this, which has been closed as duplicate and ...
Hi, thanks so much for bringing this up. We agree that NSFW commands should be handled and properly filtered for users. This is on our shortlist.
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
Is there any way to edit/delete the original message if it's ephemeral?
I can PATCH and DELETE at the
/@originalendpoint just find if I don't set flags, but if I set"flags": 64on the InteractionApplicationCommandCallbackData then trying to talk to/@originalgives me a 404.
Ephemeral messages are not stored so the API does not know it exists once the message is sent, hence the 404
why was this closed? it should still be in the interactions section; there are discord.py specific slash command libs listed there too
It was an active conversation that was making progress. There was no reason for it to be closed.
If I didn't close I doubt someone would notice.
https://github.com/discord/discord-api-docs/pull/2513 merged in the same day
Looks like this has been taken care of :)
I appreciate the effort put in here, as proofreading these docs is no easy task. Unfortunately, large PRs that focus on rewording docs are a maintainer's nightmare because they are difficult to review, contain many subjective changes, and fall out of date. In cases like these, smaller or more focused PRs are better. It is with a heavy heart that I must close this PR because I do not think it will realistically be merged anytime soon.
Thank you but I think the image paths are ok
c20dd79 Changed announcment channels requirements. (#2267) - webtax-gh
efe4e58 Remove the create, modify and sync guild integr... - FasterSpeeding
just merged a similar pr
9d589cd Document flags on followups and the ephemeral f... - advaith1

