As of now, slash commands just don't work with stickers, a user cannot even pass stickers as a string argument and allow us, developers, to parse the sticker out of it.
So I just request a new type of argument being introduced to slash commands which will accept emojis and stickers, or just allow stickers to be passed as string arguments in the slash commands.
#github-notifications
1 messages · Page 31 of 1
| channel_id? | snowflake | the channel id of the event |
| channel_id | snowflake | the channel id of the event |
| channel_id | ?snowflake | the channel id of the event |
| Field | Type | Description |
| ------------ | ------------------- | --------------------------------- |
| speaker_ids? | array of snowflakes | the speakers of the stage channel |
| location? | string | location of the event |
For the past months did I consider whether I should write this here or not, but after the info that the Discord.py Dev stoped his work because of recent events did I now decide to write this down.
It will be a long read, so I won't blame you, if you either stop midway or take breaks in-between.
For multiple reasons, including to have proof that I wrote this, will this be crossposted to a Gist and also a web-archive entry made.
Why this post? Wh...
well said, thanks for taking the time to write this.
Thanks for not only talking about the issues with the API, but Discord as a whole. Great read!
Small not to their credit; in the past year or so they have reached out to library developers, as Danny pointed out in his letter, so we do have a head start on working on newer features.
The issue is now becoming that we are largely working on these projects as a hobby in our free time. We have significant others, children, work, social obligations, etc that need to come first which makes it prohibitive to keep up with the pace of new features. It's very likely over the next year that new...
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
That's a joke smartass
Discord has always been shit when it comes to communication. As a small bot dev this saddens me
Honestly it's just sad to see this platform going in this direction. I've used this platform very actively in the past and it's not great to see everything fall apart like this.
I hope they realise that with this lack of communication and not caring about feedback, more and more people will eventually just get fed up. But it doesn't seem like that's going to happen anytime soon.
I will miss the good old days of just making bots for fun with a Discord API as the sandbox. Freedom to do whatever and have creative solutions to problems. Been making bots since I started on Discord (2015) and seeing how it goes now just makes me sad.. Well said ❤
This was pointed out in the Gist of Rapptz where Discord seems to have a server for big bot devs to share sneak-peeks with them, but not with those that need to squeeze this API change into their libraries to even support it.
A fellow dev, who has a large bot even mentioned that they (Discord) no longer seem to invite devs to that server in those cases.
The reason they don't add new users to DInfra is because it's not used anymore. Library developers and large bot devs get access to h...
Perhaps the upcoming context menus for bots could give a nice solution to this?
Main issue with this is that the context menu is still really clunky for people needing to follow-up for more info. Right now I have a bot that binds reacts to messages in order to open forms, and I have an argument that accepts a message ID- but there's no real validation for this except through my own code. Having an option type that explicitly asks for a message/id (or even a channel-message combo id) an...
I just went with what was mentioned in the Gist of Rapptz and what a fellow dev told me (which was, that devs no longer join that large bot dev server when I asked if they got added to it)
So it's partially my fault, but also kinda misinformation on Rapptz' Gist.
I just went with what was mentioned in the Gist of Rapptz and what a fellow dev told me (which was, that devs no longer join that large bot dev server when I asked if they got added to it)
So it's partially my fault, but also kinda misinformation on Rapptz' Gist.
It's not misinformation. The problem was that they weren't added when it was being used.
I run a library for slash commands which is also in the documentation, and I was never told about these hidden channels.
Apart from the fact that you can't verify some statements from Danny's gist, Danny is absolutely right. This is not a technical problem, not a problem of missing libraries or incomplete forks, these are all problems that the community will solve sooner or later or has already solved.
It's about the systematic ignorance of Discord's decision makers and the constant disregard for developers who voluntarily add tremendous value to this platform.
Sure, developers have a certain amount ...
I'm using Discord since 2015 and i watched the development of Discord & API and i can state that, i had no idea that Discord is "listening" the Big Bot Developers rather than the Library Developers. The funny thing is Big Bot Developers are using the already exist Libraries like D.py, D.js, Eris and many more. Mostly they are not the one who implements Discord API features to Libraries/Bots. The sad thing is Discord is not giving a damn shit about this situation. I can understand the frustrat...
as muddyfish said in another comment, lib devs and bot devs both have access to the private ddevs category where they get to test unreleased features and stuff
This PR adds Hata to community resources.
Hata is an async Discord API wrapper written in Python.
The library tries to do things differently than other Python wrappers - its main feature is supporting multiple clients with shared cache between them.
It also aims to be fully PyPy compatible for the best performance, and it supports the newest features natively like slash commands, components and context commands.
It properly handles ratelimits...
We didn't know about it either @MeguminSama . Looks like Big Bot Developers (who are using the Libraries from Library Developers which they do not have any word on Discord Infastructure ) are more welcome than actual maintainer and implementer of this infastructure changes.
404
This is not the web page you are looking for.
or
This issue has been deleted.
both are more accurate than above.
I don't know if the lack of caring comes from the API developers themselves, or as a result of being overworked, or upper management making business decisions. But the end result is the same. It's disappointing to see the direction Discord is going lately. Thank you for this post.
Is Discord actively debating with Library developers about upcoming updates and features? Do Discord really listen the Library Developers as a primary feedback source for features? If Discord doing this, why many Library Developers are stating that Discord is not publishing or announcing changes and features on Discord API with them? Are Library Developers lying to us Or is Discord trying to get out of this situation by saying that it's listening to the library developers? Could you please en...
Library devs do get early access to use/implement upcoming features and provide feedback, Discord reads the feedback but they don't always make changes due to the feedback
I develop a library how do I get access?
I don't love this... but what can we do...?
answer: countdown to the day they'll force us
It's understandable Discord is not required to change everything according to feedbacks but the question is, aren't both Rapptz and @Andre601 mostly stating the facts about Discord and API Development? Discord released unfinished Slash Commands, have not so good Verification System (Identification must be provided. And i'm even not going to dig how Discord store or validate the datas they got) and now Message Intents that can and will break nearly all bots over 100 Servers. We just want Disco...
I mean either I use a good discord.py fork without as much quality, make my own fork, or convert my entire bot to javascript which will be a massive pain to do.
For hiding commands users don't have permission to use, this is definitely a must have for servers with mod commands you don't want users to know about.
Ideally some kind of flag we can pass in like:
1 = hidden without permission
0 = greyed out without permission
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
@Jupith I read your changes.
What is the difference between channel_id and entity_id then?
This doesnt look like a bug, this is intentional as can be seen by the clear error you got
The issue is that the type is signed instead of unsigned; Discord have stated previously that snowflakes are uints.
This should be a valid Snowflake according to the docs and Audit Log documentation says the type is snowflake.
This is how the REST API has always defined the range limits for Snowflakes across the board (0 >= Snowflake >= 9223372036854775807); this behaviour definitely isn't unique to this endpoint.
And honestly I think you might've misread the documentation a bit, all it says is "Because Snowflake IDs are up to 64 bits in size (e.g. a uint64)" where it's stating that snowflake IDs are up to 64 bits in size while giving uint64 as an example of an integer which is 64 bits which is honestly a bit misl...
I’m super worried with the future of bot development, especially with reading this post as well as a few others. 4 years ago it was about a bunch of people getting together and making cool stuff, now it’s just bureaucracy. Imo Discord in the past have been a good brand, but I feel like they’ve strayed off the right path.
See #336 and #339. I think b1nzy's "effectively unsigned" means that they are always >= 0, but the upper limit was always limited by Cassandra's use of signed ints.
HTTP Error 50035 : Invalid Form Body
NUMBER_TYPE_MAX in before : snowflake value should be less than or equal to 9223372036854775807.
So using `uint64` as an example is misleading, but I guess it's not completely wrong.
interesting complaint statement, what if this becomes wont fix, closed heh 😏
i agree with this, i have a verfied bot that has +200 server and it has a leveling feature, this will be closed by april 2022 because they are forcing developers to switch to "Slash Commands". the biggest bots like Dyno, Probot, MEE6 will get the intent instantly and these bots developers are not required to apply for this intents.
Applying for intents Issue
**the applying for intents is so bad, you can wait at least 8 months to reply to you either your bot has been accepted or no. ...
Hey @Andre601 !
Thanks for the detailed post - it popped up in my Google news feed this morning so I'll add some input.
Discord is a great place to communicate with friends and as time has gone on, the service has gotten worse. In your post, you discussed how bot developers don't get the help and attention that they need. The features that they are adding actually can hurt developers more than help while Discord ignores feedback. I'm a game developer on Discord, my game is only small bu...
Have you ever noticed that tab in team setting for payout history? You've probably never known why it was there. It's for game developers to see combined summaries of what their games have been earning. It doesn't work at all and I have been told they are working on a fix.
Not really a game dev so I didn't know about this existing.
This is intented behaviour. *closes*
No problem. Was thinking of doing this for some time but the post from Rapptz was the point of me actually doing it, so go and give that person some love, they deserve it!
Yeah.... The API is only a small part of the issue. The general App design and behaviour is another mess, so I wanted to include it too.
I agree.
The small talk with the devs is something positive, but stuff like having it that private (And maybe leaving out future library devs and not to mention the contributors to those libraries) plus having things like making devs signing a NDA (For those not knowing: NDA stands for "Non Disclosure Agreement" and is essentially a legal paper telling the signing person what they can and can't share from their meeting, work, etc. with outsiders. In this case what they can and can't talk a...
To my knowledge were they good at communicating with the community when they were smaller, but as companies grow, the communication becomes more and more blurry and mixed.
Single voices become yet another number in a graph and communication mostly happens in ways of user surveys nowadays which is sad.
There will be a burst at one point. Either an update that everyone hates, or competitors appearing, slowly taking people away either through better features or by getting the spotlight through YouTubers and alike.
The burst will happen at one point and Discord will suffer under it for sure if they won't change for good.
I started with my bot 3 years ago and it was out of passion for something I enjoyed. When it grew was I happy, because it brings joy to many other people.
Now when I look at the situation and see what I need to do now to continue, which is using slash commands, do I no longer see the fun in it and just more and more work to get stuff done.... This is no longer the platform I liked to chat on...
It's not misinformation. The problem was that they weren't added when it was being used.
Okay, so it's more or less outdated info? Or more info from the past? Idk...
Library devs do get early access to use/implement upcoming features and provide feedback, Discord reads the feedback but they don't always make changes due to the feedback
The issue here is that only they get this access, so they will need to make the starting PR to their library.
Communities are a great thing to move things forwards. A lot of awesome open source projects probably wouldn't be where they are now without the constant inclusion of the community and their PRs.
But with D...
I feel like it's a unrealistic thinking of those suggesting the new features to be implemented to get Discord bigger and more wealthy.
Like the ideas sure come not from devs, but from management or similar and the devs have to implement it fast, making it a half-assed solution the community has to deal with.
This hits the nail right on the head. With slash commands / interactions, bot development feels like it's heading towards being very business-like rather than something one human being is doing for other human beings. Even without considering whether the API is what it should be, as someone who makes stuff because my passion is to write software that helps other people, this is very demoralizing.
Then I for sure know Discord doesn't care anymore and I will gladly discontinue my bot, because I know Discord won't ever be good again...
To be honest, with the way message intent works, will your Level system perhaps still work.
You still get the message event, but just the content is hidden/removed, so at most would you lose a way to check if the message contains bad words or similar to prevent leveling, but even then could Discord be nice enough to grant you this intent for the leveling thing..... if they're nice...
This hits the nail right on the head. With slash commands / interactions, bot development feels like it's heading towards being very business-like rather than something one human being is doing for other human beings. Even without considering whether the API is what it should be, as someone who makes stuff because my passion is to write software that helps other people, this is very demoralizing.
It truly is.
Now bots can have a unique personality through their commands. With custom pre...
100 commands* globally + another 100 per guild, each of which can have 25 subcommands.
Wasn't aware of this bump.... Yet another case of lack of communication imo.
Discord should implement a "dev blog" or newsletter that bot devs can subscribe to to get notified of (future) changes while NOT on the DDevs server...
So is it true then that you can only use Snowflakes in the range of [0, 9223372036854775807] anywhere in the API? If so, it would be great to have that documented.
have not so good Verification System (Identification must be provided
Whats the alternative?
Providing ID makes it harder for people to create malicieus bots
have not so good Verification System (Identification must be provided
Whats the alternative? This system makes it harder for malicious bots to exist, so makes sense.
I still remember that one video about the introduction of Nitro, where Discord claims they will never put core features behind a paywall... Oh how fun where those times.
If you look at other companies besides Discord you see these things a lot.
You shouldn't focus that much on the past, pretty sure you've also claimed things and said things that at this moment aren't true.
Things change over time.
Whats the alternative? This system makes it harder for malicious bots to exist, so makes sense.
I think we should add permissions instead of intents, it's the server owner's responsibility to give admin rights to the bot.
Also, I think we should get rid of the self bot before the bot!
Some data protection acts are necessary, as discord becomes more and more mainstream platform it needs these measures in place, but I think their solutions, their execution and communication is completely out of order. Everyone reading this has probably been on discord for multiple years, built a bot or two, and its us developers that have made its success. If there were no bots discord would be boring, and if there were no library developers there would be no bots. The developers are the hea...
Agreed. Discord needs to change their stupid verification system that has stayed the same(or almost) throughout the past years even after so many new users especially in lock down.
honestly having markdown for coloring text would be nice in general- it's one of those things that used to be everywhere in the form of bbcode, but it never quite made it to more modern platforms
either way, would definitely appreciate this as a way to show errors/etc, though i agree that it shouldn't be the only thing devs rely on for it
(as an example, one of my bots uses colored buttons in their intended ways- but i also have emojis on them to help with what they're for. the x is pre...
Just putting this out here... goodluck mate. I stand by you as many developers do.


So you go to someone's PERSONAL server, where they give their PERSONAL opinion on a non-working day, and are considering it to be "Discord refusing to take accountability"? LOL
I was passed this info, I don't even know where the screenshot came from but yes, they're just hiding and refusing to take accountability. Stop being a fucking keyboard warrior that's crawling up discord's ass, we all know discord likes to make alts to defend themselves on Reddit. That's probably the case here.
It's actually interesting you know where this came from, which leads me to believe you're Ian lol
Definitely productive reaching conclusions from screenshots without knowing context.
This response is directed to Ian. Pretty sure he reads it.
Yes, I am upset and angry at Discord, but for the right reasons.
If you look at the comments in this discussion can you clearly see, that I'm not the only person here having less than positive feelings about Discord's recent changes.
Next do I invite you to still post your proof of what is and isn't true here, as...
Well honestly does discord listen to context? Obviously not. I don’t care, I agree with Andre completely.
Also, Ian seems to be staff, as seen by this Screenshot from his profile on the DDevs server:

Dylan, please stop the unnecessary toxicity. I took those screenshots from Ian's server to share with others (which I now regret). I can also attest to the fact that @prryplatypus isn't a Discord mod undercover.
Yeah, no way @prryplatypus is Ian on an alt
From my own experience by looking other bot devs comments about DInfra: It was a gigantic mess. Yes, it did have big bot developers there... but it was the developers of big bots at the time DInfra was created, so before it was abadoned you had a lot of devs that didn't even have a "big bot" anymore (stopped developing it, etc) and people that had a big bot now didn't have access to the DInfra server and didn't even know it existed.
Moving to Discord Developers was a good change in my ...
Just putting this out here... I found it hiding under some bushes. Goodluck mate. As always, discord is refusing to take accountability and just being fucking dumbasses.
I stand by you as many developers do, lets make our voices heard. If discord won't change, we'll just leave and eventually it'll bit them in the fucking ass.
As much as I appreciate your support and honesty do I not think that insulting them is the right way to go.
Sure, staff can be annoying at times, but remembe...
Honestly, this was both extremely truthful and untruthful. Discord HAS recently started taking more feedback from library developers and larger bot developers. I understand everyone's frustrations with Discord's implementation of suggestions but unfortunately they have to manage their budget effectively, meaning that they made need to cut costs on features in order to make better ad campaigns and things of the such.
Their new changes may be unwanted and were deemed as useless by a lot of t...
Also please do not direct your anger towards Ian. It's his day off and his opinion and views do not necessarily reflect the opinions of the API team.
I’m sorry but being nice has gotten us nothing but being ignored for months. They’ll likely ignore this thread officially too. If you have issues with my posts, you’re more than welcome to delete them.
Secondly, I appreciate whomever for owning up to screenshooting them and verifying where it came from but don’t play that card when you’re violating that staff members trust by passing those screenshots around as well. You can’t act like an angel when you caused chaos from this. I got send ...
As far as I know there isn't any "core features" behind a paywall, Discord's core features are "Having your server to talk with friends via message or voice with friends" and that's it, anything else is not a "core feature".
"Those who forget history are condemned to repeat it?".
As much as I can agree is it imo a bad idea to just ignore or forget things that happened in the past.
There are both good and bad things that Discord made in the past and forgetting them is never the good way to go, or else Discord does it again and the cycle starts a new.
@dylanjamesdev please stop being so incredibly petty about this. It's a public server that anyone can join if you want to read into the actual context.
In my defense it is a PUBLIC server, written in a PUBLIC chat. They are also not ignoring the thread as I know Ian is actively reading it (I have shared several comments in this thread within Ian's server as well). Also being an all-around a** will not get you your desired results.
have not so good Verification System (Identification must be provided
In my opinion: Bots that don't require privileged intents shouldn't be restricted by the max 100 guild limit.
The 100 guild limit hinders viral growth, and Discord is already limiting stuff anyways, so the impact that a bot without privileged intents is already smaller anyways.
The guild limit should be increased to 10k or something, this gives Discord more free time and less verification requests to go thru. If ...
I’m sorry but being nice has gotten us nothing but being ignored for months. They’ll likely ignore this thread officially too. If you have issues with my posts, you’re more than welcome to delete them.
Still no reason. Anger is not the way, or otherwise violent protests would've won things by now.
The fact Ian even acknowledged the post is imo enough to proof that Discord is aware of it. But making responses can be dangerous, especially when you represent a company through it.
With o...
Ian does more to represent the community and help with these types of problem than a lot of other staff members do. If that was discord's official response I'd probably have the same response to it as you, but that is a personal account in a personal server in context.
@aasmart I understand, I have no motivation to seek out this person’s server just to read through the chats. I personally hate the direction they’re going, as do others. However, I also have my own reason on why I’m being an asshole after discord has constantly made life hell for developers. Again, you don’t have to agree with how I’m going about this but my opinion is still valid. I understand that Ian doesn’t represent discords views as a company— however why did he speak on this personally...
We didn't know about it either @MeguminSama . Looks like Big Bot Developers (who are using the Libraries from Library Developers which they do not have any word on Discord Infastructure ) are more welcome than actual maintainer and implementer of this infastructure changes.
It is just that Discord can find bot developers more easily than lib developers, I don't think this is a hunt made by Discord to hurt library developers.
As far as I know (I may be wrong!), there are more big bot d...
Honestly, this was both extremely truthful and untruthful. Discord HAS recently started taking more feedback from library developers and larger bot developers. I understand everyone's frustrations with Discord's implementation of suggestions but unfortunately they have to manage their budget effectively, meaning that they may need to cut costs on features in order to make better ad campaigns and things of the such.
The question here is what features people actually want.
Take server fol...
Honestly, this was both extremely truthful and untruthful. Discord HAS recently started taking more feedback from library developers and larger bot developers. I understand everyone's frustrations with Discord's implementation of suggestions but unfortunately they have to manage their budget effectively, meaning that they may need to cut costs on features in order to make better ad campaigns and things of the such.
The question here is what features people actually want.
T...
Their new changes may be unwanted and were deemed as useless by a lot of their community, it's ultimately a choice made by the company's managers who feel like the changes were just.
I think discord has been focusing more on opening up the platform to new users which of course makes sense, but it also feels like they are somewhat not giving enough attention to the current userbase.
Their new changes may be unwanted and were deemed as useless by a lot of their community, it's ultimately a choice made by the company's managers who feel like the changes were just.
I think discord has been focusing more on opening up the platform to new users which of course makes sense, but it also feels like they are somewhat not giving enough attention to the current userbase.
Well... Not really. It seems like they're making the platform seem more friendly and appea...
Wanna say a word about desktop app. Why electron? Why this shitty thing which just eating memory, because it is just browser window. Wny not use native libraries, like Gtk/Qt for linux, Win32/UWP for windows, and Cocoa for mac? Why not? Because you are focusing on making it fast, without big work?
Whats the alternative? This system makes it harder for malicious bots to exist, so makes sense.
The true malicious "bots" are the self-users and self-bots which still exist to this day. Like discord implemented the intents to "fight" this, while completely forgetting that like 90% of scams still happen through user bots which (obviously) don't use bot accounts but user accounts which by extension already have those intents because user.
So in the end did they apply a filter that stops o...
Why electron?
Because Discord also runs in the browser and having to maintain multiple different clients is a difficult task.
Can we not get this far off-topic? Electron is fine, and is a lot less work to create a browser client and then just put it into an Electron app, than to write a native app and make sure it works on all possible platforms. It'd be nice if 3rd parties could make their own native clients, but I definitely don't expect Discord to make their own.
I can agree. The redesign feels like Discord trying to target underaged children, which is something that goes against their own ToS as stated already.
Additionally is the new design is often weird alien-like characters that are more nightmare fuel than cute or appealing. Like there are books and trompets having teeth!!!
It'd be nice if 3rd parties could make their own native clients
umm, there is, but it is beanable :(
What i ask here is the fact that we need a message from discord maybe an empherall message from discord, about not Dming bots senstive content like images, whenever the app is rebooted, or maybe every once a while a message can be sent talking about not sending bots private information that you wouldn't want a stranger to see
Also maybe on a bot's profile, could we get privilleged intents, and if possible give a list of other non privilleged intents that a bot developer likes to use?
we a...
I made this mockup a bit ago, could be interesting if it were implemented:

I personally really like this idea (asked @RedDaedalus to post it). I know it only solves some of the original discussion points, but I think adding something like this is a good start
I would really like something like this. Lots of users dm bots random stuff that the dev could see while they don’t know someone can. Personally I think warnings would do a better job at protecting privacy as the message content intent doesn’t prevent actual malicious developers from getting the intent through adding some basic automod and waiting for discord to reply to the ticket.
I think it would be better if it said 'The developers of this application can read messages you send it' to make it clearer there's real people on the other side
well typically there isn't a real person reading them, maybe "this application and its developer"?
I think what muddyfish suggested would fit in nicely with the “THIS WILL ALLOW THE DEVELOPER OF APPLICATION_NAME TO:" on the oauth login page I’ve been seeing lately
You should have on it both, that way people inviting bots can see this message, but it's useful to have it on the profile, because not everyone will invite the bot.
Possibly something along the lines of this could help display the privileged intents of bots and some more info about them aswell
Doesn't have to look like this at all, but atleast some indication of the info/intents of a bot on their profile would be great.

The fact that they closed the original #3731 is just infuriating. Discord has been doing some really sad moves lately.
I really hope they will be changing their minds and focus more on their bot developer community. We bring value to the app but in exchange, we do not get acknowledged.
- 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...
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
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.
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.
_Originally posted by @Caglar1881 in https://github.com/discord/discord-api-docs/discussions/3581#discussioncomment-1251234_
Yeah this would potray the point, a lot better than showing the switches from the discord api portal, but they would need to translate this to app supported languages
[discord-api-docs] New discussion #3742: Option to hide slash commands when not enabled for a user\.
I'm building a bot for managing class servers. It has 16 commands and counting, two of which are enabled for general use (non-admins). In its current form, the common user's slash command list is covered with disabled commands that even the server owner would rarely have to use. Things like /invite-campaign, which posts a message to every class channel, don't need to be displayed to every user.
Displaying a disabled command makes sense in some contexts, but for a bot like mine or carl-bo...
I realize now that this was mentioned as part of this post. I'll comment there instead.
Do you have a source on that? It's not mentioned in the master list.
The dev docs have this info block which suggests an intention to change it, and it would fall under the permissions revamp mentioned in t hat list

so, it's channel id everywhere now except here, seems like you forgot to commit this one 👀
I think, A would be good option for my purpose, and I feel like C) is the best approach.
Good work so far @apacheli ❤️
@Jupith I read your changes.
What is the difference between channel_id and entity_id then?
tbh i have no idea
Suggestion
Instead of greying out slash commands for users who do not have access, completely remove them from the commands menu.
Why?
I do not want to reveal certain commands, or features, to regular members - rather keep the commands private to moderators/staff.
Can reproduce App: 89.0 (27620) ptb; Manifest: N/A; Build Override: N/A; Device: iPhone11,8 OS 15.0;
They closed it most likely because of people using it as a place to just share their insults and hate about Discord, rather than proper critique.
Additionally could there be a chance that Discord will respond to it eventually. No guarantees tho.
So this isn't really Discord not listening to people but Discord preventing the discussion to turn into a garbage fire.
I'm going to assume this is already included in #3581 - API Roadmap either as part of the "revisit permission system" or "improved UX" points?
The slash commands list on a server can get very cluttered. It will likely get even bigger as more bots implement slash commands in preparation for the intents change.
My proposal is to have an option for a different prefix to slash commands, chosen either by the bot, the server, or a combination of the two. So for example, I (as a server owner) set "Bot A" to use the ! prefix. So if someone presses !, I will only see the commands for Bot A, making it easier to find what I need
The ...
I personally feel like if this is added, it should be controlled by the bot, but also be able to be per server. that way we can have something similar to the old way of prefixes
fdf66a9 Link user banner hash to image formatting (#3697) - advaith1
3f65c72 Fix wrong link for button styles (#3684) - Cryma
52f1824 Remove Application Command events from the docs... - Catboi8
Are there plans for an interaction manager dashboard in application page? Someone already made an open source dashboard for managing slash commands, but it would be extremely nice to have it integrated in the discord application page.
If a snowflake can't be zero, this note should reflect that
0 is valid and won't give you errors
Discord utilizes Twitter's [snowflake](https://github.com/twitter/snowflake/tree/snowflake-2010) format for uniquely identifiable descriptors (IDs). These IDs are guaranteed to be unique across all of Discord, except in some unique scenarios in which child objects share their parent's ID. Because Snowflake IDs are up to 64 bits in size, they are always returned as strings in the HTTP API to prevent integer overflows in some languages. See [Gateway ETF/JSON](#DOCS_TOPICS_GATEW...
The earlier reference to "uint64" should be removed. Referencing "63 bits" is just confusing and not necessary, and clashes with earlier wording.
I think it should also include 0 as the smallest.
you got a link to it?
How many bots do you have? Also, 99% of the bots I've seen haven't even implemented slash commands yet, so I don't see too much reason for concern.
This is already planned iirc.
Wait, so I understand your point, but what's wrong with the screenshot with Mason?
This is already "planned". (It will be implemented, but we don't have much info about it)
Also, 99% of the bots I've seen haven't even implemented slash commands yet, so I don't see too much reason for concern.
As I said many bots that don't already have them will be adding them due to the upcoming intents change.
Was kind of an agressive/very sarcastic tone he gave.
See the part where he calls Rapptz a martyr
Yes, but how many bots do you have?
This is already planned iirc.
Would you prefer if he acted like a robot and not joked around?
Already planned as seperate component.
I would prefer if I could check if the bot is capable of dm’ing the bot - rather than catch the error and handle it.
Description
When mentioning multiple channels after each other in a string type argument, the spaces between the mentions get removed.
Steps to Reproduce
- Run a slash command with a string type argument with channel mentions:
ex "/test string:#channel1 #channel2 #channel3" - View the data sent to the bot, or copy the tooltip from the slash command "user ran /command" thing
- Observe that there are no spaces between mentions
Expected Behavior
The spaces betw...
I think the word you're looking for is "insulting" rather than "joked around"
I think the word you're looking for is "insulting" rather than "joked around"
I don’t see it as a joke.
We should also be able to put directly hexadecimal colors, like this <c:Red:#bb3344>.
I think you just demonstrated why they haven't included it.
It becomes the responsibility of the developer to make sure it follows accessibility standards.
Yes, this is pretty much needed. Right now you gotta send test message if it sends, delete the message in some cases so 2 api calls for nothing
How about removing references to the int size and just document the acceptable range as seen by users?
I think you just demonstrated why they haven't included it.
It becomes the responsibility of the developer to make sure it follows accessibility standards.
i mean, there are plenty of things that already aren't incredibly accessible. for example i'm not sure how accessible the button colors themselves are, even though they're still part of the app- not to mention the number of emoji that not even perfectly sighted people can see against the background (the default twemoji tm and a...
Having preset colors would let them change them slightly in light vs dark mode so that they're always legible and accessible
If you do not have permission to use a command, we will remove it from your command explorer list (when you type /)
Nice, thank you.
slash commands opening up wrong bots abilities
type /
Only one bot shows for each command usage
Current Behavior
Screenshots/Videos
Client and System Information
Thanks for your suggestions!
My use case is assigning multiple users and labels to a github issue. I can temporarily work around this by adding multiple options named label1, label2, etc.
Is there a reasoning or an official reply to this?
Is there a reasoning or an official reply to this?
I put it in the description, see devsnake's reply
I think the word you're looking for is "insulting" rather than "joked around"
I don’t see it as an insult
I see it as a witty remark against a friendly developer who's trying to do better for the community. Really gives Discord a bad look when they treat their own (albeit third party and entirely voluntary) library developers like dirt.
Guys, it's a joke. He probably meant it as a joke. Just because discord struggles in some aspects does not mean they don't have a sense of humor. No matter what someone's going to take it the wrong way, and I'm here to tell you, you took it the wrong way.
If you don't know the context, you should not be judging it. That goes in both ways.
I suggest adding a new field called "unarchivable", which is equivalent to the "Anyone can unarchive" option of the thread settings on the Discord app, and fixing some typos on the documentation.
API suggestions should go in discussons, not as a PR. Or is this something that the API already has but just isn't documented?
API suggestions should go in discussons, not as a PR. Or is this something that the API already has but just isn't documented?
IDK.
Assuming this is the option you're talking about, toggling it off sets locked to true which is already documented.

Assuming this is the option you're talking about, toggling it off sets
lockedto true which is already documented.
It only sets locked to true when the thread has been archived by someone.
that is false, please test things before claiming they are true (and before PRing nonexistent properties to the docs)
It only sets
lockedto true when the thread has been archived by someone.
Open the network tab in devtools, toggle that & save and you'll see that it updates the locked field
that is false, please test things before claiming they are true (and before PRing nonexistent properties to the docs)
It only sets
lockedto true when the thread has been archived by someone.Open the network tab in devtools, toggle that & save and you'll see that it updates the
lockedfield
Okay, sorry.
I'll open a separate PR for fixing typos on the documentation. I'm not a developer BTW, so I may make false claims.
One common use case for option menus is a date picker. With the current ammount of options you can't cover the whole range of days (50 would be enough to cover all days).
Not even mentioning years (here 100 would be great)
Not sure if there's criteria for being on this list but Kord is a very good wrapper with a great community behind it
@Moe-Szyslak it is preferred for one of the main library developers to add it to the list when they are ready :)
@Moe-Szyslak it is preferred for one of the main library developers to add it to the list when they are ready :)
This is a fair point. I'll close this and leave it up to them. Just figured it was missed or something
Why is channel_id in json body for create guild event endpoint still a "stage" channel id when it was changed in other places?
Looks like my suggestion wasn't commited
Guys, it's a joke. He probably meant it as a joke. Just because discord struggles in some aspects does not mean they don't have a sense of humor. No matter what someone's going to take it the wrong way, and I'm here to tell you, you took it the wrong way.
It's a joke, then it's probably a joke? Make up your mind dude. Irregardles of whether it's a joke or not it's still a very poor use of words to describe your library developers; it is impossible to deduce tone from that text, so for yo...
I have a Discord Bot that needs to fetch Attachments constantly and recently I have received 403 status code errors when trying to fetch from Discords CDN even with a User-Agent header defined. Is this an issue on Discords end again? Since my Discord Bot has been fine for a whole month and is now starting to receive errors again. Would like to get an answer on this.
[discord-api-docs] New discussion #3755: Return message object when creating an interaction response
Description:
Return message object when creating an interaction response from a gateway interaction.
Why it's needed:
Fetching the original response is an extra API call, which makes ratelimits occur more often if the response is needed.
Alternatives:
Fetch the original response.
This would lead to two API calls: one to check if you can DM a user, and one to actually send the DM.
Currently, you have both features in a single API call: you send the DM, and if you got a 403, that means you are not allowed to send DM.
I don't see how this proposition would be useful unless you have a very specific use case where you want to check if you can DM a user without actually sending a DM.
Why do you have to send two messages? Just send the one message and handle the error if it doesn't send..
Discord gives you an API ban if you get too many 403s. Whilst my bot doesn't normally send many DMs, it wouldn't be too awful to have a user bot farm killing off bots by getting them to DM you and blocking them on repeat
Well then at that point you’d also be rate limited for sending too many
test dms and deleting them, and then sending another message…
On Wed, 1 Sep 2021 at 7:18 pm, Simon Beal @.***> wrote:
Discord gives you an API ban if you get too many 403s. Whilst my bot
doesn't normally send many DMs, it wouldn't be too awful to have a user bot
farm killing off bots by getting them to DM you and blocking them on repeat—
You are receiving this because you commented.
Reply to this em...
Not if you have enough accounts, like certain user farms..
If you’re concerned about api spam, then I would like to suggest mass-checking dms.
This is very useful - for example in a server where dms are required for them to be able to use the server properly and login to captcha.
Discord gives you an API ban if you get too many 403s.
if you were sending 2 DMs per user to avoid getting a 403, you'd be sending 2x as many DMs, as well as having to delete the original DM? I don't see how this helps at all?
The feature request is an endpoint to detect if you can DM a user without actually DMing them, so I don't see how what you're saying is relevant
Description
If I try to add a permission-override to a channel that is in a category which limits access to a role that doesn't include the bot, the action gets denied, even though the channel in question does NOT sync with the category (and thus does not have the permission-override for a role that limits access to a certain role) as well as the bot has explicit View Channel permission via a permission-override.
Steps to Reproduce
- Invite a bot which has the server-permi...
I can reproduce this with my user account using the official client - the client lets me select permissions to add but the API returns 403.
The API ban is if you hit 25,000 errors per 10 minutes!!
If you send 40+ invalid DMs/seconds, then you are definitely doing something wrong.
(Large bots have a global rate limit way bigger than 50rps)
I know (I co-develop one of these), I used the example of an average bot.
My point is that we should let Discord handle abuse on the platform (I'm sure they have a lot of tools for this task and they will easily detect something like your scenario).
You came to the wrong conclusion: if flood-DM is a real issue that gets bots blocked from the API, the solution is not to create an additional endpoint, but to have Discord fix this issue (eg. fix the root issue -detect and ban bot farms-, r...
The API ban is if you hit 25,000 errors per 10 minutes!!
If you send 40+ invalid DMs/seconds, then you are definitely doing something wrong.About bot farms, it's something that should be handled by Discord's own anti-abuse protections.
Btw, the global rate limit is 50 reqs/s, so even in the case of a bot farm that would be able to flood you for 10 minutes without triggering a red flag on Discord, you have chances of being saved by that rate-limit.So, this is a non-...
OMG WORD CHOICE IS SO BAD AHHHHHHH, YOU KNOW WHAT I MEAN BUT NEED TO CRITIQUE MY WRITING AHHHHH
Yeah I see why you can't pick up the joke now. Here's a better rephrased version of that:
He sent that as a joke. He meant it as a joke. He was joking around. "No, unless you want me to." Common joke. Even the "insult" part, a joke. 75% of jokes in 2021 can be taken as insults by someone who's giving it a negative tone. People who have had trouble with something will give it a negative tone.
...
Quick question, are all the people who disagree with my discord.py users? And of course vice versa, are the people who agree with my not discord.py users?
I disagree with you and do not use discord.py.
I'm going to lock this since it's spun into a tangent, but I do want to say we are listening - myself and others are reading everything y'all are writing (here and in ddevs).
The API ban is if you hit 25,000 errors per 10 minutes!!
No, it's 10k/10 minutes
Why do you have to send two messages? Just send the one message and handle the error if it doesn't send..
Didnt say send to messages but send it and delete it + I said in some cases. Sometimes I just need to know if I can dm the user later
Hey, I think we should be able to edit the This interaction failed message as a part of the API for messages such as This button expired [time] ago or as such. It would allow developers who stop buttons at a certain time to add messages that are informative to the user.
The member id here is of type number 👍🏼
I think that's incorrect
No, that is correct. Discord sends all ID's as strings due to some languages not being able to handle their length correctly
Currently, you have both features in a single API call: you send the DM, and if you got a 403, that means you are not allowed to send DM.
Incorrect
First, you open the DMS
Second, you send the DM
The permission check is in the request to send a message, not in the request to open the channel.
5de005b Fix embeds field names in alert boxes for Webho... - Lukellmann
This subheading format is a bit funky because we tend to use 6 hashes just for table headers, but putting it any more top-level would mean that the rest of the tables would get linked to the naming subheading, which would be weird.
The section could be moved somewhere else, but it makes sense here.
All in all, fine, just thinking out loud.
5d7b2e1 Tweak wording regarding command names and bulk ... - Mehgugs
Gonna leave this undocumented for now. It's still in an experiment, and bots can't be added to hubs.
You could get a guild object that is a hub if you were to fetch a user's guilds through OAuth, but not knowing the flag isn't a big deal.
We have a few similar PRs open, so we can try a label marked "experiment" so people know why they aren't being merged.
and bots can't be added to hubs.
Will this stay like this in future?
Can you put this in an info or warn block above or below the paragraph instead?
Blue box
> info
> text goes here
Yellow box
> warn
> text goes here
Rather than removing the whole block, can we just remove the "minimum" part? It's probably still useful to know that you only have to send the channels you want to change in the array.
@msciotti bots can fetch hub invites, and discord.js throws because it doesn't recognize the directory channel type
Should be ?partial channel object to be consistent with the rest of the docs.
This is still technically in experiment, which sucks, because this made a breaking API change. I'll talk to the team running the experiment and see where it's at.
3973676 Document the context menu command message type ... - RedDaedalus
1b21c55 Change wording for List Voice Regions (#3649) - GamingGeek
c3af697 Fix fields incorrectly marked as optional in em... - tonkku107
I'm not sure if this is correct. I just read our code and see:
MAX_INVITES_PER_GUILD = 1000
@night or @jhgg can you clarify? I know invites belong to channels, but we do seem to have a guild max.
I got the channel max from my own findings, in a server that has >5k invites you only encounter the max guild invites error when trying to create an invite to a channel that has 1k invites
Currently, you have both features in a single API call: you send the DM, and if you got a 403, that means you are not allowed to send DM.
Incorrect
First, you open the DMS
Second, you send the DM
Yes, you are right. But that doesn't change the issue: the op wants to do 3 api calls for something that can currently be done with only 2 calls.
er, no. something that would solve this in just 2 API calls is returning 400 on DM channel create if you cannot DM an user
er, no. something that would solve this in just 2 API calls is returning 400 on DM channel create if you cannot DM an user
Hmm, yes this is a good suggestion :smiley:
(but then people will complain it's still a 4xx error that could trigger a cloudflare ban :confused:)
400 doesn't trigger a cloudflare ban - just 401, 403, or 429
I'd love the 25 slash command option choices upped as well!
A category system in slash commands would be good, where we can select a bot, and select a category, and it will only display commands which are in that category. Such as if we select dank memers slash commands, and select economy category, then it will only display those commands, which are registered under the economy category by the developer. Koz we need to move all commands to slash commands because of the intent and there are bots with hundreds of commands. So to find one command of eve...
Since threads have shipped, this disclaimer is incorrect.
How does this work in discord.py, which function and I wanna specify the number for it also
Not sure if this is a bug or feature request, sorry
Description
My bot has a button that ends up being spammed a lot by users. The server owner isn't doing anything malicious, just the users spam it a lot. I've implemented my own guild-level ratelimit, so that when it is being spammed, users are told ephemerally to slow down, rather than carrying out the actual task. The message is sent via POST /webhooks/{application.id}/{interaction.token}
However, the problem is that ephemer...
Depending on your usecase you could replace the button by its disabled version instead of using ephemeral messages to let the users know, that wouldn't work if you want everyone to be able to use it though.
Are there any plans to incorporate a "subcommand autocomplete" of some kind when improving the UX? So for example if a command is /one two three, you can just start typing /three and it'll pop up with the /one two three? (This doesn't seem to work right now but would be really awesome for grouping related commands as subcommands)
Possibly something along the lines of this could help display the privileged intents of bots and some more info about them aswell
Doesn't have to look like this at all, but atleast some indication of the info/intents of a bot on their profile would be great.

Now that discord.py has been discontinued I thinks it’s better to add a “Development Discontinued” indicator or maybe remove the lib from the table itself...
Why are no localization features listed? The issue for slash command localization was closed without enough discussion. Before slash commands, users would have to manually set their locale for my bot, but now if I want to integrate my bot into slash commands to make the experience more fluid, I can't because all of my command descriptions will be shown as raw strings.
Best-case scenario for slash-commands specifically, Discord queries my bot to determine what to display for a specific user...
Is there any way to hide arguments from other users yet?
Is there any way to hide arguments from other users yet?
Yes, if you respond the the slash command ephemerally, no other user can see the command arguments as explained in the previous 2 comments.
Oh, alright. I misunderstood the previous comments, and thought they were saying only the response would be hidden. Thanks!
A guild_id field would have been really helpful in the payload of these two GUILD_SCHEDULED_USER_* events
A way to reset the permissions on global commands would be great, short of recreating the command I don't see a way - say you have guild a and guild b, a has some permissions but you move them over to b, you would need to unset in a and set in b, if you didn't know a's guild id then it wouldn't be possible
@bdanklin default_permission doesn't behave that way, I read the docs and tested it. default permission as false means only the explicit permission overwrites you set are applied by default no one has access, default permission true means by default everyone has access
So I mentioned this in the discord-api discord and they suggested posting it here...
So right now Discord simply POSTs to the exact same interactions endpoint URL you provide, and all information is in the JSON body. I think it would be a good idea if Discord were to append REST-style information to that URL, for example, POST {interaction_url}/commands/examplecommand when someone uses /examplecommand. This has the following advantages:
- It will make it nicer and more straight-forwa...
Background Story
With the introduction of application commands (former: slash commands) interactions have been implemented. Those interactions need to be answered in 3 seconds which makes absolute sense because the user needs some sign of life from the bot. This deferring system has been copied to components that are also based on interactions.
The current problem
The major difference between deferring an application command or a component is, that deferring an application comman...
as a hack, you can acknowledge component interactions by editing the message to the same thing it already is (or just provide an empty object, I think that works too)
That would be a similar result to defer. Unfortunately, there is no real option to display a loading state for more than 3 seconds.
As I integrate selection menus into more facets of the bots I develop, I've noticed that their current behavior has become a hindrance for what I assume are relatively common use cases.
I propose that they send a select interaction even if the user has already selected the respective option (alternatively, send a "deselect" interaction instead).
An example use case is role selection or any other case where the options of a selection menu are treated as toggles.
Additionally, while t...
Ask in Discord.py, this is the Discord docs GitHub, not Discord.py support
Description
The docs for Command Object is missing the mention of a field called version.
There's a little mention that the Command Object has an internal versioning workflow for caching and updating the values, but the field itself should be mentioned in the object's structure. This information is required for anyone including __slots__ in their ORM ...
[discord/discord-api-docs] New comment on issue #3769: Undocumented Field: Version in Command Object
just wanted to mention that your code should always expect that additional fields can be added to any object at any time, that should not break your code
it is a guild limit, not a channel limit. there are exceptional cases to the guild limit, which is why sometimes there are more than 1000.
closing this since the documentation is accurate
The main flaw: After deferring a component the user can provide his next input.
Can you elaborate on this? We currently show a loading state when a deferred response is received until the message gets updated by the bot. You can then update the message according to further actions a user can take, if any.
Threads are a great feature, and have tons of potential for use in ticketing bots, verification bots, and bots that needs to prompt users for information. However private threads are currently locked behind a level 2 nitro boost, and for smaller servers, that effectively means a $45/month paywall. Additionally, if someone decides to unboost a server, that could break bots that are using them. There are some solutions such as using direct messages and things like that, however this doesn't fit...
I think there is some misunderstanding here:
application command interactions can only be deferred one way: DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE, which sends a "bot is thinking" response.
component interactions can be deferred in the above way, but you can also choose to use DEFERRED_UPDATE_MESSAGE, which acts as an "acknowledge" and allows you to use the interaction token later. it is intended to let you edit the message with the component later, but you aren't required to do that....
What's to stop people just using bots to bypass the private thread limit for their server?
It's a valid concern, however a very similar system exists that lets bots use animated and off-server emojis and rarely, if ever, do you see this abused. Now of course private threads are different from animated emojis, but I think in this case the potential for paywall bypassing is far outweighed by the benefits of having a feature like this.
The difference is, emotes are purely for the bot's account while threads are for everyone in the server. There aren't really any exploitations to allowing a bot to use animated/external emojis, whereas a bot could easily entirely bypass the private thread boost requirement maliciously with this request.
After responding to an interaction in any way, the loading animation disappears and the components become clickable again. This allows the user to provide his next input.
Technically a bot is only able to process data that is required to respond to an interaction for 3 seconds.
It's not a perfect idea, I will concede that. But again, I think the positives far outweigh the downsides, and you have to consider to some extent not what people might do, but what they will actually do. I don't see it as malicious. The vast majority of people aren't going to cough up the money (for me, around $45 USD a month) to boost up to level two anyways, so I don't see how Discord would necessarily be losing out here from a profit point of view.
Maybe this would be great for some select users, but its terrible for most. Part of the thinking behind slash commands is that users don't have to guess at what a prefix is for a bot. How does discord surface these other prefixes to users? And doing this makes it far less likely for users to find a command they are looking for using discovery.
pretty sure it was mostly so discord could make the message content intent
plus people are used to custom prefixes, if anything itd be better cause people are used to it
I love this, but how does it apply to the gateway? Is it an outgoing webhook only option that discord has to develop strictly for that use case?
Just because people are used to something doesn't mean it is a good experience. The amount of times people still use the wrong prefix for message commands is astounding.
The issue here is if you do a DEFERRED_UPDATE_MESSAGE, it gets rid of the loading state, which lets the user click the button again. It's also excessive API calls to do one message edit that disables the button, and then edit to new content again. What we want here is a solution to defer the response keeping the loading state like slash cmds.
users don't have to guess at what a prefix is for a bot
As I said, the list when pressing / could still have the full list of commands for all bots
How does discord surface these other prefixes to users
Could be some indication on the profile or in the / list or just up to the server owners.
And doing this makes it far less likely for users to find a command they are looking for using discovery.
Yes, that's why / would still have the full list.
plus people are used to custom prefixes, if anything itd be better cause people are used to it
I think it would be terrible ux to see a menu with commands pop up everytime you type in a random special characters.
responding with type 7 to edit the message and disable the button isn't any more calls than responding with a defer types
It’s an extra call when you want to do something that takes more than 3 seconds. You gotta use a type 7 or a type 6 if you ever want to edit the message later and not see an interaction failed. The issue is type 6 clears the loading state so people can click the button again. The current hacky solution would to do a type 7 disabling the button, and then another patch request to be what the final content is.
I'll support better permissions controls to guild managers, I think these have missing for a while.
- Ability for server admins/mods to manage slash commands
- Ability to manage command permissions with channel-level granularity
I would also like to be able to make sure same as bot owner that my bot will respect VIEW CHANNEL permission. If no VIEW CHANNEL, my bot would ignore it. Currently only way is to just simply give no answers at all which gives user "unnecessary error message" `Thi...
@ghostdevv That's what I said.
So for your concern, which was that someone could potentially access a restricted command before you have time to overwrite the permissions, by setting defualt: false you can resolve that concern because nobody will be able to access in that time between setting the command and updating the permissions.
Apologies if I was not very clear.
GetCurrentLocale is supposed to be a function, right? So it is missing a couple of parentheses.
| DISCORD_CURRENT_LOCALE | [ApplicationManager.GetCurrentLocale()](#DOCS_GAME_SDK_APPLICATIONS/get-current-locale) | the language that Discord is in for the connected user |
Currently, you can only get these fields through the GET/users/:user_id endpoint. This makes it nearly impossible for a moderation bot to keep track of these fields, since it requires to fetch each and every user it sees.
An alternative is to add previous state to the update event, which would solve this problem as well. I have an existing feature request for this with #3272
Not a duplicate since I ask for the entire gateway.
Related: #3022
This may break discord branding, So I disagree with this.
It would be super handy if bots could use /guilds/../roles/member-counts and /guilds/../roles/../member-ids, the client already uses these endpoints in the roles UI, but sadly bots cannot access them. I don't see any downsides to giving bots access.
I believe the stance on these endpoints was that they were performant enough for client use, but at the scales bots operate on they're too unstable.
I have found it incredibly tedious how permissions are handled with slashcommands in regards of trying to mention and ping a role.
The problem is that the initial reply to a slashcommand will ignore the bots permissions and instead default to the public role.
This means the bot is only able to ping a role that is allowed to be pinged by the public role.
You can't defer and then mention the role either, because its considered an edit and doesn't ping.
The only alternative is therefore to...
Theres two ways that this feature can be implemented, either add a new property to the embed, something like timestamp_style OR allow parsing of the timestamp format in the footer text (https://discord.com/developers/docs/reference#message-formatting-formats). Right now the timestamp defaults to the relative format which is great in itself, but for more details dates (like logs), this is lackluster.
I currently have people set their timezone(or default to EST) for my bot's timestamp form...
more generally, it could just support all markdown/formatting (including timestamps)
There's a reason why it's called a slash command. Very straightforward. Perhaps it could just be a command explorer UI that has your suggestion placed. I don't see a specific reason though, you could still click the bot's avatar in the left side of the UI to start at the first command of the app and different prefixes could cause a misunderstanding since it's not uniformed. And I also agree with ckohen's statement regarding people using the wrong prefixes.
They aren't called slash commands anymore, they are now called application commands, and "slash commands" specifically are called chat input commands
True, but the application commands shown in the command list still are slash commands since they start with the forward slash character and are meant to be that way when they got released.
Slash commands (also known as chat input commands) are a type of application command, the terms are not directly equivalent. Regardless, the client still refers to them as slash commands and all of the branding around them uses slashes. This can of course be changed at any time, so terminology isn't really relevant to either side.
https://discord.com/developers/docs/interactions/application-commands:
Chat input: Slash commands; a text-based command that shows up when a user types /.
This can of course be changed at any time, so terminology isn't really relevant to either side.
It would be amazing to have API events for when users get moved, disconnected, moved into audience, or are invited as speaker in a voice channel or stage. Currently it's impossible for bots to monitor this behaviour, meaning when staff in a server abuse these permissions there's no feasible way to track down who's doing this.
I saw there was an older issue regarding audit logs which was closed because it would cause too much stuff in the audit logs. But I think a gateway event would solve th...
This all emits VOICE_STATE_UPDATE, the caveat is that this of course only reflects the state change on the member, not who initiated that change. The audit logs for these events are inherently quite vague,
There have been prior mentions that the "who did this" question should be answered by audit logs, not gateway payloads, so I imagine that also applies here.
Voice state updates do indeed only show the actual change between voice states. Audit logs do indeed show Disconnects and the user that performed the action. Audit logs will also show channel moves, but not from which channel. I guess this could be figured out by combining audit logs and gateway events but that doesn't seem the easier either.
The main issue in my case however is that there's no events nor audit logs for moving someone to the audience in a stage or inviting someone to speak. ...
Hello,
I'm here to report a potential bug associated with meta tags and embeds displaying in Discord.
Any website that is using ArvanCloud cloud cdn, their embed or media cannot be previewed(embedded), it is only about the Discord and none of other platforms have this problem(like WhatsApp, Facebook, Instagram, Twitter and..), it means the websites are sending the preview and required values needed for a display to everyone, but the Discord is not getting it either or it gets but doesn't di...
One thing that I've noticed is that it's referred to as GUILD SCHEDULED EVENT everywhere such as prefix to related gateway events, audit log events, and fields. The only place it is just referred as guild-event is some of the related endpoints like GET /guild-events/{event.id}. So, I'm kind of confused why the structure is named GUILD EVENT and not GUILD SCHEDULED EVENT
Shouldn't you be using Create Interaction Response, not Create Followup Message, as presumably "you are being rate limited" would be the first and only response to a rate-limited button press? Do you run into the same limits there as well?
Description
If a mention or emoji is added to a slash command through the suggestions above the text box, all other message content gets removed.
Steps to Reproduce
Start a slash command (testing with built-in slash commands is easiest), add a message. Start a mention. Choose a suggestion above the text box. Observe.
Expected Behavior
The mention is added to the end or the message.
Current Behavior
The mention replaces the entire message argument, the slash command it...
Another user (who does not have github) can reproduce this bug.
Their system and client information are as follows:
Asus Zenfone 2 Z00AD Android 5.0, Oppo F1s A1601
Android 5.1 -- Alpha 91.4 (91204) and Beta 90.5 (90105)
This has nothing to do with the api.
You should report client bugs like this one at https://dis.gd/bugreport.
This has nothing to do with the api.
You should report client bugs like this one at https://dis.gd/bugreport.
"Slash Commands Bug Report" is an issue template here. I believe client bugs related to slash commands/message components are valid.
Shouldn't you be using Create Interaction Response, not Create Followup Message, as presumably "you are being rate limited" would be the first and only response to a rate-limited button press? Do you run into the same limits there as well?
The /callback endpoint is only for bots usin...
Description
Slash commands which accept channel options will show private category channels in the selector UI.
Steps to Reproduce
Register a slash command that uses a channel option
Create a private category channel
Acting as a user without access to the private channel, enter the slash command that uses a channel option
Expected Behavior
The private channel should not appear in the menu
Current Behavior
The private channel appears in the menu
**Screenshot...
Hey just letting you know this is a known bug.
Description
I registered a slash command with an integer argument with the following options:
"choices": [
{ "name": "first", "value": 1 },
{ "name": "second", "value": 2 },
{ "name": "third", "value": 3 },
],
if I run a command and select one of those options, then copy paste the command text from the popup and try to re-run the command, it prompts me to select an option again instead of filling in the value.
Steps to Reproduce
- Register a command...
His Problem is very similar to mine, but I still keep receiving a 401
const args = JSON.stringify({
access_token: token,
});
const response = await fetch(
`https://discord.com/api/guilds/${this.guildID}/members/${userID}`,
{
method: "PUT",
headers: {
"Content-Type": "application/json",
Authorization: `BOT ${this.bot_token}`,
},
body: args,
}
);
the bot is inside the server and has CREATE_INSTANT_INVITE turned on.
@Lschulzes don't necropost, please
and you need to type Bot not BOT in authorization header.
Description
So, I am basically creating a popup that asks to the user to authorize discord access, and then I retrieve a code, with this code I get the token, and then I make another api call ("PUT") to join this user to the server, and it responds me with an 401 unauthorized, I've looked the token itself and it responds me with everything correct
{
"application": {...},
"scopes": [
"guilds.join",
"identify",
"email"
],
"expires": ...
I really like the current system because it avoids clutter in messages because ephemeral messages are only removed when pressing "Dismiss message".
If bot wan't to receive it they can alternatively make it optional when Discord isn't showing error message but bot will reply with similar answer you depicted
[discord/discord-api-docs] New comment on issue #3769: Undocumented Field: Version in Command Object
I believe this was documented in #3524
Description
Sending an incorrect model type for slash commands throws a 500 server error.
Steps to Reproduce
Send the following payload to an application command create endpoint:
[
{
"name":"search",
"description":"asdf",
"options":{
"name":"keyword",
"description":"asdf",
"type":3,
"required":true
}
}
]
Expected Behavior
400 bad request, with some error text regarding a MO...
[discord/discord-api-docs] New comment on issue #3769: Undocumented Field: Version in Command Object
@A5rocks
Hmm weird, since it's missing in the docs itself. Maybe they have a separate branch for docs and didn't rebase master onto it?
[discord/discord-api-docs] New comment on issue #3769: Undocumented Field: Version in Command Object
the docs repo isn't automatically pushed to the site - it's not a separate branch, there's just no CI for it
[discord/discord-api-docs] New comment on issue #3769: Undocumented Field: Version in Command Object
@spiralw ah I see, thanks for letting us know.
@advaith1 Thanks for the suggestion. While I do agree with you at the moment because these are experimental features, I strongly believe that a stable api should have a fixed structure. Any changes to it should be first included in the changelog and deployed as beta first. It just feels more standard and robust that way. That way, it becomes a responsibility of the api devs to duly let us know how we can use their api to its fullest.
Since schema errors may not necessarily appear only for specific json properties, I think a specific example for this makes sense. I used the request error for max characters in a command. Additionally, I added a link to the schema errors in the error codes docs to make it more discoverable.
Hi !
Reactions to the original message from which any thread is opened are not passed back to the thread and live towards that. Yet it is the same message as an object that is used. Wouldn't it be possible to forward the reactions?
Concrete situation :
I run a discord guild to alert people to the restocking of items on multiple online sellers.
I have created a few channels for the different categories and in each we post the most interesting drops for each item. We would like to set u...
[discord/discord-api-docs] New comment on issue #3769: Undocumented Field: Version in Command Object
@Hyperclaw79 Discord can add/change fields that are not intended to be used by bots at any time (the gateway being common between bots and official clients -even if they are a few differences implemented). Except these fields will never be documented, and you should therefore always write your code so it accepts additional/unknown fields.
(change in existing documented fields is another thing)
i can reproduce this
my Client and System information
Samsung A10 - Android 11, Discord Alpha 92.0 (92200)
This works fine:
https://discord.com/api/v9/channels/[id]/messages
This results in a 404:
https://discord.com/api/v9/channels/[id]/messages?limit=50
Same with ?before=xxx
This started happening about 2 months ago.
For example: https://discord.com/api/v9/channels/592842126304477184/messages?limit=50
I can't imagine this being on our end. Our mobile clients send the limit and there is no 404s for channels that do exist. Something tells me you're getting bamboozled by url encoding or something.
Thumbs up for "Ability to manage command permissions with channel-level granularity".
I am on some servers with many bots, and discussion channels can become quickly cluttered with slashcommands, and there is no way to control which bots can use slashcommands in which channels.
What @ckohen wrote is pretty spot in - with frequency and other planned updates, navigating the list should become improved and faster over time. Those updates are a better target for dev time and effort than custom prefixes, which negate many of the user-facing improvements slash commands have 😄
What @ckohen wrote is pretty spot on - with frecency and other planned updates, navigating the list should become improved and faster over time. Those updates are a better target for dev time and effort than custom prefixes, which negate many of the user-facing improvements slash commands have 😄
Threads API coverage seems to be lacking even further.
/slackand/githubwebhook endpoints don't work with threads either. Not sure if a new issue should be created for this particular case.
Arguably, the slack and github endpoints are not supported, for a good reason. I don't think they should be supported, since that's effectively a thread that never closes.
@onerandomusername I don't think that's relevant as /slack and /github endpoints are just another way to interpret an otherwise regular message sent to a webhook. API inconsistency is API inconsistency no matter what the effective use cases are.
Right-click to Invite
Now that Context Menu commands are a thing and also, the bot OAuth2 opens directly in the client now, I think it would be really helpful to include an Invite option to the Bot's context menu.
Currently, I have it as a context menu command, but it feels counter-intuitive for the users to go to Apps > Invite to invite the bot, rather than finding it on the root level itself.
The invite could also use a different style to make it easier to notice.
Here's a moc...
Having a similar button somewhere under the full profile would also be great and fill the current emptyness with a useful button
8a61313 Parentheses are missing in: GetCurrentLocale (#... - xXLoloGameplayXx
Good Idea!
In case they plan to allow more characters in the About Me section, the empty area might shrink. But in that case, the best place to add a button would be next to the Send Message button.

It would be super handy if bots could use /guilds/../roles/member-counts and /guilds/../roles/../member-ids, the client already uses these endpoints in the roles UI, but sadly bots cannot access them. I don't see any downsides to giving bots access.
I believe the stance on these endpoints was that they were performant enough for client use, but at the scales bots operate on they're too unstable.
It would be amazing to have API events for when users get moved, disconnected, moved into audience, or are invited as speaker in a voice channel or stage. Currently it's impossible for bots to monitor this behaviour, meaning when staff in a server abuse these permissions there's no feasible way to track down who's doing this.
I saw there was an older issue regarding audit logs which was closed because it would cause too much stuff in the audit logs. But I think a gateway event would solve th...
This all emits VOICE_STATE_UPDATE, the caveat is that this of course only reflects the state change on the member, not who initiated that change. The audit logs for these events are inherently quite vague,
There have been prior mentions that the "who did this" question should be answered by audit logs, not gateway payloads, so I imagine that also applies here.
Voice state updates do indeed only show the actual change between voice states. Audit logs do indeed show Disconnects and the user that performed the action. Audit logs will also show channel moves, but not from which channel. I guess this could be figured out by combining audit logs and gateway events but that doesn't seem very easy either.
The main issue in my case however is that there's no events nor audit logs for moving someone to the audience in a stage or inviting someone to speak.
...
They were talking about when it only has the applicaiton.commands scope authorized, you don't know it was added to a guild until a command is used with it. Though I'm not sure what the point of registering guild specific commands when it is added. It sounds like you can just use global commands.
4a6ca72 Add hikari to community resources (#3727) - davfsa
d961c6c Removed the disclaimer for threads (#3762) - BanTheNons
Description
Hello 👋
I am hoping to request the addition of a new request to be sent whenever a guild/server adds the slash application(non-bot).
Why This is Needed
I was looking to somehow determine when the application is invited, so I could register all the guild-specific commands for them because at first these would not exist.
Alternatives Considered
/registerglobal command to enable guild commands. However, i feel thats a bit worse UX ...
There was a proposal for customizing prefixes for the Interactions API (topic #3744) which had a flaw pointed out regarding the UX suffering from it.
I do feel like there's room for improvement in the slash command interface though, especially when several bots register slash commands in a server and those in the latter half of the alphabet get pushed all the way down. Something that the old format of using prefixes didn't suffer from. For example take a bot currently sporting the prefix ;...
043dca1 Add Discord++ to Community Resources > Librarie... - UndarkAido
They already have the permission calculation tool for invite links in the developer portal. Would be great if one could save that value as part of the bot's registered settings to allow for easing the invite process.
Having easier access to invites would also be great
@HuyaneMatsu sorry for the ping, just wanted to let you know that your pr has conflicts :smile:
I agree that this seems like a very valid solution for things like ticket system bots and modmail, especially since those are very valid usecases to have a closed environment for talking in.
I also think this could make for a very good usecase of allowing message content to be read by the bot without the need for a privileged intent, to make the user experience better. They could even implement it as a special subclass of threads to make it happen without the worry of people abusing it, by o...
yeah, I was surprised that it wasn't a thing already back when I first made a bot lol
9e9f38f Add Orca to compliant Discord API libraries. (#... - LucasMull
Something which would help balance things out:
- Only X number of private threads can be active at once if they're created by a bot.
OR
Rate limit the private thread creation by bots. - Only Admins, irrespective of Join Private Thread perms, should be allowed access to these threads. That way server owners can't abuse it by giving that perms to everyone.
- [Optional] Only users with 2FA enabled can join these threads.
7b9db21 Add Nyxx to libraries and interactions (#3156) - HarryET
1 Seems like a good idea. Base the maximum amount on the server's member count to prevent a large server from constantly capping out.
2 Seems like a terrible idea, with ticketing systems being the example it would be great if the one that opened the ticket can view it too. And the ticket could be "admin x was abusing power" and then admin x can go and close the ticket saying it's a BS complaint.
3 Please don't lock more stuff behind 2FA, it should be a choice to use and will drive away user...
It's nice to see this idea is getting some traction, honestly with Skye's post which most people had upvoted (despite me responding to her point) I assumed it had died there. I think the first option would be the best, although it wouldn't surprise me if there are already thread limits in place to stop people from just creating a ton of threads, as remember it can be done by anyone and not just server admins.
To be honest I think this suffers from the same problem as #3744, as the purpose of application commands is that it should be intuitive to the user, and especially on mobile, people won't want to type in /; or other special characters. I believe there is a psuedo-workaround, as you could prefix bots with /yourbotname_command , but doesn't really work from a UX perspective either. I just hope Discord improves their command menu, and I could see why people would want workarounds for it.
They should just add a date picker option that converts to unix epoch or something, much better than large amounts of slash commands options, as most people aren't going to want commands with more than 25 parameters, that would be extremely tedious.
I think they were sorted phonetically before? This is at least the way Discord sorts usernames- nothing, then symbols (# before +. Unicode order?), then letters.
4bdb539 Add another schema error example (#3785) - MinnDevelopment
28c8c59 Sort Community Library Languages Alphabetically... - UndarkAido
7ae3f54 update region deprecation message (#3644) - advaith1
This is technically correct, but doesn't seem necessary to document? It will be about 140 years before we create any snowflakes that reach anything near the upper limit, so it's not like you are ever going to receive a snowflake that large and need to know how to handle it.
This seems like an edge that's only really hit if you're trying to do so, not in the "normal course of operations". This can be reopened if there's a real need to document it, but I'm not sure there is.
If you want to provide some max Snowflake constant in your Library that is actually valid, this would be useful.
If you want to provide some max Snowflake constant in your Library that is actually valid, this would be useful.
Yes, but that max snowflake constant is not a necessary thing to have. Snowflakes are generated by Discord; you aren't going to receive ones that are currently out of bounds.
More so, if we decide to change database infra and can then support larger snowflakes, this would be incorrect (though still not really useful).
I'm not doubting the validity of the information, but I think it's unnecessary complexity.
This PR adds Hata to community resources.
I'm opening a new PR since @davfsa told me my PR has conflicts and since it was closed.
Hata is an async Discord API wrapper written in Python.
The library tries to do things differently than other Python wrappers - its main feature is supporting multiple clients with shared cache between them.
It also aims to be fully PyPy compatible for the ...
Snowflakes are generated by Discord; you aren't going to receive ones that are currently out of bounds.
Snowflakes can be generated by users. For example, the after/before/around value in a message pagination does not have to be the exact snowflake of a message; it can be synthesized to represent a date and time. The lower bound may be useful for getting the first message in a channel (or you can use the channel ID) and the upper bound may be useful for getting the last message in a chan...
you can use last_message_id for the last message in a channel, and the channel id for the first message in a channel.
More so, if we decide to change database infra and can then support larger snowflakes, this would be incorrect (though still not really useful).
Then it would only take one little change to make it correct again.
you can use last_message_id for the last message in a channel
You have to track messages to know the last id, so you would have the last message anyway, if you cached it, and if you even tracked messages. Some users may not do that.
the channel id for the first message in a channel
And yes I listed this.
That's not the point, though. I'm just giving an example of where users input snowflakes instead of receive them.
you can use
last_message_idfor the last message in a channel
This will change over time, right? So you would need to keep it up to date.
Description
On this Interaction Create event page, the link for Interaction (at "Inner payload is an Interaction.") is redirecting to the main page of the Discord API documentation and not the Interaction Structure.
Steps to Reproduce
- Go to [this](https://discord....
This kind of PR would be reasonable if the library itself was maintained in a professional manner, and didn't have a weird support server that contains daily drama and rudeness directed at users of other libraries and other questionable content.
I think this is a dupe of (part of) #3341
To add to the above comment: the support server have been repeatedly warned by Discord's TnS about various behaviour such as sharing NSFW works outside NSFW channels. The administrators of the server have also worked on banning every single moderator, helper, booster and anyone affiliated with the discord.py server (source: I am a discord.py helper) 
Is it? I don't see anything in that issue that would suggest what I am needing
Global commands are limiting and guild commands provide more useful utilities to your commands so no I really do need guild commands
Global commands are limiting
What limitations do they have besides the 1 hour cache? (which is not an issue if you're joining a new guild)
That event does not go out to bots, and definitely would not go to HTTP only bots
I'd suggest reading that discussion again, I forgot myself that it is mostly talking about this exact problem.
We likely won't expand the choices - the limitation exists for performance reasons as well as UX ones, especially on mobile. We do want to add a datepicker slash command type, and an autocomplete system that allows for a more dynamic list of options - I think these would solve a lot of the common use cases needing additional options. Some of this is on our API roadmap 😄
We likely won't expand the choices - the limitation exists for performance reasons as well as UX ones, especially on mobile. We do want to add a datepicker slash command type, and an autocomplete system that allows for a more dynamic list of options - I think these would solve a lot of the common use cases needing additional options. Some of this is on our API roadmap 😄
What does datepicker slash command type mean? will it also be a message component?
A slash commands option that lets you pick a date
Hence why it should also still show up in the full list when only typing /. It would just add a filter in the form of old prefixes that isn't necessarily required to use the command. Again, it's not meant to replace or alter the slash as a global prefix idea and it would be an optional arg for the bot when registering its commands
Description
Add a option to let users select multiple options when the command has options, like select menus just as command option choices, this would allow for better options for both the user and developer.
Example
A automod punishment setup command.
/setautomod
punishments being a string field with choices (delete message, send note, log in log channel, add punished role, kick user, ban user, mute user) and min values of 1 and max values of 7 (for 7 choices)
This wou...
Also possibility to have send backs on ephemeral messages, say a user clicks a button, other than url which works.
Description
Android client does not recognize slash command with non-English name.
English name and non-English option name works btw.
Steps to Reproduce
- Register your slash command with non-English name.
- Send command in chat.
Expected Behavior
Android client must recognize command like PC/Web client.
Current Behavior
Android client does not recognize command. The sent command is recognized as a regular message.
Screenshots/Videos
**First...
Allow sending attachments when replying to slash commands. Usage scenarios: sending any kind off images.
@RivenSkaye That's fair, but again, on mobile that would be pretty tedious to have to type in special characters for each command you want to use
If by "replying to slash commands" you mean the bot is sending the attachments, that is already possible. the normal message api routes support attachments, and replying to interaction http posts with form data also works if you're using that.
I agree. With my bot, I have many administration and not many user commands. So, having commands separated by categories would make it easier on the user on which command they can and cannot use. Would also help administrators see all commands under that category rather than going through the whole list.
I think slash commands don't really have much to do with message components.
Example use case: My bot generates a private room on my server for the user to send their information, including their birthday.
Here I would love to have a component that just allows me to get a Date directly from the user interacting with the question sent by the bot (ie: "What's your birthday?") currently we make the user type it out, in the near future we are just asking for age ranges though we lose infor...
Sending via normal message api route is an option for sure.
However, I do not see interaction reply accepting attachments in any way?
Is it not documented?. It is not here atleast https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-data-structure
It's not part of the response json structure, you can just respond with form data, like how you can post form data to the create message endpoint.
well the fact that you can respond with form data and the file and payload_json params were never documented for interaction responses, because it wasn't supported originally
If by "replying to slash commands" you mean the bot is sending the attachments, that is already possible. the normal message api routes support attachments, and replying to interaction http posts with form data also works if you're using that.
Description
Creating an instant invite in some guilds returns a HTTP 204 with no content instead of 200 with the invite object. Additionally, the server I tested on has a valid vanity (returned in the guild object), but reports invalid invite when trying to use it.
The owner of the guild also told me that clicking buttons in the guild does nothing at all (not even This interaction failed), however, I am not able to verify this myself, since he cannot create an invite for me.
**...
A guild-specific issue, no screenshots/videos and the mention of interactions is all a bit worrisome. There's little to go off of if this apparently can only be reproduced with a specific server, which also an invite obviously cannot be generated for.
A guild-specific issue, no screenshots/videos and the mention of interactions is all a bit worrisome. There's little to go off of if this apparently can only be reproduced with a specific server, which also an invite obviously cannot be generated for.
Guild ID included since I assume it's a bad API code change so that whoever handles this issue can get what commit etc is running on the guild process. I assume this is happening to more than 1 guild, since changing response type is unlikel...
This is not a bug. If the owner wishes they can reach out to support for further clarification.
Was not aware it was a naughty server, was investigating after the user was reporting buttons on my bot not working and didn't know this was a policy.
My apologies.
Description
When using message commands on a channel you don't have permission to send messages in, the API errors out "Missing Permissions". I've discussed this with some other people, and it seems to be a bug and not an intentional feature.
- Have a bot with a message command
- Have a channel where you don't have send message permission in that channel
- Use a message command on a message in said channel
- (see picture)
In the developer console:
**...
downs for the message content intent
One thing that I've noticed is that it's referred to as
GUILD SCHEDULED EVENTeverywhere such as prefix to related gateway events, audit log events, and fields. The only place it is just referred asguild-eventis some of the related endpoints likeGET /guild-events/{event.id}. So, I'm kind of confused why the structure is namedGUILD EVENTand notGUILD SCHEDULED EVENT
Initially I had written it as GUILD EVENT before I knew about the scheduled part. It's something I'm will...
Description
When I select a voice channel in a channel option on iOS, it actually sends a text channel with the same name
Steps to Reproduce
- have a command with a channel option
- have a text and voice channel with the same name
- on iOS, run the command twice, picking the different channels with the same name
Expected Behavior
it sends the channel you selected
Current Behavior
it sometimes selects a different channel with the same name
**Client and System Information...
Initially I had written it as
GUILD EVENTbefore I knew about the scheduled part. It's something I'm willing to change, unless someone has any objections.
Objection:
The name guild event / event seems to be more used than sheduled even...
Really disappointed that #3235 haven't got proper attention. While huge amount of people who make bots don't develop frameworks/libraries for them, people who do make libraries/frameworks still dragged down because of that.
When discord makes changes, it is particularly hard to track individual bits. E.g. when structure of message changes, you should not only modify mapping for message itself, but also modify various edit/create methods.
It is very error-prone since every change must be...
Tested on iphone, works well, so it's android client bug.
Found out there is already a ticket for this > https://github.com/discord/discord-api-docs/issues/3682
Closing this one.
Can reproduce, it's bug.
My screens are in closed issue linked in history.
@RivenSkaye Looks good right?

Description
The /guilds/:id/bans endpoint headers are inconsistent. From my testing the bucket seems to have a 1/60s rate while the headers imply it's 5/60s. Only the limit header is wrong. Here's an example after firing only a single request on an unused token:
x-ratelimit-limit | 5
x-ratelimit-remaining | 0
x-ratelimit-reset-after | 60.000
Steps to Reproduce
Fire a GET to /guilds/:id/bans, limit will return 5, remaining will be 0.
Expected Behavior
...
Endpoint seems to be returning global on 2 different bots I have access to
I'm transitioning toward slash commands and hit a wall with some features:
I have a jail command that mutes someone based on X reasons, I also have some dozen subcommands attached to it.
For instance I can do jail @someone to mute them, or jail info @someone to view information. This doesn't seem to be possible at the moment with slash commands.
Not just DM's too. I use the channel options for rich embed announcements in my discord server and it doesn't work either. :( hope it gets fixed soon.
its spelled wrong internally btw
What you mean with wrong spelled? Does it affect us?
Description
Currently we can only edit Ephemeral Message but we can't delete Ephemeral Message through API Request.
Why This is Needed
Deleting a Ephemeral Message will help us to show a temporary message to user who used Slash Command.
I'm not sure the point of this - ephemeral messages are already temporary and can be dismissed by the user.
It should be possible to at least fetch an ephemeral reply.
POST /interactions/<interaction_id>/<interaction_token>/callback always returns a 204, ideally this would just return the Message object to us like POST /channels/<channel_id>/messages does, but that isn't the case currently.
For a regular response you can instead use GET /webhooks/<application_id>/<interaction_token>/messages/@original to fetch it, but this doesn't work for ephemeral messages - the API will return `Disco...
Say you're running a command which uses buttons and ephemeral messages.
In some cases you'll have multiple messages displayed, and editing the message takes up horizonal space, especially if the user is trying to perform other actions at the same time
I would like to see this feature, too. Although a user could suppress it themselves when they no longer see the need for it, allowing the application more fine-grained control of the message history would help make for a cleaner UX in some scenarios.
For instance, a simple ephemeral confirm/deny button dialog prompt could self-destruct once an answer is provided with no more interaction from the user.
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...
So my personal opinion as a user and bot dev is that ephemeral timeouts or deleting ephemeral messages isn't a great UX pattern to encourage. Timed messages are easy for a user to miss, and they aren't forgiving if a user takes a certain amount of time to read and comprehend a message (especially common if it isn't in their native language). Since ephemeral messages are unique to a user, we also lack tools to alert the user what happened to the disappearing message they had just been lo...
I have multiple points about this topic:
- Be able to close on interaction complete. (User clicks a button, interaction closes, users doesn't have to close the msg themselves, saves the bot having to edit the msg on completion).
- Towards users auto close on the expiration time. (No need for them to see an interaction that they can't use anymore).
- API response when interaction gets closed before or on the expiration time. (to be able to get feedback and on the bot side taking the steps t...
Yes, I believe the main issue is ephemeral message build-up. I see no reason to delete a single ephemeral message . I think you hit the nail on the head with missing response types. The response types we have now are not ideal for things that already have an obvious user feedback and IMO thats why we are trying to work around it like this.
Oh, and the A11Y / I18N reasoning is a very strong defense against doing this.
something like a [...] Notification Center maybe
I would be really happy if something like this was added to the Inbox tab, it would clear up both public chat and DMs from messages like "added you this role!" or "welcome to <server>, here's some info about us"
My bot has continue/cancel buttons on certain things. Leaving the ephemeral message there after having already pressed one of them is going to be confusing
That's a good point. I think again that could be solved by another response type in the future, maybe say...forms? I know that isn't in the immediate plan, but maybe a confirm / cancel followup is something to be built in as a stepping stone to custom forms.
Just becaus you can't imagine a way that doesn't mean it's not a needed thing.
Example:
My bot has a message with a button in a server channel where no one is writing in. Clicking it spawns an ephemeral message that tells the user to read the DM I've just sent to him. It'd be good to be able to delete the ephemeral message as soon as the user interacts with the DM I sent.
No one else is writing in the channel with the first button. It's basically a fixed message in a fixed channel. Use...

Hi i have this error i cant fix would you help me?
Ultimately, ephemeral messages are not intended to be used that way in my opinion. For one thing, sending a user a dm is an act of acknowledgement, a response, user feedback. Discord currently doesn't have a way to say, "hey, i've acknowledged this interaction some other way than these few predefined methods" and that's a recurring theme which I hope is being worked on.
Another thing to consider is why send a DM at all? If you want the message to persist, that's understandable, but if you...
Another thing to consider is why send a DM at all?
Well, yes, this in some way a legacy thing coming from the years of operating this bot when we had no other choice.
I initiate a private flow in DMs that requires to user to talk back to the bot one or multiple times, choose options, etc. Still, it's not solvable through interactions, due to missing ephemeral inputs (forms, multi-line-text).
However, even if we get something like multi-line text-input, I'm not sure if I should move t...
I did some more testing and it seems that this behaviour fluctuates either based on ban count or guild member count. On a small guild with a single ban it returns no ratelimit headers, however for a 100k+ guild with a lot of bans the behaviour described originally holds up, might be the reason why @bsian03 observed different results.
- [x] I'd like to suggest a checkbox message component...
How does it benefit bots?
Certain bots require certain settings to be configured. Some bots allow the user to change/toggle these settings by commands but adding a checkbox component will make it easier for the user to toggle these settings.
Other than the use for toggling settings it can be used for many functionality in bots i.e. polls/votes, lists, etc... there are several use cases for a checkbox component.
Possible ...
It seems to be on the number of bans. In a tiny guild with 5 members and 17k bans, I’m getting the behavior you described, but it seems to be guild-wide. Ex: When I fetch the ban list from my bot, and then open the band tab in settings, my client gets a 429 immediately without any prior requests.
I think this could be a possibility in the upcoming forms component.
It’s not just ephemeral message build up, though build up is (with my user hat on) somewhat annoying for some interaction patterns. I don’t see how a Notification Center-like affordance would be a net benefit since it seems like that would involve pulling the responses out of the channel where the user issues the command, but maybe I’m not imagining the right thing. In any case that’s not the only issue.
There are two scenarios where I’ve wanted this, though the second one will go away onc...
You both bring up excellent points.
I'm even getting a very much more visible "notification"
Yeah, again that problem of a much more visible response than a message but you have to send a message thing 😢
I don’t see how a Notification Center-like affordance would be a net benefit since it seems like that would involve pulling the responses out of the channel where the user issues the command
Yeah, I don't like bringing it completely out of the flow, but something other than a...
Description
I tried to set outgoing webhook as the mechanism for "Receiving an Interaction" in
Applications > My App > General Information > INTERACTIONS ENDPOINT URL
According to Discord API documentation, I have to "ACK a PING message" as below
{
"type": 1
}
I am pretty sure that my outgoing webhook responses a valid JSON as the response message for ACK but once I click Save Changes button the UI always shows me
Validation errors:
int...
you need to validate the security headers and respond with a 401 status for invalid interactions, read https://discord.com/developers/docs/interactions/receiving-and-responding#security-and-authorization
Thank you so much, I think that I know the point now, I will close this issue
I wasn't entirely sure where to post this so I thought asking the question here instead was best.
When registering slash commands and setting permissions for only specific roles to use them, when viewing the server with that role, you still can't use them which I guess makes sense but the opposite is also true - You can still use them even when viewing with a role that doesn't have permissions to use the slash command. I figured this would be useful for checking that the commands are actua...
This rather small PR adds missing dots at the end of info blocks on the page and removes the word "two" as the Community Resources list for interactions libraries has more than two, and removing the counter is future proof.
I can not confirm if this is right.
Can't set role icons yet ;)
@msciotti I think you want to add in experiment
@advaith1 I bet you know something
its /role-icons/role_id/role_icon.png
[discord/discord-api-docs] Pull request opened: #3816 Fix Some Grammatical Errors on the Oauth2 Docs
The Oauth2 documentation has some grammatical errors here and there, so this small PR fixes them up.
guilds with a larger amount of bans fall privy to {code: 30037, global: false, message: "Max number of bans fetches has been reached. Try again later"}, which tells you in the error you need to wait a minute before fetching again, in a guild with less than 5k bans im allowed to fetch it twice before i get any rate limits, on guilds with more than that, its once per 60s
The protocol tests were a success, even if it is not fully standard, it would bring many improvements in speed, not only for the client who expects the speed of light, but for the api that someone must pay the costs of the machines.

I hope they can match using it so that the client and the api server can work at the speed of light.
The API and client already use http/3

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.
They can't be filtered though. API will check the channel exists, but not if the user can manage it (if user has specific permission in a given channel), or even if the channel is disabled in bot settings itself (in my bot, you can set permission to use command per channel per role, and that can't be done in API nor I saw any plans on adding that).
...
I don't understand how that downgrades the experience. You can still do any amount of validating in your code and if it considers it invalid input, you can respond with an ephemeral error. That's a way better user experience for me. Plus, you are guaranteed whatever argument you are checking is the right type because of the API validation mentioned.
Please don't do this, but just to point out that slash commands can only ever expand on message commands, you could totally make a `/command ...
Checkboxes would be really nice! I had thought about suggesting this a few times but never did so for a few reasons. Here are a couple of considerations to have though.
- Are checkboxes per user or is state synced across all users
- If its per user, can state be stored? Select menus already struggle from this and I think Discord would be unlikely to implement state storage if its user side
- Much of the functionality, if not all, of a checkbox can already be achieved using a button a...
View as role is completely client side, and I don't think the client recalculates application command permissions when you enter / exit view as role. It seems reasonable that it isn't the case currently anyways, since in that very same article it mentions the things view as role applies to and there is no mention of application commands.

However, I think its is possible this ma...
I don't think the client recalculates application command permissions when you enter / exit view as role
yes it doesn't currently, which is the point of this feature request (which I would consider a bug report)
your screenshot just shows some example use cases; view as role is intended to fully act like you only have the selected role
view as role is intended to fully act like you only have the selected role
I'd actually have to completely disagree with this, anything that involves interacting with the API is unaffected by view as role (and that's a lot).
Here's some pretty big examples:
Search
Sending messages with role / everyone / here mentions
Sending messages with links that embed
Sending messages with external emoji / stickers
The voice restrictions mentioned in the article
And plenty more
Interestingl...
Do you have an example of a cdn url to a role icon?
Do you have an example of a cdn url to a role icon?
| icon | ?string | the role's [icon hash](#DOCS_REFERENCE/image-formatting) (if the guild has the `ROLE_ICONS` feature) | null |
The example you have given is a hash and there's also a CDN URL for role icons, hence it would make more sense that this is the role's icon hash rather than Base64 encoded image data.
That sentence is a little funky in general. If you remove the (n)or then in "Bots can not send messages from this channel type (as it is a store page)." the "from" doesn't make sense.
That sentence is a little funky in general. If you remove the (n)or then in "Bots can not send messages from this channel type (as it is a store page)." the "from" doesn't make sense.
Yeah, I'll fix the other mistake as well.
I made the sentence clearer.
9a361d5 Fixed mistakes in a sentence (#3821) - Davi-the-Mudkip
When updating a role via the PATCH, icon is a file (specifically ImageType)
Update the table here https://github.com/discord/discord-api-docs/blob/master/docs/resources/Guild.md#modify-guild-role--patch-guildsguildiddocs_resources_guildguild-objectrolesroleiddocs_topics_permissionsrole-object to add icon and mention it is a file type, which requires multipart/form-data body
the client sends a data uri in json (image data in the docs), not multipart/form-data
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information
Very good bug report, cannot reproduce
and an autocomplete system that allows for a more dynamic list of options
This would be a message component :)
could also be useful for flags. I.e. /ban user:@user flags:["save-messages", "delete-attachments"]
bbdce35 Fix links in List_of_Commands.md (#3812) - xXLoloGameplayXx
839ef50 Document START_EMBEDDED_ACTIVITIES permission (... - advaith1
It allows for editing events too.
It allows for editing events too.
| MANAGE_EVENTS | `0x0200000000` `(1 << 33)` | Allows for creating, editing, and deleting events | |
I don't understand how that downgrades the experience. You can still do any amount of validating in your code and if it considers it invalid input, you can respond with an ephemeral error. That's a way better user experience for me. Plus, you are guaranteed whatever argument you are checking is the right type because of the API validation mentioned.
Please don't do this, but just to illustrate that slash commands can only ever expand on message commands, you could totally make a `/co...
@Jupith am I wrong with that?
| ROLE_SUBSCRIPTIONS_ENABLED | guild has enabled role subscriptions |
The API and client already use http/3

Hello, I think that interactions lacks of a mention option where you could, same as inline replies, mention the user that executed that interaction.
For example, if I do /ping command, app would answer with @Koyamie used /ping instead of Koyamie used /ping.
My use case is that for some of my commands I like to mention the user, it is better to distinct the executed command when there is a lot of messages in a channel but I don't like having 2 times the username in the answer.
W...
can you also fix the order? they were alphabetized at one point but the new ones just got added to the bottom like earlier
72bf5ac Document channel_types in ApplicationCommandOption - typpo
are empty arrays treated weirdly?
If you provide an empty array it will just use all channel types (at least from my testing that's what happened)
It seems passing a non-integer value attempts to coerce the value into an integer, and when that fails we get this error as expected.

However, a value of true would be converted to 1.
Furthermore, when sending null or undefined, it will set the type to be null and no channels will ever appear, preventing the command from being sent.
it works in my lib when I set it null and ignore null on transmit.
So don't submit it if it's not given
Oh whoops, should've specified, I meant sending null as an array value, not null as the value of the key itself
Is this validated by the api or is it just client side?
validated by the API (it's already live)
b4c2023 Move login dispatch command (#3813) - xXLoloGameplayXx
2d6340d Document client credentials grant scope limitat... - alanbixby
69770ab Document creation limitation for Lottie sticker... - NurMarvin
This is intentional, but perhaps could change once the new permissions structure rolls out
d08fdab Fix up some grammatical errors (#3816) - CominAtYou
05691a3 Modify guild channel positions does not require... - A5rocks
Would send the registered commands that the user has access to.
I know I can do it myself but seems like a waste of time to me
... that's what the command browser already exists for tho?
command browser shows all commands with descriptions, i think that is sufficient
Gateway is not relevant, this is just about the way discord sends "outgoing webhooks".
It is though. They are clearly worried about consistency between the gateway and outgoing webhooks. Like I said, I love this, but I'm trying to figure out what incentivizes Discord to actually implement it.
Sometimes we make mistakes and might have an incorrect hyperlink and it result in weird cases where clicking on them just brings you to the top of the page.


PLEASE RUN THESE THROUGH A FORMATTER OF SOME KIND.
We have a fix for this merging in soon!
links are checked on the hackweek docs site rewrite :) https://github.com/IanMitchell/hackweek-discord-api-docs/pull/37
As a workaround, we could use Categories as Commands and the actual commands as Subcommands. But yeah, it's not a good user experience that way. If they overhaul the UI for it and make subcommands detectable directly by slash, it would be perfect.
My bots slash commands do not appear on new servers anymore. It has been multiple hours. I have tried rejoining the bot. I have also tried ctrl+R. Even restarted the bot. Nothing.
The commands work fine on other server, where the bot has been for multiple years and on some newer ones, but recently I have noticed hight bot removal from new servers and found out, the commands do not appear.
I have created my own server to test this and the commands seem to not appear even after 24h,
Th...
Ok, I found the answer. Apparently to invite link has to be modified. Instead of scope=bot it now needs to be scope=bot%20applications.commands.
No idea why this is not a setting in the developer panel for bots.
It seems fixable in the current permissions system, at least from my perspective. At the moment, if a server owner does not want application commands being used in a channel, they can negate Use Application Commands, where that prevents the App menu from showing up entirely in that channel, independent of send messages. So as long as the API 403s any requests to use a message command where they lack the Use Application Commands permission, there shouldn't be a problem.
it is in the oauth2 url generator, and it is documented


So far in the api i've found no way to access the about me text of the user, if i make a request i get a simple object, something like this
{
"id": "194216450322464768",
"username": "Reki Nano Godspell",
"avatar": "a_2755b47fcd49853bc9921eb240c7cf32",
"discriminator": "4208",
"public_flags": 768,
"banner": "a_78a9fd5e36fb1f6a52d58253407fba95",
"banner_color": null,
"accent_color": null
}
but no about me item, is there any way that this could be added? ...
Bots will not get access to user bios, for privacy: https://github.com/discord/discord-api-docs/issues/3095#issuecomment-868817186
Bots will not get access to user bios, for privacy: https://github.com/discord/discord-api-docs/issues/3095#issuecomment-868817186
The question does not ask for bot access specifically and an oauth scope is still up for discussion, afaik.
670f33f document ephemeral attachments - devsnek
um, gateway doesn't involve http urls; there is no way this can apply to the gateway.
The payloads would still be exactly the same but this is about something that the gateway doesn't have, outside of the payload.
Wouldn't it make more sense to use a footnote?
| ephemeral? \* | boolean | whether this attachment is ephemeral |
\* Ephemeral attachments will automatically be removed after a set period of time. Ephemeral attachments on messages are guaranteed to be available as long as the message itself exists.
5588898 Update docs/resources/Channel.md - devsnek
d611664 document ephemeral attachments (#3833) - devsnek
0d83730 Update date and tenses - chromakode
a674ee9 Document changes to threads permissions (#3672) - ajpalkovic
Right, that's my point. In the past they've said we can't get the message in the response when responding via the gateway because HTTP bots wouldn't get the same (can't respond to a response). So this being an HTTP only thing breaks that consistency.
Also worth mentioning, you'd need to include more than just the name if this was implemented
| Field | Type | Description |
| ----------- | ---------------------------------------- | ----------------------------------------------------------------------- |
| name | string | name of the role |
| permissions | string | bitwise value of the ...
| Field | Type | Description | Default |
| ----------- | ---------------------------------------- | ----------------------------------------------------------------------- | ------------------------------ |
| name | string | name of the role | "new role" ...
@advaith1 what u think?
I'm pretty sure they have suggested changes in the wrong place. As advaith mentioned, image data is what the client sents.
well, I implemented it into my lib like it's actually noted and some users with access to role_icons tested it and it worked.
I'm unsure
Rich Presence assets are cached for 10 minutes. Just upload it once, wait ~12 minutes, and then refresh the page and it should be there. I wish that the dev portal bypassed the cache, but it doesn't.
Likely, when you uploaded the same asset twice the server accepted both (after all, there wasn't another asset with the same ID), then added them both. When you tried to delete one, the server realized that it had messed up somewhere and returned an error.
Suggestion: Maybe provide an (e.g. sha256) hash of a bio and an array containing the TLD of all the links in it.
This enables use cases such as detecting whether or not multiple users have the same bio (or no bio) and preventing invite links in the about me section.
Most of the problems vis a vis sensitive data being a privileged intent could be solved by informing the user of any recently added bots' privacy policies and ToS. Here is my suggested implementation:
Privileged intents can only be used to get sensitive data of bots they have authorized. I suggest a page where you can then unauthorize any bots that you have authorized.
When a user joins a server with a bot, an additional page of membership screening is added, requiring users to authoriz...
Currently, user bio and banner fields are only returned on the profile endpoint, so they cannot be accessed via bots or OAuth2. It would be useful if they were returned in endpoints that can be accessed.
Also to mention, they must fetch server avatara of the members.
@msciotti @advaith1
Also to mention for future, they must fetch server avatara of the members.
Also to mention for future, they must fetch server avatara of the members.
This is already possible with the GET /users/{user.id} endpoint
per-server avatars are already accessible and are on the member object #3081; they aren't in the user object since they're per-server
they don't have anything to do with user profile features like banner and bio
I think Guild Scheduled Event makes the most sense. The API seems most likely to call it that.
Will having the guilds and identify oauth2 scopes allow you to access per-server avatars?
By the number of confused reactions, here are some proof-of-concept images that might help you imagine this:
- The pre-existing Authorized Apps page works well enough: https://user-images.githubusercontent.com/45835846/133854920-4a4b2bda-8148-4f31-9cb1-3cd0834b2ef8.png
- Membership Screening (I forgot to put in example links): https://user-images.githubusercontent.com/45835846/133856177-aef45494-2f15-47de-8967-545460062555.png
- Bot Privacy Policy & ToS page: https://user-images.githubu...
By the number of confused reactions, here are some proof-of-concept images that might help you imagine this:
- The pre-existing Authorized Apps page works well enough: https://user-images.githubusercontent.com/45835846/133854920-4a4b2bda-8148-4f31-9cb1-3cd0834b2ef8.png
- Membership Screening (I forgot to put in example links): https://user-images.githubusercontent.com/45835846/133856177-aef45494-2f15-47de-8967-545460062555.png
- Bot Privacy Policy & ToS page: https://user-images.githubu...
I think there's more value in describing the commands in a human way than a machine telling you the name + parameters (which, others have pointed out, sort of exists with the command browser). It also allows nuance between a ban command for a modbot and a bot that has a ban command that bans someone in an external environment, like a Minecraft server.
I think there's more value in describing the commands in a human way than a machine telling you the name + parameters (which, others have pointed out, sort of exists with the command browser). It also allows nuance between a ban command for a modbot and a bot that has a ban command that bans someone in an external environment, like a Minecraft server.
There's a couple of aspects here that I really like, namely making privacy info more accessible to users
The current system is lacking, and requires finding the bot on the internet (or on the oauth page if you're lucky) and i think this should definitely be improved.
Maybe instead of providing all bot and their privacy policies and tos, listing bots with privileged intents and giving links to polices in the membership screen, and a seperate screen (that has to be sought out) with all bots? ...
WebP is also supported and probably gif too although I'm not certain about that one
Same as above, this should not say 128x128 and it should also support emojis
Actually, the recommended size is 64x but there is no size limit afaik, only in terms of file size which is 256kb. Although this can also be a guild emoji so that should also be mentioned I guess
I believe this can also be an emoji identifier/id, not sure which one
Did not mean to mark it as the answer; I'm not sure why that happened lol.
Most of the problems with bots accessing sensitive data could be solved by allowing the user of a bot to accept the privacy policies and ToS of any bots they might use before being allowed access to the bot or any servers that use the bot. Here is my suggested implementation:
Privileged intents will only be allowed to get sensitive data of users who have authorized the bot (otherwise it gives a 403). I suggest a settings page where you can then unauthorize any bots that you have previously...
Emojis are internally translated to a base64 image string in the discord client when you select an emoji.
It's always an string with an icon hash as I saw.
But I'll take another look into it.
Thanks!
But then how would a bot set a role’s icon to a custom emoji? Would we have to upload the image again?
Yes, as I mentioned to you a bit ago
That's what I'm unsure about.
@Jupith Do you have an idea?
It'd be nice to be able to select only specific to activity types that we want to receive in PRESENCE_UPDATE events, and ignore other updates.
I was looking for a way to find all members that are currently streaming on Twitch without receiving the whole mass of activity updates on large servers. I'd like to avoid the big amount of traffic that is usually coming with enabling presence updates, but I am still interested in activities of type 1, and would like to drop other types (except ...
I can also replicate this behaviour with user mentions.
Currently with Select options we can only specify an emoji to go next to the text. I think it would be nice if we could also put a color instead of an emoji and we'd get a circle (or other shape) of the color next to the text. Currently I'm using emoji for a color role select (see the image below) and I'm using emoji to maintain those circles. I think the colors could get use beyond that as well with things like statuses and the like where you don't need an image necessarily to convey somethi...
In my opinion it would be better to provide a raw image instead of having to upload emojis; I would assume there is a reason Discord did not take this route, however.
With raw images you'd be uploading an image every single time the select is sent, which can add up quite fast, which is why I imagine they didn't go that route.
messing around with discord oauth
scopes that are included are email and identify
when accessing oauth2/@me endpoint, user object in response does not have email
only includes id, username, avatar, discriminator, and public flags.
Per Docs, email should be visible here, but it ain't
You want GET /users/@me, not GET /oauth2/@me.
But then how would a bot set a role’s icon to a custom emoji? Would we have to upload the image again?
yes, this is what the client does
I would really appreciate it if you guys (Discord staff) could do some work for transparency sake by keeping us updated here about recent updates regarding your plans.
Like, if it wasn't for a recent PR I saw would I not know about channel-specific args yet and not everyone can or will check this discussion every second day to see if there is a change.
Posting a new reply to tell everyone here what you've recently implemented would help us all to prepare for it quicker.
channel_types will probably be announced in DDevs once the docs PR is merged, and they are doing a stage event on Tuesday to announce new updates:

there's an unicode_emoji field, at least I got it on a GUILD_ROLE_UPDATE.
Changing the role icon also adds an audit log, the key being used for it is icon_hash which is currently used for guild icon changes so would be great if you could document that as well.
This seems to be returned by the rest api as well.
Please, we dramatically need this. It should be easy to not display slash commands at all for a bot that has no view channel permissions for the current channel, and not allow the bot to post content on a channel it has no send messages permissions if it has been invoked on that channel. The current implementation bypasses all permission systems!
I'll document it later.
But for now let's enjoy the weekend :)
They won't do that because of the style property of buttons.
Description
When defering the reply to a slash command or button press it's not possible to edit in an attachment like an image. This is bad for a few reasons:
- The 3 second timeframe is often too short to fetch images or videos from an API and upload them to discord.
- Using ephemeral messages is only possible in reply to slash commands or button presses, so there is no possible workaround to do this (e.g. with regular messages you could just send another regular message to ...
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 by the message intent?
in order to get the Message object to see the Message.interaction you need to use the message intent. (I think)
I wonder if the fetch_message will also be restricted by the message intent
Will message_create still fire for bots without the message content intent?
This could be very useful for leveling bots.
Yes, I believe that is the case. MESSAGE_CONTENT will become its own intent.
Having a custom error message would be nice. Something like This interaction failed. <error message>, this way users can see if their input is invalid or the bot's logic did not accept their command. This is much better for usability than just a this interaction failed or an ephemeral message
<img width="928" alt="Screen Shot 2021-09-19 at 9 31 08 AM" src="https://user-images.githubusercontent.com/65673396/133935317-ff176732-9888-442a-be29-628b2ca4ee56.png">
When I recall correctly will bots still retrieve the message events. They just can't "see" the content of the message such as text, files, embeds, etc.
Exception for this are messages that mention the bot. Those will have the content displayed no matter if the bot has the intent or not.
Couple of things here
- If it was easy to not display slash commands in the list, don't you think disabled commands would be hidden already?
- The current implementation does not bypass all permission systems, it respects a different system than the one you are used to. That being either a bot implemented system or the
Use Application Commandspermission. Anyways this is clearly on the roadmap to be changed. - A bots permissions should have nothing to do with application command...
Your current policy is to deprecate or disable the ability to read messages to bots, and use application commands instead. We're left with the commands permission and nothing else. You say there will be a revamp of the permission system, but it's not implemented right now.
Ok, if we need to change our mindset, please consider how Discord will provide a solution to this scenario:
- Some multi-purpose bots have some nice features, but guild owners decide they should be enabled only on a s...
I don't really see how you're changing your mindset there. Here's an example of a different mindset: A completely new permissions system where the developer can set sensible defaults for who can use what commands and where and then server mods have the end configuration in a completely new UI that has up to command level granularity instead of just application wide.
I assume properly displaying disabled commands is being worked on along with the movement of subcommands to a nested menu. An...
having server mods being able to manage commands seems like a super useful idea.
i.e. you make a giveaway bot. you decide that, by default, all users can make giveaways.
rather than have to make a complicated settings command, server moderators can just disable that giveaway command for specific roles.
Can we please have slash commands in a 100% working condition and then decide when the deadline should be?
Description
When 'link' an image attachment in an embed in ephemeral messages with attachment://, the image is not displaying (we see the "poop" remplacement image).
Steps to Reproduce
Send a message with an image-attachement (named image.jpg) and with an embed that has an image value attachment://image.jpg.
Expected Behavior
The image is correctly visible inside the embed.
Current Behavior
We can see a "poop" image that means the image cannot be l...
What happened to https://dl-game-sdk.discordapp.net/latest/discord_game_sdk.zip ?
- Not all features there are documented, only the code was updated IIRC - #gamesdk-announcements message:
I have not gotten a chance to document the new overlay functions...
- #gamesdk-announcements message states the ff.:
I'm going to update the documentation with this link as well instead...
In addition, I have chosen 3.2.0 as the latest version. In my experience, I have not had any issues with it (except for the garbage collection issues present in all versions). However, there are definitely differing thoughts re this: https://github.com/discord/gamesdk-and-dispatch/issues/132.
but you can use guild emojis too.
Or is that only set when using unicode emoji
I'm not sure why this is marked as resolved, it's still incorrect afaik. I'm not sure what you mean by your above comment, don't see how one can get an icon hash before having created a role @Lulalaby
Could you please redo a new review?
I'm a bit confused rn about the unicode emoji.
Sure, unicode emoji is presumably only for unicode emojis, for guild emojis, the client just re-uploads the image as an icon.
I totally confused myself, that's why I marked all as resolved. So if anyone got suggestions, please redo :(
| Field | Type | Description | Default |
|---------------|------------------------------------------|----------------------------------------------------------------------|--------------------------------|
| name | string | name of the role | "new role" ...
| Field | Type | Description |
|---------------|------------------------------------------|----------------------------------------------------------------------|
| name | string | name of the role |
| permissions | string | bitwise value of the e...
GIF is supported, just converted to PNG, so that's right
Emojis are uploaded as regular image files FWIW
Changing the role icon also adds an audit log, the key being used for it is
icon_hashwhich is currently used for guild icon changes so would be great if you could document that as well.
There's another field in audit logs unicode_emoji as well.
Changing the role icon also adds an audit log, the key being used for it is
icon_hashwhich is currently used for guild icon changes so would be great if you could document that as well.There's another field in audit logs
unicode_emojias well.
Gimme a sec
Another field in the audit log is unicode_emoji which allows for the name of a unicode emoji to be the role icon.
2021 update: Browsers now implicitly set rel=noopener for any target=_blank link, following a spec change. If the demo on this page no longer seems scary, congratulations — you’re using a modern browser!
Reopen?
While I'm on it.
Shall I sort it via abc
tbh, to do more testing on this, I'm developing an own lib. Is it possible to get a guild override for role icons ^^
It's badly not yet in the normal rollout, so I'm kinda blind and have to relay on other users.
@jkcailteux
Tbh, did I missed anything?
pretty sure you're only supposed to PR your own resources - this is @Androz2091's project.
This is a preview
So you know, what's that about
~ If it shouldn't be shown, please remove @typpo



Do you already know what sku is
I would assume SKUs are the same as in Get SKUs. That's something I will need to think about to better document this.
I'm proposing a version of the where I can provide my own style using a custom date format (I'm not exactly sure what it's called, but I'd imagine it'd be something like nsdateformatter.com shows). This would allow bots and users to do stuff from Tuesday @ 5pm to 17:34 on Thursday (November 23rd) and give their messages a more natural flow with timestamps.
If you want a specific format you could just do that in your own code no? The point of the markdown is that it renders differently based on your locale.
The other point of the markdown is time zones, so a custom format could be used that's in the correct timezone.
iOS just got an update but the issue still exists, and is confusing a lot of my bot users.
The error codes show intent (singular) whilst the actual key is intents (plural)
Likely it will release on TestFlight before the public app. There has not been a new TestFlight version since his announcement.
That update looks to be just an update to a version that's already been released to TestFlight (the beta version for iOS), so the fix wouldn't have made it in. It'll most likely be in an upcoming TestFlight release, which will go to stable soon.
Can’t you recreate the branch?
Documented guild feature string "ROLE_SUBSCRIPTIONS_ENABLED"
This is a preview



This pr documents the feature ROLE_ICONS.
- [x] Add guild feature string
- [x] Add audit log keys
- [x] Add role properties
- [x] Document methods
Preview:


 ptb; Manifest: N/A; Build Override: N/A; Device: iPhone12,3 OS 15.0;) should make its way to stable hopefully soon.
My documentation parser wasn't picking these up so I decided to fix them for anyone else who writes auto-generators.
Pretty sure Snowflake is wrong here; they're not wrapped in a string.
Do you have an example achievement object I could add? Looking at some of the return responses (such as Get Achievement) it looks like a string to me.
My guess is it's returned as a string over REST but not over IPC, could be wrong though. ¯_(ツ)_/¯
Interesting. I have zero experience with IPC so I wouldn't know. Perhaps there should be a note somewhere stating this(?)
@devsnek I tried to document it here as draft pull.
You might want to add "In Experiment"
@IanMitchell one "In Experiment" please
I don't even know what this feature is
I don't even know what this feature is
You know it :P
Discord branding's Yellow can be used as "Warning", and the Fuchsia can be used as "Info".
It would just give us more space to get creative with what we could do with buttons.
| name | string | [1-32 character name](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/application-command-object-application-command-naming) |
Might be blind but I think there's a duplicate character here
I think when they're returned by Discord, it's just a generic string (hence it can be a Snowflake). But when inputting them (for example discord::Core::create(123, ...) requires a literal integer, not a string, so it can technically be 2 types.
\* Only `string` is valid for autocomplete interactions.
In my opinion, I think it'd just be better to add the focused field to the Application Command Interaction Data Option Structure and mention it's only available for autocomplete interactions, like how options is mentioned for subcommands/subcommand groups, rather than having options in the table twice as that may (and probably would) confuse people
You are probably right.
Will do later
Now that autocomplete is happening, it would be nice to be able to also return an extra set of options for users to fill out. This could be useful for a custom command system where users can make a custom command that takes arguments, or it could also be used for something like a settings command where an autocomplete can be used to let the user select the option, then the type for the value could be dynamically filled in. This could be something along the lines of
{
type: 8,
da...
why is the banner field not returned when accessing the user field on a member object? This requires me to do double the requests for my use-case, and I can't see the reasoning behind it
why is the banner field not returned when accessing the user field on a member object? This requires me to do double the requests for my use-case, and I can't see the reasoning behind it
Look at this for some info about it.
Is this value always going to be a string? I still need to test but I think it may be possible that it is not
It was indicated as string in devsneks notation.
But yeah, please check on it
Look like it can be an int (and I assume number, only tested int vs string).

Of note, the empty state doesn't send an interaction on the int type. Another thing, anything that would be an invalid integer (say letters) put in the option prevents the interaction from being sent. I think it would be desirable to possibly accept a string so named integer options can be accepted,...
Tbh, quite interesting.
I'm gonna take a look into it later myself.
| choices? | array of [choices](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/application-command-option-choice-structure) | autocomplete choises (limited to 20 choices) |
no, its 25, the notion is wrong
| choices? | array of [choices](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/application-command-option-choice-structure) | autocomplete choices (limited to 25 choices) |
This is my personal opinion but, everyone requiring to accept the ToS on membership screen every time a new bot is added seems like a bad user experience.
What I suggest instead is to simply make the intents user specific. For example, take the message content intent. Users can use a command to open the ToS screen (I'll add an example design later) for the bot and opt-in. After that, the bot will have access to the message contents from that particular user.
This way it would be more cont...
Right, I do use my own format in my code but I have to use UTC as a base and let people figure it out from there
Description
Steps to Reproduce
Expected Behavior
Current Behavior
Screenshots/Videos
Client and System Information

更新新版之后,语音频道用户列表有个大白块把下半屏这挡住了。。。
This is a repository for api issues, your issue is for the client which should be reported at https://discord.com/invite/discord-testers.
See https://support.discord.com/hc/en-us/articles/360046057772-Discord-Bugs for more information.
Discord Testers Server is currently closed while they update stuff - so report client bugs via their Support Form instead :)
8b7f22c Document error code 50101 (server needs more bo... - advaith1
0a4c2fe Document channel_types in ApplicationCommandOpt... - typpo
With Discord Nitro your max guild count will be set to 200 (+100)
I couldn't find the Q&A that mentioned some answers about this but I would like to discuss what solutions are being thought about currently.
Context
Now that message-based commands are going to be kind of killed (mentions still work) and developers are kind of being forced to migrate to slash commands (which I'm not against), there needs to be a viable solution before it becomes something that developers need to take car...
for context, the Q&A transcript can be found here
Thanks, it seems there's no info on how they plan to add some kind of generalized language for guilds sadly
There's some other stuff I think also needs addressing, for example discord does not do any unicode normalization across the api (from what I can tell). How will this work with types like choices etc?
This obviously needs each choice requiring an id and the id can be translated to multiple langs, I havent fully used v9 so I haven't fully used the API but i think its "kind" of included in the first requirement, I will edit it to include everything
And this would be a breaking change on the choice option ofc
Description
When I sent Wrong Update presence payload to gateway says Unknown op code, even op code is correct.
Steps to Reproduce
Expected Behavior
- Connect to gateway
- Send a identify payload
- Send Update presence payload, but miss some fields. ex:
{
"op": 3,
"d": {
"status": "online"
}
}
- Observe
Current Behavior
Connection closed: code = 4001 (private use), reason = Unknown opcode..
(I use [...
Not a bug, from discord docs:
4001 | Unknown Opcode | You sent an invalid Gateway opcode or an invalid payload for an opcode. Don't do that!
Emphasis mine.
Oops, I didn't know it includes invalid payload.
My bad, sorry.
I have more complete thoughts on this elsewhere, but I dislike the idea of using the user's in-Discord locale for this. I use ja_JP in Discord because I'm already familiar with the English descriptions of most of the UI so it's nice for learning. I wouldn't want this to be en_US because I want a 24-hour clock, and Discord doesn't let me directly use en-US-u-hc-h23.
Unfortunately the solution I m...
Tried to launch Discord today and its reporting that a new update is out; 0.0.16.
KDE was able to the update to /home/*USER/.cache/kioexec/krun/21950_0/stable, but when trying to launch the installer. it reports "Package not found"
The stable package is indeed there but i just have to manually install it
any idea if this an an issue on the distro side using Pop OS 21.04 with KDE plasma 5.21.4
Kernel 5.13
Honestly I see your point, I don't like that discord is forcing us to use something that feels it's missing some features that should have them.
I don't catch why wouldn't you like the bot to use the user's locale for interaction descriptions and etc, I understand that you are already familiar with the UI english and wanted to have it japanese to learn but it seems like an extreme case and it kinds of doesn't include that the idea of interactions is that they are part of the UI and not...
Imagine a place where all apps used UTC. Please don't use UTC.
Description
When replying to a message context menu interaction, on the iOS client the resulting message will render without any attachments or rich embeds.
Steps to Reproduce
- Register a message context menu application command.
- Reply to an incoming interaction for the registered command with a rich embed.
- Compare the result on the iOS client and the Android / Desktop client.
Expected Behavior
The iOS client correctly displays the rich embeds and attachme...
It's worth considering that there are other reasons not to want to see interaction responses in the app's locale – some translations could be bad, and someone may want to select a fallback for an incomplete localization.
obviously it should default to the languages that the bot support, and well if the translations are bad thats dependant of whoever uses the bot to report it or stop using it
An automatically selected default may not be the one the user actually wants.
the user is using discord in a certain language, thats his choice, i dont see why there would be a reason to be angry that the bot's description are in the same language to that. if you meant the default language if it isnt supported, i think that should be the bot developer's choice
Since the Discord community become a lot bigger recently. I really think that Discord need some ability to:
- first: having an official plugin and theme support (a lot of security will need to be done to prevent security issues (i.e.: CSP, API restriction for plugins, etc...))
- second: Allow third party clients. It still needs a lot of change in the API on the server to prevent unexpected case and abuse, but it would be very nice for the community since it will allow client in CLI, with GT...
Application Command Option Type has an integer type, which the docs said was between -2^53 and 2^53. This is actually the correct range for NUMBER, a double type.
Testing and investigation reveals the correct range is between -2147483647 and 2147483647 making this type a signed 32 bit value.
I have corrected the docs to match the implementation in use.
The actual root cause appears to be an android client bug. It works fine on desktop.
Verified here:

So, what is the correct documentation? Is -2^53 -> 2^53 supposed to be allowed? or is the android client at fault?
Since @IanMitchell showed us multi attachment support will be added to the client, I see no reason to keep this undocumented any longer.
I'm not sure if documenting the uploading mechanism only under Create Message makes sense, maybe a dedicated section outside of endpoint docs would be better. I do think it makes sense to just link to the specific section rather than duplicating it 3 times.
Is -2^53 -> 2^53 supposed to be allowed? or is the android client at fault?
The documentation and API validation are the source of truth.
i dont know the backstory of the community, or their conflict with anyone but from a technical standpoint the lib seems ok?
To add to the above comment: the support server have been repeatedly warned by Discord's TnS about various behaviour such as sharing NSFW works outside NSFW channels. The administrators of the server have also worked on banning every single moderator, helper, booster and anyone affiliated with the discord.py server (source: I am a discord.py helper)
There is no NSFW content in outside of NSFW channels. The Administrators banning Alts (Alts are agains...
Discord has an option for guild owners to provide a language. Until now it has been reserved for discovery usage, this should just be simply allowed for all servers to set and provided to bots as well on the interactions that are sent. guild_locale User specific locales are a bit extreme and privacy issues. If you are on a server for let's say Español users the chances are you also speak it and therefore the responses bot sends you should be understood as well. This entirely solves guild le...
I don't quite see how comparing the system time to Discord's time is bad practice. Sure, I've had clock skew of upwards of half a second on Windows, but that's Windows. NTP should get system time somewhat close to Discord's time -- close enough that even if your clock is ahead, network latency (you -> Discord) will be greater of the two. Additionally, you can check for major clock skew by consulting the
Dateheader in the response.
In exchange, withretry_after, you're lo...
This kind of PR would be reasonable if the library itself was maintained in a professional manner, and didn't have a weird support server that contains daily drama and rudeness directed at users of other libraries and other questionable content.
What do you mean by professional manner?
ApplicationComamndOptionType: DATETIME
This is something that I've been wanting to see for a while now, because I see so many practical uses. Let me get the first of uses that I currently can think of:
- Moderation bots
- Giveaway bots
- Poll bots
- Any functionality/dependency requiring a time window, range and/or set event
- Support bots
What is this?
The DATETIME option type for application commands would enable bot developers to give users the capability of specifyi...
d0bb0b1 Remove quotes on invalid recipients (#3859) - MinnDevelopment
This forum is for API related topics. I'd suggest leaving this feedback on https://feedback.discord.com
This issue tracker is for API issues, and generally linux distributions of our client are not supported outside of the deb and tarballs we provide for download. You may have some more luck on the (unofficial) discord linux server: https://discord.gg/discord-linux
Looks like I was too late :(
Any provided files will be **appended** to the message. To remove or replace files you will have to supply the `attachments` field which specifies the files to retain on the message after edit.
Uploading files requires using the content type `multipart/form-data`. Multiple files may be uploaded at once, and the upload limit is applied to the sum of files in your request, not individual files. Each file must have a valid `Content-Disposition` subpart header with unique (per-message) `name` and `filename` parameters.
Thanks for reporting it, we're fixing it :>
Oh, ok!
I wasn't sure since I didn't see any indication on what part of the discord API this forum cover exactly.
This forum is for API related topics. I'd suggest leaving this feedback on https://feedback.discord.com
i dont know the backstory of the community, or their conflict with anyone but from a technical standpoint the lib seems ok?
Indeed it is, above is just drama from the past.
I've been in the guild for a long time and I've been very active for about a year so I can say that none of the above points are valid for the past year, except for dpy mods being banned.
I don't know what happened years ago and I don't care, but if the owner doesn't want them in the server then that's her...
I don't see why would someone start criticising on a lib or a support guild for that lib, 'cause of its few anime examples. Even tho the lib and support guild are like that you still can understand it and use it, so I don't see a problem other than just hating on it cus you don't like anime or "childish" examples or design.
have a weird support server that contains daily drama and rudeness directed at users of other libraries and other questionable content.
I've been in the support g...
I personally dislike anime, but let's not judge on personal or past issues if those issues aren't ongoing. github is not the place for that.
personal disclaimer i'd never heard of this lib or visited it's discord before today after seeing the PR. I'm not one to follow the herd so no thumbs down or witch hunt on my part for issues I've never experienced.
I do advise though that they set up a separate discord for the support of the lib. nothing wrong with them choosing an anime theme.
Yeah, sad thing is, on Discord most people especially other programmers (talking from my own experience) tend to judge stuff based on the way it look, but not its content or work put in it. From what I've personally seen, most people do hate on Hata only because of its anime structure and examples since they don't like those personally. I agree with you on the theme part, people can choose whatever theme or thing they want and develop it based on it, difference and uniqueness is what makes al...
On behalf of @IAmTomahawkx:
It should be noted that the user who submitted this pull request has blocked everyone who reacted 👎 to it, presumably to prevent them engaging in this discussion.
This PR thread alone says all I need to know. I don't think the drama or unprofessionalism is in the past as some people are claiming.
We need development resources and communities who engage with its users, encourage debate (debate, not arguing, very different things) over features and are generally supportive of efforts of other developers and other resources.
From what I can gather from this thread alone, Hata as a community severely lacks the above. Its core community appear to get ...
from a technical standpoint the lib seems ok?
Just want to point out that the entire source of asyncio is copy pasted into various portions of their codebase. It's very slightly modified, which is somehow even worse.
https://github.com/HuyaneMatsu/hata/tree/master/hata/backend
https://github.com/HuyaneMatsu/hata/blob/master/hata/ext/asyncio/asyncio.py
I think this should speak to the technical mess that the library is. Although it may work, there seem to be lots of bizzare deci...
from a technical standpoint the lib seems ok?
Just want to point out that the entire source of
asynciois copy pasted into various portions of their codebase. It's very slightly modified, which is somehow even worse.https://github.com/HuyaneMatsu/hata/tree/master/hata/backend
https://github.com/HuyaneMatsu/hata/blob/master/hata/ext/asyncio/asyncio.pyI think this should speak to the technical mess that the library is. Although it may work, there seem to be lots ...
To add to the above comment: the support server have been repeatedly warned by Discord's TnS about various behaviour such as sharing NSFW works outside NSFW channels. The administrators of the server have also worked on banning every single moderator, helper, booster and anyone affiliated with the discord.py server (source: I am a discord.py helper) 
It should be able to be a type of whatever option types support choices
Can I also just note, their support server is uh, not what I'd consider safe for work in its current state. Its called "Neko Dungeon" and has channels like this:

There needs to be separation between this discord and a support discord for Hata in my opinion. It is not appropriate for this to be promoted on community resources.
Here's my take on "interaction internationalization/localization".
There's a few things to consider here: localization of interations when they displayed in the client; bots being able to localize interaction responses as appropriate; and users being able to type in whatever language they want.
First I think I'd like to make an initial suggestion about how users should communicate what locale they wish to interact in with the bot.
I've seen a lot of comments here and on discord abou...
yeah, that's what it seemed like to me.
Although I'd like it to accept a string always so you can search int choices by name instead of value
For bots like birthday bots or for mod commands like /purge if a user wants to purge between/before/after a specific date/time a selector option thing would be pretty useful 🤔

[discord/discord-api-docs] New comment on discussion #3862: Slash Commands: Add date selector option
That's a duplicate of #3303
That's a duplicate of
- #3303
This is another long feature request.
It would be nice if you could attach guilds to teams. Team members and whitelisted testers get access to a school hub-type server that contains all those guilds that you have access to. You can attach your testing servers to the team, which could enable features like those described in #3355 (maybe you can even attach whitelisted testers to managed roles!), and would not count as a guild with respect to verification (which would prevent the inorganic...
[discord-api-docs] New discussion #3864: Create Interaction Response should return a message object,
Currently POST/interactions/:interaction_id/:interaction_token/callback always returns 204, even with ?wait=true supplied. The only way to get the message is by intercepting it from the gateway, or making another request to get original message. You have to make a request for a no-op edit to the original message to get an ephemeral message object.
This was already brought up in https://github.com/discord/discord-api-docs/discussions/3350
Also GET /webhooks/{interaction.id}/{interaction.token}/messages/@original does work with ephemeral responses now
Sorry I was led to believe this hadn't been brought up in a discussion yet!
Description
The new icon and unicode_emoji properties introduced in #3847 should be marked as optional, in addition to nullable. The API may omit one or the other, depending on the server conditions.
Steps to Reproduce
- Call the API
- Observe that
iconand/orunicode_emojimay not be present in certain instances
Expected Behavior
Either icon and unicode_emoji should always be present, or the documentation should be updated to reflect their opti...
From testing it seems that the only interaction followup and callback endpoints which always 404 when trying to target ephemeral messages are DELETE /webhooks/{application.id}/{interaction.token}/messages/{message.id} and DELETE /webhooks/{application.id}/{interaction.token}/messages/@original now
It would be useful for users to be able to specify a message as an argument to a slash command. This is separate to message context menu commands because it can be an optional argument, and because there can be other arguments
Description
Emoji roles aren't being updated when you edit them
Steps to Reproduce
Add a role to the emoji's whitelist with
PATCH /guilds/{guild.id}/emojis/{emoji.id}
{"roles":[....]}
Then try to remove the role from the whitelist
PATCH /guilds/{guild.id}/emojis/{emoji.id}
{"roles":[]}
Expected Behavior
The emoji should be available to everyone after removing every role from the roles param
Current Behavior
The HTTP response ...
This will be out on Monday. I'll leave this issue open until then.
This is actually out now so I'm closing this. If something was missed let us know
Personally I think moving these "The API Way" sections to Resources would make much more sense. It would more easily group all the HTTP endpoints together and separate them from the SDK implementation.
Isn't this kind of the main idea already established with subcommands eventually being nest able groups? That way you could "categorize" them by specific denotations of a command's purpose of specification.
With this, I feel like radio buttons/toggles should be heavily considered alongside the possibility of adding a checkbox component. Checkbox components sound like they could work similarly in mind with how select menus currently perform. Maybe this should be added like a JSON field style for a component so that you can stylize the way a button can appear as a checkbox, radio button, regular button and/or toggle?
Since "editable pills" (as Mason has described them) are going to become a thing in the future for slash commands, what if we had a UX system very much like how doing the image shown below could be viewed, and we're returned back a list example as @Mineinjava said e.g. ["this thing", "another thing"]

I feel like cooldowns are a very big aspect of developing commands for bots on this platform now.
The ability to add our own cooldowns for how many X given seconds a command can be used per user (with given permission overrides as of the v2 system) would be an extremely beneficial way for server owners to avoid spam of slash commands as-is, as well as bot developers avoiding unnecessarily high HTTP requests.
Yo solo queria ayuda no puedo recuperate la cuenta por ninguna forma
Como te explico.
una disculpa de ante mano si te moleste.
Se demaciado poco y en realidad las personal que me apoyan hablando todo ingles y yo ni tuve recursos para ingles asi que se poco soy el peor novato lo siento
Document new GUILD_JOIN_REQUEST_DELETE event
Questions to staff:
- This event is not bound to any intent. Shouldn't it be bound to
GUILD_MEMBERS? - Since this event is not used by the client and not yet documented, could it be possible to change the name of the event? Its kinda confusing as there are no relevant
*_CREATEevent. I just seems out of place
Event example
 Gecko/20100101 Firefox/38.0 to proxy image requests to be embedded in messages.
From personal experience, this is quite confusing to any website owner trying to determine the source of a large amount of image requests. It's also not how any similar image proxying service (such as for email) handles this sort of thing - for example, Gmail uses `Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko ...
Discord is the only service I know of that uses a weird browser UA for proxying images like this.
Slack appears to use the user agent Slack-ImgProxy 0.19 (+https://api.slack.com/robots) and not a random browser UA.
Since the Firefox version given in the UA is also quite old, it's not going to be uncommon for website owners to see this UA as potentially malicious (especially when there are thousands of requests from it a day) and block it from accessing the site, hindering Discord users.
Since the Firefox version given in the UA is also quite old, it's not going to be uncommon for website owners to see this UA as potentially malicious (especially when there are thousands of requests from it a day) and block it from accessing the site, hindering Discord users.
+1 to this, this is what we ended up doing until we started getting (seemingly unrelated) reports of images not loading on Discord. If there was a line in the UA explaining that it was Discord, this wouldn't have be...
As it stands right now, you have to laboriously scroll through the options of a selection menu. Instead, I propose the ability type into the menu and search for options, which would make selection easier.
Besides the convenience, searching would allow the addition of autocomplete to selection menus alongside giving more use to the future interaction.
[discord/discord-api-docs] Issue opened: #3874 The first comma is replaced by a dot in string option
Description
When I have a string option and I enter numbers separated by commas, the first comma is always replaced by a dot.
It seems that the error does not occur in the API, but in the client that converts it when sending it.
Steps to Reproduce
- Have a string option
- Enter some numbers separated by commas (ej:
1,2,3) without whitespaces. - Send the command and check the received interaction or the sent command info.
Expected Behavior
Doesn't convert the first...
Can't reproduce on stable (~ ̄▽ ̄)~

Client and System Information
Stable 99016 (0d5a801)
Host 1.0.9003
Windows 11 64-Bit (10.0.22000)
This only affects people whose discord language is set to a language which uses a comma as a decimal separator. This issue was reported in ddevs on 30th august and was apparently logged as a bug. No idea what happened afterwards and it seems like it's not fixed.
I can also reproduce this when using discord in French.
ddevs conversation is around here:
<#788586647142793246 message>
you should just reply to the interaction with the message not let the interaction fail
not sure why you only got it now but bots have been receiving it for many months 🤔
This tbh.
And yeah, that's part of the membership screening.
If you come by this issue and are wondering what is the full API call to revoke the token, here it is:
POST https://discord.com/api/oauth2/token/revoke
Content-Type: application/x-www-form-urlencoded
data:
client_id: <client_id>
client_secret: <client_secret>
token: <access_token>
This is much better for usability than just a this interaction failed or an ephemeral message
I would assume the force that's holding staff back here is localization as that error message is translated – would be nice to see better feedback tools in general though.
This would be great but I don't feel like this is the highest thing that they should probably prioritize as of now
Some of this involves people trying to interpret how the API engineers at Discord are handling the processing of application commands, the way the UI/UX displays them and schemas interacting with the backend structure. I don't think any of us should be trying to argue "this should be easy" or "it isn't easy" because we quite honestly have no clue. It would definitely be nice, however, to have disabled commands outright hidden instead of greyed out.
hiding commands is planned but they said it isn't as easy because they'll need to be filtered server-side; if they're hidden client-side then users might be waiting for a while as they'll keep receiving commands that they can't see
it's waiting on the permissions rework though
I don't think any of us should be trying to argue "this should be easy" or "it isn't easy" because we quite honestly have no clue
I thought I remembered a dev saying that it isn't easy but couldn't find the quote, regardless Mason did end up specifying what advaith wrote above in the last DDevs stage event, so that's a concrete answer.
Given that a typical server has 50 roles (My guild has 500+ members and 57 roles) and Discord has 37 permissions, the maximum number of items in the selection component seems too small.
Given this, I think a maximum number of 50-75 is reasonable.
I'm trying to implement a role selection menu and a permission selection menu, but it's very frustrating that I can't implement it due to limitations, even though discord has selection menu feature.
That's a duplicated of #3752 which was denied
Marking this as answered as #3825 has implemented this
Marking this as answered as #3825 has implemented this
Can we get a description column on this table?
I can reproduce this issue.

Language: Spanish.
Canary: 99069 (b72fa3f).
Host: 1.0.42.
Windows 10 (64-Bit).
This route also takes a ?avatar of type ?image data (https://discord.com/developers/docs/reference#image-data).
That field requires nitro [not nitro classic]. If set and user has nitro, will update the guild specific avatar.
looks good aside from missing
Modify Current Memberavatar field
Bots cannot set per guild avatars, or at least couldn't last time I tried.
looks good aside from missing
Modify Current Memberavatar fieldBots cannot set per guild avatars, or at least couldn't last time I tried.
ah right this is for bots heh. tru. ok will merge as is
d49d34b Document per guild avatars (#3081) - RedDaedalus
Kryptonite Chic
On Mon, Sep 27, 2021, 8:30 PM Lala Sabathil @.***>
wrote:
You can view, comment on, or merge this pull request online at:
https://github.com/discord/discord-api-docs/pull/3878
Commit Summary
- Give a proper example for role unicode icon
https://github.com/discord/discord-api-docs/pull/3878/commits/925218fcfdb8d54b6786436fff5fbab0a5a07a6fFile Changes
- M docs/topics/Permissions.md
<https://githu...
I thought it'll be send like this

But they send it like that:

Ok, this is complicated, I'm gonna do a new pr.. It seems like I have more to change
Description
Seems like the API does not accept the unicode entity for role icons in the emoji name.
We have to send the discord assigned name of the unicode emoji.
I.e. thinking without colons.
Otherwise the API just resets the role icon.
Steps to Reproduce
Send a patch payload which sets the role unicode emoji icon:
{
"unicode_emoji": "🤣"
}
Expected Behavior
The API sets the icon to 🤣
Current Behavior
The API resets the prev...
So, this is a followup to #3847
Thing is, it seems like the API does not accept the unicode entity for role icons in the emoji name.
We have to send the discord assigned name of the unicode emoji.
I.e. thinking without colons.
Otherwise the API just resets the role icon.
Which brings me to the issue: #3879
API result:

API call with unicode enti...
@tkdaj You were responsible for merging #3847
Our API only supports emoji in unicode characters as syntax.
This is no longer true due to guild sticker tags
Role icon unicode emoji also currently require and return the name.
Colon based formatting is a client construct (clients convert colon based formatting into unicode characters) that our API doesn't understand or deal with, so it has no place in our API docs.
Given the above I believe there might be some sense in reopening this?
There was a discussion opened about this, it was answered at the time because sticker tags are actually arbitrary strings from an api perspective. This new field on roles seems to be validated, which means the acceptable names need documentation.
Same when sending a guild emoji id
_What isn't supposed anyway.
The whole handling seems to be invalid.
Instead of clearing the icon it should throw a invalid payload error.
I believe this is intended behavior, even if the API is kinda borked, but what's new. Setting a proper unicode emoji makes sense in terms of overriding the icon; I believe they're supposed to be mutually exclusive, but the validation for this is non-existent (i.e. you don't even have to set an emoji; any text is valid*).
This seems to be a client bug, as doing this manually over REST doesn't appear to have this issue 




