pretty sure context menus will be useful in this situation
#github-notifications
1 messages ยท Page 30 of 1
Discord is working on context menus (basically commands you can run on a user or message) that can solve some of these problems; something similar has also been suggested here.
So I recently discovered that a patch request with a user token could be used to change a bots about me, I have not tried this yet but merely observed it. I was just wondering if there is an api route for changing the description that used a bot token instead. Also if you could get a users about me with the users endpoint.
But not many people use it till now right?
lol, this was fixed by #3195 but thanks for pointing out there's another broken link there (the interaction-type one should be interaction-request-type) which is now fixed in that PR as well
This can also serve as a temporary workaround for disabling in dms only, though not ideal.
Hello There! I'm Developing a Bot With Select Menu and I Found out That it is Impossible to Disable a Menu Option, That Would Be Useful to Indicate that The Max Level of Something is reached and Other Stuff, The Same Way as Disabling a Button("disabled": True), It Would Be Confusing That Nothing Happens On a Click or The Option Randomly Disappears for an User.
But not many people use it till now right?
The goal of this submission is to help with discoverability now that the codebase supports a good api surface area.
Our plan is to use forms for this - selects won't become persistent. You can use ephemeral messages with default values to somewhat achieve this today, though
Our plan is to use forms for this - selects won't become persistent. You can use ephemeral messages with default values to somewhat achieve this today, though
Discord is working on context menus (basically commands you can run on a user or message) that can solve some of these problems; something similar has also been suggested here.
That's good to hear.
I did a search before posting this to see if anyone had made a similar proposal, but nothing came up.
Have context menus been discussed somewhere? I hadn't heard of them until now.
They are in a private beta atm
They're still in private beta โ I suspect Discord will share more soon. There was some information on them in the bot proposal blog I believe.
Thanks for the information. ๐
a bot cannot change it's application's description, only it's owner can (and you should be doing it in the dev portal, not with a manual request)
user bios won't be exposed to bots, see #3095
Add banner and accent_color fields to the message author object, currently it's only available when you fetch the user from the API.
This is a necessity for slash commands. There are so many commands that require time input. Giveaways? Temp-mutes? Temp-bans? Temporary roles? I don't like the idea of passing dates as a string type, that's way too arbitrary and will probably result in users getting confused or mistyping something, or the bots setting the wrong timezones for the users.
It would be better IMO to expose a limited version of the /users/:user_id/profile endpoint โ it makes caching logic much simpler for libraries and prevents Discord from putting in the work to request data a bot doesn't use.
We'll be increasing labels and descriptions to 100 characters shortly
We'll be increasing labels and descriptions to 100 characters shortly
When a lot of bots delete messages they need to inform users why their messages was deleted (so they know their message contained a blocked word, or why it broke the rules). I think it be useful add an object in the delete message endpoint called show_user_auditlog_reason, when the property is true an ephemeral message will be sent in the channel the message was deleted from containing the X-Audit-Log-Reason for the deletion, and the text of the deleted message. This would also force the ...
Hey all, an update on plans for the API. We've reviewed a lot of your survey responses and messages in DDevs #message-intent. We appreciate your candid feedback and want to offer a peek into more interactions improvements the team is working on.
Developer improvements
- [ ] New option types
- [x] Floating-point number
- [ ] Attachment
- [ ] Autocomplete - choices populated dynamically by the applicaiton
- [ ] Multi-line command text input
- [ ] Age-gated commands - a way to...
Ian we literally opened GitHub Discussions for posts like this
Hey all, an update on plans for the API. We've reviewed a lot of your survey responses and messages in DDevs #message-intent. We appreciate your candid feedback and want to offer a peek into more interactions improvements the team is working on.
Developer improvements
- [ ] New option types
- [x] Floating-point number
- [ ] Attachment
- [ ] Autocomplete - choices populated dynamically by the applicaiton
- [ ] Multi-line command text input
- [ ] Age-gated commands - a way to...
Great to hear, as always โค๏ธ๐ฅ
Age-gated commands seems pretty useful for... specific use cases lol. Glad to see these improvements being made
Description
If bot can have localized text, it'll be good.
Register texts
From developers portal, like this:

How to show
Like timestamp format:
Example
(When texts are registered like image above)
-> `MyBot help` -> 1d 2h 3m
Why is this needed
Many bot has language settings, but some users cannot find another language (ex: Defau...
How about an option to allow a user to submit multiple inputs (such as choices for a poll command). This would be better than having a whole bunch of options to add them or parsing a string.
Also a text input interaction would be handy. This would allow you to have users respond to something on the request of the bot without re-running a command or using the intent.
Alright so we can apply for intents if we NSFW commands right?
you can apply for intents, but what does that have to do with NSFW commands?
Adding on to this, I think it would be cool for bots to be able to send ephemeral messages in any scenario.
Imo the one thing that needs to be looked into is being able to delete ephemeral messages.
Since interactions last only 15 minutes, couldn't Discord store ephemeral messages for 15 minutes then delete it from the system? that would be better than the current system. (unless there is some infrastructure issues with doing that)
Select Menus can have emojis to represent each item which helps, but they're static. You could upload an emoji to a guild the moment you need it, but rate limiting happens and it's not the most efficient way of handing things. Allowing the use of images would prevent the need to do that and allow bots to have any image they want.
Example Usage
(This is the thing that brought up this request haha)
If I were searching a iOS tweaks catalog, I could use the same wrench emoji over an...
It would be really nice for our use-case to be able to receive a slash command and not need to reply to it. Our bot currently deletes and re-sends user messages with a webhook, and this creates a lot of message deletes.
Being able to receive messages through an interaction and re-send them without having to delete the original message would be a big improvement over what we currently do; however, right now we would have to send an ephemeral message to the user, or have the client show them...
Allowing developers to specify a regex and maybe even a character length for the string option which can be used for client side and api side validation would be quite useful.
As for user experience, a 'replay' button for slash commands they send would be quite nice, essentially just resending the command with the exact same arguments.
Regex has been denied already due to concerns over malicious expressions freezing clients - see #2609.
It would be nice to also have what has been seen and denied and why, so that we know it's not going to happen.
I do understand if this can't be done because it may be massive
Well at least a character length would be nice then.
re: character length, #3568 is related
With text-based commands, an user can copy paste a message to run the exact same command again. This should also be possible to do with slash commands, though I'm not sure how it would be implemented.
Maybe just a right click > rerun command?
Or add it to the 3 dots on a message "Copy Command" like there is for message urls
I would assume this is based off https://github.com/discord/discord-api-docs/discussions/3540 as well?
I'm really pleased to see that a lot of concerns from this discussion have been identified or at least match what appears on the list. There are a few bits which are missing however these are of no suprise, such as pattern matched content, the scope issues and the 100 server limit.
Hopefully we'll be able to get these into the conversation at the live event this evening, especially the...
Why not both? It would be nice to be able to both copy the command (to run elsewhere) and reexecute it in the current place
It would be nice to see this reconsidered by means of an alternative if Regex is not considered safe
New options types ideas
For reminders and other calendar event, ban durations,...
-
[ ] Dates
-
[ ] Datetimes
-
[ ] Durations
-
[ ] Flags, maybe with values? (optional booleans to modify a command behaviour, think
/ban @user --purge --no-log --send-reason)
Top 3 seem good however I think the bottom one might be better as just one argument whch contains a list of flags as choices, and that argument can be specified multiple times, such as /ban user:@user modifier:purge modifier:nolog modifier:sendreason. This fixes two problems with one: Additional modifier flags, and multiuse arguments.
Basing that argname:argvalue layout on how Discord formats commands on clients, I only know this because people have managed to execute commands and it f...
Could there be a good way to reference a message within commands? Could be good use for messages that need to be recorded or used in reference to an action.
Another more shot-in-the-dark request is to reference stickers as an option. ยฏ\_(ใ)_/ยฏ
This would make it a lot easier for the Developers and the users.
There is even a Button called "Copy Command" on Discord Mobile (Beta).
One thing that definitely needs to be improved is slash commands in dms, cause of how channel selection is for example (ie listing literally every channel in every guild the user has access to in no specific order), they just don't work well and fail most of the time. Would be a good idea for developers to be able to specify if commands are 'dm only' or 'guild only'.
The main idea of flags is the ability to send them in any order, but yeah, could very well be modifier: instead of --
Description
I would like to continue the discussion in #2723 and request a standardization of what Unicode Emojis the API accepts as valid.
Why This is Needed
After looking at what Discord uses internally in the client (thanks to @Emzi0767's extraction of the internal list) they all seem to use Variation Sector 16. This differentiates them from Twemoji, which is where Discord seems to get all the emoji ...
Bash-like regex with no backtracking would cover most of use cases
you can apply for intents, but what does that have to do with NSFW commands?
Because you can send nsfw content in
Or add it to the 3 dots on a message "Copy Command" like there is for message urls

Apart from my suggestion about Inline Selects, here are a list of unplanned components which might improve the user experience:
1. Sliders
2. Sticker Buttons
3. Timers/Counters
4. Progressbars
Feel free to comment on the plausibility of these and if you have anything to add to the list.
Please a way to gate command visibility to certain users, roles, channels etc
Example:
Currently, any user can see mod commands when they hit slash. Not good UX wise :).
Example Two:
Only show restart and eval commands to me
Example Three:
Some commands only visible in #bot-spam
Four:
Only people with the role id 12345689 (role called regular) can use x command
Also, I think it would be cool to have "variable" argument visibility so we can show and hide arguments as they are filled in (but this should be low on the priority list, after all we have optional args!
IE:
if command.args.firstname = "evan":
command.showarg.lastname
else:
// do nothing
the server doesn't use default_auto_archive_duration, that's something clients send us, so I'm pretty sure the field is still required, and if it's optional then it'd just default to 24hrs
the server doesn't use default_auto_archive_duration, that's something clients send us, so I'm pretty sure the field is still required, and if it's optional then it'd just default to 24hrs
I tested this before opening a PR and omitting the auto_archive_duration parameter does default to 24h, regardless of the channel's default_auto_archive_duration. I believe this is a bug with the API, however, the field can still be omitted and form a valid request.
Some way of responding to a slash command with an "acknowledgement" type would be good. This could show in the Discord client some form of green checkmark.
I think the message content intent is too much
When creating stickers using my bot I noticed that it's no longer possible to create Lottie stickers in servers that aren't verified or partnered. I've also cross checked this in my Discord client via the server settings of a verified server, where I'm staff in, and asked a friend who is staff in a partnered server, with both servers having access to Lottie stickers, whilst normal servers not having access to them.
This PR adds a small note to document this behavior since this could cause co...
Thanks for taking the time to listen to the community to improve!
Then, it would not be ephemeral anymore, it would be limited-retention.
Are there any plans to add support for repeatable arguments? For example, a massban command that allows you to specify as many users as you want wouldn't be possible right now, you'd have to enter the command over and over.
Slash commands need some way to set cooldowns on them. Ideally something flexible for the variety of use cases bot developers have.
bot developers can always configure their own ratelimiting system
But a in-bot made slowmide system will require the bot to listen to the interaction/message and answer it to tell the user that there is a slowmode on whatever command he is using.
If there is a slowmode on slash commands, like channels message slowmode it won't require the bot to send any messages, the user just won't be able to send the interaction command.
And for a certain permissions too, like if we don't have the MANAGE_GUILD permissions we won't be able to see meditation commands etc...
bot developers can always configure their own ratelimiting system
This is true, but it's rather limited. You're forced to either reply to every single command spammed command, or let the interaction fail. There's no clean way to ignore it. Plus, this would allow client-side enforcement of cooldowns which would be very helpful, especially for some users who don't realize they are on cooldown.
I love the idea of flags, could be very helpful for custom commands creation or user created embed etc... ๐
Iโve already moved to slash commands and thereโs a major issue Iโve been facing recently with optional parameters. I have a command with 2 optional parameters and nothing else and, since theyโre both optional, people paste what they want after the command without associating it with any of the parameters which doesnโt get sent to my bot. Could you replicate the behavior of mandatory options where pressing space brings up the first argument in the list?
Also, it's worth noting that slash commands are VERY spammable right now. They bypass things like channel slowmodes.
I believe this falls under the improved UX they are working on. This "needs-tab" behavior is something I specifically [asked in DDevs](#intents message) before and Ian (2) said was being worked on.

it seems like List Active Threads in resources/channel is deprecated.
The note also indicates the endpoint should be List Active Guild Threads. Perhaps the suggestion @Lulalaby provided should take into place.
This PR adds documentation for guild stage events HTTP methods.
I will mark this as a draft as it will likely need approval of continuing further.
Not sure if your question on DDevs covers this exact scenario but Iโll be on the lookout for that, thank you for letting me know!
I'm getting the error 401 Unauthorized.
I'm using php. I'm not able to identify the issue, whether it's my code or permission issue on the account.
Could you let me know where I'm going wrong, and how to solve it?
Read https://discord.dev/reference#authentication, it has information on how to authenticate using the REST API.
It's like how we have unix timestamp styling like ``, but for slash commands. It could either run the slash command when clicked or suggest the slash command by typing it on the chatbox.
This can be used in stuff like help menus for more accessibility and less time typing the correct slash command
There should be stuff for global chat to be practically instant in app(without any speacil buttons), or to give the message intent.
Related to this: a question that was asked in the live Q&A was how do two bots with similar commands resolve which slash command is being run? The answer in the moment was "you choose the bot you're using while you type the command", but there needs to be a way to copy paste a command where it also copies which bot you want to use, whether that's for your own use or for "giving" command usage to someone else for them to paste and run it.
Can you give a guarantee here that those changes will be available BEFORE the restrictions happen?
I don't want to have hope only to get disappointed... again.
Like if you manage to add the important stuff (age-gated commands, multi-line support and managing slash commands more properly) before 6 months are left will I be willing to say you did a good job here... Otherwise... no.
You could just have 'reason' be a string and look for flags yourself..?
It would be cool if you could reply to a message with slash but im not holding my breath on that coming
I thought this one of the changes..? Unless im dumb, I figured this was kinda obvious
I feel like having to follow the channel slowmode should be at the least a must have. Besides, a cooldown in Discords UI for slash would be much more user friendly
I would suggest the use-case is logging in a means that isn't "terrible to look at" (my staff team's words, not mine) when reviewing a chain of logs. Not all of us are comfortable or find ease reviewing a thousand embeds at a time. It's wasted "real-estate" in the sense of screen space. As a compact-mode user, I (and most of the moderation teams I work with) find it much easier to scan through a few hundred logs at a time in our large guild for content that needs action, rather than scrolling...
will it ever be possible for one application to see what commands a user runs for a different application? right now, if i run commands on one bot in my server, I can have my own bot see that I ran a command and perform some actions related to that. I don't need the bot to support whatever I'm doing with it; I also don't need to hack my client to locally tell my bot what commands I'm running. Is such a workflow at all being considered in respect to slash commands?
Seems like a duplicate of #3288
Any update on this?
This will be especially significant in light of the upcoming message content access deprecation since bots would use slash commands/interactions. Users would expect external emojis to work if the bot has the permission as that's the logical assumption.
This.
Feels weird that there are already plans and even timelines for when the message intent gets priviledged, but the alternative - whoops, not even alternative at this point - only other option seems to be so unfinished.
Additionally, it also seems that not every feature they planned "exists" yet. TMK context menus are not even public so far, and forms probably don't even exist yet.
This means that the workflow of rewriting your bot to interactions early is completely broken, as y...
I thought this one of the changes..? Unless im dumb, I figured this was kinda obvious
Look, it was not mentioned and I have zero faith in discord.
Currently, context menu items are defined as "context menu commands" and share an interaction type with slash commands (application command type). My proposal is to make context menus their own interaction type.
As of now, context menu "commands" are essentially just a single-argument slash commands which is a rather unfitting and underwhelming feature. All context menus could be replaced by slash commands that have a single argument such as "message" or "user", so really these context men...
We have no current plans to split out context menus to a separate model or endpoint. The data being configured largely overlaps and shares the same infrastructure and purpose, making it prime for the application command primitive model.
As of now, context menu "commands" are essentially just a single-argument slash commands which is a rather unfitting and underwhelming feature. All context menus could be replaced by slash commands that have a single argument such as "message" or "user", ...
We have no current plans to split out context menus to a separate model or endpoint. The data being configured largely overlaps and shares the same infrastructure and purpose, making it prime for the application command primitive model.
As of now, context menu "commands" are essentially just a single-argument slash commands which is a rather unfitting and underwhelming feature. All context menus could be replaced by slash commands that have a single argument such as "message" or "user", ...
If you recently changed your widget channel it is possible that we're serving a cached widget payload without the invite. However, if you continue to see the invite missing and have configured a widget channel then your server likely has too many invites. Try pruning your invites list and see if that helps.
Doubtful, Considering this is kinda what message intents stop from happening.
You could just have 'reason' be a string and look for flags yourself..?
Not if I want autocomplete for flags name ?
Could we get some of the stuff from the Q&A added to the list here. Stuff like i18n was confirmed but is absent from the checklist. It would be nice if this resource was kept up to date as things are announced.
What is the proposed design for the new subcommands layout? And will it respectively following the nesting order as given per the Discord Developers documentation page?
I'm not sure about what you mean by the second question, as for the first, iirc, Mason had mentioned in the Developer Q&A that top level commands only will show up on opening the command explorer and as you type the top level command, the sub commands will appear in the autocomplete menu (_the new one that is pinned in #stage-discussion channel).
| scheduled_end_time | ?ISO8601 | the time the stage event will end, or `null` if the stage event does not have a scheduled time to end |
This would also be great to add as a feature to bots who convert timezones to local... we schedule a lot of live events in Discord and often people will just say things like "On the 10th at 10Pm UK" and we would like to have a way of embedding the local time, but future events lose this info from the timestamp
This was removed because they wanted the user to get a if i remember right so, i present this:

I think something like this would look nice, as in some situations you dont want to send a message and are currently forced to do this

which in my opinion doesnt look...
I'd personally also appreciate being able to "eat" the slash command and process it afterwards, without any user feedback.
How about an option to allow a user to submit multiple inputs (such as choices for a poll command). This would be better than having a whole bunch of options to add them or parsing a string.
Also a text input interaction would be handy. This would allow you to have users respond to something on the request of the bot without re-running a command or using the intent.
For the use case you mentioned, Discord will be releasing a new interaction type called Forms (somewhere in Future...
I agree, but they removed it so I'm trying to meet them halfway
Imagine a discord server with thousand of bots using slash commands, if you type /, it could be hard to find the bot that you want to execute a command to, specially when you don't know the bot commands. If that happens, you could just use @Bot at the beginning of your message, then it would show all commands that belongs to that Bot, and using something like @Bot help, would execute the help (or any other) command from that bot.
This doesn't remove the possibility to use /, it's j...
I also think a text input component would be a nice addition
Maybe try deferring and deleting the original response as a workaround for now? Though I guess you could alternatively apply for the intent for achieving this, to me it sounds like a valid use case for the intent.
we'll be applying for the intent, yes, but I still like the idea of being able to do this without showing the original message to anyone but the message author
As for user experience, a 'replay' button for slash commands they send would be quite nice, essentially just resending the command with the exact same arguments.
For now you can implement a button bot-side that does it, I don't think Discord might be making replay commands a thing as we already have something called Copy command lol
| scheduled_start_time | ISO8601 | the time to schedule the stage event |
| description? | string | the description of the stage event |
What about this :)
this is already a feature, see my answer above
Related to this: a question that was asked in the live Q&A was
how do two bots with similar commands resolve which slash command is being run?The answer in the moment was "you choose the bot you're using while you type the command", but there needs to be a way to copy paste a command where it also copies which bot you want to use, whether that's for your own use or for "giving" command usage to someone else for them to paste and run it.
If I remember correctly, copying the command...
This one's already in consideration by Staff
This is apparently a bug as Mason found out in the Developer Q&A, idk when it'll be fixed if it is one.
This is a nice idea but it could be exploited, that's what is the problem. This is why (and probably for a few other reasons), ephemeral messages are locked to Interactions only.
(I too initially had this idea and thought this will be wonderful, but the exploits this could give rise to, is huge)
how could this be exploited? I haven't heard anything about that
the reason ephemeral messages can only be sent in response to interactions is that they aren't stored so they cannot be reported/used as proof in reports
ah. that sucks, but I can understand that, thanks
Regular messages can't be moderated either since they can be deleted right after being sent (for example, a bot that DMs you something and then deletes it, or even in a regular channel). There's nothing necessarily preventing them from temporarily storing ephemeral messages for a limited time frame (such as 15 minutes) so attachments and reporting could work with them. They just chose not to. Should be noted that other services, e.g. Slack d...
Yea, I want to do this, however I don't know the enum names yet. Only thing I know is that the accepted values are 1, 2
The messages would (in this request) have their text stored in the audit log, so if a bot was reported their would be non-deletable proof of the message content.
oh, awesome! If I am reading this correctly it's available for JS, C#, and golang but not yet for the Python API? Thanks!
oh, awesome! If I am reading this correctly it's available for JS, C#, and golang but not yet for the Python API? Thanks!
There's no separate "Python API" - it's all the same API. The third-party Python libraries may not have implemented it, but you can use the API the same in any language.
This is a formatting thing, why do libraries have to implement it?
This is not language specific. It's just a markdown syntax
this isn't an API feature anyway, itโs just text that you can send, rendered to a timestamp by the client
https://discord.com/developers/docs/reference#message-formatting
[discord/discord-api-docs] New comment on issue #2857: It is possible to bypass the 8MB upload limit
but it's clear that messages support multiple files because
attachmentsis an arrayYou can upload multiple attachments in a single message on Android.
You can also do this on iOS.
It would be nice to see some additions to rich presence for bots. Take this mockup for example

Some ideas in mind are:
- Adding url buttons to the status, can be used for website or adding the bot etc.
- Adding the detail property to rich presence, allowing bots to tell their story a bit better.
actually it may share the same privacy_level as Stage Instance now that I think about it, but we maybe might still need more confirmation.
Till it's done it can be changed anytime. So for now it should be okay.
As i saw in Datamine, Public Events' aren't available yet anyway.
But I assume it'll be more like PUBLIC_EVENT & GUILD_EVENT
UwU nice โค๏ธ, hope API interactions will be more convenient in the future! ๐
Eventually, you will be able to set up events that arnt tied to a stage, so I don't think stage instance is the correct place for this.
The endpoint for deleting an event is /guild-events/id
| skus | array | skus |
| user_count | integer | users subscribed to the event |
I haven't played with slash commands yet (my library hasn't implemented it as of time of writing) and it seems strange to me that this implies you MUST respond to the user with either an ephemeral message or an Interaction. Is that currently the case? I see tons of problems with that if true.
That is correct. You must reply to each command, either showing both the command and response to the chat, or showing both only to the user.
It is possible to not reply to an interaction, but it would show an "interaction failed" message.
Yes, I didn't realize discord.py was third party -- I see exactly where in their embed code the change would need to be made (it expects a datetime.datetime for the field and errors otherwise), so might try to update it there. Thanks again!
Eventually, you will be able to set up events that arnt tied to a stage, so I don't think stage instance is the correct place for this.
Yeah seems like this
our goal was to get something out quickly
Thank you for the honesty. I appreciate it.
If the interaction is replied to and a message response is created, all users can see that in the channel. I have not looked into whether this is visible to bots right now or not, but if it isn't maybe it should be?
I added some notes about the differences between the referenced message object structure when compared to the regular message object structure.
- Referenced messages don't have a
guild_idormemberfield, even in guilds - Referenced messages can't be nested
- Thread starter messages have an empty string as the
contentand an empty array for thementions, but the data can be found in thereferenced_messageobject.
Ephemeral is limited-retention.
[discord/discord-api-docs] Issue opened: #3596 Incomplete thread channel webhook message integration
Description
The post method for sending webhook messages works fine using thread_id=.
However, neither the edit or delete functions. Adding a query string to both seems to be ignored.
Steps to Reproduce
Use query string on edit and delete webhook message endpoints, containing a valid thread channel id.
Expected Behavior
Webhook message is edited or deleted.
Current Behavior
Create message works fine. Otherwise, nothing happens. Message is not modified or deleted.
*...
Fixed link in "Gateway Presence Update Structure" to "Status Types" table below. Previously referenced update-status-status-types when correct link is update-presence-status-types.
Eventually, you will be able to set up events that arnt tied to a stage, so I don't think stage instance is the correct place for this.
Yeah, I noticed channel_id was not a required parameter when I tried using the POST endpoint. I suppose I could move it back to Guild.md but I think it would be too cluttered. Maybe a separate file would better(?)
e98e64d Update Message_Components.md - IanMitchell
Perhaps the upcoming context menus for bots could give a nice solution to this?
giving bots the ability to send ephemeral messages in like every senario could be a big fuck up since many people can abuse them. The ways to abuse the power to send messages which aren't stored in discord database shouldn't be discussed because it would give ideas to people, and someone asked this thing to mason too and he directly [rejected](#788586647142793246 message) it
his words to be exact
We very explicitly do not wa...
if i remember well, the last time someone asked for rich presence for bots, one of the major reasons for the rejection was that a person can use it to advertise their server/thingy through the api (which they don't want and is also against the tos) and some people can also add malicious links to the buttons which is not something discord peeps want
you can add links to an "about me" or playing status :shrug:
[discord/discord-api-docs] New comment on pull request #3599: Document threads enabled guild feature
I imagine this will be removed once threads become enabled by default on all servers?
[discord/discord-api-docs] New comment on pull request #3599: Document threads enabled guild feature
I imagine this will be removed once threads become enabled by default on all servers?
Probably, yes. I do however need this information in the meantime for my discord-backup project. I need to check if threads are enabled on the target guild before I try to restore them from the backup. But yes, of course I can remove this check once the threads are available everywhere.
[discord/discord-api-docs] New comment on pull request #3599: Document threads enabled guild feature
it's a good bit more complicated than just this flag to know if a guild has threads, and it'll become useless in a few weeks, so i'd prefer we don't add this
fyi, rate_limit_per_user is always sent now, even it's zero/unchanged
487f8e0 Document new threads field, invitable - ajpalkovic
| invitable | boolean | whether non-moderators can add other non-moderators to a thread; only available on private threads |
I'm assuming trying to add members when you don't have permission to due to this would result in a 401/403 error, which would be considered an "invalid request" (limit of 10k/10 minutes I believe). If this is true, it would mean that bots/libraries would need to cache this field and check permissions based on it. How can developers test that their applications are properly handling this since the threads developer beta has ended?
It is mentioned under the "Moderation" section.
pรก 6. 8. 2021 v 19:23 odesรญlatel Henry Hiles @.***>
napsal:
Perhaps the upcoming context menus for bots could give a nice solution to
this?โ
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/discord/discord-api-docs/discussions/3581#discussioncomment-1140559,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATLZK3U6OWWJ3UFNLOEW7O3T3QSDZANCNFSM5BQB3H5A
.
Seems like a duplicate of #3519
It looks like making a GET request to /channels/:channelID/thread-members/:userID returns a 405 method not allowed, making it seem like fetching a thread member is specifically disallowed. Is there a reason for this?
that is just a http response code which means that that route doesn't support that request method, it doesn't actually mean it's "disallowed"
Description
If you edit a message's buttons and replace one button with another, the new button will still show loading
Steps to Reproduce
- On a button press, edit the message and put a different button in the same spot
- Either don't respond to the interaction or wait a few seconds so you can see the issue.
Expected Behavior
The loading state is removed since the button is different
Current Behavior
The loading state persists until the interaction is ...
As you may all know, a ping badge is the little red circle that appears on a discord server, in a dm, or on the discord application on your devices' homescreen when you or your role gets pinged in a server.
As of today, after reading a ping from a server, the ping badge does not go away. I've tried activating the server's "mark as read", but that still does nothing. The only way this can be fixed is by refreshing the application CTRL+R on my windows 10 device.
this doesn't look like an API bug; you can report client bugs at https://dis.gd/bugreport and contact Discord support at https://dis.gd/support
but we know it's necessary ๐
how come this was closed if it's a necessity that you guys intend to add in the future?
And you can have URL buttons for interactions.
It is mentioned under the "Moderation" section.
Not really, it states server mods can do it but says nothing about bot devs
but we know it's necessary ๐
how come this was closed if it's a necessity that you guys intend to add in the future?
It's mentioned in #3581
Oh good point I figured it would 404 haha
I think a color picker option would be super useful, Discord already has one in the role menu, the API could respond in the same color type as role colors work
Where is more message components like text inputs, polle etc.
I think with the addition of the application description in the "about me" the further text is unnecessary, because you already can tell your story in the about me.
The only useful feature is the button support. It might be cool to link your support server, website or bot invite. For this it might be better to implement something bot specific instead of just allow Rich presence.
Description
Voice Region vip property is no longer sent as shown in the structure on the docs.
Have been able to reproduce constantly since 3 or 2 days ago.
Steps to Reproduce
Send a request to the List Voice Region
Expected Behavior
vip property should be there matching the documented behavior.
**Current ...
can reproduce, also
- looks like the API doesn't send deprecated/auto-only regions anymore, only the 13 in-client regions
- that includes VIP regions, so the Get Guild Voice Regions route seems to be equivalent to the List Voice Regions route now
- the API now lets you set a guild's voice region to any region (except Staff Only, so 29 options), including VIP regions and deprecated/auto-only regions
- setting a channel's voice region is still limited to the 13 in-client regions plus so...
Note
I'll use the term "application" throughout this post to refer to both setups with and without bots.
The idea
There should be an API-Endpoint that allows applications to define slash commands as guild-only similar to the current system but without the need of defining a guild id.
Maybe the URL could be like this:
https://discord.com/api/v8/applications//guilds/commands
Reason
Developers may only want to provide slash commands on a guild-level, which requires them t...
Not to mention bots can already advertise through other means such as posting an ad on each command usage or in logs (*stares at Dyno*), so this is kind of a lazy excuse
Not a fan of this idea.
Rich presence is pretty much pointless with the "About Me" addition. Only real benefits, if at all, would be the buttons and maybe the time of how long the presence has been active.
For the buttons would it perhaps be an idea to have them displayed when a Policy and/or TOS URL where defined in the application dashboard.
Would give devs an easier way to share the important legal stuff.
Will variadic args also be worked on? #2331
So
- We can assume
deprecatedwill always be false so we can remove it. viphas been completely removed- Can we remove this endpoint call? since it's equivalent to the guild get regions endpoint?
Hi, I am almost going crazy because of this bug. My discord says that I was pinged 3 times.
When i look into discord, there is only one ping from a server. But when i open the server, THERE IS NO PING!!! I am so mad right now.
This is a Client-Bug and will be fixed 
It also could bee inside a Thread maybe
This repo is only for API issues. Go to https://discord.gg/discord-testers to report bugs with the app.
To fix your issue, go to settings -> notifications and disable "enable unread message badge".
For some cases, you need a synchronous response, even when the requests takes more than 3s. So now I'll have to find a workaround, which will most likely be pretty dirty.
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
I'm having this issue in my server (706461118578819072). One of my channels was completely full of webhooks, so I deleted some. Now I cannot create any webhooks at all.

After a short discussion (#3562), it seems that the tags field can be any
string of text and is used in some way to power the autocomplete/suggestion popup.
The client using/displaying emoji names for the tag is just a good way of generating
a relevant keyword from a user, using the emojis as a pictorial aide, and is thus
not part of the API's concerns.
The API will accept any string up to 500 characters for the tags field. We use this to power autocomplete and suggestions. The client forces input to come from an emoji because its a set of commonly used names that a client could match on. Using unicode is not really an option here, as people do not type unicode emojis in your typical conversation in discord.
The answer to #3562 states that the tags field accepts any string up to 500 characters. However this is not the case. When the tags is set to a string with more than 200 characters for the Create Sticker or Modify Sticker endpoints, the json error 50035 is returned with the message Must be between 1 and 200 in length. for the tags field. (@jkcailteux)
Might want to wait on this issue to be resolved before this pr is merged.
Thanks, I'll update the limit to be 200, seems like a typo in the discussion
Might want to wait on this issue to be resolved before this pr is merged.
The feature request consists in adding a message endpoint to the member, as it is already implemented with channels.
This endpoint would make it much easier for bots to detect various kinds of spam, phishing, etc.
These fields are required when creating an embed and always present when received (given the object itself exists) making the marking consistent with the footer and field structures.
Description
With text-based commands, if I want to quickly clear my message box so I can send a message, I can send a badly formed or incorrect command, and the bot will tell me the syntax is incorrect.
With slash commands, errors are shown in the command description box, and do not allow pressing enter to clear the message box.
Steps to Reproduce
Type a slash command incorrectly; for example, don't specify a required option.
Expected Behavior
The slash command i...
possibly a word filter for the string option could be useful, or specify some sort of pre-format
I need this, especially because there is a limit on how many arguments can be put in at once
Description
It would be great to be able to silently create a thread using bots. By that I mean not having a system message (THREAD_CREATED, type 18) sent into the parent channel upon creation.
Why This is Needed
My usecase is a read-only support channel that serves as a FAQ channel using buttons. If the user still needs help after reading it, they can click an addtional button to create a thread and explain their problem The issue is that every time someone clicks the button, a ...
I think this is definitely a needed condition, especially from a UX perspective, it would be a great addition.
The implementation suggested in #3305 is very similar as it would remove the issue with commands in DMs
de9d9a4 Add missing value type for Application Command ... - KILLEliteMaste
f33bc1e Link to OAuth2 page where it says log in with D... - edazpotato
7660dd3 Add note to message structure - typpo
366e278 Add a note on planned message content privilege... - typpo
Ah that's right, we reduced it to 200, my mistake.
temporarily storing ephemeral messages for a limited time frame
Then it will not be ephemeral anymore.
ephemeral means temporary, storing it for a "limited time frame" is still ephemeral
Thank you for fixing conflicts :) Gonna take a look at this again right now!
f91d762 chore: move non type specific interaction info ... - ckohen
- if you're updating the desc in the object, you should probably update it in the endpoint params too
- the wording of the note feels weird
the wording of the note feels weird
Could you elaborate on that, anything worth changing?
Any updates? Holding some bot features back with threads lacking.
69313a4 User and Message Commands - msciotti
This is a pretty hefty docs overhaul to support new types of application commands: USER and MESSAGE.
TLDR: New context menu commands on users and messages are types of application commands. I've renamed the "Slash Commands" section to "Application Commands" and refactored the documentation section into:
- Data models
- General application command info
- Slash command info
- User command info
- Message command info
- Endpoints
TODO:
- [ ] Check for broken links
- [ ] Ch...
19f4a0b Fix changelog title - msciotti
@msciotti Should this be changed to USE_APPLICATION_COMMANDS since the name doesn't fit anymore?
Yes. The permission in our backend was actually always called USE_APPLICATION_COMMANDS. Not sure why it doesn't say that here.
64771ed Use slash commands --> use application commands - msciotti
As the title implies, there is a bug in which non-English names are not recognized.
This is a bug that exists only in option's name that does not require required.
It still works on required option's name.
Was this idea scrapped? Or is it still on the table?
Because at the moment, interactions-only bots are severely underpowered.
Message commands are application commands that appear on the context menu (right click or tap) of messages. They're a great way to surface quick actions for your app that target messages. They don't take any arguments, and will return the message on whom you clicked or tapped in the interaction response.
This field isn't mentioned in the resolved data structures section
These apply to all Application Commands right?
Do we get this property back on the interactions we receive from application commands now?
I assume this was meant to be an example for registering a user command that accidentally ended up in the guild scoped registration section?
This is slightly deceiving: you may need to apply for the bot scope if you require information about the guild that is not presented in interactions, such as guild owner.
(and it seems the general solution for this, smarter interaction tokens, was declined)
the scope is no longer so "new"
Unlike interactions, which can have dynamic data, application commands are guaranteed to be the same for any user that uses them.
is slightly confusing wording imo -- you mean descriptions by "dynamic data," right? Not the response?
Any details on how much "faster" this "faster reload" is?
Wouldn't this make a global user command?
"target_id": "867793854505943041",
"type": 3
Application Command type is also included.
"target_id": "809850198683418695",
"type": 2
Application Command type is also included.
| name | string | the [`name`](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/application-command-object-application-command-structure) of the invoked command | Slash Command |
| type | integer ...
| channels?\*\* | Map of Snowflakes to [partial channel](#DOCS_RESOURCES_CHANNEL/channel-object) objects | the ids and partial Channel objects |
| messages?\*\* | Map of Snowflakes to [partial messages](#DOCS_RESOURCES_CHANNEL/message-object) objects | the ids and partial Message objects |
Messages are also resolved for Message context menu commands
Isn't this the application command data model? AFAICT from the example interactions, the only way to differentiate is to keep track of which command id is which type.
We do - mentioned this in my review
Description
An endpoint to fetch the members in a voice channel, or a way to get the member count of a voice channel without needing all members in a guild cached.
Why This is Needed
My bot has a feature which requires the member count of a voice channel. I also do not want to cache members at all. Because of this, I'm unable to fetch the member count of a voice channel without fetching the guild's entire member list every time, which is inefficient, and a bad idea in general.
...
it seems correct to me; if you need to get data using a bot then the application does require a bot user in the guild
Now this is interesting and bothersome at some point, I have a slash command that require user input on the text. Imagine sending the 50000 text length to discord text channel, it would crash the bot because of API error( too long text)
an API error shouldn't crash your bot, that's a problem you should fix
and you can check the length of the string before sending it
I'm expecting discord would cut off the length depending on the user nitro boost status or not, or at least cut off based on the limit bot can send to text channel. BUT I guess I was wrong. Why would they allow long input onto text options, but limit the text input on text channel?
4679669 User --> Message - msciotti
96faada Add type - msciotti
1c2c4bf Add type - msciotti
90d85b0 Add messages to resolved - msciotti
because sending data to a bot is very different from sending data to Discord to store permanently in a message
target_id seems to be undocumented.
What expected here is since slashcommand supposed to be an interaction back to the user, the text expected or at least should be sent back to the user on the text channel ephemeral or not, not just stored to someone backend. I surely can cut off the length in my code. But what is the point of long input that are 90% expected to be send to any text channel which past the length of text limit and expecting the developer itself to make a note on it? And it doesn't even documented if that reall...
I want these to be added for me as well,
- time
- hex color(useful to embed color)
- emoji and sticker
- There are choices, but you can also enter freely
string
The header above suggests its meant to be a guild command ๐
| description | string | 1-100 character description for `CHAT_INPUT` commands, empty string for `USER` and `MESSAGE` commands | all |
this table will have to be reformatted anyway
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
What when unvute had use limit 1
@Jupith you can only set the description for guilds having community enabled.
Just do it 10 seconds for god's sake, it makes slash commands much less attractive.
It's not scrapped, no. This just felt a little sales-pitch-y from when slash commands were new, and I figured with more need to know stuff in the docs, it was OK to remove some fluff.
Accidently lost the guild scope in there. This is intended to be a guild command, just lost some route parts in the copy paste lol
Yeah this is poor wording, brain wasn't making good words. Will change.
Slash command option type that allows user to select emoji or sticker.
Also will be nice when it can allow select emojis and stickers from other servers without nitro
Weebhooks can be used to simulate user message (for example in logs, sugesstions, cross server chat) and it can looks better with animated avatar for users with it
We have no current plans to expose slash commands outside of the WYSIWYG editor since much of the slash commands functionality relies on its tech.
I had no idea this was the case. As a programmer, I intensely hate WYSIWYG editors and I always turn that setting off. It's not mentioned anywhere that the Markdown option is considered "legacy" or a good candidate for removal. Once you remove the "legacy textbox", will I have the option to continue writing my messages in Markdown without any ...
Or their type.
1: Slash command
2: User command
3: Message command
7aea604 document target_id - msciotti
I'll have to think about this, since it's always returned in the payload you receive, but optional in the creation ><
046b632 Add type to creation endpoints - msciotti
It'll get refreshed next time a client queries for commands, but there's a rate limit on it, so it's possible that a user could have a command rejected a couple times until a rate limit is lifted.
That's all behind the scenes semantics though. The TLDR is that if you update a command, you can be sure that you will receive interactions payloads that reflect the updated command.
7c59721 wording nit on reloads - msciotti
105d520 clarify description - msciotti
e33a089 formatting pass - msciotti
Having the ability to choose a style (similar to the Delete Message and Invite items in the images below) and icon displayed next to your context menu command (either an emoji or from a limited icon set, discord has many icons that could be useful) would allow application developers to improve user experience and make bots/guilds with many context menu commands easier to navigate.
...
[discord-api-docs] Branch feature/context\-menu\-commands was force-pushed to `b04a500`
fbc7b45 Formatting commands page - msciotti
1195ac0 Move data models to top - msciotti
ef4731c fix table - msciotti
87e3545 broken links - msciotti
2007118 real date - msciotti
80d2765 User and Message Application Commands (#3614) - msciotti
May I know why this was reverted?
If you try set choices for a boolean option the api returns
Choices cannot be configured for this type of option
This is because Discord processes the choices itself internally and not by the developer
The only option types that can have choices are:
- String
- Integer
- Number
That's why the commit was reverted
Sorry for bumping up an old thread but a "Use Slash Commands" permission is just a temporary fix. What about when slash commands are the only way to interact with bots?
Description
The interaction resolved data structure has 2 asterisks next to the messages property, but the explanation for it is for the channels property.
Expected Behavior
There should either be no asterisks or 3 asterisks with an explanation for it.
Current Behavior
There's 2 asterisks which leads to the explanation for the channels proper...
Accidentally removed in #3614
Currently, only CHAT_INPUT (aka slash) commands can accept options.
That means, the only input a message command that appears in the context menu can get is the message it was used on, the guild it was used in and the user that used the command.
Now in my opinion, that is a lot of missed potential. I can't find many ideas of how I could use those types. One idea I can see is eg. an /avatar command. You could easily implement that as a user command, and it would be good for UX.
...
We can't do regexes because a pathologically bad regex can freeze the regex engine in the browser.
What if the regex verification was done server-side?
What's the point? You can just do it in the bot then. I'm pretty sure the entire point of the verification is to not let users send the command if it doesn't match the regex, and having to verify it on the server would cause users to feel like there's lag probably.
@devsnek Could I ask why this was closed?
@APixelVisuals oh sorry i meant to comment. i fixed this.
Is there a PR that fixes this or is it not finished yet?
Want to add on to this - as much as I like the idea of popout boxes that appear, I think there's a lot of potential in a simple hover options feature for context menu buttons. For one, it would be click-only for the user and allows the usage of simple options without adding complexity to the interaction on the application or client side.
I believe the hover options feature is most implementable at this point, but the popout boxes described above would be nice as well.
It looks like the description still says that they're partial message objects. Maybe mention which fields are included?
pretty sure that was a mistake; it's a full message object
| options? | array of [application command interaction data option](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/application-command-object-application-command-interaction-data-option-structure) | the params + values from the user | Application Command ...
As it stands right now, all context menu commands simply appear beneath Apps. I think it would be much better if they were placed under Apps > Application Name > Commands. This would declutter the Apps panel and potentially allow the total amount of context menu commands to be increased in the future without the drawback of the apps panel being cluttered.
If this is already planned, great. If not, it'd be a great change in my opinion.
A UI-based command that shows up when you right click or tap on a messages => A UI-based command that shows up when you right click or tap on a message
Somebody posted this in Discord server which I believe is from the Figma concept

That would be perfect. It's unlikely that you have enough bots (that have context menu support) to make the top level menu too big, so it wouldn't make anything too big.
Also like OP said, this would allow bots to have much more than the tiny number of five options. We can have 125 thousand sla...
Commenting on this thread to hopefully remind the others who have commented on it that this PR is still un-merged. I would also like to vouch for the addition of Orca into the community resources file. Maintainers are super helpful and responsive to any problems that arise, and the API is very nice to work with. I am sure others in their Discord server could vouch for it as well.
To my knowledge the major reason that the current "Apps" design was chosen was to prevent rearranging the context menu depending on the number of apps on the server. Despite that I think this would be beneficial as it would allow for a higher limit.
If user & message commands were added, why shouldn't channel commands exist as well? This can be useful for suggestion bots, and also ticketing bots.
Bump. Been a few years lads. Hope everybodyโs been making it through this stuff alright. Working from home is an absolute pain.
Anyways, this was supposed to ship with audit logs but it never was. Then Jake noted it would be worked on later in 2019. Then 2020 happened, so fair enough on a delay. But itโs 2021 now :) any update?
Bump. Been a few years lads. Hope everybodyโs been making it through this stuff alright. Working from home is an absolute pain.
Anyways, this was supposed to ship with audit logs but it never was. Then Jake noted it would be worked on later in 2019. Then 2020 happened, so fair enough on a delay. But itโs 2021 now :) any update?
This was requested in #56, claimed to be shipping with audit logs, and it wasn't.
Pretty simple, would be nice to have either two separate events for kicking from and leaving a server, or a boolean flag on the current event.
should also update the table width
i think the "Request" word here was left over from a change that mostly got reverted
I made sure to leave a space in its place.
but now each line has an extra space; there should be just one space on the right of the longest cell in the column
I understand now - thanks for the tip.
Description
There is two bugs currently that I found with ephemeral messages.
- If you only change the state of a component on an ephemeral message, the gateway will send you a
MESSAGE_UPDATEthat clears out all of the embeds. - You cannot clear out the components on an ephemeral message without editing either the content or embed too. (Errors out with a
400 - Cannot send an empty messagewhile non-ephemeral messages do not)
Steps to Reproduce
- First bug, create a...
Description
When bulk overwriting global/guild commands with a slash and a user command with the same name, the API is responding with an error: Application command types are immutable
Steps to Reproduce
Make a request to /applications/{application.id}/commands, with a slash and a user command with the same name.
Expected Behavior
The API should overwrite the commands without responding with an error, according to the docs: `Your app can have a global CHAT_INPUT and U...
Description
When creating new context menu command with dscription field specified:
code: 'APPLICATION_COMMAND_CONTEXT_MENU_DESCRIPTION_INVALID'
message: 'Context menu commands cannot have description'
Expected Behavior
Use context menu command description to override it's system name in UI.
Current Behavior
API responding an error.
[discord/discord-api-docs] New comment on issue #3629: Context menu commands cannot have description
this is intended functionality, logical, and is documented (in danger boxes too).
[discord/discord-api-docs] New comment on issue #3629: Context menu commands cannot have description
@advaith1, I understand. But obviously we need a feature to override a context menu entry text with human-readable description, instead of command system name.
[discord/discord-api-docs] New comment on issue #3629: Context menu commands cannot have description
you should just make the name human-readable...
[discord/discord-api-docs] New comment on issue #3629: Context menu commands cannot have description
you should just make the name human-readable...
This have a lot of disadvanages:
- 32 chars is way less than desired.
- Handling such names in code is a pain.
- Gets even worse with UTF-8 because English is not the only language existing.
[discord/discord-api-docs] New comment on issue #3629: Context menu commands cannot have description
I agree with @HanabishiRecca here - having separation between the UI string and the system identifier is highly desirable, especially considering the various limitations imposed on them.
Going beyond just the menu entries themselves, a split like this would be nigh required if Discord implements a way to nest context menu options, since they'd likely be sharing groups with other command types.
Same thing happened in Chinese, this issue only occurred when an option was not required.
<img width="126" alt="issue1" src="https://user-images.githubusercontent.com/81338417/129033768-da88e169-e4a0-49fc-9dd2-81bcd940b660.png">
But it worked fine in English.
<img width="160" alt="issue2" src="https://user-images.githubusercontent.com/81338417/129034356-2ca49ffb-abc2-4f24-bdd4-a59a7d8847ea.png">
I think popout boxes are planned actually
This is from their "future of bots" blog post

If so - great! I still don't see them in #3581 though. I hope they really are planned!
Description
As marked in the JSON what structure in the documentation is this exactly?
The closest I could find was https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-structure
But it is missing the value key and the description isn't marked as optional therefore I am not sure if the documentation is just wrong or if this is something else.
Invoked command: /test True
{
"version":1,
...
It had occurred to my Discord client as well, but it was fixed few hours later. Not sure if it's only me.
[discord/discord-api-docs] New comment on issue #3629: Context menu commands cannot have description
Completely agree, the fact that the names of application commands are now not unique per scope when the description tag is sat there empty feels like a major oversight. It would have been much more ergonomic if the name was used internally by us and the description was what was shown to the user. I don't understand why they went with this system.
Is it possible to add colors (same ones as buttons) to the command display? This is inspired by stuff like Ban bring listed as red. I have no clue how blurple and green would look so even red eould be fine.
I'm pretty sure this is a duplicate of #3619
This discussion is not a duplicate.
It looks like a duplicate to me.
Yes! I came here to suggest this. From things as simple as Lock Channel to Ticketing like you said.
That for receiving video embeds, but you can't currently send them.
Useful for a slash command version of carl's .steal command haha.
It's not.
This discussion is suggesting colors. The other is suggesting emojis on the menu.
#3619 is suggesting both colors and emojis.

Oh woops. I kinda glanced at that one and thought it was just suggesting styles.
I was assuming they were referring to highlighting which the linked discussion still doesn't suggest, but that's not a hole I'm further jumping through.
Make it so that when we send a button there is an option hover_label or something similar and when we hover the button, a small cloud appears with the text we have given
Like this:

Or like the facebook one:

If you cause a bad request error when posting to create interaction response the interaction popup never fails, this is reproducible for me when sending a type 4 response with an empty message so that I get HTTP Error 50006 : Cannot send an empty message.
This application command never shows the interaction failed message. Reloading breaks the client for some unclear amount of ti...
[discord/discord-api-docs] New comment on issue #3629: Context menu commands cannot have description
Now that I've played with slash commands, there's another caveat to this issue - casing is normalized for context command names, which is extremely undesirable if it's meant to be a UI string. What I mean by this is that if I have a name that is, say "Do thing", it becomes normalized to "do thing", which is just plainly inconsistent with Discord's own casing of other context menu items.
[discord/discord-api-docs] New comment on issue #3629: Context menu commands cannot have description
context menu commands can have capital letters (and many do) so I'm not sure what you mean?



[discord/discord-api-docs] New comment on issue #3629: Context menu commands cannot have description
descriptions are unlikely to happen, and even if they did, they would not replace the name in the ui.
[discord/discord-api-docs] New comment on issue #3629: Context menu commands cannot have description
@advaith1 Ah, my apologies, it was a bug on my end.
[discord/discord-api-docs] New comment on issue #3629: Context menu commands cannot have description
@devsnek The ideal API for me would be an entirely new field - title - for explicit use as a UI string.
[discord/discord-api-docs] New comment on issue #3629: Context menu commands cannot have description
the primary key here is id, name is for the ui. you'll need to handle mapping that.
[discord/discord-api-docs] New comment on issue #3629: Context menu commands cannot have description
Fine. Are you planning nested context menu commands? If so, will they require entirely separate group constructs, since the existing rules for name are unlikely to cut it as a UI string? If not, why not?
I plus this. Using this with the browser protocol would be AWESOME.
I'd like to introduce a concept I've dubbed the "Clipboard" Button.
I picture it working similarly to the Current Link button in which you would provide a String of text that would be copied to the users clipboard whenever they clicked it.
I see this being especially useful for quickly copying useful information, especially from embeds on mobile!
As I picture, it would be implemented as a new button type into the existing action row, (again very similar to how link buttons currently...
Useful for a slash command version of carl's .steal command haha.
Slash command option type that allows user to select emoji or sticker.
Also will be nice when it can allow select emojis and stickers from other servers without nitro
Search is only allowed for users, and this option will be good alternative for it
Please compensate artists and donโt steal art ๐ข
Users with roles automaticlly skips veryfication. Adding roles_bypass option will be fix that (this option name is example)
Usefull for some veryfication bots
Alterbative for this https://github.com/discord/discord-api-docs/discussions/3636
ect.
Usefull for some veryfication bots
Alterbative for this https://github.com/discord/discord-api-docs/discussions/3636
ect.
*Alternative
Please compensate artists and donโt steal art ๐ข
But test servers, moving emojis from other servers ect.
Something like this would also be a good shortcut to running certain commands; consider something like discord://commands/<APP_ID>/<COMMAND_ID>/<ARGS> - maybe just to fill in the chat box or maybe to run it directly.
Guild Member Update event, compare/check the pending property.
Just give roles once membership screening is passed.
Please compensate artists and donโt steal art ๐ข
It doesn't steal art, it just copies emojis from another server and pastes it into the current server.
iirc this was denied to prevent API spamming.
It doesn't steal art, it just copies emojis from another server and pastes it into the current server.
Emojis are still art as they're made by an artist and emote being in a lot of servers doesn't mean it's free to use ( that's just an example).
I'm not familiar with how this process works, do you just check the boxes as you complete the list and then you release them all as one big update? Or do you release item by item?
I'm really looking forward to attachments.
Item by item. They recently released context commands for example
5507a0a Interaction Request Type -> Interaction Type (#... - advaith1
7ae96ab Fix typo in Application Commands (#3624) - Adrastopoulos
1c1641b Fix broken link in Gateways (#3597) - cityuserGH
Description
The API and the client allow slashs commands with more than 50 000 chars in a signle string value
Steps to Reproduce
- Select any slash command where there is a string option
- Press "F" for a few seconds, or paste a lot of text (don't work with copy/paste if you paste something bigger than 2k or 4k chars)
- send the slash command
Expected Behavior
The API or the client shouldn't accept sending the slash to the API/bot.
Current Behavior
The API i...
I implemented some limits here, should be out now or soonish.
They changed the UI today, now it shows the options in a list, and I think that will reduce users saying "uh your command doesn't work!" just because they forgot to press TAB
The main reason I haven't converted to slash commands is there's no way to hide commands or make them hidden at all. I currently see 0 updates on this but has been proven possible with the whole hiding NSFW commands in non-NSFW commands. Will these make their way into moderation sometime?
I'd love to see slash command attachments, this is the thing i'm most excited for as it makes commands more flexible.
You could just have 'reason' be a string and look for flags yourself..?
You could create a slash command like/cmd arg:tempban 1d -t1 bad userand parse it like old text commands
We're suggesting improvements to slash commands, not because some stuff is impossible but because it can be a lot better.
Having a multiline string as a slash command option would be super nice! Another option that would be useful is colors!
You can add 1 << 6 to the command's flags to make it hidden I believe
Could this be referring to server muted or deafened?
Bots will be able see messages that mention them.
To make it even better I would suggest that bots can specify a prefix. And they also see every message that starts with their prefix. That would be really awesome.
that sounds good ๐
Perhaps the upcoming context menus for bots could give a nice solution to this?
Should still have options
I didn't see it mentioned here but these changes to the API are going to stop bots from seeing messages they're not mentioned in, right?
@Bluenix2 There used to be an ack type (type 2 and 3 both were) but they were removed once slash command usage messages were merged with the response, and "interaction failed" never showed
I have a question will global chat bots be a supported usecase?
This has been confirmed by discord and will be added when the intent becomes privileged. See #api-announcements message.
This has been confirmed by discord and will be added when the intent becomes privileged. See #api-announcements message.
commands don't have flags; you're probably thinking about the ephemeral message flag that can be used for interaction responses
My bot has a translations system in which users can select a language for the bot's messages. The help command includes descriptions of the command, in the selected language.
It would be nice if there was an implementation of this. Specifically, if we could easily define possible choices for command descriptions (maybe based on a key) and update the selected key per-guild, so that all commands are in the same language.
Text input interaction would be really good to have, currently one of the main things about why I don't want to migrate to slash commands just yet (although my bot has a branch with slash command support, I didn't include it in public version).
One of commandos features is that when user provides invalid input (like channels that user can't manage or generally any input that cannot be filtered by slash command arguments right now), it asks for input. A way is to resort to normal message se...
From the Q&A transcript:
Q: Will there be a way to localize slash commands? Having slash command names, descriptions, and arguments in only one language is hard to users who don't speak English.
Absolutely. As I said at the top of this, I know that a lot of our development community is not English as their first language, and we know that the majority of the people who use Discord is not English as their first language, either. There's a lot of places in the world other than just Engl...
That is not really compatible with Discord's architecture.
That is not really compatible with Discord's architecture.
Nor were slash commands and interactions, and the ability to allow bots to read messages which contain their mentions. It is absolutely possible, if they choose to do it.
This suddenly became useful again, with upcoming restriction of message reads.
Interactions are strongly typed, and cause much less burden on Discord than text messages.
Interactions are strongly typed, and cause much less burden on Discord than text messages.
This is absolutely a nullified statement, because we receive message events anyway just without content, and Discord will have to do processing anyway to identify if the mention is present in the message. I wouldn't hesitate to say a content matching process is present on messages anyway, for emojis, timestamps, mentions, channel mentions etc are pulled out and processed at some stage.
Ability to add custom types
Just a thought; what if bots could put textboxes in their messages? Then they could have their whole config in Discord rather than on a separate website!
I believe this has been acknowledged by devs already, I could be wrong though.
I believe this is planned but I'm not sure if it's for slash command inputs, components, or both. I'd hope it's both before messages are restricted by an intent.
If the user has highlighted a section of text and used a context menu command on it, having that information exposed to the bot could be useful. My current use case is for a database-search bot, and it would be very natural (and obviate the need for message intents) if a user could simply highlight a search term in somebody's post, and ask the bot to run a query on that.
This seems like a natural functionality to give to context menus, and it mirrors how context menus traditionally work acro...
Other nice types:
- url
- images / other attachments (ability to specify which sets of extensions/mime types?)
- colour
- timestamps, durations
- repeated options
- arbitrary union types
- card details/phone numbers/email addresses/physical addresses, but I understand privacy concerns here
Oh ok. I couldn't find anywhere mentioning this feature so I thought I should suggest it :)
Is Discord seriously saying that it's not technologically feasible to make (or use) a safe regex engine?
Slash commands would be a lot more user friendly if you could use them more like an HTML form than a CLUI. The current API wouldn't even need any changes, it's just a matter of how it's presented to the user.
A text box component, which allows the user can type in.
To my testing it does not get included when the member is either server or muted client side.
images / other attachments
That's on the list
arbitrary union types
They denied this already iirc
card details/phone numbers/email addresses/physical addresses
Oh god. I don't think they will do that.
Other than that, I don't think they've really talked about any of the rest of those.
Already requested, and already planned in some way shape or form. (There's not much information, but they showed a concept already and they kind of have to do this)
Forms have been teased, but they haven't been announced/fully planned with info. Slash commands were meant to replace the existing ./?/!/$/etc commands, so they take the same form but with some extra helpers.
How would you expect that?
To make it even better I would suggest that bots can specify a prefix. And they also see every message that starts with their prefix. That would be really awesome.
Are you avoiding making slash commands?
Currently whenever a button is clicked with the URL set to an invite link the invite will be opened inside of a user's browser.
From the Q&A transcript:
Q: Will there be a way to localize slash commands? Having slash command names, descriptions, and arguments in only one language is hard to users who don't speak English.
Absolutely. As I said at the top of this, I know that a lot of our development community is not English as their first language, and we know that the majority of the people who use Discord is not English as their first language, either. There's a lot of places in the world other than just Engl...
But there is no event for that imn api
[discord-api-docs] Discussion #3637 marked answered: Welcome screeen veryfication event \(for bots\)
Guild Member Update event, compare/check the pending property.
Yes, is there any updates? This feature is very cool ngl
A helpful interaction option or component would be a option with the time type. Where you choose a Date, which can be done with the already existing "timebox" (e.g message search)
These fields only appear to be present via the REST API, being sent via Voice state update events over ws
Regex to validate string, it helps for example in url feilds
All too showing notification on client side, like this when you don't provide required option
You can send a regex as a type and have a type alias so people know what they need to input example: you send a command option with type as url regex and type alias as URL so people using your command must specify a url when inputting in that option and if they specify something that doesn't match the regex they will get This option must be a valid {typeAlias}
but they showed a concept
@BenSova where?
Ratelimits, this is always better then multiplay fetching messages from server 200 times
But it mark it as anwserd when it isn't ( #3374 )
+1, A date picker component would be awesome!
This just sounds like a cheap alternative to slash commands from a privacy point of view, and I'm glad we got slash commands instead.
You can only have a limited number of slash commands and they don't have all the features a message command can have.
So why would I want to use slash commands? The UI is annoying. You an't easily resend commands. Text based commands are just better.
Btw, in telegram, when u call command which 2 or more bots have, you can do /ping@hehe_bot, or /ping@haha_bot, so u know that exactly this bot will be used
Yeah, i even have use case for it. Contexe menu message command, 'Create tag' - you do it on message, then bot sends message 'Please enter tag name', with text input component. After u submit input, will be created tag with name that u entered, and with content of message u used command on
This just sounds like a cheap alternative to slash commands from a privacy point of view, and I'm glad we got slash commands instead.
I think it is also important to see the other usecase. Some bots use message content cues to decide what to do, it isn't just for prefix based commands
Time, date, datetime, delta, with or without timezone.
Certainly some bots act on message content, like auto-moderators, is that what you mean? Because I would hope that such bots were approved for the message content intent.
Certainly some bots act on message content, like auto-moderators, is that what you mean? Because I would hope that such bots were approved for the message content intent.
In their blog post did they have a section about mod bots and it more or less states that bots that log events like message edits or deletion for moderation purposes are pretty much 100% approved for the intent. The bot just needs a logical reason for the intent and logging edits/deletion of message content is one.
I'm pretty sure regexes have been denied because malformed regexes can freeze the client.
they haven't shared fhe policy about valid usecases yet. keep an eye on ddevs announcements
Date picker? Yes please. It already exists in the search bar, it would be super nice if it was given to devs for use in Slash commands somehow.
+1. datetime type would be amazing, especially if accompanied by a datepicker.
There's Message.interaction, not sure if that's what's being discussed or if I'm misunderstanding though. Either way I wonder if that will be restricted to the message intent?
Description
context-menus doesn't emit interactionCreate when you interact with context menu which is on user in a voice channel but if I
do the same with member lists or directly click on user in text channel it works.
Steps to Reproduce
- user must join voice channel
- right click on user is in voice channel
- go to APPS section and select a interaction
Expected Behavior
Should emit interactionCreate event
Current Behavior
Does not emit Interact...
+1, I would love to see the value received by bots to be a unix epoch to avoid timezone / parsing shenanigans.
The ability to have datetime inputs would allow for commands like: /createvent <datetime> <topic> <description>
The current wording mentions it can be used when creating servers which can appear confusing for users who don't know that bots can actually create servers when they have <10 guilds (#api-questions message is a perfect example and what sparked this PR :joy:)
This PR changes it to reference the rtc_region field on voice and stage channels instead since server regions aren't used anymore.
This issue tracker is only for issues with discord's api.
@cakedan can you still reproduce any of these issues?
Not always an option, see https://github.com/discord/discord-api-docs/issues/2479
(Roles added with the oauth2 join scope are easily avoidable, integration roles, never possible)
Though apparently this is a client thing ๐คท
Hi there,
So, indeed, as you said @jhgg, it was a permissions issue, but having battled with this issue basically since I opened this GitHub issue I conclude this is probably still a valid issue to remain open. It took ages for me to work out View Channel is a prerequisite in addition to Connect, which was not clear when dealing with cate
It would be good to get some additional documentation on the Voice docs page about the prerequisite checks required, before attempting to establish a ...
Certainly some bots act on message content, like auto-moderators, is that what you mean? Because I would hope that such bots were approved for the message content intent.
You did not quote me, but I assume you were referring to me
I was talking about any applicable reason a bot would want to pick up on text cues from people just in normal conversation, which would not make the bot applicable for the intent but would be good to have some pattern matching logic to be able to con...
I haven't had a chance to do a full code review, but at a glance, it looks sufficient. One important distinction between this library and my own is that this runs on a more vanilla implementation of Lua + LuaRocks while mine relies on the more esoteric Luvit runtime. (Think browser JS vs node JS). There are advantages and disadvantages here, but I have definitely seen people look for a vanilla Lua library in the past. I think a disadvantage here is that it doesn't run natively on Windows, but...
Description
PUT/applications/{application.id}/commands and its guild counterpart are not idempotent.
This can cause errors when bulk overwriting global commands which haven't changed (I have not personally encountered this but it has been reported by other people in the discord developers server so I thought I'd mention it).
Steps to Reproduce
Perform the request and look at the version field before and after.
Expected Behavior
That the PUT request is idempot...
Description
When modifying a webhook using the Modify Webhook endpoint and channel_id is not sent, the API 500s
(this issue does not affect Modify Webhook with Token)
Steps to Reproduce
- Edit a webhook with a bot, using PATCH /webhooks/:id
- Send name and/or avatar, but not channel_id
Expected Behavior
The we...
this will be fixed in the next api deploy
Returns an array of [voice region](#DOCS_RESOURCES_VOICE/voice-region-object) objects that can be used when setting a voice or stage channel's [`rtc_region`](#DOCS_RESOURCES_CHANNEL/channel-object-channel-structure).
While all these new interaction features are nice, and the majority of users do have a client that is new enough due to them being enabled in a/b experiments, thereโs still a lot of people who refuse to update their mobile clients. They end up with a client months old that donโt have support for these new interactions.
Some people simply donโt know how to update, or others are intentionally not updating because their client mods (although breaking the discord tos) havenโt updated to the la...
I use an old version of the Discord Android mobile app - without client mods - because new versions of the app have many regressions that Discord has failed to fix for over a year. I understand that new features are missing, and it is frustrating that I can't use them; I also sometimes get hit by antispam because the old version of the app does things differently than the new one. However, it is my choice as an user to not update if the new version introduces bugs that I don't want to have.
Then maybe somehow send a message to every old client letting users know that buttons and slash commands donโt work properly on their client if a button is shown? Iโve had a lot users complain that my bot โisnโt workingโ because they couldnโt see the interaction buttons from my regular prefixed commands. This resorts me to use reactions and avoid any of the new features that are much cleaner and easier to interact with (buttons have ratelimits per interaction, and can allow you to send epheme...
That'd be a good idea. I'm not sure how feasible it is, but showing a "this message contains elements that your client is too old to display" would be really nice.
Iโve had a lot users complain that my bot โisnโt workingโ because they couldnโt see the interaction buttons from my regular prefixed commands. This resorts me to use reactions
As a bot dev, it's not up to me to fix other people's issues caused by them using an old version of the client (or client mods, or whatever it may be...
I guess I could set higher expectations of my bot users and just get rid of the small minority of people with old clients. Letโs wait to see if discord has any stance on this.
It would be nice if bots had the possibility (i.e. the permissions) to retrieve the information about their own integration from the integrations of a guild (https://discord.com/api/v9/guilds/{guild.id}/integrations/{application_id}).
without having the MANAGE_GUILD permission.
Example:
I want my music bot to send a setup message to the person who added it (if they allow direct messages from server members) when it is added to a server. But to get this I need the user who added the...
It'd be useful to have this for not fully released things like per-guild avatars. An user recently reported an issue regarding that feature, but I can't test it since (while I do have Nitro) I haven't been whitelisted for the experiment.
In addition, this would be practical to query the scopes that the application has in the Guild (currently e.g. application.commands).
Description
The API docs say at https://discord.com/developers/docs/topics/gateway#etfjson that Snowflake IDs are transmitted as 64-bit integers over ETF.
If this is intentional, should the docs be updated to say as such?
Steps to Reproduce
Receive an INTERACTION_CREATE event from a context menu command on a message, and the keys in data.resolved.messages are string snowflakes rather than integers.
Expected Behavior
These keys should be 64-bit integers as cur...
JS can't have number keys in objects, so this is probably intended.
I'll highlight two of the reasons why we still aren't using slash commands for our bots.
- Permissions
I've seen permissions mentioned and I am unsure what you guys plan to do with them, but the fact that you can only assign permissions to a top-level command, and not to the subcommands is a major deal-breaker for us. A lot of our commands have a user aspect and a moderator aspect, such as a command to list server events. Everyone should be able to do that, but ideally, we'd only like sta...
I don't think that'd be an issue here, looking at how erlpack decodes 64-bit ints for JS, it returns them as strings if they're too big to fit in 32-bits.
Further, JS should automatically cast integer keys to strings for objects anyway.
Date/time/timezone support would be amazing!
Description
There're two scroll bars in API docs.
Steps to Reproduce
Visit https://discord.com/developers/docs/intro
Expected Behavior
There's only one scroll bar.
Current Behavior
There're two scroll bars.
Screenshots/Videos

Client and System Information
Firefox 91.0, Windows 10
Discord always lucid ๐๐ฎ
Friend invite links are currently available on mobile and are retrievable via the standard get invite endpoint.
this isn't true (it can have expires_at), and I don't think this warning block is necessary
maybe mention that it opens the DM if you're already friends?
instead of an array full of fields, maybe an array full of rows with fields within it.
Old:
[
{
name: "field1",
value: "value1",
inline: "true"
}
]
New:
[
[
{
name: "field1",
value: "value1",
},
{
name: "field2",
value: "value2",
}
]
]
It may be messier but it gives a whole lot of flexibility on deciding which row gets which field.
Each field within a row is defaulted to have an inline, but you could add an inline parameter in the row but that wouldn't make total sense.
I believe a more elegant solution to the above suggestion, would instead be an optional content object that contains the field's data with no content being essentially a "linebreak"
[
// Row 1
{
content: {
name: "name",
value: "value"
},
inline: true
},
{
content: {
name: "name2",
value: "value2"
},
inline: true
},
// line break
{
content: null,
inline: false
},
// row 2
{
content: {...
I'd like to introduce a concept I've dubbed the "Clipboard" Button.
I picture it working similarly to the Current Link button in which you would provide a String of text that would be copied to the users clipboard whenever they clicked it.
I see this being especially useful for quickly copying useful information, especially from embeds on mobile!
As I picture, it would be implemented as a new button type into the existing action row, (again very similar to how link buttons currently...
See the problem with that is the changes of the current way to how it is handled.
having true, true, false, true would end up like:
field field
field
field
and your changes will show up as
field field
field field
Now if you were to override that, it would result in the same problem we currently have because the flexibility of getting an embed with the fields looking like:
field field
field
field field
is practically impossible.
The API can just...
Umm, but if you're smart, you can use text formatting to make an empty field, so this would help you getting your result
field field EMPTY FIELD (but with string value, for example: ** **)
field EMPTY EMPTY
field field EMPTY
So basically, there is a thing that can override it (for design purposes)
That ends up looking terrible on mobile.
Also uses up your 25 limit on fields
That ends up looking terrible on mobile.
There are gains and losses
Also uses up your 25 limit on fields
i don't understand why you need that much fields, but okay, whatever, I'm into changes to this way
The point that is being made is that it would be great if it was possible to do that without the need of having blank embed fields
The point that is being made is that it would be great if it was possible to do that without the need of having blank embed fields
But even without blank fields, this change would not fix mobile embed displaying problem
CNR on same environment
Difference is there wouldn't be a massive gap in the embed on mobile
A lot of the time, the commands that slash commands replace would have been a form in any modern setting that supported it. A lot of commands just feel like work-arounds because there aren't forms.
Description
When creating a thread with or without a starting message and providing no auto_archive_duration, this setting will default to 1440 no matter what the channel's default_auto_archive_duration is set to.
Steps to Reproduce
- Change a channel's default_auto_archive_duration to something other than 24 hours (1440)
- Create a thread on that channel through either the
/channels/{channel.id}/messages/{message.id}/threadsor the `/channels/{channel.id}/thre...
As a moderation bot developer, I do not think this is doable nor it's worth the overhead of such API because, at the end of the day, moderation relies in the messages and I feel like this would be more of a burdening punch in the head for such bots rather than helpful feature.
Threads API coverage seems to be lacking even further. /slack and /github webhook endpoints don't work with threads either. Not sure if a new issue should be created for this particular case.
@im-mortal I've updated the title/post to include the other missing endpoints
This is really important. I understand that these messages are not stored, but please give us
- a timeout option that we can send with ephemeral messages that makes the receiving client auto-dismiss it after X seconds
- the ability to delete them manually using the interaction endpoint. This could be realized by sending an event to the receiving client to inform them about this.
I have a use case where users click a button, and get an ephemeral messages like "Please check your DMs". Afte...
[discord/discord-api-docs] New comment on issue #2919: Delete Ephemeral Message through API Endpoint
Dropping my thoughts here as well:
This is really important. I understand that these messages are not stored, but please give us
- a timeout option that we can send with ephemeral messages that makes the receiving client auto-dismiss it after X seconds
- the ability to delete them manually using the interaction endpoint. This could be realized by sending an event to the receiving client to inform them about this.
I have a use case where users click a button, and get an ephemeral messa...
Description
Application managed Group DMs cannot contain messages with attachments.
Steps to Reproduce
1. Create a group DM with the gdm.join oauth2 scope.
2. Attempt to send an attachment in that new group DM in the client.
3. Observe the network tab to see the http response.
Expected Behavior
The message is sent and the attachment appears.
Current Behavior
The API returns a 403 with the following response: `{"message": "Missing Permissions", "code": 50...
I am experiencing this too. The bulk update endpoint does not currently handle context menus particularly well.
I think it may crush client(ReDOS)
Many bot developers want to know why my bot was kicked.
So I suggest a survay for bots like deleting server.
If dev can know reason of kicking, it will make community better.
Survay is like these selections:
- Not so much functions
- Commands are messy
- A lot of paywalls
- My language wasn't supported
- Bad response
Description
For https://discord.com/developers/docs/resources/guild#create-guild , one of the notes says:
This field `region` is deprecated and will be removed in v9 and is replaced by rtc_region.
... the docs are for v9 but still have the field.
Steps to Reproduce
Go to the documentation site and read.
Expected Behavior
Documentation does not document removed fields.
Current Behavior
Documentation does document removed fields.
the field hasn't been removed, #3644 fixes the note
Alright, somehow missed that... Thanks!
This endpoint is just weird, but this note made it extra confusing and doesn't even apply any more!
Here's an example payload that works, proving the note wrong:
[
{
"id": "521485215693275136",
"position": 20
}
]
re2 by Google is the solution for ReDOS
Would be better if attachments sections have separate id and it cannot be a unique one so there will not be any confusions between text input and attachment input and any other input given in the future
Agreed, I'd appreciate bot development more if this was implemented.
I made a post on the Discord feedback website, feel free to check it out: https://support.discord.com/hc/en-us/community/posts/4404790828695-Bot-removal-reasons-like-server-deletion-feedback
I agree, if such thing was implemented it would let devs improve their bots based on why they were kicked in first place. Which I see as a win for the UX and the devs themselves.
Please add one single line of text to the OAuth2 URL Generator portion
of the OAuth2 page.
To invite a bot: click "Bot" under scopes, then choose what permissions
your bot needs, and copy the generated url.
Users should not have to google & check youtube to find
out how to do such a simple thing.
bruh guy, any at least smart people can go to docs, or even understand it without docs
Discord already said that they wouldn't implement this, plus reDos is implemented in c++, and might be a hassle to add to the discord client. I think a better solution would be something like this, even if instant client side validation would be more helpful.
386c20a Update docs/resources/Channel.md - ajpalkovic
7ab5731 Document new threads field, invitable (#3600) - ajpalkovic
This is a necessity for slash commands. There are so many commands that require time input. Giveaways? Temp-mutes? Temp-bans? Temporary roles? I don't like the idea of passing dates as a string type, that's way too arbitrary and will probably result in users getting confused or mistyping something, or the bots setting the wrong timezones for the users.
Description
it would be nice to allow users to specify a Date or time delta. Discord already has a date picker (though possibly not a date & time picker) would be fantastic if we could use that.
Why This is Needed
Lots of commands schedule things it'd be very useful for those. For example I have a command to create events for a specific date. Right now users have to type out the time zone, which is super unfriendly.
Alternatives Considered
Right now we can allow...
[discord/discord-api-docs] Pull request opened: #3668 slash commands renamed to application commands
links still said slash commands and not application commands
| [Application Command Create](#DOCS_TOPICS_GATEWAY/application-command-create) | new [Application Command](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/) was created |
| [Application Command Update](#DOCS_TOPICS_GATEWAY/application-command-update) | [Application Command](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/) was updated |
| [Application Command Delete](#DOCS_TOPIC...
| [Interaction Create](#DOCS_TOPICS_GATEWAY/interaction-create) | user used an interaction, such as an [Application Command](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/) |
Added banner field which has a image hash if the user has a banner, or null otherwise.
Added banner_color and accent_color fields, which has hex string and number representation of user's Profile Color override. otherwise it's null.
banner_color is the hex string one, and accent_color is the number representation one.
duplicate of #3448, and banner_color is deprecated and will be removed
0a0e45d Slash commands renamed to application commands ... - AxizY
699f93a Fix DOCS_INTERACTIONS_SLASH_COMMANDS link (#3661) - sevenc-nanashi
85da043 Add max concurrent prune requests error (#3655) - Jupith
1550f9a Move bulk overwrite global cmds endpoint above ... - advaith1
0d954e6 Document banner & accent color (#3448) - RedDaedalus
Can you expand on what you're seeing? Are you saying you aren't expecting a scrollbar on the navigation sidebar and the main message panel?
Description
When creating new context menu command with description field specified:
code: 'APPLICATION_COMMAND_CONTEXT_MENU_DESCRIPTION_INVALID'
message: 'Context menu commands cannot have description'
Expected Behavior
Use context menu command description to override it's system name in UI.
Current Behavior
API responding an error.
this is intended functionality, logical, and documented (in danger boxes too).
you should just make the name human-readable...
This has a lot of disadvanages:
- 32 chars is way less than desired.
- Handling such names in code is a pain.
- Gets even worse with UTF-8 because English is not the only language existing.
I agree with @HanabishiRecca here - having separation between the UI string and the system identifier is highly desirable, especially considering the various limitations imposed on them.
Going beyond just the menu entries themselves, a split like this would be nigh required if Discord implements a way to nest context menu options, since they'd likely be sharing groups with other command types.
Completely agree, the fact that the names of application commands are now not unique per scope when the description tag is sat there empty feels like a major oversight. It would have been much more ergonomic if the name was used internally by us and the description was what was shown to the user. I don't understand why they went with this system.
Now that I've played with context commands, there's another caveat to this issue - casing is normalized for context command names, which is extremely undesirable if it's meant to be a UI string. What I mean by this is that if I have a name that is, say "Do thing", it becomes normalized to "do thing", which is just plainly inconsistent with Discord's own casing of other context menu items.
context menu commands can have capital letters (and many do) so I'm not sure what you mean?



A way of displaying dates in a user's timezone would also be a fantastic pairing. Embed footers at the moment are significantly lacking as they only display the date instead of date + time.
Isn't that just this? https://discord.com/developers/docs/reference#message-formatting-timestamp-styles
Users should not have to google & check youtube to find out how to do such a simple thing.
You're right, they shouldn't have to. If you're able to develop something, you should know how to infer simple things.
Discord recently introduced in-app OAuth Support including Bot invites.
Many larger bots use custom Domains which redirect to Discords OAuth. Unfortunately these aren't supported yet.
It would be useful if any 301 redirecting to Discords OAuth clicked in the App would start the in-app OAuth flow.
A way of displaying dates in a user's timezone would also be a fantastic pairing. Embed footers at the moment are significantly lacking as they only display the date instead of date + time.
Isn't that just this? https://discord.com/developers/docs/reference#message-formatting-timestamp-styles
Yes, this was posted 6 months ago.
Has this topic been discussed internally since this issue/thread appeared?
It seems that no one of the Discord team feels responsible for this or does not want that "feature" to happen.
Would be nice to know if this is considered to be added or never to come.
Hi, can you add some more transparency on boosts added/removed?
Maybe an event for boost added/removed? OR some options to see how many boosts any member has and sine when they're boosting a particular server?
Right now there is literally no way to see if someone removes 1 out of 2 or more boosts and bots have to see number of boosts from message content (another deal breaker) maybe that's why there are very few bots that can do stuff related to boosts (like BoosterBot).
This makes sense, especially for bots that deal with server boosts.
Bots should already be able to get since when a member boosts a server. Just requires the member intent iirc.
Bots should already be able to get since when a member boosts a server. Just requires the member intent iirc.
Yes, but events or any other way of knowing if someone added or removed boosts was the main concern.
Question here would be, how discord should handle this and how the info should be forwarded.
Like removing a bot is the same as kicking a member.
And for the form eould I have those suggestions:
- Commands/Features don't work
- Doesn't have the advertised features
- Bot shows as offline
- Spams chat/Unwanted responses
- Bot is no longer needed
- Other
Perhaps dev could add their own options to select.
We won't be unwrapping redirects, but stay tuned for future updates in this space.
We won't be unwrapping redirects, but stay tuned for future updates in this space.
Is a handoff similar to how invite links work a possibility? (i.e. click link, browser opens, the website notices you have discord open and the app pops to the front with the dialog)
Are you zoomed in perhaps? I'm not seeing this behavior on macOS, will ask around for people on Windows
Looks like you're likely zoomed out - try hitting ctrl+0
Are you zoomed in perhaps? I'm not seeing this behavior on macOS, will ask around for people on Windows
@IanMitchell It happens when you go to <90% zoom

I'm gonna close this as a won't fix, but when we eventually redo the docs website we'll try to make it more responsive than it is now ๐
2ed2414 Document upcoming changes to threads permissions - ajpalkovic
Hey all, this is still in flux, but tentatively we are planning on 9/7 to change the behavior of how thread permissions work, and will provide a way for servers to make the switch early if they want.
A new permission is also being added:
Three new permission bits have been added, `CREATE_PUBLIC_THREADS`, `CREATE_PRIVATE_THREADS`, and `SEND_MESSAGES_IN_THREADS`. Note: The `SEND_MESSAGES` has no effect in threads, users must have `SEND_MESSAGES_IN_THREADS` to talk in a thread.
f69cf69 Update docs/topics/Threads.md - ajpalkovic
26850f2 Update docs/Change_Log.md - ajpalkovic
I'm assuming users will still need Use X Threads to create the thread right?
I'm not sure how to answer that question, since the point of this PR is to "remove" those permissions :)

Sorry, that's me being sleepy :P

I was thinking dev portal.
Bumping this because it would be an astronomical improvement to the current system where we try and guess what we got wrong and when.
Three new permission bits have been added, `CREATE_PUBLIC_THREADS`, `CREATE_PRIVATE_THREADS`, and `SEND_MESSAGES_IN_THREADS`. Note: `SEND_MESSAGES` has no effect in threads, users must have `SEND_MESSAGES_IN_THREADS` to talk in a thread.
Threads generally inherit permissions from the parent channel. If you can add reactions in the parent channel, you can do that in a thread as well.
Description
Disabled components' custom_id is checked for duplication with other components' custom_id, meanwhile it should not be (and was not before either).
Steps to Reproduce
Create a message with at least 2 components sharing the same custom_id. All or all except one should be disabled.
Expected Behavior
The disabled components' custom_id is ignored by the API when checking for duplication.
Current Behavior
We receive: 400 Bad Request
Error code: 5...
Don't forget to make sure that <18 developers can't use this feature!
Reading the docs, it doesnโt seem like the duplicate check is supposed to be disabled when the button is. The duplicate check was a recent breaking change added. I think itโs working as intended.
Seeing that attachments will be an option for slash-commands, are there any plans to make bots able to put videos in embeds instead of just images? It has been a requested feature for quite some time and I'm thinking this would be a good opportunity to add it. Especially since it's already possible with Webhooks. It would greatly improve the usability of a lot of bots. Right now people can only send a video with embeds below it.
- "Send Messages in Threads", which will allow users to send a message in a thread. The "Send Messages" permission will have no effect in threads, users **must** have "Send Messages in Threads" to send a message in a thread. This allows for setups where a user can participate in a thread, but cannot send a message in the parent channel (like a thread off an announcement post).
There is message and user context menu/comnand, but role missing
Description
When you try to get the reactions of a message from the context message menu, is the reaction list always empty.
Steps to Reproduce
- Create a new context menu entry for messages
- Try to get the reactions from the targeted message.
Expected Behavior
It should show a full list with all reactions.
Current Behavior
The list is always empty.
Description
The VIEW_CHANNEL permission has no effects on bots.
Steps to Reproduce
- Create a channel where the bot don't have the
VIEW_CHANNELpermission. - Make the bot list all channels of the guild.
- The channel is visible as well as all its metadata.
Here is a quick example with Discord.js :
import {Client, TextChannel} from 'discord.js'
const token = /* BOT TOKEN HERE */;
const guildId = /* GUILD ID HERE */;
const privateChannelId = /* CHANNE...
The "view channel" permission is more accurately represented in the client as "read messages". For the record, the above is true of user accounts as well; a client mod can enable seeing the name and topic of channels that would otherwise be hidden
Not having view channel means that events for messages belonging in that channel will not get broadcast. It doesn't restrict you from seeing the data itself. You can actually test this by mentioning the channel from an account that can see the channel (the channel name would still resolve, you just won't be able to click on it)
OK I get it. However, the channel description should not be visible since it can contains private information. Is there a reason for it to be visible?
OK I get it. However, the channel description should not be visible since it can contains private information. Is there a reason for it to be visible?
Pretty sure I've seen this exact topic brought up many times, and it seems to always be met with "Channel names/descriptions shouldn't be used to store private information" (or something along those lines anyways...)
Because it happens to be part of the "data" I mentioned. It's also more work if you need to redact certain fields in the channel object just because the client isn't supposed to see it and include it when it's supposed to see it
It would be really helpful if an announcement channel publishes notices of API deploys, as long as they have changes. This way, we roughly know when a bug gets fixed (yes I know deploys take time but a rough estimate is helpful), and when breaking changes are introduced to the API. Even if the change isn't breaking, it's still helpful to know it so we can prepare.
It's a shame that channel description can't be used to store private information. For example, I would have liked to add an unlisted link reserved for users in that specific channel.
That being said, if this is a feature, then it should be clear that all channels name and description must be considered public. Because for now, it's really misleading and can trick users to leak private information:
Allow members to view this channel by default. Disabling this for @everyone will make th...
Hey, thanks for reporting this! This bug popped up from an experiment that we disabled in affected locales last week, and a fixed version went out a couple days ago. Please let me know if you're continuing to run into issues.
This should be fixed now or in the next release <3
Thanks for the feedback, but this is not a level of transparency we are able to accommodate at this time. We ship to production multiple times per day across various services and teams. The noise of such releases is not generally actionable to third party developers, and the majority of deploys do not cause noticeable issues. We do try to minimize bugs by deploying code to production slowly and monitoring for issues, and our teams have rollout plans to ensure if issues are encountered we roll...
Thanks for the feedback, but this is not a level of transparency we are able to accommodate at this time. We ship to production multiple times per day across various services and teams. The noise of such releases is not generally actionable to third party developers, and the majority of deploys do not cause noticeable issues. We do try to minimize bugs by deploying code to production slowly and monitoring for issues, and our teams have rollout plans to ensure if issues are encountered we roll...
This exact issue has been closed as a won't fix many times.
But although this can't be fixed by the API side, it wouldn't hurt to forward this to the appropriate team to add a notice in the channel settings under the channel's description field to say that although the channel is hidden, the description could technically be retrieved by users who don't have access to it, therefore no private data should be stored in it.
got it, thanks for letting me know
I have no concrete timeline to give but this is something we do plan to fix in the near-to-mid future.
OK, so I guess that their is no need to forward this issue to the appropriate team then. Should we keep this issue open until it's fixed?
Hello, this is an idea I came up after migrating some of my commands to slash commands.
I am using webhooks interactions and do not have a cache to works with and some of my commands provide a "random" option to pick up a random guild member (often related to social interactions and fun commands).
Could it be possible to have a parameter when fetching/listing/searching guild members so that we can retrieve a random one?
Thanks
I'd like to mention, threads do not follow this behavior, and as far as I can tell, that is a good starting point for working towards what snek mentioned.
[discord/discord-api-docs] New comment on discussion #3679: Add a way to get a random guild member\.
I honestly don't really see this becoming a feature, however if I may give a suggestion:
I think your best way of achieving this would be to pick a random date between when the guild was created and the current date, using that to generate a (nonexistent) user ID and then using that in the fetch guild members endpoint as either a 'before' or 'after' option. It's not perfect (especially for guilds with growth spikes) but I suspect it's the closest you'll be able to get without fetching the ...
[discord/discord-api-docs] New comment on discussion #3679: Add a way to get a random guild member\.
Most guilds have members that created an account before the guild was created
[discord/discord-api-docs] New comment on discussion #3679: Add a way to get a random guild member\.
No idea how I missed that. My bad. Disregard my suggestion haha
[discord/discord-api-docs] New comment on discussion #3679: Add a way to get a random guild member\.
Still could work with the Discord creation date timestamp. Appreciate your suggestion!
Would have been useful to know that the timestamp was not referring to the number of ms past the unix epoch!
Hello. It would be cool if you could color parts of a message a bot sends. I know that you could use codeblocks, but they arenโt super flexible. It would be cool if you could have the ability to color parts of a message, just like the timestamp works.
Timestamps currently look like this: , for example . What if you could do the same for coloring text? Discord could add a couple colors we can choose from, just like the buttons, so the messages stay relative clean.
An example could be t...
Would indeed be cool, but what's the practical use of this?
Aside from that it's cool, it could help making things look better, like categories in help commands, or for make error messages red, success messages green, just making everything more clear.
In this case Russian names of commands is not recognized but English is

As far as the documentation goes, english is the only supported language for application commands right now. Discord has said slash commands should match ^[\w-]{1,32}$, and this can match non english alphabets depending on regex engine and flags. Discord haven't stated what regex engine nor what flags they're using so who knows if being able to create commands you cannot select is a client issue or an api bug.
In the dev Q&A they suggested they're looking at localization for applicat...
we support characters outside of the latin alphabet. this is just a bug.
You probably need to state that somewhere in the docs too because \w does not on pcre without the u flag, furthermore \w doesn't seem to match non-latin characters on the ecmascript regex engine at all.
As far as the documentation goes, english is the only supported language for application commands right now. Discord has said slash commands should match
^[\w-]{1,32}$, and this can match non english alphabets depending on regex engine and flags. Discord haven't stated what regex engine nor what flags they're using so who knows if being able to create commands you cannot select is a client issue or an api bug.In the dev Q&A they suggested they're looking at localization ...
316cfe1 Fix Paragraph Parsing - IanMitchell
I guess spaces matter now
ad79f7a Fix Paragraph Parsing (#3683) - IanMitchell
08b8055 Update docs/topics/Threads.md - ajpalkovic
53da9ae Update docs/topics/Threads.md - ajpalkovic
10cc7b2 Update docs/Change_Log.md - ajpalkovic
Yeah, I think this is ok, all of our clients specify the value explicitly, it's easier that way
Yeah, I think this is ok, all of our clients specify the value explicitly, it's easier that way
How is this ok? The value is optional on the API and it's defaulting to some random value instead of the one the user chose on that channel. I don't see how this isn't a bug
I sort of disagree with this sentence, I think it represents a misunderstanding of that message.
There are two messages, the one in the thread is a pointer to the one outside the thread
type=21 can contain mentions though:
mentions=(
[starter_message.author.id]
if starter_message.author
and not starter_message.author.bot
and starter_message.author.id != creator.id
...
A message of type=1 can have this too though, no? Because it could just have an attachment for example
some random value
Come on now :) It's defaulting to 24 hours, the same value that is the default in the product.
The field is documented as required though, no? So maybe the real thing is to just remove the default, it was probably accidentally allowed to be optional.
It is documented as required but I made this issue because of a PR I made to document it as optional exactly because of this.
On the Discord app when you create a thread, the first auto archive duration value that you see is the channel default, so it would make sense for the API to behave in the same way imo
If a user has permission to create public threads, but not send messages in threads, would they still be able to create a thread?
Yup!
From the changelog:
- "Use Public Threads" is becoming "Create Public Threads", which will allow users to create threads in a channel, even if they cannot send messages in that channel
Ah! Reading is hard ๐ข Thank you.
So they'd only be able to create a thread, but not sent messages in the thread after they create it?
You could configure it that way if you wanted. idk why you would. But you could :)
There's a separate permission for sending in threads, "send messages in threads", so I would suspect most places would grant both of those
It's similar to how you can have manage messages, but not send messages. It's weird, but also much simpler this way.
Gotcha. So the option to create a thread with a starter message would not be possible, as that would still require sending a message in the thread?

Both will still work
It's true it lets you send a message, but I'd argue that is part of the "act of creating a thread", so still covered by the Create Threads bit
Perfect, thank you for clarifying all this!
The correct link is already being used in line 22.
Like I said above, here you can see how the client also uses the default auto archive value, which is how I think the API should behave as well @ajpalkovic
https://user-images.githubusercontent.com/38259440/130155551-1fbf7567-bede-4984-8908-fde07c2c4450.mp4
Any updates on this? Apparently this is by design although I really hope it's not the case.
Changes the wording surrounding command names to match observed behaviour
w.r.t upper case characters with case folding rules that produce other
upper case characters, and characters for which case makes no sense.
Changes the wording so that bulk overwrites cannot be confused for a bulk
itemwise overwrite, which they are not.
I meant that it will be empty regardless of whether or not there's actually content
I just want to preface this by saying if this is a duplicate of another discussion, I apologize. The closest thing I could find was this one.
As it stands right now, application commands (Slash commands, Context menus) have a very primitive permissions system.
With slash commands (and to an extent context menus) you're limited to either setting it to be disabled globally, or updating the command retroactively to allow ...
I forgot to mention that this is based on the fact that many pre-existing, text-based command frameworks offer some sort of permission-based restriction of commands, but with application commands, the UI presented for disallowed commands is far superior than giving the illusion a command can be used, only to send an error message when that command is attempted.
Permissions are mentioned in the "Moderation" section of the api plan announcement. https://github.com/discord/discord-api-docs/discussions/3581
afaik that's as much detail as we have so far
Yeah I was informed on Discord that like normal I can't read
Permissions are mentioned in the "Moderation" section of the api plan announcement. https://github.com/discord/discord-api-docs/discussions/3581
afaik that's as much detail as we have so far
It would be great if only the available slash commands were listed in the popup after typing /. Currently every single slash command is listed regardless of what's enabled or disabled, which will cause the bot to hang on the command with "[XYZ bot] is thinking..." because it can't respond because it's disabled through its own settings.
Plus slash commands shouldn't be used in channels the bot can't see. Currently if a bot can't view a certain channel will still respond to slash commands pr...
Personally, I find this wording is less readable than the existing one. The regular expression is, though not perfectly accurate, far more expressive than the suggested change.
Description
The GET /sticker/{id} endpoint returns a 401 Unauthorized when not providing a valid bot token, which is inconsistent with GET /sticker-packs (which returns even more information) as it doesn't require any type of authentication.
Steps to Reproduce
Make requests to both endpoints stated above with and without authorization
Expected Behavior
Either both endpoints require authorization or nether do
Current Behavior
One endpoint requires authorizat...
I'm guessing that this is just another thing that was dropped into suggestion hell.
The reason I have removed the regex is because it's ambiguous without more information. Regexes are implementation dependent and not unicode aware by default in some engines.
This description is more accurate in these cases because, by providing the category of character or the character itself, people can construct matching rules to suit their system. I for one use regex alternatives and this documentation is much more informative.
Secondly "lowercase matching this regex" is wrong. Y...
underscore charater
Typo on character.
If there is a lowercase variant of any of the letters you must use those, characters with no lowercase variants and/or uncased letters are still allowed.
Change , to ; or split to a new sentence.
Atm it looks like presence is a guaranteed object, this should clear it up.
Reference: offline members added to a thread will have their presence set to null
Hello. Looking at making the Message Content a privileged intent, developers need a good way to ask users for input. I'm making a game in discord using embeds, custom emojis and buttons and I allow users to create worlds. The user needs to name their world. It would be cool if we could ask users for text inputs via a component, just like the select menu component. When discord announced Bot Developer Verification, they hinted to a feature like this. I attached a screenshot under here.

I edited html, and it looks good.
Maybe it can be used like this:

Or

Thanks for your support! The cool thing is that by adding colors, it's very easy to make warning messages, for example with emojis!
I've been using just empheral messages and it works fine for most cases. You can use emoji, embeds and whatnot just fine.

Description
The 15-minute timestamp check when rendering the loading message is broken on iOS; it always shows the "This interaction failed" status instead of the "Bot is thinking" status, whether the message is old or was just sent.
Steps to Reproduce
- Respond to an interaction with type 5 (defer)
- Look at the sent message on iOS
Expected Behavior
It shows the "Bot is thinking" status if the message is less than 15 mins old, and the "This interaction failed" status ...
Can Reproduce on App: 89.0 (27389) ptb; Manifest: N/A; Build Override: N/A; Device: iPhone12,3 OS 14.7.1; (Testflight v89.0 (27389) iPhone 11 Pro, iOS 14.7.1)
The whole point is to tell not only the user, but also discord that a command failed. Although an emoji/embed works, it's not ideal.
It's like having an error message in a web app colored blue when other error messages are colored red in your app, it works, but it could be improved upon.
Discussed in https://github.com/discord/discord-api-docs/discussions/3581
Originally posted by typpo August 4, 2021
Hey all, an update on plans for the API. We've reviewed a lot of your survey responses and messages in DDevs #message-intent. We appreciate your candid feedback and want to offer a peek into more interactions improvements the team is working on.
Developer improvements
- [ ] New option types
- [x] Floating-point number
- [ ] Attachment
- [ ] Auto...
I mean sure but this means you need to store more info on discord with info about the error (which as far as I know doesn't exist) and update all the clients to add this
Don't forget to make sure that <18 developers can't use this feature!
that seems kinda stupid to me to make creating nsfw commands itself requires you to be a specific age
While this is an interesting idea, it should be remembered that Users with a colour-blindness wouldn't be able to perceive certain colours or combinations of colours. Thus, even if this were added by Discord, it shouldn't be relied on for pointing out or highlighting different things. Just food for thought :)
@Flying-Dutchman-Dev
If you enable community, set a description and disable community then, then the description is still in the guild object but you can't set a description without having the community feature.
I agree(being colorblind, im lucky to be able to see them), but it's useful nonetheless for example some bots use "diff" code type inside code blocks to display red and green, I don't see why this is much different :)
Correct, but the issue still stands that the docs say "description of a community guild" which would be untrue in the case you just described.
The "this bot is private" error message was recently changed to "this integration is private".
This is incorrect and does not reflect the fact that the private toggle is on the "bot" page of the dev dashboard, nor that it is labeled "Public bot" and not "public integration". Please revert this change.

Very simple, when developer mode is enabled allow right clicking commands in the explorer to copy their IDs
Should be changed to 'Event' instead of '#vent'
Is it intended that most of these parameters are marked as not optional?
It's already been requested a lot, but we haven't gotten much info from the team other than a "concept" (not the one you featured, the team decided components won't be in embeds, so that concept will never happen)
As long as the client keeps accessibility settings in mind, this should be fine. Discord already uses colored text, it should know how to handle everyone, including colorblind users.
I'm just guessing here but these two headings seem to be swapped by mistake ๐
I understand that the team didn't put components in embeds, I just mean it as a concept how it could look like. I created a much better concept with the dev tools.

You don't need to edit all params at once. If anything they should all be optional imo
since it's a PATCH endpoint, ti should have the standard "all params are optional" info box
Thank you everyone for the reviews. I will mark this as a draft again and will try to get to these as soon as possible.
Why is this on its own page instead of being under the Guild page?
@ImRodry because of the /guild-events/... routes
looks like bots cant use this endpoint
Only if you pass an ID afterwards
@ImRodry because of the /guild-events/... routes
/guilds/{guild_id}/events also seems to exist though since I get Missing Access on that, do you know what that's for?
yes, that is a separate endpoint documented below
it lists the guild's events (as you would expect), it's documented
guild events are currently only for partnered (and other select) servers though
Yeah thatโs what I guessed they did, but then whatโs the difference between that and guild-events?
there is no guild-events endpoint that takes a guild, so I'm not sure what you're asking
Yeah it takes an event id but canโt you just do that with the guilds endpoint
I opted for adding the info box and leaving out any ? at the end of the names.
From what i know, GET /sticker/{id} can be used to obtain both the built in stickers and guild specific stickers. whereas GET /sticker-packs is only to fetch discord's built in stickers. It does make sense to have authorization for the first endpoint and not have auth for the second
Lol, I made that same exact concept. Does clicking the menu crash your client?
Idk, I just took a select component and changed it. That only goes to show how 'simple' it is.
Currently, it is not possible to get a command ID through the client. It would be useful if, when developer mode is enabled, commands in the command list and in messages can be right-clicked so the ID can be copied in the client.
I haven't realized the second can be used for guild emojis too as there was another specific endpoint for it. Will close
Description
When sending [] to Batch Edit Application Command Permissions, the permissions get cleared in the API, but the gateway still sends the permissions to the client
This is not client cache: the issue persists after reloading and it is visible in the gateway event sent to the client
Steps to Reproduce
- Set command permissions so you cannot use them
2...
Description
When creating a new private thread and setting invitable to false in the payload, the created thread has invitable set to true.
Steps to Reproduce
- Create a private thread
- In the payload set
invitable: false
Expected Behavior
The created thread has thread_metadata.invitable set to false
Current Behavior
The created thread has thread_metadata.invitable set to true
Screenshots/Videos
(I know, I know...
well the error is correct in that it was changed to preventing authorizing applications.commands too, not just adding the bot. the real issue here is how it is presented in the dev portal
Right now it seems that the limit of slashcommands per bot is 100. it would be lovely if this would be higher to for example 200 or 250 since alot of bigger bots also are shifting to slash only.
Q: Will the limit be raised for slash commands? I already have more commands than the limit and plan to add more.
There are currently no plans to allow more than 100 global and 100 guild commands, but we know this is a common request. As a reminder, you also have access to 25 subcommand gro...
| entity_type | [entity type](#DOCS_RESOURCES_GUILD_EVENT/guild-event-object-guild-event-entity-types) | the entity type of the event |
| status | [event status](#DOCS_RESOURCES_GUILD_EVENT/guild-event-object-guild-event-status) | the status of the event |
###### Guild Event Entity Types
Description
When trying to fill a optional option from a slash command with only one optional option, it will not get automatically focused as it used to do like IOS or the Desktop Client.
Option will also not be focused if the command has both a required and optional option.
Steps to Reproduce
- Type fully any slash command with a single optional option
(STRING | INTEGER | USER | CHANNEL | ROLE | MENTIONABLE | NUMBER) - Type anything after to try to fill the option
**Ex...
Since an event is not always going to be in the 'scheduled' state.
Discord internally calls them Guild Scheduled * which was why I made that change, but if it's a change people want then I can revert it.
Description
I'm authenticating users in my website via Discord and the flow is the following:
/login page --> redirect to discord oauth2 --> redirect to /callback route of my site
90% of the times the users logs in correctly but 10% of the times I get a 401 error when trying to retrieve the user data with the /users/@me endpoint. See code below
Steps to Reproduce
Here is all my code:
frontend
// /login route of my website, js code
sessionStorage.setItem('callb...
I'd love to have a custom option for on-message interactions, as it would allow us to much more easily get and use user input.
For example, right now If I want to edit a message based on user input, there's a couple ways to do it. Either get the message somehow by forcing the user to run a slash command with message ID and channel, then running a get message function, that returns the message you want to edit. That's not super user friendly, especially if they don't know how to grab the me...
I can reproduce this.
System: Samsung Galaxy S10.
Client: Discord Canary v89.7 Alpha (89207).
I'm a little confused about what you mean by storing info on discord, since error messages would have to be ephemeral (you don't want everybody knowing that you made a typo in your command), and therefore nothing should be stored on discord, and client updates shouldn't hinder adding a new feature. Also, this isn't about error handling it is about command argument validation, ie making sure that the user enters something that the bot can understand
This is currently holding me back from going too deep with threads.
I love the potential threads provide, but as stated above, creating a thread in a channel intended to be read only isn't super viable right now with the thread created message.
Public channels are also affected, as not all use cases for threads require everyone in the channel to be made aware a new thread was created. I'm all for less noise!
Now, I know that this suggestion would be a burden to implement on discord, but hear me out:
Currently if discord bots want to listen for update events and also do an action with the old information they have to cache all of the old information themselves. This is not an issue for user update, guild update, member update, channel update, thread update because that information is already cached anyway as it's required for operational purposes and the amount of those objects is pale by compa...
This can all be handled by the bot itself with better cache management, though. I'd argue that actions occuring on the message update event that require the previous version of that message are absurdly rare. So, you're asking Discord to re-engineer a process in a very costly way, to use up additional bandwidth for everyone to basically double the size of all message update events received, for something that serves a very limited purpose and can already be handled by better cache management ...
additional bandwidth for everyone
This is untrue since message intents will not contain any user data, and you can simply turn the events off. It is almost impossible to handle message updates with cache if your bot just started and has an empty cache, you also cannot expect bots to keep track of all messages ever sent in a server. Your "cache management" solution is unfeasible in a lot of cases that you don't seem to consider.
This applies more to services that completely run using outgoing webhooks, but I'd love to see a dashboard where I can see how many Interactions failed and more importantly, why.
Right now, if an Interaction fails for some reason, it's blind debugging.
I really like the idea. Sometimes interactions fail but I don't know why because I can't reproduce it and no error is logged
To clarify, is this about receiving the message object before it was updated or receiving a full message object on MESSAGE_UPDATE?
It is about also receiving the message object/partial message object with the contents before it was updated.
I can only agree with MrAugu on that topic. It definitly makes more sense this way even if it means an increased payload size.
Another possible solution in my opinion is (like Augu mentioned above) to only receive the modified fields of the old message so you can compare it to the new message. This would result in a lower payload size so Discord would also be satisfied :) .
Using partials doesn't help since you need to fetch the message and since the messageId of oldMessage and newMess...
About an hour ago the CDN started blocking requests that don't specify an User-Agent header. That's fine and all, but it wasn't announced anywhere. It wasn't possible for devs to update their bots for this change, and it still is not possible now without trying to figure out themselves what the issue is.
This is not okay! Please announce your breaking changes!
This is unacceptable. I have better things to be doing at midnight than hot-fixing 403 errors because Discord couldn't warn us ahead of time.
[discord/discord-api-docs] New comment on pull request #3709: Add: Add hikari to community resources
I know that only owner can PR, so I close it.
Sorry.
Sorry about that. Our infrastructure team updated a firewall rule to prevent some new abuse we were seeing, and unintentionally caused requests without a User-Agent header to become blocked. They have since reverted this and this issue is now resolved.
Sorry about that. Our infrastructure team updated a firewall rule to prevent some new abuse we were seeing, and unintentionally caused requests without a User-Agent header to become blocked. They have since reverted this and this issue is now resolved.
Could fix your attitude for one
Description
Add COMMAND Application Command option type which only accepts global/guild interaction commands of the same bot.
Why This is Needed
Commands for disabling commands are very common in bots today, but there is not a proper way to inform the user what they can or cannot input so by adding a option like that will improve UX
Alternatives Considered
Use String option type and parse and validate it on our side.
Don't forget the audit log part <3
It would be great if there is a new permission that lets the user move messages from a channel to a thread.
Many people are still unaware of threads in my server even though we tell them everytime, so conversations become confusing quick. It would be great if we can move the messages and let the participants know that they can continue in the thread.
If this did happen, though unlikely, I would moreso like to see threads created off the nudge when replying to a reply chain move the messages in said chain to the thread. It is technically possible to do this with a bot right now, but the UX is not great and reversing the reply chain is not fun.
I would like to know if it is possible to increase the maximum number of elections? 25 is a very small value.
Now you can achieve more by dividing your list (for example, from 150 values) into 6 command options with a choice of 25 in each, but this is not user-friendly.
or idk, maybe the API response can be a bit more, eh, descriptive? for now the api response after the interaction has failed just contains your payload and the interaction id (cannot use it to trace down the error or for that matter, where the slash command was ran) and the interaction token (same goes for this, cannot use it in debugging), so i guess it would be a bit more, eh, good? if they kind of, maybe add the guild id or the command id in the API response. I also don't really see how a...
In the case of responing to an outgoing webhook, you're not getting any feedback at all because you are responding to a request from Discord
@night I (and several others) seem to be getting 403s from the CDN on Desktop Canary 94572 (ee28662) when the client tries to fetch some user or server banners. Is this possibly a side effect from some firewall changes again?
Hi,
It would be really awesome if discord could support sending msgpack instead of json if the client want it.
(Would be optional to avoid breaking existing implementation of the api)
MessagePack in a lot of languages is faster, lightweight and doesn't need a gzip compression. That would probably increase performance for both client and server.
In terms of sizes, it would be the same than gzip compressed json, but that requires one more step for serialization/deserialization. And that ...
[discord/discord-api-docs] Issue opened: #3714 CDN is erroring with 403 status code in banner routes
Description
CDN is returning 403 errors when loading user or server banners.
Steps to Reproduce
Make your client load a user or server banner (opening a user profile or server for which you don't have the banner cached).
Expected Behavior
The banner loads.
Current Behavior
Banner doesn't load and network request shows 403 response from CDN.
Screenshots/Videos
N/A
Client and System Information
Canary 94572 (ee28662) Host 1.0.37 Windows...
Regarding possibly affected routes:

User and Message Commands are convenient ways of interacting with a bot but without options they are quite limited. I think options could be added using a dialog box (like ban and kick). Another solution which is more flexible would be to allow the creation of custom dialog boxes after the user does a interaction.

Hoping for an update on this? Theres hardly been any word from Discord about support for ARM macs at all, client or SDK. Eventually Rosetta 2 will be removed from Mac OS and then there will be game which can not create a native binary without removing discord (assuming they haven't released a native SDK yet)
Just realized this is a duplicate of #3622 https://github.com/discord/discord-api-docs/discussions/3622
The issue with server banners and per-guild user avatars is related to unexpected configuration changes made to our edge routing. This is fixed already, and we're investigating the issue with our service provider.
Don't forget the audit log part <3
Yes thank you. If anyone has more info about the audit log events for guild events please comment. (and sku and metadata too)
Don't forget the audit log part <3
Yes thank you. If anyone has more info about the audit log events for guild events please comment. (and sku and metadata too)
Till yet I found nothing but I keep my eyes open
Same @night
Server ID: 555084380775907359
Channel ID: 879163385227378698
If you are experiencing these problems you will need to contact support. They should have a process to deal with these, and you can mention to them that you have a stuck channel.
Sent when a guild event is created. The inner payload is a [Guild Event](#DOCS_RESOURCES_GUILD_EVENT/guild-event-object) object.
This and the Update and Delete descriptions should be consistent with the others.
I believe this is an array of snowflake?
956c202 Clarify extra field types (#3688) - bsian03
It would be great if you could send the whole message object for the MESSAGE_UPDATE and MESSAGE_DELETE if the message was sent less than 24 hours ago.
During internal errors requests, like adding a member to a guild, may be retried. Please refer to our note in the documentation concerning eventual consistency: https://discord.com/developers/docs/reference#consistency
I think this is pretty unlikely to happen. Effectively what you're asking for is to create public chats that no one knows about, and I don't hiding discussion is a good thing to have. On top of that the only way for folks to discover there is new content here is to go to the threads popout in the top right, which really just isn't the right UI for this. There'd be no way for the parent channel to get marked unread either so you know there's something new!
Description
When using the UI to create an event if you press the "Create Event" button it fires the API request POST /guilds/{id}/events however that returns a 404 even though the UI shows the option. I believe this is an error with the API where its not accepting events. However it could be an issue with the UI where it is showing events when it shouldn't?
Steps to Reproduce
- Find a guild where you can see "Events" option in the channel list
- Open the devtools and watch ...
create public chats that no one knows
No, I'm trying to create chats only relevant people are made aware of the existence of, being the user and the support team in my usecase. I don't need others to "discover" the ticket, especially in a support server where most people are here to get help, not to help.
There'd be no way for the parent channel to get marked unread either so you know there's something new!
I'm sorry but I don't exactly get what you mean here, my issue is the unrea...
I am developing a new "framework" around slashcommands to make the DX with discord.js a lot better, one thing I have noticed is you can't seem to set the slash command permissions when you set the slashcommands, which is creating a lot of extra http requests and extra work - would be great to be able to set the permissions for a slash command at the same time as creating it
Also if I am not mistaken the way slash commands are now it can create a security problem. If I want everyone except ...
Fair enough. Sounds a lot like private threads though :)
Noooot really, I don't want the unread but sometimes there's no staff online so the community helps itself yknow.. private threads would prevent that. Don't take this as a complaint, but you know they're paywalled. Support servers struggle to have a good retention and sadly the same thing applies with boosting, level 1's possible, level 2's almost impossible ๐
That's why I made the feature request at first. I know a ghost unread isn't the end of the world, but as yall like to mention, "it...
This just means the guild doesnt have the experiment enabled on it, atm its only available to partnered guilds.
- The admin of the server can restrict which roles are able to use slash commands.
- If your bot is admin you can set that yourself before initializing the command.
- You can specify
default_permission: falseon the application command structure when creating the command. per the Discord API Documentation so that it cant be used until you send the [permissio...
set the permissions for a slash command at the same time as creating it
this wouldn't really make sense, since commands can be global but permissions are per-guild
set the permissions for a slash command at the same time as creating it
this wouldn't really make sense, since commands can be global but permissions are per-guild
like channels that user can't manage or generally any input that cannot be filtered by slash command arguments right now
All channel inputs in slash commands are validated by the API itself, you don't need to worry about the user sending in an invalid channel.
Alright so we can apply for intents if we NSFW commands right?
I don't think so considering NSFW Slash Commands are in the works.
@bdanklin that solves the security thing, I wasn't aware that was the behaviour of default permissio
@advaith1 You could still provide a object that had the permissions for each guild
Currently there is no information regarding the way the community resources section of the docs is managed. Now that the bot api is changing quite rapidly, in preparation for the message intent, it is likely that the ecosystem will change a bit and it would be a good idea to add some guidelines for developers.
As it stands there are at least four libraries on the list whose status may need to be reviewed and amongst those there are libraries that have been archived, namely disco and Sword...
Finally, there are benefits to being listed that make development of new features easier for those libraries.
I don't think this is true. Even the basic "does it increase traffic to our library?" can't be answered since they use noreferrer links so GitHub can't track traffic from the docs page.
I'm not sure exactly how this works or if everyone is given the same information. With that being said, developers whose libraries ar...
Thank you for clarifying. I'd just like things to feel a bit less clandestine, especially when there's going to be more features added. If that is just related to the discord developers server itself and not part of the stuff connected to community resources then I'm not sure where to put feedback about it.
This just means the guild doesnt have the experiment enabled on it, atm its only available to partnered guilds.
So that would mean its a UI issue as its showing up for a guild that isn't partenered
I think this is pretty unlikely to happen. Effectively what you're asking for is to create public chats that no one knows about, and I don't hiding discussion is a good thing to have. On top of that the only way for folks to discover there is new content here is to go to the threads popout in the top right, which really just isn't the right UI for this. There'd be no way for the parent channel to get marked unread either so you know there's something new!
Shouldn't it still be a missing access error though
Its a "fake 404" its quite common with experimental endpoints
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
Has any progress been made on this? @b1naryth1ef mentioned 1-2 weeks, it's been 173.
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
What is this feature useful for? I'm unsure exactly why it's needed? It promotes the kind of servers that encourage spamming invites in every server to try and get a higher role or other benefits. Its useful for tracking which invite people came from for moderation purposes but simply disabling invite generation and posting only one makes it redundant. I have yet to see a scenario in which this feature is needed that doesn't promote breaking of TOS or at least common decency
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
as you said, it's useful for moderation reasons; creating one single link would mean getting rid of the ability to check where the member was invited from. I can distribute separate invites to separate places and see "ah this member got here from [place]"
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
It's a link. it can be shared so any place it's posted is just the source. a person could copy that link and post it to a forum. The value of being able to vaguely gauge where people are joining from is not particularly valuable seeing as the most use the feature is going to get is from server promoting spamming. This is also voided by big communities (big enough to want to track their invite usage) usually having a discord.gg/name link that gets used instead of regular invites. So it doesn...
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
@CEbbinghaus maybe you don't see a need, but as someone who runs many discord servers, this would be very useful.
- I want to see where users are coming from. Knowing how many times a code was used tells me nothing.
- I want to know when a spammer creates an invite link to invite their bot swarms.
- I want to utilize specific links to different platforms. Being able to see what users came from where is helpful
Again, maybe you see no need, but myself and many others would fin...
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
the most use the feature is going to get is from server promoting spamming
as @ b1naryth1ef said above:
Invite spamming and TOS abuse are an entirely separate problem outside of the implementation of this feature.
a person could copy that link and post it to a forum
yes, but they need to have the link in the first place to post it. if i give you an invite link and you post it to a forum, i can see that everyone that joined from that link joined from you - see the classic "invi...
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
it feels like it incentivizes a reward system based on invite usage. It's certainly the reason I initially wanted this feature months/years ago, but now I see less of a need.
It's certainly important information knowing where users are joining from but it's not necessarily a good idea to make it part of the API.
An alternate approach that I think would solve the problem quite well is to add it as an insight to community servers:

The ideal solution would both provide you with the information you need while not allowing Spammers to abuse it.
Is having the data visually laid out in the Insights panel not a suitable solution?
and small communities (or communities th...
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
The ideal solution would both provide you with the information you need while not allowing Spammers to abuse it.
Is having the data visually laid out in the Insights panel not a suitable solution?
how do you suppose spammers would be unable to view the insights panel?
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
I tend to be bad at wording things so apologies if it came across as being against the idea completely.
The fact that a feature can be abused doesn't mean it's not a feature worth implementing; but rather that it should be implemented carefully and with possible exploitations taken into consideration when developing it or the systems that surround it. Games can be hacked, doesn't mean games shouldn't be created... just means methods like single point of authority and other anti-cheat te...
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
how do you suppose spammers would be unable to view the insights panel?
This isn't the point. the point is that bots shouldn't be able to track which invite a person that just joined the server used. It doesn't matter if spammers can see the statistics (I'm pretty sure insights are admin only atm). It only matters if they can automate it to increase the incentive to spam
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
Is having the data visually laid out in the Insights panel not a suitable solution?
For small servers, that'd probably be great... unfortunately, they don't have access to insights. Likewise, larger servers and especially those owned/operated by companies often like to generate their own reports or have numbers on a centralized dashboard (eg. Grafana) to monitor all of the various social networks they're on.
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
@meishuu Possibly a Bot Intent that has to be requested. Such as with the Verified bots right now? Not sure how closely discord checks their bots but it would certainly reduce the amount of abuse this API could cause.
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
Likewise, larger servers and especially those owned/operated by companies often like to generate their own reports or have numbers on a centralized dashboard (eg. Grafana) to monitor all of the various social networks they're on.
Not sure how many large companies run discord servers but I'm pretty sure grafana doesn't have a discord plugin
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
grafana doesn't have a discord plugin
no, but you can make a bot to collect statistics from discord and push them to a database grafana can access
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
Not sure how many large companies run discord servers but I'm pretty sure grafana doesn't have a discord plugin
It's not difficult to create a custom Grafana plugin. If anything, the most hindering aspect is that there's not an API available and one would have to resort to using bots to archive what data is available though that API or scraping. The latter of which is likely against Discord's TOS; neither of which provide information about where users are originating from.
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
Possibly a Bot Intent that has to be requested
Would this not solve the problem. Locking the API behind the verified Bot program would decrease the number of bots that can abuse the feature. Right?
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
Possibly a Bot Intent that has to be requested
Would this not solve the problem. Locking the API behind the verified Bot program would decrease the number of bots that can abuse the feature. Right?
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
Possibly a Bot Intent that has to be requested, such as with the Verified bots right now?
... member join events are behind a priviledged intent though?
grafana doesn't have a discord plugin
I don't think that's the important bit -- I know that Python Discord for example uses Grafana to keep track of some statistics.
Besides, if Discord could predict all benign uses of their product and implement them all, there wouldn't be much need for an API. Just saying "Discord should j...
Description
When a guild with 250 roles (excluding a nitro booster role) is boosted, the user boosting the guild gets a 500: Internal Server Error message.
A new role for the nitro boosters is not created, however the boost is added to the server. The boost message is also not sent.
Unimportant Note: The client also does not display the booster badge for this user/member in the member list.
Steps to Reproduce
- Boost a guild with 250 roles (excluding the nitro booster role...
This is not a bug with the public bot API, but either, way, will forward this along.
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
member join events are behind a privileged intent though.
Had not realized (don't use the endpoint). Well, that pretty much solves it then doesn't it?
If a non-authorized bot cannot get access to that information it should really be no problem.
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
I think an important point here is that this is already possible - just in a hacky way. Adding this as an official feature to the API would simply make it easier to implement, and more reliable. Yes, tracking invites could be used to break the TOS, but it also has lots of legitimate uses.
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
How exactly could it break the TOS?
The only way for bots to fetch invites (or get the invite events) is if they have the proper permissions for them.
and to add if they officially added a field for it in the GUILD_MEMBER_ADD event it would mean less requests to their API and Developers don't have to store invite information to match the current invites against.
Is it possible?: yes, but it's not really feasible to do at scale (which is an issue)
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
It promotes the kind of servers that encourage spamming invites in every server to try and get a higher role or other benefits.
Already existing API features serve this possible purpose better than the requested one. No point to discuss it here.
Its useful for tracking which invite people came from for moderation purposes but simply disabling invite generation and posting only one makes it redundant.
No, I need multiple invites and I want to know which one has to be invalidated a...
Are there any plans to allow a confirmation dialog to be specified for a button?
Use case
Buttons with destructive or significant consequences, like deleting something.
Current solution
Currently, another message could be sent with a confirmation button in it, but that requires more work, and involves an unnecessary interaction and network requests for what could be done entirely on the client.
Example
{...
I develop a C++ API library called Discord++: https://github.com/DiscordPP
And I was wondering what I need to have it added to the community resources list: https://github.com/discord/discord-api-docs/blob/master/docs/topics/Community_Resources.md#libraries
Getting my library added has something I've been stressing about for a good while and I figured I should just reach out and ask instead of just letting the question burn a hole in me.
I've also been wanting to have someone who knows w...
You could respond with an ephemeral message with buttons asking them to confirm.
Create a pull request adding your app to the list
The original post did mention this possibility but it definitely would feel more natural as a popup similar to kicking and banning. It could also have the holding shift to bypass functionality
I'm having the same problem.
I use python, flask
flask code :
`from flask import Flask, request, render_template, redirect, session
from oauth import Oauth
app = Flask(name)
@app.route("/")
def index():
return redirect(Oauth.discord_login_url)
@app.route("/login")
def login():
code = request.args.get("code")
access_token = Oauth.get_access_token(code)
user_json = Oauth.get_user_json(access_token)
username = user_json.get("username")
r...
There are no guidelines right now. The informal process is simply you submit a pull request adding your library to the list and at some point in the future a developer may/may not respond. Obviously you need to respect rate limits to be accepted but as for definitive requirements it really depends on who reviews the pull request right now.
That is what I do at the moment, but as I said in the original post, it's convoluted and requires unnecessary network requests.
Plus, as @APixelVisuals notes, there'd also be something to gain in the user experience.
There are no guidelines right now. The informal process is simply you submit a pull request adding your library to the list and at some point in the future a developer may/may not respond. Obviously you need to respect rate limits to be accepted but as for definitive requirements it really depends on who reviews the pull request right now.
Added my C++ library, Discord++, to the list of community libraries.
One of the core tenants of my library is modularity. Core functionality like the HTTP and WebSocket gateway modules can be swapped out to make use of different dependencies (though currently there aren't extra options) and plugins can be added seamlessly.
To this effect, my ratelimiting implementation is in a plugin: https://github.com/DiscordPP/plugin-ratelimit/blob/master/discordpp/plugin-ratelimit.hh
*I plan to add...
Iirc discord has said they won't be adding any more libraries to the list...
Iirc discord has said they won't be adding any more libraries to the list...
As far as I can tell that's library extensions that they aren't adding. like #3146
Iirc discord has said they won't be adding any more libraries to the list...
As far as I can tell that's library extensions that they aren't adding, like #3146
Yeah. My mistake. I misunderstood discord's statement about not including library extensions on the pages. Not new libraries.
I would like to improve on this suggestion by adding the following:
There is currently no option to select the acceptable range of integers for the .addIntegerOption() on the SlashCommandBuilder().
The ideal option would be to have an extra method on the integer to select ranges of integers that are acceptable for the option. The method should default to the full range when no ranges are provided. The builder should provide warnings when integer ranges overlap in some method to the deve...
Maybe we could change this discussion name to:
Provide range option for .addIntegerOption
Thoughts? @itohatweb
"SlashCommandBuilder", "addIntegerOption", and "addStringOption" are not part of Discord's API, I think those are part of discord.js which is unofficial and not made by Discord, so that wouldn't make sense in this repo
I used a locale that is different from the rest of the documentation on purpose to remind people that timestamps might not render as they are used to.
"SlashCommandBuilder", "addIntegerOption", and "addStringOption" are not part of Discord's API, I think those are part of discord.js which is unofficial and not made by Discord, so that wouldn't make sense in this repo (your comments already don't really make sense here, as discord.js design is irrelevant)
I beg to differ. This is a feature that must first be implemented on the API side. Afterwards, it will be made available on the builder side. Check out the response from the Discord.js...
Providing an object for permissions on a new command for my hypothetically 150k server bot seems literally impossible.
I think advaith may have been referring more to renaming the discussion.
Yes the feature has to be implemented by discord, but those names aren't Discord created. Everything you've said about the builder erroring are things that would need to happen once discord implements the feature and discordjs adds support for it.
What we're asking for here is some extra minimal validation (that doesn't take the client too long to do) of integer, and possible string option types.
I think advaith may have been referring more to renaming the discussion.
Yes the feature has to be implemented by discord, but those names aren't Discord created. Everything you've said about the builder erroring are things that would need to happen once discord implements the feature and discordjs adds support for it.
What we're asking for here is some extra minimal validation (that doesn't take the client too long to do) of integer, and possible string option types.
Great...
In fact, now only two button styles are available to developers. This is a standard (style: 1, 2, 3, 4) that differ only in color. And the second is the link button. It seems to me that it would be more reasonable to make two styles and allow developers to choose colors in a separate parameter. But you can also do it with pre-prepared colors (for example: 1-blurple, 2-gray, 3-green, 4-red, etc.)
[discord/discord-api-docs] New comment on discussion #3210: API Feature Request: Track invite used\.
What is this feature useful for? I'm unsure exactly why it's needed?
Gonna officially retract most of my previous statements since enough people have voiced some very valid reasons why it should exist.
this is already possible - just in a hacky way
Last I checked and tried (2018) it was only possible by querying every invite and checking which one had increased. Not particularly Reliable and prone to mistakes. If there is another way it would be nice to know.
The most effici...
Maybe someone should add the feature request label ๐
Ah ok that makes sense. I'll close this now
labels normally don't get added since it's been switched to discussions.
and this shows: 
What's up with this?
Is this a "won't fix"?
A "never documented this behaviour so why would it work LUL"?
A "fixed"?
Some kind of response would be cool if issues of bugs like this get closed.
It was not converted? I created it right here
This was fixed in the last API deploy (along with some other fixes confirmed by the API team)
Prior revisions are not stored, hence that would not have any benefit.
Apologies. It is indeed fixed as of a couple of days ago.
On Fri, Aug 27, 2021 at 2:01 AM bsian03 @.***> wrote:
This was fixed in the last API deploy (along with some other fixes
confirmed by the API team)โ
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/discord/discord-api-docs/issues/3700#issuecomment-907046061,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A...
The provided url was https://intents.aymdj.me/ which is no longer accessible. So instead, it would be convenient to use vercel's url. I've cross-verified this with multiple users.
3896fef Patch Larko's intents calculator url (#3723) - PantheraRed
Could you clarify your point about the permissions? Is there currently a method to limit a slash command if the user does not, let's say, have something like Permissions.FLAGS.MANAGE_GUILD? AFAIK, there was not any option for that as of today.
I wanted to suggest this too.
I.e. usage for fast lockdown of channels.
You could already implement this through a message command already though. it receives the channel via the message that was clicked on
While this does not give you what you want. The obvious choice is to instead request a new slider component rather than what you are asking for.
(Using slash commands for something like this is analogous to using js for a discord bot..... aka Bringing a hammer to a chess game ๐ฆ )
I believe this adds too much complexity to a fundamentally simple problem. Slider components would require supporting it on mobile and on desktop and would be a hassle if you have multiple acceptable ranges.
what kind of volume dial goes from 0 to 200?
I don't know specifically about 200, but it's definitely possible to have >100% volume control:

What are you talking about? Discord already know a thing or two about sliders.



What are you talking about? Discord already know a thing or two about sliders.
We are talking for a slash command interface where it is on the ...
Although it works, it wouldn't really make sense. For the lockdown example, you're locking the channel not the message.
Lobbies seem to be deleted when they're empty. And bots do not seem to join the lobbies they create, so it seems like the lobbies get instantly garbage collected.
A way to create "public lobbies" would be neat
Theoretically, you can. But here's why you shouldn't do this:
- What if there are no messages in that specific channel
- It is unnecessarily sending a specific message data over
- It doesn't make sense. Why open the channel and then a message, when you can just right click the channel without opening it? Just bad UX.
I would prefer a component and a limiter for chat input commands. Each has their purpose
Discord does not, and likely never will send old data. It is up to the library/bot to implement a runtime cache to handle old data. Several libraries already do this and if the bot is online and has the old data cached, it can be referenced.
And at discord's scale and due to eventual consistency, this would fall apart and lead to progressively inaccurate past states being sent depending on which server happens to process the update and if there were updates before that one.
If someone edi...
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
This PR removes discord.py and disco from the community resources libraries list as both libraries are unmaintained (both GitHub repos have been archived), and neither library provides an interface for Slash Commands, which appears to be the recommended approach to implement a bot on Discord now.
You should also remove Sword, it's archived I believe.
brO IT WAS JUST ANNOUNCED CALM DOWN
In my discussion I mentioned that it would be nice for discord to look at this "curated" list and their commitments to it, so im going to plug it here because it's partially relevant. Again any guidelines from discord on when something should be removed would be nice.
Why close :( isn't it important you acknowledge your mistakes and bad features?
this PR was unbelievably fast to appear
@msciotti would appreciate a reason here -- seems odd that y'all on your own site are linking to libraries that implement bots using messages rather than Slash Commands given you're encouraging devs to switch to those, and these libraries are all completely archived and unmaintained?
There's multiple libraries on that list less compliant than d.py
This is not how we, as a community, should react to things.
This is childish and detracts from the overall conversation.
this PR removes all of the archived repositories, none of the other repos are archived
this PR removes all of the archived repositories, none of the other repos are archived
@Mehgugs For sure, I think your discussion definitely captures the wider issues with the list as a whole, its in an odd state of affairs it seems
@Mehgugs For sure, I think your discussion definitely captures the wider issues with the list as a whole, its in an odd state of affairs it seems
what do you mean by "odd state of affairs?" it's not like slash commands came out two years ago and are already widely implemented
Could you add your message input component to your list? This is an extremely important addition that you have said you're adding, and I don't see a reason for it to be missing from this list.
It clearly states it's curated around
libraries that conform to our API's standards around authentication and rate-limiting
It doesn't even mention if the full API is implemented as being a condition to be in the list. Not sure why you'd assume since a library is archived that it would no longer meet their standards of rate-limiting and authentication. Whether it implements parts of the API that a user needs is up to them to figure out, not saying whether that is good or bad, but these...
No one knows what the standards are definitively. As far as I am aware it's a less strict version of the discord api guild's library developer requirements that is informally checked with common sense.
This does not look like any right place to discuss API issues, nor have you even bothered to write an explanation. If I were you, I'd start by putting it in the right section (discussions) and actually explain why the recent breaking changes are super annoying for bot developers (including me). You're making the community seem really bad and this post is pointless.
Would love to hear if this was in the API plan.
Calm down bro, what the fuck do you want?
I would prefer a component and a limiter for chat input commands. Each has their purpose
True, I think the component could be used in some of the other types of interactions too.
Related: #3724
Today, owner of discord.py - Danny left development.
Danny said:
I do not believe in waiting on promises for something to be better, when historically these promises have been empty. I do not think the situation will radically improve by April 2022 and do not think this change is worth the everlasting impact it will have on the ecosystem. ...(omission)... My involvement in discord.py and the API was always fuelled by passion and hope. These recent changes have drained me com...
This pull request aims to add hikari to the community resources.
Hikari is a new, powerful, static-typed Python API for writing Discord bots. We provide a flexible way of making bots with different options like a rest based bot (interactions server), gateway based bot or only a rest application if you are working on a dashboard or similar.
Rate limiting implementation: https://github.com/hikari-py/hikari/blob/master/hikari/impl/buckets.py
Hi, yeah you are right, there is currently no way to require that members have certain Discord-specific permissions in order to execute commands. The best you can do is give permissions to certain users and roles. This isn't a problem for our bot, however, since we're running on just one server and have all our commands restricted to pre-con...








