Skip to content

Instantly share code, notes, and snippets.

@Stalruth
Last active March 13, 2023 03:28
Show Gist options
  • Save Stalruth/8258cd0cd7298ffaed6290bc7ecadb8e to your computer and use it in GitHub Desktop.
Save Stalruth/8258cd0cd7298ffaed6290bc7ecadb8e to your computer and use it in GitHub Desktop.
The June 2022 Discord Developer Stage

Recording by @Wolfhound905

User Survey

  • Sets context for API and App updates
  • Survey was sent out to bot users
  • 60% of respondents have used Slash Commands; this went up over time
  • 50% of users say the main reason they like Slash Commands is Discoverability
    • Incl. features such as Autocomplete and Message Components
  • Top two features users struggle with
    • Telling different Applications apart
      • Especially for bots with significant oveerlap in features
      • Some level of confusion here; UI updates and User Education will help
    • Execution speed
      • Speed of populating the command picker
      • Speed of replaying commands
      • Being worked on

Apps and API Updates

  • Message Content Privileged Intent: 31st Aug 2022 is the deadline.

    • Just over two months remain.
  • Permissions 2.0

    • Well received by mods
    • Permissions was a gap in the initial release
      • Finishing designs on doing this properly; very complicated UI challenge
      • Improvements will be made over time
  • Bot Permssions in Interaction Payload

    • Send bot permissions as part of command, is planned.
  • Permissions for interactions

    • Currently use @/everyone
    • Has been confusing for mods and devs
    • Change: For Applications that have a bot in the server, Interaction Webhooks will inherit the Bot's Permissions.
    • Where there is no Bot User, fall back on @/everyone permissions.
    • No ETA; but will happen.
  • Legacy Command Searcher:

    • Suggests Slash Commands when a matching Content Command is detected
    • Has helped Discoverability
  • Scope Migration

    • Will work differently from last time
    • Make sure all bots get the applications.commands scope if needed; as many bots need it now that didn't before.
    • This will include education for Moderators re: Slash Commands and let them explicitly choose to turn them on.
    • Rollout will be slower than last time; this is intentional to ensure mods are not surprised.
  • bot OAuth scope implies applications.commands scope.

    • Fixes old invite links.
  • Hopefully all OAuth scope issues should be resolved by the deadline. (paraphrased from @/Mason#1337

  • Working on making things faster

    • Smarter fuzzy matching
    • More caching
  • Mention Slash COmmands

  • Up-arrow behaviour to rerun commands

  • Better command copy-pasting

  • Plans for Mobile too

  • For migration and education:

  • Experiment: Show on Bot Profiles that Slash Commands are used

    • Include frequently used commands
    • Users check bot profiles frequently

Large Bot Developer Panel

panelists:

  • quin#3017 [He/Him]: Discord.Net Maintainer

  • Coding#0001 [He/They]: Truth or Dare Bot Developer

  • Melmsie#0001 [He/They]: Dank Memer Developer

  • aetheryx#0001 [He/Him]: Dank Memer Lead Developer

  • shaydew#7429 [She/They]: Discord Developer Advocate

  • Experience porting to Interactions:

    • Coding
      • Was intimidating to rewrite
      • Argument parsing is a big pro
      • HTTP Interactions are useful
        • No more websocket maintenance
        • Easier to scale
        • Works well at ToD Bot's high scale.
    • aetheryx
      • Agree with Coding
        • Argument parsing is a "huge relief"
      • At first there were few libraries with proper support
      • Especially regarding HTTP Interactions
      • Everything does make sense however
    • quin
      • Application Commands were his start to library development
      • In Dec-2020 he was using Discord.NET and worked on Appplication Command support
      • Felt people wanted more ease in writing them
      • Integrating Application Commands in existing libraries was difficult
  • Libraries and Application Commands

    • quin
      • Libraries already have support for commands based on Message Content
      • Developers don't want breakage
      • Create something easy to adopt for developers
  • User Experience: Struggles onboarding users

    • Melmsie
      • We haven't released our full implementation, but have open betas
      • We learned that simply telling users doesn't work; users aren't used to Slash Commands
      • They have reported the UX as a bug
      • Use screenshots to onboard users
      • Hopefully Discord improves in this respect
      • Bots can explain but Discord can do it better
    • Coding
      • Onboarding was hard because the bot shut down
      • Old invites were not updated
      • Hard cut to slash commands
      • Old commands were replied to with a new invite
      • Helpdesk in the support server helped in the transition: actively helping users transition
      • This was automated for FAQs re: Slash Commands.
    • Melmsie RE: Beta UX
      • Biggest takeaway was the sentiment to Slash Commadsn was negative; including from users
      • Users likes Slash Commands more after a week of use
      • UX between platforms is significantly different
      • PC users were more positive about Slash Commands
      • Mobile users were positive about Message Components
      • Lots of fine tuning was required; but users gave good feedback
    • aetheryx
      • Scalability was improved
      • Handled 500k Interactions/minute; much better than websockets
      • Use k8s to handle scaling and orchestration
    • Coding RE: transition to Slash Commands
      • Original developer was paying $90/mo over 9 VPSs
      • Had stability issues
      • HTTP Interactions made the bot stable and reduced costs to $3/mo

Have slash commands been more or less flexible in terms of the UX you can develop or create?

  • Coding:
    • Buttons were helpful for Mobile users
  • Melmsie
    • Autocomplete increases flexibility and allows for User Education
      • "Gamechanging"

Did you develop your own library? What is the maintenance like?

  • aetheryx:
    • Developed their own library
    • Made sure it was polished so that the rewrite would go smoothly
    • Uses TypeScript to take advantage of compile time type chacking
    • Every command has a property to specify the API level structure; "elegantly" handles making API payloads.
    • people talk too fast I missed something
    • Uses discord-api-types for type checking

Plans on maintaining Message Content Commands/broaden the transition timeline:

  • quin
    • Discord.NET plans to maintain both long-term
    • Strongly pushes Slash Commands for DX reasons
  • Melmsie
    • Not good for User Education, especailly as Discord adds features such as Autocomplete that create a large difference between different Users' experience

Favourite feature/Wishlist:

  • Coding:
    • Favourite: is HTTP Interactions
    • Wishlist: is send more information in HTTP interactions such as Channel information
  • Quin:
    • Wishlist: Date/Time Picker
    • Favourite: Modals to input large amounts of text
  • Melmsie
    • Favourite: Autocomplete
    • Wishlist: more buttons
  • aetheryx
    • Favourite: Ephemeral Responses

Ending Questions to Mason

More customisation options?

  • Yes! More scope for customisation would be good.
  • The form that takes is still under consideration.

Components for Modals?

  • Attachments? Yes
  • Selects are being worked on, were almost done but technical constraints got in the way
  • More support for things is desirable; but not Buttons.

Paginated Modals:

  • Good idea for a fully fledged form.

NSFW Flag for Slash Commands

  • Yes. Being worked on by popular demand.
  • "This feature will come"
  • Ensure policy is clear for everyone

Command Cooldowns/Ratelimits:

  • Upvote on GH Discussions
  • Could work like Slow Mode

Upvote discussions on GH! Submit fixes!

@Codeize
Copy link

Codeize commented Jun 27, 2022

appreciate this :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment