From 0617dfa2176e5cd9f945ec142ba340b41d286ba1 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 15 Apr 2025 14:52:39 -0700 Subject: [PATCH 1/2] Use static directory for images --- CONTRIBUTING.md | 9 +++--- docs/activities/building-an-activity.mdx | 18 +++++------ docs/activities/design-patterns.mdx | 8 ++--- docs/activities/development-guides.mdx | 28 +++++++++--------- docs/activities/how-activities-work.md | 2 +- docs/activities/overview.mdx | 2 +- ...-application-command-permission-changes.md | 2 +- docs/developer-tools/game-sdk.mdx | 8 ++--- .../design-guidelines/branding-guidelines.mdx | 6 ++-- .../design-guidelines/connection-points.mdx | 6 ++-- .../design-guidelines/consoles.mdx | 10 +++---- .../design-guidelines/direct-messages.mdx | 6 ++-- .../design-guidelines/game-friends.mdx | 18 +++++------ .../design-guidelines/linked-channels.mdx | 14 ++++----- .../design-guidelines/principles.mdx | 10 +++---- .../provisional-accounts.mdx | 8 ++--- .../design-guidelines/signing-in.mdx | 14 ++++----- .../status-rich-presence.mdx | 10 +++---- .../unified-friends-list.mdx | 14 ++++----- .../account-linking-on-consoles.mdx | 4 +-- .../setting-rich-presence.mdx | 8 ++--- .../partials/dylib-mac-error.mdx | 6 ++-- docs/discord-social-sdk/overview.mdx | 2 +- docs/discovery/best-practices.md | 8 ++--- docs/discovery/overview.mdx | 8 ++--- docs/events/gateway.mdx | 2 +- docs/interactions/application-commands.mdx | 14 ++++----- docs/interactions/message-components.md | 12 ++++---- docs/interactions/overview.mdx | 6 ++-- docs/monetization/managing-skus.mdx | 20 ++++++------- docs/monetization/overview.mdx | 2 +- docs/quick-start/getting-started.mdx | 6 ++-- docs/quick-start/overview-of-apps.mdx | 2 +- docs/resources/poll.md | 2 +- docs/rich-presence/best-practices.md | 8 ++--- docs/rich-presence/overview.mdx | 6 ++-- .../using-with-the-discord-social-sdk.mdx | 4 +-- .../using-with-the-embedded-app-sdk.mdx | 6 ++-- .../rich-presence/using-with-the-game-sdk.mdx | 4 +-- docs/topics/certified-devices.md | 2 +- docs/topics/teams.md | 6 ++-- ...nfiguring-app-metadata-for-linked-roles.md | 18 +++++------ .../developing-a-user-installable-app.mdx | 4 +-- .../hosting-on-cloudflare-workers.md | 10 +++---- .../upgrading-to-application-commands.md | 10 +++---- {images => static/images}/API_center.gif | Bin .../images}/activities-presence-example.png | Bin .../images}/activities/activities-hero.png | Bin .../activity-instance-validation.jpg | Bin .../activities/application-test-mode-prod.gif | Bin .../images}/activities/bobble-bash.png | Bin .../images}/activities/bobble-league.png | Bin .../images}/activities/chess-victory.png | Bin .../images}/activities/custom-link-embed.png | Bin .../activities/debug-logs-filtering.gif | Bin .../default_orientation_lock_state.png | Bin .../images}/activities/developer-mode.gif | Bin .../images}/activities/discord-activities.png | Bin .../images}/activities/eights.png | Bin .../activities/embedded-app-flow-diagram.svg | 0 .../images}/activities/enable-activities.png | Bin .../encourage-hardware-acceleration-modal.png | Bin .../activities/external-link-modal.png | Bin .../images}/activities/invite-dialog.png | Bin .../images}/activities/join-application.png | Bin .../images}/activities/new-app.png | Bin .../images}/activities/oauth-flow-diagram.svg | 0 .../images}/activities/oauth2-details.png | Bin .../images}/activities/oauth2-redirect.png | Bin .../share-moment-dialog-example.png | Bin .../images}/activities/start-activity.png | Bin .../activities/supported-platforms.png | Bin .../images}/activities/tutorial-auth.png | Bin .../activities/tutorial-channel-name.png | Bin .../images}/activities/tutorial-hero.png | Bin .../images}/activities/tutorial-launched.png | Bin .../images}/activities/url-mapping-do.png | Bin .../images}/activities/url-mapping-dont.png | Bin .../activities/url-mapping-tutorial.png | Bin {images => static/images}/alerts.png | Bin .../annotated-presence-data-activities.png | Bin {images => static/images}/app-add-bot.png | Bin .../images}/app-create-modal.png | Bin {images => static/images}/ask-to-join.gif | Bin .../images}/available-published.png | Bin {images => static/images}/botuser-profile.png | Bin .../bp-productpage-app-description.png | Bin .../images}/bp-productpage-summary-bad.png | Bin .../images}/bp-productpage-summary-good.png | Bin .../images}/bp-productpage-tags.png | Bin {images => static/images}/button-styles.png | Bin .../images}/certified-device.png | Bin .../images}/cloudflare-general-overview.png | Bin .../cloudflare-interactions-endpoint.png | Bin .../images}/cloudflare-ngrok.png | Bin .../images}/cloudflare-tutorial-demo.gif | Bin .../images}/cloudflare-url-generator.png | Bin .../images}/command-entry-point.png | Bin {images => static/images}/command-types.png | Bin ...and-with-groups-subcommands-parameters.png | Bin .../command-with-groups-subcommands.png | Bin {images => static/images}/command.png | Bin {images => static/images}/cpp-files-sdk.png | Bin .../images}/create-store-channel.png | Bin .../images}/create-team-owned-app.png | Bin .../images}/default-presence-activities.png | Bin .../images}/deferred-example.png | Bin .../images}/desktop-role-select-menu.png | Bin {images => static/images}/desktop-select.png | Bin .../discovery-app-directory-product-page.png | Bin .../images}/discovery-app-launcher.png | Bin .../images}/discovery-sharing-links.png | Bin {images => static/images}/docs-header.svg | 0 {images => static/images}/example-poll.png | Bin .../images}/examples-ephemeral-message.png | Bin .../images}/examples-message-reactive.png | Bin .../images}/examples-update-message.png | Bin .../images}/game-overlay-sdk-invite.gif | Bin .../game-overlay-sdk-voice-settings.png | Bin .../images}/game-overlay-sdk-voice-widget.png | Bin .../images}/game-sdk-presence-example.png | Bin .../images}/gateway-lifecycle.svg | 0 .../getting-started-default-install.png | Bin .../images}/getting-started-demo.gif | Bin .../getting-started-interactions-endpoint.png | Bin .../images}/gift-code-creation.png | Bin {images => static/images}/glitch-project.png | Bin {images => static/images}/heroku-baking.gif | Bin .../images}/heroku-buildpack.png | Bin .../images}/heroku-configVars.png | Bin .../images}/heroku-connectGH.png | Bin {images => static/images}/heroku-deploy.png | Bin {images => static/images}/heroku-dynos.png | Bin {images => static/images}/heroku-login.png | Bin {images => static/images}/heroku-logs.png | Bin {images => static/images}/heroku-procfile.png | Bin {images => static/images}/heroku-token.png | Bin .../images}/interactions-url.png | Bin {images => static/images}/lib-linked-sdk.png | Bin .../images}/linked-roles-connect-account.png | Bin .../images}/linked-roles-connected.png | Bin .../images}/linked-roles-consent-dialog.png | Bin .../images}/linked-roles-glitch-share-url.png | Bin .../images}/linked-roles-glitch.png | Bin .../images}/linked-roles-oauth-config.png | Bin .../images}/linked-roles-register.png | Bin .../linked-roles-verification-setup.png | Bin .../images}/linked-roles-verify-endpoint.png | Bin {images => static/images}/mdx-button.png | Bin {images => static/images}/mdx-card.png | Bin {images => static/images}/mdx-collapsible.png | Bin {images => static/images}/message-command.png | Bin {images => static/images}/mobile-select.png | Bin {images => static/images}/modal-desktop.png | Bin .../images}/monetization-eligibility.png | Bin .../monetization-interaction-response.png | Bin .../images}/monetization-overview.png | Bin {images => static/images}/monetization.png | Bin .../images}/multiple-buttons-example-1.png | Bin .../images}/multiple-buttons-example-2.png | Bin {images => static/images}/multisub.png | Bin .../images}/new-permissions-flowchart.svg | 0 .../images}/overview-command-desktop.png | Bin .../images}/overview-components.png | Bin {images => static/images}/overview-modals.png | Bin .../images}/overview-of-apps-banner.png | Bin {images => static/images}/premium-button.png | Bin {images => static/images}/premium-example.png | Bin {images => static/images}/premium-items.png | Bin .../images}/premium-subscriptions.png | Bin .../previous-new-server-background.png | Bin .../images}/rich-presence-asset-images.png | Bin .../images}/rich-presence-examples.png | Bin .../images}/rich-presence-invite-image.png | Bin {images => static/images}/rp-actionable.png | Bin {images => static/images}/rp-all-fields.png | Bin {images => static/images}/rp-good-art.png | Bin {images => static/images}/rp-legend.png | Bin .../images}/rp-profile-example-1.png | Bin .../images}/rp-profile-example-2.png | Bin .../images}/rp-short-strings.png | Bin .../images}/server-banner-example.png | Bin .../images}/server-banner-margin-top.png | Bin {images => static/images}/sku-benefits.png | Bin {images => static/images}/sku-configure.png | Bin {images => static/images}/sku-custom.png | Bin .../images}/sku-customization.png | Bin {images => static/images}/sku-management.png | Bin {images => static/images}/sku-publish.png | Bin {images => static/images}/sku-unicode.png | Bin {images => static/images}/sku_embed.png | Bin .../images}/slash-command-options.png | Bin {images => static/images}/snowflake.png | Bin .../images}/snowflake_original_size.png | Bin .../social-sdk/design-guidelines/Brand-02.png | Bin .../social-sdk/design-guidelines/Brand-03.png | Bin .../social-sdk/design-guidelines/Brand-04.png | Bin .../design-guidelines/ConnectionPoints-02.png | Bin .../design-guidelines/ConnectionPoints-03.png | Bin .../design-guidelines/ConnectionPoints-04.png | Bin .../design-guidelines/ConnectionPoints-05.png | Bin .../design-guidelines/Consoles-01.jpg | Bin .../design-guidelines/Consoles-02.jpg | Bin .../design-guidelines/Consoles-03.jpg | Bin .../design-guidelines/Consoles-04.jpg | Bin .../design-guidelines/Consoles-05.jpg | Bin .../design-guidelines/Consoles-06.jpg | Bin .../social-sdk/design-guidelines/DMs-02.png | Bin .../social-sdk/design-guidelines/DMs-03.png | Bin .../social-sdk/design-guidelines/DMs-04.png | Bin .../design-guidelines/GameFriends-01.png | Bin .../design-guidelines/GameFriends-02.png | Bin .../design-guidelines/GameFriends-03.png | Bin .../design-guidelines/GameFriends-04.png | Bin .../design-guidelines/GameFriends-05.png | Bin .../design-guidelines/GameFriends-06.png | Bin .../design-guidelines/GameFriends-07.png | Bin .../design-guidelines/GameFriends-08.png | Bin .../design-guidelines/GameFriends-09.png | Bin .../design-guidelines/GameFriends-10.png | Bin .../design-guidelines/LinkedChannels-04.png | Bin .../design-guidelines/LinkedChannels-05.png | Bin .../design-guidelines/LinkedChannels-06.png | Bin .../design-guidelines/LinkedChannels-07.png | Bin .../design-guidelines/Principle-02.png | Bin .../design-guidelines/Principle-03.png | Bin .../design-guidelines/Principle-04.png | Bin .../design-guidelines/Principle-05.png | Bin .../design-guidelines/Principle-06.png | Bin .../design-guidelines/Principle-07.png | Bin .../social-sdk/design-guidelines/Prov-02.png | Bin .../social-sdk/design-guidelines/Prov-03.png | Bin .../social-sdk/design-guidelines/Prov-04.png | Bin .../social-sdk/design-guidelines/Prov-05.png | Bin .../design-guidelines/SigningIn-02.png | Bin .../design-guidelines/SigningIn-03.png | Bin .../design-guidelines/SigningIn-04.png | Bin .../design-guidelines/SigningIn-05.png | Bin .../design-guidelines/SigningIn-06.png | Bin .../design-guidelines/SigningIn-07.png | Bin .../design-guidelines/SigningIn-08.png | Bin .../design-guidelines/StatusPresence-02.png | Bin .../design-guidelines/StatusPresence-03.png | Bin .../design-guidelines/StatusPresence-04.png | Bin .../design-guidelines/StatusPresence-05.png | Bin .../design-guidelines/StatusPresence-06.png | Bin .../social-sdk/design-guidelines/UFL-02.png | Bin .../social-sdk/design-guidelines/UFL-03.png | Bin .../social-sdk/design-guidelines/UFL-04.png | Bin .../social-sdk/design-guidelines/UFL-05.png | Bin .../social-sdk/design-guidelines/UFL-06.png | Bin .../social-sdk/design-guidelines/UFL-07.png | Bin .../social-sdk/design-guidelines/UFL-08.png | Bin .../animated/Connecting-via-Browser.gif | Bin .../animated/Connecting-via-Client.gif | Bin .../design-guidelines/animated/DMs-02.gif | Bin .../animated/LinkedChannel-Setup.gif | Bin .../animated/LinkedChannel-Unlink.gif | Bin .../animated/LinkedChannels-02.gif | Bin .../animated/LinkedChannels-08.gif | Bin .../design-guidelines/animated/UFL-06.gif | Bin .../development-guides/authorize_device.png | Bin .../getting-started/partials/error.png | Bin .../getting-started/partials/open-anyway.png | Bin .../partials/settings-security.png | Bin .../social-sdk/overview/social_sdk_header.png | Bin {images => static/images}/spectate.gif | Bin {images => static/images}/store_embed.png | Bin {images => static/images}/team-page.png | Bin .../images}/transfer-app-to-team.png | Bin {images => static/images}/url-generator.png | Bin {images => static/images}/user-command.png | Bin .../images}/user-install-game-message.png | Bin .../images}/user-install-settings.png | Bin 274 files changed, 187 insertions(+), 186 deletions(-) rename {images => static/images}/API_center.gif (100%) rename {images => static/images}/activities-presence-example.png (100%) rename {images => static/images}/activities/activities-hero.png (100%) rename {images => static/images}/activities/activity-instance-validation.jpg (100%) rename {images => static/images}/activities/application-test-mode-prod.gif (100%) rename {images => static/images}/activities/bobble-bash.png (100%) rename {images => static/images}/activities/bobble-league.png (100%) rename {images => static/images}/activities/chess-victory.png (100%) rename {images => static/images}/activities/custom-link-embed.png (100%) rename {images => static/images}/activities/debug-logs-filtering.gif (100%) rename {images => static/images}/activities/default_orientation_lock_state.png (100%) rename {images => static/images}/activities/developer-mode.gif (100%) rename {images => static/images}/activities/discord-activities.png (100%) rename {images => static/images}/activities/eights.png (100%) rename {images => static/images}/activities/embedded-app-flow-diagram.svg (100%) rename {images => static/images}/activities/enable-activities.png (100%) rename {images => static/images}/activities/encourage-hardware-acceleration-modal.png (100%) rename {images => static/images}/activities/external-link-modal.png (100%) rename {images => static/images}/activities/invite-dialog.png (100%) rename {images => static/images}/activities/join-application.png (100%) rename {images => static/images}/activities/new-app.png (100%) rename {images => static/images}/activities/oauth-flow-diagram.svg (100%) rename {images => static/images}/activities/oauth2-details.png (100%) rename {images => static/images}/activities/oauth2-redirect.png (100%) rename {images => static/images}/activities/share-moment-dialog-example.png (100%) rename {images => static/images}/activities/start-activity.png (100%) rename {images => static/images}/activities/supported-platforms.png (100%) rename {images => static/images}/activities/tutorial-auth.png (100%) rename {images => static/images}/activities/tutorial-channel-name.png (100%) rename {images => static/images}/activities/tutorial-hero.png (100%) rename {images => static/images}/activities/tutorial-launched.png (100%) rename {images => static/images}/activities/url-mapping-do.png (100%) rename {images => static/images}/activities/url-mapping-dont.png (100%) rename {images => static/images}/activities/url-mapping-tutorial.png (100%) rename {images => static/images}/alerts.png (100%) rename {images => static/images}/annotated-presence-data-activities.png (100%) rename {images => static/images}/app-add-bot.png (100%) rename {images => static/images}/app-create-modal.png (100%) rename {images => static/images}/ask-to-join.gif (100%) rename {images => static/images}/available-published.png (100%) rename {images => static/images}/botuser-profile.png (100%) rename {images => static/images}/bp-productpage-app-description.png (100%) rename {images => static/images}/bp-productpage-summary-bad.png (100%) rename {images => static/images}/bp-productpage-summary-good.png (100%) rename {images => static/images}/bp-productpage-tags.png (100%) rename {images => static/images}/button-styles.png (100%) rename {images => static/images}/certified-device.png (100%) rename {images => static/images}/cloudflare-general-overview.png (100%) rename {images => static/images}/cloudflare-interactions-endpoint.png (100%) rename {images => static/images}/cloudflare-ngrok.png (100%) rename {images => static/images}/cloudflare-tutorial-demo.gif (100%) rename {images => static/images}/cloudflare-url-generator.png (100%) rename {images => static/images}/command-entry-point.png (100%) rename {images => static/images}/command-types.png (100%) rename {images => static/images}/command-with-groups-subcommands-parameters.png (100%) rename {images => static/images}/command-with-groups-subcommands.png (100%) rename {images => static/images}/command.png (100%) rename {images => static/images}/cpp-files-sdk.png (100%) rename {images => static/images}/create-store-channel.png (100%) rename {images => static/images}/create-team-owned-app.png (100%) rename {images => static/images}/default-presence-activities.png (100%) rename {images => static/images}/deferred-example.png (100%) rename {images => static/images}/desktop-role-select-menu.png (100%) rename {images => static/images}/desktop-select.png (100%) rename {images => static/images}/discovery-app-directory-product-page.png (100%) rename {images => static/images}/discovery-app-launcher.png (100%) rename {images => static/images}/discovery-sharing-links.png (100%) rename {images => static/images}/docs-header.svg (100%) rename {images => static/images}/example-poll.png (100%) rename {images => static/images}/examples-ephemeral-message.png (100%) rename {images => static/images}/examples-message-reactive.png (100%) rename {images => static/images}/examples-update-message.png (100%) rename {images => static/images}/game-overlay-sdk-invite.gif (100%) rename {images => static/images}/game-overlay-sdk-voice-settings.png (100%) rename {images => static/images}/game-overlay-sdk-voice-widget.png (100%) rename {images => static/images}/game-sdk-presence-example.png (100%) rename {images => static/images}/gateway-lifecycle.svg (100%) rename {images => static/images}/getting-started-default-install.png (100%) rename {images => static/images}/getting-started-demo.gif (100%) rename {images => static/images}/getting-started-interactions-endpoint.png (100%) rename {images => static/images}/gift-code-creation.png (100%) rename {images => static/images}/glitch-project.png (100%) rename {images => static/images}/heroku-baking.gif (100%) rename {images => static/images}/heroku-buildpack.png (100%) rename {images => static/images}/heroku-configVars.png (100%) rename {images => static/images}/heroku-connectGH.png (100%) rename {images => static/images}/heroku-deploy.png (100%) rename {images => static/images}/heroku-dynos.png (100%) rename {images => static/images}/heroku-login.png (100%) rename {images => static/images}/heroku-logs.png (100%) rename {images => static/images}/heroku-procfile.png (100%) rename {images => static/images}/heroku-token.png (100%) rename {images => static/images}/interactions-url.png (100%) rename {images => static/images}/lib-linked-sdk.png (100%) rename {images => static/images}/linked-roles-connect-account.png (100%) rename {images => static/images}/linked-roles-connected.png (100%) rename {images => static/images}/linked-roles-consent-dialog.png (100%) rename {images => static/images}/linked-roles-glitch-share-url.png (100%) rename {images => static/images}/linked-roles-glitch.png (100%) rename {images => static/images}/linked-roles-oauth-config.png (100%) rename {images => static/images}/linked-roles-register.png (100%) rename {images => static/images}/linked-roles-verification-setup.png (100%) rename {images => static/images}/linked-roles-verify-endpoint.png (100%) rename {images => static/images}/mdx-button.png (100%) rename {images => static/images}/mdx-card.png (100%) rename {images => static/images}/mdx-collapsible.png (100%) rename {images => static/images}/message-command.png (100%) rename {images => static/images}/mobile-select.png (100%) rename {images => static/images}/modal-desktop.png (100%) rename {images => static/images}/monetization-eligibility.png (100%) rename {images => static/images}/monetization-interaction-response.png (100%) rename {images => static/images}/monetization-overview.png (100%) rename {images => static/images}/monetization.png (100%) rename {images => static/images}/multiple-buttons-example-1.png (100%) rename {images => static/images}/multiple-buttons-example-2.png (100%) rename {images => static/images}/multisub.png (100%) rename {images => static/images}/new-permissions-flowchart.svg (100%) rename {images => static/images}/overview-command-desktop.png (100%) rename {images => static/images}/overview-components.png (100%) rename {images => static/images}/overview-modals.png (100%) rename {images => static/images}/overview-of-apps-banner.png (100%) rename {images => static/images}/premium-button.png (100%) rename {images => static/images}/premium-example.png (100%) rename {images => static/images}/premium-items.png (100%) rename {images => static/images}/premium-subscriptions.png (100%) rename {images => static/images}/previous-new-server-background.png (100%) rename {images => static/images}/rich-presence-asset-images.png (100%) rename {images => static/images}/rich-presence-examples.png (100%) rename {images => static/images}/rich-presence-invite-image.png (100%) rename {images => static/images}/rp-actionable.png (100%) rename {images => static/images}/rp-all-fields.png (100%) rename {images => static/images}/rp-good-art.png (100%) rename {images => static/images}/rp-legend.png (100%) rename {images => static/images}/rp-profile-example-1.png (100%) rename {images => static/images}/rp-profile-example-2.png (100%) rename {images => static/images}/rp-short-strings.png (100%) rename {images => static/images}/server-banner-example.png (100%) rename {images => static/images}/server-banner-margin-top.png (100%) rename {images => static/images}/sku-benefits.png (100%) rename {images => static/images}/sku-configure.png (100%) rename {images => static/images}/sku-custom.png (100%) rename {images => static/images}/sku-customization.png (100%) rename {images => static/images}/sku-management.png (100%) rename {images => static/images}/sku-publish.png (100%) rename {images => static/images}/sku-unicode.png (100%) rename {images => static/images}/sku_embed.png (100%) rename {images => static/images}/slash-command-options.png (100%) rename {images => static/images}/snowflake.png (100%) rename {images => static/images}/snowflake_original_size.png (100%) rename {images => static/images}/social-sdk/design-guidelines/Brand-02.png (100%) rename {images => static/images}/social-sdk/design-guidelines/Brand-03.png (100%) rename {images => static/images}/social-sdk/design-guidelines/Brand-04.png (100%) rename {images => static/images}/social-sdk/design-guidelines/ConnectionPoints-02.png (100%) rename {images => static/images}/social-sdk/design-guidelines/ConnectionPoints-03.png (100%) rename {images => static/images}/social-sdk/design-guidelines/ConnectionPoints-04.png (100%) rename {images => static/images}/social-sdk/design-guidelines/ConnectionPoints-05.png (100%) rename {images => static/images}/social-sdk/design-guidelines/Consoles-01.jpg (100%) rename {images => static/images}/social-sdk/design-guidelines/Consoles-02.jpg (100%) rename {images => static/images}/social-sdk/design-guidelines/Consoles-03.jpg (100%) rename {images => static/images}/social-sdk/design-guidelines/Consoles-04.jpg (100%) rename {images => static/images}/social-sdk/design-guidelines/Consoles-05.jpg (100%) rename {images => static/images}/social-sdk/design-guidelines/Consoles-06.jpg (100%) rename {images => static/images}/social-sdk/design-guidelines/DMs-02.png (100%) rename {images => static/images}/social-sdk/design-guidelines/DMs-03.png (100%) rename {images => static/images}/social-sdk/design-guidelines/DMs-04.png (100%) rename {images => static/images}/social-sdk/design-guidelines/GameFriends-01.png (100%) rename {images => static/images}/social-sdk/design-guidelines/GameFriends-02.png (100%) rename {images => static/images}/social-sdk/design-guidelines/GameFriends-03.png (100%) rename {images => static/images}/social-sdk/design-guidelines/GameFriends-04.png (100%) rename {images => static/images}/social-sdk/design-guidelines/GameFriends-05.png (100%) rename {images => static/images}/social-sdk/design-guidelines/GameFriends-06.png (100%) rename {images => static/images}/social-sdk/design-guidelines/GameFriends-07.png (100%) rename {images => static/images}/social-sdk/design-guidelines/GameFriends-08.png (100%) rename {images => static/images}/social-sdk/design-guidelines/GameFriends-09.png (100%) rename {images => static/images}/social-sdk/design-guidelines/GameFriends-10.png (100%) rename {images => static/images}/social-sdk/design-guidelines/LinkedChannels-04.png (100%) rename {images => static/images}/social-sdk/design-guidelines/LinkedChannels-05.png (100%) rename {images => static/images}/social-sdk/design-guidelines/LinkedChannels-06.png (100%) rename {images => static/images}/social-sdk/design-guidelines/LinkedChannels-07.png (100%) rename {images => static/images}/social-sdk/design-guidelines/Principle-02.png (100%) rename {images => static/images}/social-sdk/design-guidelines/Principle-03.png (100%) rename {images => static/images}/social-sdk/design-guidelines/Principle-04.png (100%) rename {images => static/images}/social-sdk/design-guidelines/Principle-05.png (100%) rename {images => static/images}/social-sdk/design-guidelines/Principle-06.png (100%) rename {images => static/images}/social-sdk/design-guidelines/Principle-07.png (100%) rename {images => static/images}/social-sdk/design-guidelines/Prov-02.png (100%) rename {images => static/images}/social-sdk/design-guidelines/Prov-03.png (100%) rename {images => static/images}/social-sdk/design-guidelines/Prov-04.png (100%) rename {images => static/images}/social-sdk/design-guidelines/Prov-05.png (100%) rename {images => static/images}/social-sdk/design-guidelines/SigningIn-02.png (100%) rename {images => static/images}/social-sdk/design-guidelines/SigningIn-03.png (100%) rename {images => static/images}/social-sdk/design-guidelines/SigningIn-04.png (100%) rename {images => static/images}/social-sdk/design-guidelines/SigningIn-05.png (100%) rename {images => static/images}/social-sdk/design-guidelines/SigningIn-06.png (100%) rename {images => static/images}/social-sdk/design-guidelines/SigningIn-07.png (100%) rename {images => static/images}/social-sdk/design-guidelines/SigningIn-08.png (100%) rename {images => static/images}/social-sdk/design-guidelines/StatusPresence-02.png (100%) rename {images => static/images}/social-sdk/design-guidelines/StatusPresence-03.png (100%) rename {images => static/images}/social-sdk/design-guidelines/StatusPresence-04.png (100%) rename {images => static/images}/social-sdk/design-guidelines/StatusPresence-05.png (100%) rename {images => static/images}/social-sdk/design-guidelines/StatusPresence-06.png (100%) rename {images => static/images}/social-sdk/design-guidelines/UFL-02.png (100%) rename {images => static/images}/social-sdk/design-guidelines/UFL-03.png (100%) rename {images => static/images}/social-sdk/design-guidelines/UFL-04.png (100%) rename {images => static/images}/social-sdk/design-guidelines/UFL-05.png (100%) rename {images => static/images}/social-sdk/design-guidelines/UFL-06.png (100%) rename {images => static/images}/social-sdk/design-guidelines/UFL-07.png (100%) rename {images => static/images}/social-sdk/design-guidelines/UFL-08.png (100%) rename {images => static/images}/social-sdk/design-guidelines/animated/Connecting-via-Browser.gif (100%) rename {images => static/images}/social-sdk/design-guidelines/animated/Connecting-via-Client.gif (100%) rename {images => static/images}/social-sdk/design-guidelines/animated/DMs-02.gif (100%) rename {images => static/images}/social-sdk/design-guidelines/animated/LinkedChannel-Setup.gif (100%) rename {images => static/images}/social-sdk/design-guidelines/animated/LinkedChannel-Unlink.gif (100%) rename {images => static/images}/social-sdk/design-guidelines/animated/LinkedChannels-02.gif (100%) rename {images => static/images}/social-sdk/design-guidelines/animated/LinkedChannels-08.gif (100%) rename {images => static/images}/social-sdk/design-guidelines/animated/UFL-06.gif (100%) rename {images => static/images}/social-sdk/development-guides/authorize_device.png (100%) rename {images => static/images}/social-sdk/getting-started/partials/error.png (100%) rename {images => static/images}/social-sdk/getting-started/partials/open-anyway.png (100%) rename {images => static/images}/social-sdk/getting-started/partials/settings-security.png (100%) rename {images => static/images}/social-sdk/overview/social_sdk_header.png (100%) rename {images => static/images}/spectate.gif (100%) rename {images => static/images}/store_embed.png (100%) rename {images => static/images}/team-page.png (100%) rename {images => static/images}/transfer-app-to-team.png (100%) rename {images => static/images}/url-generator.png (100%) rename {images => static/images}/user-command.png (100%) rename {images => static/images}/user-install-game-message.png (100%) rename {images => static/images}/user-install-settings.png (100%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 42a8e0d605..232219eda5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,7 +45,7 @@ For example: > Something that requires warning here ``` -![Alert options](images/alerts.png) +![Alert options](static/images/alerts.png) ### MDX Components @@ -56,6 +56,7 @@ There are a few reusable MDX components that can be used on pages with the `mdx` Collapsibles allow you to show/hide content on a page that may be secondary to the page's primary content. They have four fields that can be set: `title`, `description`, `icon`, and an `open` flag (which makes the collapsible element open by default). Available options for `icon`: + - `"list"` - `"view"` - `"question"` @@ -64,7 +65,7 @@ Available options for `icon`: ###### Example -![Collapsible MDX Component with the list icon](images/mdx-collapsible.png) +![Collapsible MDX Component with the list icon](static/images/mdx-collapsible.png) ```markdown @@ -78,7 +79,7 @@ Buttons are simply... clickable buttons. They take `href` and `color` as argumen ###### Example -![Button MDX Component](images/mdx-button.png) +![Button MDX Component](static/images/mdx-button.png) ```markdown click the button! @@ -90,7 +91,7 @@ Cards let you display links in a card format. They accept two arguments, `title` ###### Example -![Card MDX Component](images/mdx-card.png) +![Card MDX Component](static/images/mdx-card.png) ```markdown diff --git a/docs/activities/building-an-activity.mdx b/docs/activities/building-an-activity.mdx index 7218beb3ad..4a96e25b99 100644 --- a/docs/activities/building-an-activity.mdx +++ b/docs/activities/building-an-activity.mdx @@ -16,7 +16,7 @@ It assumes an understanding of [JavaScript](https://developer.mozilla.org/en-US/ -![Building Your First Activity Tutorial](activities/tutorial-hero.png) +![Building Your First Activity Tutorial](images/activities/tutorial-hero.png) @@ -142,7 +142,7 @@ You can learn more about the OAuth flow and redirect URIs in the [OAuth2 documen Click on **OAuth2** on the sidebar in your app's settings. Under **Redirects**, enter `https://127.0.0.1` as a placeholder value then click **Save Changes**. -![Redirect URI in Activity Settings](activities/oauth2-redirect.png) +![Redirect URI in Activity Settings](images/activities/oauth2-redirect.png) ### Fetch Your OAuth2 Credentials @@ -297,7 +297,7 @@ Because Activities are in a sandbox enviornment and go through the Discord proxy Back in your app's settings, click on the **URL Mappings** page under **Activities** on the left-hand sidebar. Enter the URL you generated from `cloudflared` in the previous step. -![Configuring your URL Mapping](activities/url-mapping-tutorial.png) +![Configuring your URL Mapping](images/activities/url-mapping-tutorial.png) | PREFIX | TARGET | |--------|-----------------------------------------| @@ -311,7 +311,7 @@ Next, we'll need to enable Activities for your app. On the left hand sidebar und Find the first checkbox, labeled `Enable Activities`. Turn it on 🎉 -![Enabling Activities in Settings](activities/enable-activities.png) +![Enabling Activities in Settings](images/activities/enable-activities.png) #### Default Entry Point Command @@ -328,7 +328,7 @@ Navigate to your Discord test server and, in any voice and or text channel, open Clicking on your app will launch your locally running app from inside Discord! -![Running your activity](activities/start-activity.png) +![Running your activity](images/activities/start-activity.png) > info > **Customizing your Activity**
If you'd like to set images for your Activity, you can learn how to do that [here](#DOCS_ACTIVITIES_DEVELOPMENT_GUIDES/setting-up-activity-metadata). @@ -356,7 +356,7 @@ We will use `express` for this example, but any backend language or framework wi This diagram illustrates the common pattern for granting a user an OAuth2 access_token: -![Flow diagram for Oauth2](activities/oauth-flow-diagram.svg) +![Flow diagram for Oauth2](images/activities/oauth-flow-diagram.svg) We will be implementing this pattern in this tutorial, but more example implementations can also be found in this sample project: @@ -529,7 +529,7 @@ document.querySelector('#app').innerHTML = ` Now if we relaunch our app, we'll be prompted to authorize with Discord using the `identify`, `guilds`, and `applications.commands` scopes. -![Prompt to authorize Activity](activities/tutorial-auth.png) +![Prompt to authorize Activity](images/activities/tutorial-auth.png) > warn > **Safe storage of tokens**
@@ -592,7 +592,7 @@ setupDiscordSdk().then(() => { If you close and rejoin the Activity, you should now see the name of the current channel. -![Discord Activities](activities/tutorial-channel-name.png) +![Discord Activities](images/activities/tutorial-channel-name.png) @@ -665,7 +665,7 @@ setupDiscordSdk().then(() => { If we relaunch our Activity, we will see the current server's avatar render in our Activity. -![Discord Activities](activities/tutorial-hero.png) +![Discord Activities](images/activities/tutorial-hero.png) diff --git a/docs/activities/design-patterns.mdx b/docs/activities/design-patterns.mdx index 304c1c0312..2958b03418 100644 --- a/docs/activities/design-patterns.mdx +++ b/docs/activities/design-patterns.mdx @@ -49,7 +49,7 @@ When in an Activity with others, make the actions and presence of the others vis - If a user has customized their server nickname or avatar, use their server nickname or avatar in game. - Show when a user is speaking in the voice call, or whether they're active or inactive. -![Speech bubbles in Bobble League](activities/bobble-bash.png) +![Speech bubbles in Bobble League](images/activities/bobble-bash.png) ### Respect user privacy @@ -67,7 +67,7 @@ Make your app fast, easy to join, and maximize fun to launch a crowd favorite. - Surprise and delight is about caring about the small details of how a person experiences your work. - Put the right emotion in when they least expect it to deliver the magic. -![Bobble League](activities/bobble-league.png) +![Bobble League](images/activities/bobble-league.png) ### Keep load times as low as possible - This allows for easier drop-in drop-out behavior for the large portion of mobile users on Discord. @@ -80,7 +80,7 @@ Make your app fast, easy to join, and maximize fun to launch a crowd favorite. - Activities are frictionless to join and easy to discover, so you can expect that users will join mid-experience. Give those users something to do, even if it's just letting them spectate until they can join without being disruptive. In the same vein, users can leave without notice or become afk (away from keyboard). Handle these cases gracefully. - Create a case for users who have joined a call but have not yet started playing or engaging. Allow these users to "spectate" other users who are playing. This can also be helpful for Activities that have an ideal number in mind for play. -![Support drop-in, drop-out behavior in your Activity](activities/eights.png) +![Support drop-in, drop-out behavior in your Activity](images/activities/eights.png) ### Make your app as available as possible @@ -105,7 +105,7 @@ Discord is a social platform where users talk to each other. Sharing and invites - Share photos or GIFs that capture moments of fun and memorable, or something to brag about. Don't make things shareable just to feature the activity. - Sharing a high score alone may not be very engaging, but sharing a really good move made in a game, or a collaborative drawing that creates a memory is a conversation starter and may make others want to join in on the fun. -![Shared Moment from Chess in the Park](activities/chess-victory.png) +![Shared Moment from Chess in the Park](images/activities/chess-victory.png) #### Activities in Text Channels - The Activity user interface, copy and user flows should not rely on people in voice to explain, organize, clarify, or instruct about how the activity works. diff --git a/docs/activities/development-guides.mdx b/docs/activities/development-guides.mdx index 4b6856702a..bd366a8548 100644 --- a/docs/activities/development-guides.mdx +++ b/docs/activities/development-guides.mdx @@ -172,7 +172,7 @@ https://funky-jogging-bunny.trycloudflare.com In the Discord Developer Portal, update the Application URL mapping for `/` url to `funky-jogging-bunny.trycloudflare.com` to match your network tunnel address and save your changes. -![Configuring your URL Mapping](activities/url-mapping-tutorial.png) +![Configuring your URL Mapping](images/activities/url-mapping-tutorial.png) > warn > If you do not own the URL that you are using to host the application (i.e. ngrok's free tier), someone else could claim that domain and host a malicious site in its place. Please be aware of these risks, and if you have to use a domain you do not own, be sure to reset your URL mapping when you are done using the tunnel. @@ -189,7 +189,7 @@ The flow for setting up your production application is very similar: 4. Follow the instructions for [Launching your Application from the Discord Client](#DOCS_ACTIVITIES_DEVELOPMENT_GUIDES/launch-your-application-from-the-discord-client)). Application URL Override should not be enabled. This application now uses the same configuration it will use once it is fully published ✨. -![application-test-mode-prod](activities/application-test-mode-prod.gif) +![application-test-mode-prod](images/activities/application-test-mode-prod.gif) --- @@ -226,7 +226,7 @@ Because your application is "sandboxed", it will be unable to make network reque To add or modify your application's URL mappings, click on `Activities -> URL Mappings` and set the prefix and target values for each mapping as needed. -![Configuring your URL Mapping](activities/url-mapping-tutorial.png) +![Configuring your URL Mapping](images/activities/url-mapping-tutorial.png) #### Prefix/Target formatting rules @@ -241,7 +241,7 @@ To add or modify your application's URL mappings, click on `Activities -> URL Ma | ✅ DO | ❌ DON'T | |------------------------------------------------------|------------------------------------------------------------| | Requests mapped correctly | Requests to /foo/bar will incorrectly be sent to `foo.com` | -| ![url-mapping-do.png](activities/url-mapping-do.png) | ![url-mapping-dont.png](activities/url-mapping-dont.png) | +| ![url-mapping-do.png](images/activities/url-mapping-do.png) | ![url-mapping-dont.png](images/activities/url-mapping-dont.png) | #### Exceptions @@ -291,7 +291,7 @@ The first section of Debug Logs are not your application logs but Discord specif When you scroll down the page, your application logs should be visible. -![debug-logs-filtering](activities/debug-logs-filtering.gif) +![debug-logs-filtering](images/activities/debug-logs-filtering.gif) #### Sharing Application Logs from Mobile @@ -346,7 +346,7 @@ discordSdk.commands.openExternalLink({ #### User Experience -![external-link-modal](activities/external-link-modal.png) +![external-link-modal](images/activities/external-link-modal.png) Users will see a modal inside the Discord app notifying them whether or not they want to proceed. By clicking **_Trust this Domain_**, users will not see a modal for that specific domain again. @@ -381,7 +381,7 @@ try { User Experience -![Invite Dialog UI](activities/invite-dialog.png) +![Invite Dialog UI](images/activities/invite-dialog.png) Users will see a modal inside the Discord app allowing them to send an invite to a channel, friend, or copy an invite link to share manually. @@ -434,7 +434,7 @@ await discordSdk.commands.openShareMomentDialog({mediaUrl}); User Experience -![share-moment-dialog](activities/share-moment-dialog-example.png) +![share-moment-dialog](images/activities/share-moment-dialog-example.png) --- @@ -502,7 +502,7 @@ console.log(`Hardware Acceleration is ${enabled === true ? 'enabled' : 'disabled #### User Experience -![encourage-hardware-acceleration-modal](activities/encourage-hardware-acceleration-modal.png) +![encourage-hardware-acceleration-modal](images/activities/encourage-hardware-acceleration-modal.png) --- @@ -516,7 +516,7 @@ By default, your Activity will be launchable on web/desktop. To enable or disabl - Select `Activities` -> `Settings` in the left-side of the developer portal, or visit `https://discord.com/developers//embedded/settings` - From check the appropriate checkboxes in the developer portal, and save your changes -![supported-platforms](activities/supported-platforms.png) +![supported-platforms](images/activities/supported-platforms.png) --- @@ -621,7 +621,7 @@ discordSdk.commands.setOrientationLockState({ It's also possible to configure an application with a default orientation lock state via the Developer Portal. Using this method, the Discord app will apply the orientation lock when launching the application before the SDK has been initialized. This can create a smoother application launch flow where the application starts in the correct orientation rather than switching to the correct orientation after some delay after the application requests an orientation lock via the SDK. The Developer Portal supports setting a different default orientation lock states for phones versus tablets. -![default-orientation-lock-state](activities/default_orientation_lock_state.png) +![default-orientation-lock-state](images/activities/default_orientation_lock_state.png) #### Subscribing to Screen Orientation Updates @@ -772,7 +772,7 @@ Rest assured: other activities will not be able to make requests with your activ When a user clicks "Join Application", they expect to enter the same application that their friends are participating in. Whether the application is a shared drawing canvas, board game, collaborative playlist, or first-person shooter; the two users should have access to the same shared data. In this documentation, we refer to this shared data as an **application instance**. -![join-application](activities/join-application.png) +![join-application](images/activities/join-application.png) The Embedded App SDK allows your app to talk bidirectionally with the Discord Client. The `instanceId` is necessary for your application, as well as Discord, to understand which unique instance of an application it is talking to. @@ -1027,7 +1027,7 @@ Once you're satisfied with your changes you can click on the copy icon on the ro #### User Experience -![custom-link-embed](activities/custom-link-embed.png) +![custom-link-embed](images/activities/custom-link-embed.png) Users will see an embed with your information displayed. Clicking "Play" opens the activity and passes through the `custom_id` you've set. A `referrer_id` will be present for links shared on Discord. @@ -1091,7 +1091,7 @@ curl https://discord.com/api/applications/1215413995645968394/activity-instances With this API, the activity's backend can verify that a client is in fact in an instance of that activity before allowing the client to participate in any meaningful gameplay. How an activity implements "session verification" is left to the developer's discretion. The solution can be as granular as gating specific features or as binary as not returning the activity HTML except for valid sessions. In the below flow diagram, we show how the server can deliver the activity website, only for valid users in a valid activity instance: -![application-test-mode-prod](activities/activity-instance-validation.jpg) +![application-test-mode-prod](images/activities/activity-instance-validation.jpg) --- diff --git a/docs/activities/how-activities-work.md b/docs/activities/how-activities-work.md index b01b317e82..38fdf4cb35 100644 --- a/docs/activities/how-activities-work.md +++ b/docs/activities/how-activities-work.md @@ -60,4 +60,4 @@ async function setup() { This diagram illustrates the communication flow between your application and Discord in the sample code above. -![Diagram of how Activities communicate with Discord](activities/embedded-app-flow-diagram.svg) +![Diagram of how Activities communicate with Discord](images/activities/embedded-app-flow-diagram.svg) diff --git a/docs/activities/overview.mdx b/docs/activities/overview.mdx index ff7b956c94..51311d50d7 100644 --- a/docs/activities/overview.mdx +++ b/docs/activities/overview.mdx @@ -4,7 +4,7 @@ sidebar_label: Overview # Overview of Activities -![Building Discord Activities](activities/activities-hero.png) +![Building Discord Activities](images/activities/activities-hero.png) **Activities** are multiplayer games and social experiences that can be launched in Discord. Activities can integrate with Discord features like user identity, voice and chat, profile data like Rich Presence, and native monetization. diff --git a/docs/change-log/2022-11-17-upcoming-application-command-permission-changes.md b/docs/change-log/2022-11-17-upcoming-application-command-permission-changes.md index 1213ddb54d..6ce7bc4856 100644 --- a/docs/change-log/2022-11-17-upcoming-application-command-permission-changes.md +++ b/docs/change-log/2022-11-17-upcoming-application-command-permission-changes.md @@ -70,7 +70,7 @@ If a command-level configuration does not exist for the given context, the syste Below is a simplified flowchart that illustrates how permissions will be applied by the Discord client after the new changes take effect. -![Flowchart with an overview of the new permissions configurations logic](new-permissions-flowchart.svg) +![Flowchart with an overview of the new permissions configurations logic](images/new-permissions-flowchart.svg) #### 2. `APPLICATION_COMMAND_PERMISSIONS_V2` Guild Feature diff --git a/docs/developer-tools/game-sdk.mdx b/docs/developer-tools/game-sdk.mdx index f754b0bbe3..57fc01cb0f 100644 --- a/docs/developer-tools/game-sdk.mdx +++ b/docs/developer-tools/game-sdk.mdx @@ -232,11 +232,11 @@ You're ready to go! Check out the rest of the documentation for more info on how In your project folder, you'll want to make something like a "discord-files" folder, for organization. In that folder, copy all the `.h` and `.cpp` files from the zip. You want to include all the header and source files respectively in your project -![Correct Files](cpp-files-sdk.png) +![Correct Files](images/cpp-files-sdk.png) In your project settings, you'll want to include the relevant library (e.g. `discord_game_sdk.dll.lib`) as an additional dependency. -![Linked Library](lib-linked-sdk.png) +![Linked Library](images/lib-linked-sdk.png) - From there, you should be able to `#include "discord-files/discord.h"`, or whatever the path to that header file is, and have access to the code. @@ -1274,7 +1274,7 @@ Opens the overlay widget for voice settings for the currently connected applicat -![Screenshot of the Voice Settings modal for an application](game-overlay-sdk-voice-settings.png) +![Screenshot of the Voice Settings modal for an application](images/game-overlay-sdk-voice-settings.png) Returns a `Discord.Result` via callback. @@ -1333,7 +1333,7 @@ overlayManager.OpenActivityInvite(ActivityActionType.Join, (result) => And that invite modal looks like this! -![Screenshot of an Invitation Modal in an application](game-overlay-sdk-invite.gif) +![Screenshot of an Invitation Modal in an application](images/game-overlay-sdk-invite.gif) diff --git a/docs/discord-social-sdk/design-guidelines/branding-guidelines.mdx b/docs/discord-social-sdk/design-guidelines/branding-guidelines.mdx index 7d27bb00ec..a311479807 100644 --- a/docs/discord-social-sdk/design-guidelines/branding-guidelines.mdx +++ b/docs/discord-social-sdk/design-guidelines/branding-guidelines.mdx @@ -12,7 +12,7 @@ Download the Discord word-mark assets [discord.com/branding](https://discord.com Please do not edit, change, distort, recolor, or reconfigure the Discord logo. -![Discord Logo](social-sdk/design-guidelines/Brand-02.png) +![Discord Logo](images/social-sdk/design-guidelines/Brand-02.png) ## Buttons @@ -26,7 +26,7 @@ The Flexible buttons are intended to be restyled to match the game's aesthetic ( These pre-styled buttons leverage colors vetted by our Design Systems team to pass contrast ratios across different backgrounds. -![Brand Buttons](social-sdk/design-guidelines/Brand-03.png) +![Brand Buttons](images/social-sdk/design-guidelines/Brand-03.png) ## Spacing @@ -34,7 +34,7 @@ Ensure that there is adequate spacing between button text and the Discord logo a When using the Flexible button styling, ensure that your typeface's baseline and x-height are aligned to the Discord logo. -![Brand Spacing](social-sdk/design-guidelines/Brand-04.png) +![Brand Spacing](images/social-sdk/design-guidelines/Brand-04.png) ## Resources diff --git a/docs/discord-social-sdk/design-guidelines/connection-points.mdx b/docs/discord-social-sdk/design-guidelines/connection-points.mdx index 5064e1634c..55dacfb67d 100644 --- a/docs/discord-social-sdk/design-guidelines/connection-points.mdx +++ b/docs/discord-social-sdk/design-guidelines/connection-points.mdx @@ -16,7 +16,7 @@ Discord's sign-in button is presented as the **primary option** to log-in for th Please use the [**Blurple Button**](#DOCS_DISCORD_SOCIAL_SDK_DESIGN_GUIDELINES_BRANDING_GUIDELINES/buttons) button styling for the sign-in connection point. -![Signing In](social-sdk/design-guidelines/ConnectionPoints-03.png) +![Signing In](images/social-sdk/design-guidelines/ConnectionPoints-03.png) ## Friends list @@ -26,7 +26,7 @@ Select your preferred _button-styling_ for the friends list connection point (se After the player connects their account, the connection point is no longer visible. -![Friends List](social-sdk/design-guidelines/ConnectionPoints-04.png) +![Friends List](images/social-sdk/design-guidelines/ConnectionPoints-04.png) ## Content Guidelines @@ -34,7 +34,7 @@ Please use the strings shown here within the relevant contexts. These connection point strings should be consistent across all games that use the Discord Social SDK to help the user build recognition, trust, and understanding when taking this action. -![Content Guidelines](social-sdk/design-guidelines/ConnectionPoints-05.png) +![Content Guidelines](images/social-sdk/design-guidelines/ConnectionPoints-05.png) --- diff --git a/docs/discord-social-sdk/design-guidelines/consoles.mdx b/docs/discord-social-sdk/design-guidelines/consoles.mdx index 106295b0c9..45c5f657ed 100644 --- a/docs/discord-social-sdk/design-guidelines/consoles.mdx +++ b/docs/discord-social-sdk/design-guidelines/consoles.mdx @@ -14,7 +14,7 @@ Players expect a consistent Discord social experience across devices—whether o Console players **will need a secondary device** to experience the full benefits of the Discord Social SDK. -![Connect on console](social-sdk/design-guidelines/Consoles-02.jpg) +![Connect on console](images/social-sdk/design-guidelines/Consoles-02.jpg) ## Connect to Discord on console @@ -24,25 +24,25 @@ Users will need to use a mobile device or computer in order to avoid the clunky A player without an existing Discord account can create one easily on the web. -![Connect on console](social-sdk/design-guidelines/Consoles-03.jpg) +![Connect on console](images/social-sdk/design-guidelines/Consoles-03.jpg) Users can skip the device code screen by scanning the QR code with their mobile camera. They will be prompted to authorize the game. If the Discord app is not detected upon scanning, users are prompted to sign in and connect via the web browser. If a player does not wish to use the QR scan, they will need to go to discord.com/activate to enter the 8-digit code. -![connecting with your phone](social-sdk/design-guidelines/Consoles-04.jpg) +![connecting with your phone](images/social-sdk/design-guidelines/Consoles-04.jpg) ## Chatting on console Game chat will be available for games who support the feature on consoles. However, unsupported rich media from Discord (i.e. attachments, polls, voice messages, etc.) should not include a clickable link icon. Similar to the auth flow, we do not want to encourage players to visit Discord in the console web browser—they should use secondary devices to view this content. -![chat on console](social-sdk/design-guidelines/Consoles-05.jpg) +![chat on console](images/social-sdk/design-guidelines/Consoles-05.jpg) ## Friends list on console Please leverage the same [friends list guidelines](#DOCS_DISCORD_SOCIAL_SDK_DESIGN_GUIDELINES_UNIFIED_FRIENDS_LIST) previously documented in the playbook. There are no notable differences in the friends list on console in comparison to other devices. However, consoles do not support hover interactions so there needs to be console-friendly way for players to access secondary information (such as alternate identities) about friends in the list. -![chat on console](social-sdk/design-guidelines/Consoles-06.jpg) +![chat on console](images/social-sdk/design-guidelines/Consoles-06.jpg) --- diff --git a/docs/discord-social-sdk/design-guidelines/direct-messages.mdx b/docs/discord-social-sdk/design-guidelines/direct-messages.mdx index 7a010ead70..b7714df46f 100644 --- a/docs/discord-social-sdk/design-guidelines/direct-messages.mdx +++ b/docs/discord-social-sdk/design-guidelines/direct-messages.mdx @@ -13,20 +13,20 @@ The badging logic in direct-messages is consistent with the logic detailed in th If the user is **online elsewhere** and is not in the game client, their usernames will include a **Discord badge**. Once they're online in the game-client, they will not retain the Discord badge. -![Badge when online elsewhere](social-sdk/design-guidelines/animated/DMs-02.gif) +![Badge when online elsewhere](images/social-sdk/design-guidelines/animated/DMs-02.gif) ## Message styling Style the Discord logo to match a player's username color. The logo should feel tied to a user's identity, not the message content. -![Message styling](social-sdk/design-guidelines/DMs-03.png) +![Message styling](images/social-sdk/design-guidelines/DMs-03.png) ## Unsupported rich media Regardless of whether a user has signed into Discord, unsupported rich media content should be paired with an **external link icon**. When content isn't clickable, don't show the icon. -![Unsupported rich media](social-sdk/design-guidelines/DMs-04.png) +![Unsupported rich media](images/social-sdk/design-guidelines/DMs-04.png) --- diff --git a/docs/discord-social-sdk/design-guidelines/game-friends.mdx b/docs/discord-social-sdk/design-guidelines/game-friends.mdx index a382c3238c..91743b31de 100644 --- a/docs/discord-social-sdk/design-guidelines/game-friends.mdx +++ b/docs/discord-social-sdk/design-guidelines/game-friends.mdx @@ -15,7 +15,7 @@ We've heard from players that they want more of a distinction between connection Users want more controls over how in-game relationships extend beyond the game client with communication, presence, and identity. -![User needs](social-sdk/design-guidelines/GameFriends-02.png) +![User needs](images/social-sdk/design-guidelines/GameFriends-02.png) ## Game Friends — A new tier @@ -23,7 +23,7 @@ Discord is introducing a new tier of friendship called **Game Friends**. Game Friends are a way to create an in-game relationship with another player that provides all of the in-game benefits, but limits how the relationship extends outside the game. -![Game Friends](social-sdk/design-guidelines/GameFriends-03.png) +![Game Friends](images/social-sdk/design-guidelines/GameFriends-03.png) ## Game vs Discord Friends @@ -35,13 +35,13 @@ A Game Friend **can reach Discord-connected friends outside the game** by DMing A Game Friend **cannot see your rich presence** beyond the game your friendship originated in. The exception is if both friends have their Discord accounts connected and are in a shared server. -![Game vs Discord Friends](social-sdk/design-guidelines/GameFriends-04.png) +![Game vs Discord Friends](images/social-sdk/design-guidelines/GameFriends-04.png) ## Equally-weighted When adding a new friend, **present two options to players with "Game Friends" listed first**, since it's the more localized/limited friend-tier. Please ensure that neither type of friend is pre-selected in the UI — present them equally to the user (ordering aside for above reasons). -![Equally-weighted friend options](social-sdk/design-guidelines/GameFriends-05.png) +![Equally-weighted friend options](images/social-sdk/design-guidelines/GameFriends-05.png) ## Adding friends @@ -49,31 +49,31 @@ If the user is not yet a friend, show both options of adding as either a Game or If a user is already your Game Friend, show the action to also add them on Discord. -![Adding friends](social-sdk/design-guidelines/GameFriends-06.png) +![Adding friends](images/social-sdk/design-guidelines/GameFriends-06.png) ## Removing friends When removing a Game Friend or Discord Friend, show players the standard "Remove Friend" action. The SDK will remove the friend across whatever friendships are applicable. -![Removing friends](social-sdk/design-guidelines/GameFriends-07.png) +![Removing friends](images/social-sdk/design-guidelines/GameFriends-07.png) ## Style guidelines When removing a Game Friend or Discord Friend, show players the standard "Remove Friend" action. The SDK will remove the friend across whatever friendships are applicable. -![Removing friends](social-sdk/design-guidelines/GameFriends-08.png) +![Removing friends](images/social-sdk/design-guidelines/GameFriends-08.png) ## UX, not UI The visual styling of the "Add Friend" menu-items is not intended to be prescriptive. So long as both options are equally-weighted, please use whichever UI fits your game's needs. -![UX, not UI](social-sdk/design-guidelines/GameFriends-09.png) +![UX, not UI](images/social-sdk/design-guidelines/GameFriends-09.png) ## Setting on Discord This mock showcases how the corresponding DM looks within Discord's UI. -![Removing friends](social-sdk/design-guidelines/GameFriends-10.png) +![Removing friends](images/social-sdk/design-guidelines/GameFriends-10.png) --- diff --git a/docs/discord-social-sdk/design-guidelines/linked-channels.mdx b/docs/discord-social-sdk/design-guidelines/linked-channels.mdx index 93c5f18262..2a64c3e799 100644 --- a/docs/discord-social-sdk/design-guidelines/linked-channels.mdx +++ b/docs/discord-social-sdk/design-guidelines/linked-channels.mdx @@ -10,11 +10,11 @@ sidebar_label: Linked Channels Empower players to continue their conversations beyond the game. Now you can link an in-game chat to a text-channel on Discord. -![Link in-game chats to Discord](social-sdk/design-guidelines/animated/LinkedChannels-02.gif) +![Link in-game chats to Discord](images/social-sdk/design-guidelines/animated/LinkedChannels-02.gif) ### Linking a channel via the game -![Linking a channel via the game](social-sdk/design-guidelines/animated/LinkedChannel-Setup.gif) +![Linking a channel via the game](images/social-sdk/design-guidelines/animated/LinkedChannel-Setup.gif) ## Style guidelines @@ -30,7 +30,7 @@ The official feature-name that will be reflected across the Discord client is "L Please use the string guidance from above: "Link \{groupChat\} to Discord." For interface, use whichever UI treatment that fits your game's needs. -![Linked channel style guidelines](social-sdk/design-guidelines/LinkedChannels-04.png) +![Linked channel style guidelines](images/social-sdk/design-guidelines/LinkedChannels-04.png) ## Selecting a channel @@ -44,7 +44,7 @@ Please include the following in the selection UI: - List of **servers** and their nested **text-channels** with respective iconography (ie, private channel has a lock) - **Search bar** for channel-names -![Selecting a channel](social-sdk/design-guidelines/LinkedChannels-05.png) +![Selecting a channel](images/social-sdk/design-guidelines/LinkedChannels-05.png) ## Setup warning @@ -52,7 +52,7 @@ Players can link channels with **limited access** on Discord. Doing so will allo Show a **warning** when a user is about to link to a channel with limited access. We strongly recommend you use the copy shown to the right image. -![Setup warning](social-sdk/design-guidelines/LinkedChannels-06.png) +![Setup warning](images/social-sdk/design-guidelines/LinkedChannels-06.png) ## Success state & Entrypoint @@ -62,7 +62,7 @@ Separately, create a **persistent entrypoint** somewhere in the game UI. This pe [You can download the official "Linked Channels" channel-icon in our GitHub repository.](https://github.com/discord/discord-api-docs/blob/main/resources/discord-social-sdk) -![Success state & Entrypoint](social-sdk/design-guidelines/LinkedChannels-07.png) +![Success state & Entrypoint](images/social-sdk/design-guidelines/LinkedChannels-07.png) ## Removing Channel Link @@ -72,7 +72,7 @@ Players can remove the channel link from either the game client or the Discord c When "Remove channel-link" is interacted with, show the player a **confirmation** dialog to confirm this action. -![Removing Channel Link](social-sdk/design-guidelines/animated/LinkedChannels-08.gif) +![Removing Channel Link](images/social-sdk/design-guidelines/animated/LinkedChannels-08.gif) --- diff --git a/docs/discord-social-sdk/design-guidelines/principles.mdx b/docs/discord-social-sdk/design-guidelines/principles.mdx index 6ac69c8e8f..c9dc315d4c 100644 --- a/docs/discord-social-sdk/design-guidelines/principles.mdx +++ b/docs/discord-social-sdk/design-guidelines/principles.mdx @@ -13,31 +13,31 @@ sidebar_label: Principles This integration aims to bring value to the player's gaming experience. Branded connection points should highlight said value-add based on the context. -![Add Value for the Player](social-sdk/design-guidelines/Principle-03.png) +![Add Value for the Player](images/social-sdk/design-guidelines/Principle-03.png) ## 2. Foster trust with Discord's brand Lean into Discord's visual-styling to establish trust through brand recognition. The more players that connect, the more robust the social graph is for the game. -![Foster trust with Discord's brand](social-sdk/design-guidelines/Principle-04.png) +![Foster trust with Discord's brand](images/social-sdk/design-guidelines/Principle-04.png) ## 3. Promote Understanding through consistency Use consistent branding and user-flows across games to build expected behavior. We care about the UX, not the UI. -![Promote Understanding through consistency](social-sdk/design-guidelines/Principle-05.png) +![Promote Understanding through consistency](images/social-sdk/design-guidelines/Principle-05.png) ## 4. Prioritize the player's immersion Our focus is on preserving the player's immersion in the game. There are no requirements to replicate Discord's UI. The visual-design should feel as seamlessly integrated into the game as our SDKs. -![Prioritize the player's immersion](social-sdk/design-guidelines/Principle-06.png) +![Prioritize the player's immersion](images/social-sdk/design-guidelines/Principle-06.png) ## 5. Uphold data privacy, transparency, and control Each platform is in control and responsible for the data on their respective platforms. Players are informed of where their data shows up. -![Uphold data privacy, transparency, and control](social-sdk/design-guidelines/Principle-07.png) +![Uphold data privacy, transparency, and control](images/social-sdk/design-guidelines/Principle-07.png) --- diff --git a/docs/discord-social-sdk/design-guidelines/provisional-accounts.mdx b/docs/discord-social-sdk/design-guidelines/provisional-accounts.mdx index 35539c04ab..df9798947f 100644 --- a/docs/discord-social-sdk/design-guidelines/provisional-accounts.mdx +++ b/docs/discord-social-sdk/design-guidelines/provisional-accounts.mdx @@ -12,7 +12,7 @@ Not all users are going to link their Discord account to their game. This create The Discord Social SDK has built provisional accounts as a way for game-devs to create a lightweight, **limited Discord account** for unlinked users, so you can use the same APIs regardless of whether a user has connected their Discord account or not. -![Badge when online elsewhere](social-sdk/design-guidelines/Prov-02.png) +![Badge when online elsewhere](images/social-sdk/design-guidelines/Prov-02.png) ## What is a provisional account? @@ -20,7 +20,7 @@ To players, a provisional account is simply a **standard account** that has yet The complexity around provisional accounts that game-developers have to handle are invisible to players in the game. -![What is a provisional account?](social-sdk/design-guidelines/Prov-03.png) +![What is a provisional account?](images/social-sdk/design-guidelines/Prov-03.png) ## How provisional accounts look within the game @@ -28,7 +28,7 @@ Provisional accounts **won't have the Discord badge** by their username in the f Only players who've connected their Discord accounts and have provisional account friends from other games using the Discord Social SDK will see this state. -![How provisional accounts look within the game](social-sdk/design-guidelines/Prov-04.png) +![How provisional accounts look within the game](images/social-sdk/design-guidelines/Prov-04.png) ## How provisional accounts look within Discord @@ -36,7 +36,7 @@ Provisional accounts will leverage **branded avatars** and **text-hints** on Dis Because provisional accounts have limited capabilities, for example, you cannot start a voice or video call with them, it's important to visually distinguish them from Discord users. -![How provisional accounts look within Discord](social-sdk/design-guidelines/Prov-05.png) +![How provisional accounts look within Discord](images/social-sdk/design-guidelines/Prov-05.png) --- diff --git a/docs/discord-social-sdk/design-guidelines/signing-in.mdx b/docs/discord-social-sdk/design-guidelines/signing-in.mdx index cdf3cee5e0..583a87ba70 100644 --- a/docs/discord-social-sdk/design-guidelines/signing-in.mdx +++ b/docs/discord-social-sdk/design-guidelines/signing-in.mdx @@ -17,21 +17,21 @@ The Discord Social SDK will support the user-journeys for those who already **ha A player can also proceed **without** connecting their Discord and continue onwards to playing their game. -![Overall Flow](social-sdk/design-guidelines/SigningIn-02.png) +![Overall Flow](images/social-sdk/design-guidelines/SigningIn-02.png) ### Connecting your Discord account via Discord client (gif) -![Connecting your Discord account via Discord client](social-sdk/design-guidelines/animated/Connecting-via-Client.gif) +![Connecting your Discord account via Discord client](images/social-sdk/design-guidelines/animated/Connecting-via-Client.gif) ### Connecting your Discord account via Browser (gif) -![Connecting your Discord account via Browser](social-sdk/design-guidelines/animated/Connecting-via-Browser.gif) +![Connecting your Discord account via Browser](images/social-sdk/design-guidelines/animated/Connecting-via-Browser.gif) ## Overlay Authorization Discord's [Overlay](https://support.discord.com/hc/en-us/articles/217659737-Game-Overlay-101) feature can be used to enable authorization without ever leaving the game. This is available for games who support the feature. -![Overlay Authorization](social-sdk/design-guidelines/SigningIn-05.png) +![Overlay Authorization](images/social-sdk/design-guidelines/SigningIn-05.png) ## Before the user connects @@ -45,7 +45,7 @@ This modal should include some of the key value props that the Discord Social SD - Show when player interacts with the friends list for the first time - Show in the authorization flow once a player taps the Discord connection point -![Before the user connects](social-sdk/design-guidelines/SigningIn-06.png) +![Before the user connects](images/social-sdk/design-guidelines/SigningIn-06.png) ## After the user connects @@ -59,7 +59,7 @@ Include the following points sequentially in the game' s writing-style. Remove a - You can chat with your friends here and on Discord - It might take some time for your game friends to show up in your Discord -![After the user connects](social-sdk/design-guidelines/SigningIn-07.png) +![After the user connects](images/social-sdk/design-guidelines/SigningIn-07.png) ## Error State @@ -69,7 +69,7 @@ Please include these key points sequentially in the game's writing-style: - We were unable to connect your Discord account - A call-to-action that redirects back to Discord with the initial authorization modal -![Error State](social-sdk/design-guidelines/SigningIn-08.png) +![Error State](images/social-sdk/design-guidelines/SigningIn-08.png) --- diff --git a/docs/discord-social-sdk/design-guidelines/status-rich-presence.mdx b/docs/discord-social-sdk/design-guidelines/status-rich-presence.mdx index a1ff557cd6..5a26001186 100644 --- a/docs/discord-social-sdk/design-guidelines/status-rich-presence.mdx +++ b/docs/discord-social-sdk/design-guidelines/status-rich-presence.mdx @@ -16,11 +16,11 @@ By following this guide, you will learn how to: ## Core statuses, plus game-specific -![Core statuses, plus game-specific](social-sdk/design-guidelines/StatusPresence-02.png) +![Core statuses, plus game-specific](images/social-sdk/design-guidelines/StatusPresence-02.png) ## Status matrix -![Status matrix](social-sdk/design-guidelines/StatusPresence-03.png) +![Status matrix](images/social-sdk/design-guidelines/StatusPresence-03.png) ## Side-by-side @@ -28,7 +28,7 @@ Any of the **core statuses** (online, idle, DND, offline) will always be the sam You can customize the status icon, but custom icons will only render within the game. -![Side-by-side](social-sdk/design-guidelines/StatusPresence-04.png) +![Side-by-side](images/social-sdk/design-guidelines/StatusPresence-04.png) ## Core style guidelines @@ -38,7 +38,7 @@ In other words, as long as the status colors read as yellow/green/red, and the s Avatars are not required. -![Core style guidelines](social-sdk/design-guidelines/StatusPresence-05.png) +![Core style guidelines](images/social-sdk/design-guidelines/StatusPresence-05.png) ## Rich Presence @@ -46,7 +46,7 @@ The game developer should set rich presence — this will show in both the Disco Please refer to [**Setting Rich Presence**](#DOCS_DISCORD_SOCIAL_SDK_DEVELOPMENT_GUIDES_SETTING_RICH_PRESENCE) for more information on Rich Presence, such as other types of traits that can be included. -![Rich Presence](social-sdk/design-guidelines/StatusPresence-06.png) +![Rich Presence](images/social-sdk/design-guidelines/StatusPresence-06.png) --- diff --git a/docs/discord-social-sdk/design-guidelines/unified-friends-list.mdx b/docs/discord-social-sdk/design-guidelines/unified-friends-list.mdx index af3aab3532..b0a92da67c 100644 --- a/docs/discord-social-sdk/design-guidelines/unified-friends-list.mdx +++ b/docs/discord-social-sdk/design-guidelines/unified-friends-list.mdx @@ -25,7 +25,7 @@ The **Online — GameTitle** section shows friends who are online in the same ga The **Online — Elsewhere** section shows friends who are online but not in the same game. However, they can be messaged or invited to play the game. -![Sectioning Friends List](social-sdk/design-guidelines/UFL-02.png) +![Sectioning Friends List](images/social-sdk/design-guidelines/UFL-02.png) ## Discord = Communication @@ -33,7 +33,7 @@ Show the Discord badge next to a player's name when they are **online elsewhere* The Discord logo represents **universal communication**. It aims to convey to users: “As a player, I know I can message or invite this friend to play a game anywhere Discord is present.” This means via phone, computer, and even console. -![Discord logo represents universal communication](social-sdk/design-guidelines/UFL-03.png) +![Discord logo represents universal communication](images/social-sdk/design-guidelines/UFL-03.png) ## Identities @@ -43,7 +43,7 @@ If the friend does not own the game, use their **Discord Display Name**. If the friend does not own the game nor have a linked Discord account, fall back to their **Provisional identity**. -![Displaying different relationships](social-sdk/design-guidelines/UFL-04.png) +![Displaying different relationships](images/social-sdk/design-guidelines/UFL-04.png) ## Examples of friends lists @@ -51,7 +51,7 @@ A player's **console ID** is effectively their **game ID**, as consoles require The examples to the right show how the hierarchy translates to consoles. -![Examples of friends lists](social-sdk/design-guidelines/UFL-05.png) +![Examples of friends lists](images/social-sdk/design-guidelines/UFL-05.png) ## How did we land here? @@ -59,13 +59,13 @@ It reduces sudden **name changes** within the game, which can be confusing to th It's also **scalable** and **inclusive** of provisional accounts who do not have Discord accounts connected. -![How did we land here?](social-sdk/design-guidelines/animated/UFL-06.gif) +![How did we land here?](images/social-sdk/design-guidelines/animated/UFL-06.gif) ## Discord Display Names When referring to a player's Discord Identity, please use their **Discord Display Name**, and not their username. -![Discord display names](social-sdk/design-guidelines/UFL-07.png) +![Discord display names](images/social-sdk/design-guidelines/UFL-07.png) ## Scaling to Multiple Platforms @@ -75,7 +75,7 @@ Prioritize player needs by elevating available players to the top of the friends Avoid friend-lists organized by company. This hierarchy dilutes the value-prop of putting online players first, in favor of platform delineation. -![Scaling to Multiple Platforms](social-sdk/design-guidelines/UFL-08.png) +![Scaling to Multiple Platforms](images/social-sdk/design-guidelines/UFL-08.png) --- diff --git a/docs/discord-social-sdk/development-guides/account-linking-on-consoles.mdx b/docs/discord-social-sdk/development-guides/account-linking-on-consoles.mdx index aa40416d2c..82d43eec0d 100644 --- a/docs/discord-social-sdk/development-guides/account-linking-on-consoles.mdx +++ b/docs/discord-social-sdk/development-guides/account-linking-on-consoles.mdx @@ -49,7 +49,7 @@ Console users cannot authenticate via a web browser. Instead, they follow these The SDK can manage this process automatically or allow manual token handling. -![Authorization screen from using OpenAuthorizeDeviceScreen and GetTokenFromDevice](social-sdk/development-guides/authorize_device.png) +![Authorization screen from using OpenAuthorizeDeviceScreen and GetTokenFromDevice](images/social-sdk/development-guides/authorize_device.png) --- @@ -142,7 +142,7 @@ client->OpenAuthorizeDeviceScreen(user_code); > info > You can also display the `verification_uri_complete` or `verification_uri` with `user_code` in your game's interface to allow the user to enter the code manually. -![Authorization screen from using OpenAuthorizeDeviceScreen and GetTokenFromDevice](social-sdk/development-guides/authorize_device.png) +![Authorization screen from using OpenAuthorizeDeviceScreen and GetTokenFromDevice](images/social-sdk/development-guides/authorize_device.png) Once the user approves the authorization request from a web browser or their mobile device, the `device_code` from Step 1 is ready to be exchanged for an access token. diff --git a/docs/discord-social-sdk/development-guides/setting-rich-presence.mdx b/docs/discord-social-sdk/development-guides/setting-rich-presence.mdx index ed2cf9279a..aa79d7cda2 100644 --- a/docs/discord-social-sdk/development-guides/setting-rich-presence.mdx +++ b/docs/discord-social-sdk/development-guides/setting-rich-presence.mdx @@ -68,7 +68,7 @@ You can control how lines 2 and 3 are rendered in Discord, here's the breakdown: This diagram visually shows the field mapping: -![Graphical representation of the legend for rich presence details](rp-legend.png) +![Graphical representation of the legend for rich presence details](images/rp-legend.png) > info > For tips on designing Rich Presence, take a look at the [Rich Presence best practices guide](#DOCS_RICH_PRESENCE_BEST_PRACTICES). @@ -79,7 +79,7 @@ This diagram visually shows the field mapping: The Rich Presence invite image appears when invites are sent for a 3rd party game or app using the Discord Social SDK. After uploading an invite image for your app, you can see a preview of it to the right (under "IRL Invite Image Example"). -![Rich Presence invite image in app settings](rich-presence-invite-image.png) +![Rich Presence invite image in app settings](images/rich-presence-invite-image.png) --- @@ -89,7 +89,7 @@ While integrating Rich Presence, you'll likely want to upload custom art assets To add custom assets for Rich Presence, navigate to your app's settings and click Rich Presence on the left-hand sidebar. On the Art Assets page, you can upload two different types of assets. -![Rich Presence invite image in app settings](rich-presence-invite-image.png) +![Rich Presence invite image in app settings](images/rich-presence-invite-image.png) Up to 300 custom assets can be added to your app for later use when setting Rich Presence for a Discord user. These assets can be anything that help orient others to what a user is doing inside of your Activity or 3rd party game. @@ -102,7 +102,7 @@ When uploading Rich Presence assets, **the asset keys will automatically be chan Once you've uploaded these assets, you can use the asset key to reference them in your code when [Setting Assets in Rich Presence](#DOCS_DISCORD_SOCIAL_SDK_DEVELOPMENT_GUIDES_SETTING_RICH_PRESENCE/setting-assets). -![Rich Presence assets in app settings](rich-presence-asset-images.png) +![Rich Presence assets in app settings](images/rich-presence-asset-images.png) --- diff --git a/docs/discord-social-sdk/getting-started/partials/dylib-mac-error.mdx b/docs/discord-social-sdk/getting-started/partials/dylib-mac-error.mdx index 270a398c9b..8ded3e1155 100644 --- a/docs/discord-social-sdk/getting-started/partials/dylib-mac-error.mdx +++ b/docs/discord-social-sdk/getting-started/partials/dylib-mac-error.mdx @@ -1,14 +1,14 @@ On Mac you may get the error "libdiscord_partner_sdk.dylib" Not Opened because Apple couldn't verify it. If this happens press **Done** on the popup. -![Error](social-sdk/getting-started/partials/error.png) +![Error](images/social-sdk/getting-started/partials/error.png) You'll need to open your **System Settings > Privacy & Security** and scroll down to the **Security** section. It will tell you "libdiscord_partner_sdk.dylib" was blocked to protect your Mac. Press **Open Anyway** and try running again. -![Settings](social-sdk/getting-started/partials/settings-security.png) +![Settings](images/social-sdk/getting-started/partials/settings-security.png) Now when you get the pop up you'll have the option to select **Open Anyway** and it will be able to use it successfully. -![Open](social-sdk/getting-started/partials/open-anyway.png) +![Open](images/social-sdk/getting-started/partials/open-anyway.png) \ No newline at end of file diff --git a/docs/discord-social-sdk/overview.mdx b/docs/discord-social-sdk/overview.mdx index 1891959048..e87f111546 100644 --- a/docs/discord-social-sdk/overview.mdx +++ b/docs/discord-social-sdk/overview.mdx @@ -5,7 +5,7 @@ sidebar_label: Overview # Discord Social SDK -![Discord Social SDK](social-sdk/overview/social_sdk_header.png) +![Discord Social SDK](images/social-sdk/overview/social_sdk_header.png) The Discord Social SDK allows you to integrate social features directly into your game. Build engaging, social experiences where players can connect, communicate, and play together, all while staying immersed in your game. diff --git a/docs/discovery/best-practices.md b/docs/discovery/best-practices.md index 4efa177e87..2a314f6982 100644 --- a/docs/discovery/best-practices.md +++ b/docs/discovery/best-practices.md @@ -24,7 +24,7 @@ There are a few places where you can define different descriptions of your app w On the **General Information** tab, there is a general **Description** field (max of 400 characters) that appears within your bot user's profile. When a new user clicks on your app within Discord, they'll see this description. -![App description on the General Information tab](bp-productpage-app-description.png) +![App description on the General Information tab](images/bp-productpage-app-description.png) #### App Summary @@ -32,11 +32,11 @@ On the **App Directory** tab, the **Summary** field is a short description (max When writing your app's Summary, think about how to grab the user's attention and quickly convey the value of your app. Consider the following description: -![Poorly-written app Summary on the App Directory tab](bp-productpage-summary-bad.png) +![Poorly-written app Summary on the App Directory tab](images/bp-productpage-summary-bad.png) While this could be true, it doesn’t really tell folks how the app makes servers better or more fun. The best descriptions start with an attention grabbing sentence that describes a problem a user might want to solve: -![Well-written app Summary on the App Directory tab](bp-productpage-summary-good.png) +![Well-written app Summary on the App Directory tab](images/bp-productpage-summary-good.png) #### App Expanded Description @@ -68,7 +68,7 @@ After adding some images, make a quick screen recording to demonstrate your app Think of up to five words that describe your app and add them as tags (see image below for an example). Consider what categories your app would fit under or keywords users would type into the search bar when looking for apps to add to their servers. -![App tags which help categorize apps and make them more searchable](bp-productpage-tags.png) +![App tags which help categorize apps and make them more searchable](images/bp-productpage-tags.png) ## Support Your Users diff --git a/docs/discovery/overview.mdx b/docs/discovery/overview.mdx index ecea146509..3c1cfb2fb8 100644 --- a/docs/discovery/overview.mdx +++ b/docs/discovery/overview.mdx @@ -17,7 +17,7 @@ The App Directory is a central hub where users can discover new apps. They can s - **Search**: Users can search for your app by name and install it. - **App Directory Product Page**: Share information about your app, including descriptions, images, videos, and links. -![Your Discord App Profile](discovery-app-directory-product-page.png) +![Your Discord App Profile](images/discovery-app-directory-product-page.png) ### App Launcher @@ -26,7 +26,7 @@ The App Launcher lets users discover new apps through collections and search fro - **Search**: Your app will be available to search and install. - **Collections**: Includes Recent Apps, Installed Apps, Currated Apps, Partner Apps, and Promoted Apps. -![App Launcher in Discord](discovery-app-launcher.png) +![App Launcher in Discord](images/discovery-app-launcher.png) #### App Launcher Collections can include: - **Recent Apps**: Apps you've recently used or installed will appear at the top of the App Launcher @@ -51,12 +51,12 @@ Once your app is discoverable, there are several ways users may find it through Create shareable links to your app's profile page, store page, or specific items. Share these links in Discord, emails, or on your website. -![A shared embed link in Discord for the Sandscape app](discovery-sharing-links.png) +![A shared embed link in Discord for the Sandscape app](images/discovery-sharing-links.png) ### Rich Presence Use [Rich Presence](#DOCS_RICH_PRESENCE_OVERVIEW) to show what users are doing in your app, driving more users to discover it. -![Examples of Rich Presence data on Discord user profiles](rich-presence-examples.png) +![Examples of Rich Presence data on Discord user profiles](images/rich-presence-examples.png) --- diff --git a/docs/events/gateway.mdx b/docs/events/gateway.mdx index 99954db051..630b1e3133 100644 --- a/docs/events/gateway.mdx +++ b/docs/events/gateway.mdx @@ -76,7 +76,7 @@ Gateway connections are persistent WebSockets which introduce more complexity th At a high-level, Gateway connections consist of the following cycle: -![Flowchart with an overview of Gateway connection lifecycle](gateway-lifecycle.svg) +![Flowchart with an overview of Gateway connection lifecycle](images/gateway-lifecycle.svg) 1. App establishes a connection with the Gateway after fetching and caching a WSS URL using the [Get Gateway](#DOCS_EVENTS_GATEWAY/get-gateway) or [Get Gateway Bot](#DOCS_EVENTS_GATEWAY/get-gateway-bot) endpoint. 2. Discord sends the app a [Hello (opcode `10`)](#DOCS_EVENTS_GATEWAY/hello-event) event containing a heartbeat interval in milliseconds. **Read the section on [Connecting](#DOCS_EVENTS_GATEWAY/connecting)** diff --git a/docs/interactions/application-commands.mdx b/docs/interactions/application-commands.mdx index 9baf3102b0..9d4dfeeab8 100644 --- a/docs/interactions/application-commands.mdx +++ b/docs/interactions/application-commands.mdx @@ -2,7 +2,7 @@ Application commands are native ways to interact with apps in the Discord client. There are 3 types of commands accessible in different interfaces: the chat input, a message's context menu (top-right menu or right-clicking in a message), and a user's context menu (right-clicking on a user). -![Client interfaces showing the different types of application commands](command-types.png) +![Client interfaces showing the different types of application commands](images/command-types.png) ## Application Command Object @@ -610,7 +610,7 @@ We'll start by defining the top-level information for `/permissions`: } ``` -![A command with no arguments. It says /permissions](command.png) +![A command with no arguments. It says /permissions](images/command.png) Now we have a command named `permissions`. We want this command to be able to affect users and roles. Rather than making two separate commands, we can use subcommand groups. We want to use subcommand groups here because we are grouping commands on a similar resource: `user` or `role`. @@ -680,7 +680,7 @@ Now that we've effectively made `user` and `role` "folders", we want to be able } ``` -![A command with grouped subcommands. It says /permissions user get](command-with-groups-subcommands.png) +![A command with grouped subcommands. It says /permissions user get](images/command-with-groups-subcommands.png) Now, we need some arguments! If we chose `user`, we need to be able to pick a user; if we chose `role`, we need to be able to pick a role. We also want to be able to pick between guild-level permissions and channel-specific permissions. For that, we can use optional arguments: @@ -785,7 +785,7 @@ Now, we need some arguments! If we chose `user`, we need to be able to pick a us And, done! The JSON looks a bit complicated, but what we've ended up with is a single command that can be scoped to multiple actions, and then further scoped to a particular resource, and then even _further_ scope with optional arguments. Here's what it looks like all put together. -![A command with grouped subcommands and parameters. It says /permissions user get with arguments for a user and a channel.](command-with-groups-subcommands-parameters.png) +![A command with grouped subcommands and parameters. It says /permissions user get with arguments for a user and a channel.](images/command-with-groups-subcommands-parameters.png) ## User Commands @@ -806,7 +806,7 @@ User commands are application commands that appear on the context menu (right cl } ``` -![An example user command. The context menu has an Apps section open to a High Five command](user-command.png) +![An example user command. The context menu has an Apps section open to a High Five command](images/user-command.png) When someone uses a user command, your application will receive an interaction: @@ -897,7 +897,7 @@ Message commands are application commands that appear on the context menu (right } ``` -![An example message command. The context menu has an Apps section open to a Bookmark command](message-command.png) +![An example message command. The context menu has an Apps section open to a Bookmark command](images/message-command.png) When someone uses a message command, your application will receive an interaction: @@ -980,7 +980,7 @@ When someone uses a message command, your application will receive an interactio An Entry Point command serves as the primary way for users to open an app's [Activity](#DOCS_ACTIVITIES_OVERVIEW) from the [App Launcher](https://support.discord.com/hc/articles/21334461140375-Using-Apps-on-Discord#h_01HRQSA6C8TRHS722P1H3HW1TV). For the Entry Point command to be visible to users, an app must have [Activities](#DOCS_ACTIVITIES_OVERVIEW) enabled. -![Entry Point command in App Launcher](command-entry-point.png) +![Entry Point command in App Launcher](images/command-entry-point.png) ###### Example Entry Point Command diff --git a/docs/interactions/message-components.md b/docs/interactions/message-components.md index f0c7c78644..6735af985d 100644 --- a/docs/interactions/message-components.md +++ b/docs/interactions/message-components.md @@ -118,7 +118,7 @@ Buttons come in a variety of styles to convey different types of actions. These | Link | 5 | grey, navigates to a URL | `url` | | Premium | 6 | blurple | `sku_id` | -![An image showing the different button styles](button-styles.png) +![An image showing the different button styles](images/button-styles.png) When a user clicks on a button, your app will receive an [interaction](#DOCS_INTERACTIONS_RECEIVING_AND_RESPONDING/interaction-object) including the message the button was on: @@ -138,11 +138,11 @@ When a user clicks on a button, your app will receive an [interaction](#DOCS_INT Use different button styles to create a hierarchy. Use only one `Primary` button per group. -![Example showing one primary button per button group](multiple-buttons-example-1.png) +![Example showing one primary button per button group](images/multiple-buttons-example-1.png) If there are multiple buttons of equal significance, use the `Secondary` button style for all buttons -![Example showing multiple buttons in a group with equal significance](multiple-buttons-example-2.png) +![Example showing multiple buttons in a group with equal significance](images/multiple-buttons-example-2.png) ###### Premium Buttons @@ -154,7 +154,7 @@ Premium buttons will automatically have: - SKU price - 34 character max for this button. Longer titles will be truncated -![A premium button](premium-button.png) +![A premium button](images/premium-button.png) ### Component Interaction Object @@ -237,7 +237,7 @@ Premium buttons will automatically have: Select menus are interactive components that allow users to select one or more options from a dropdown list in messages. On desktop, clicking on a select menu opens a dropdown-style UI; on mobile, tapping a select menu opens up a half-sheet with the options. -![A role select component on desktop](desktop-role-select-menu.png) +![A role select component on desktop](images/desktop-role-select-menu.png) Select menus support single-select and multi-select behavior, meaning you can prompt a user to choose just one item from a list, or multiple. When a user finishes making their choice(s) by clicking out of the dropdown or closing the half-sheet, your app will receive an [interaction](#DOCS_INTERACTIONS_RECEIVING_AND_RESPONDING/interaction-object-interaction-structure). @@ -507,7 +507,7 @@ Text inputs are an interactive component that render in modals. They can be used When defining a text input component, you can set attributes to customize the behavior and appearance of it. However, not all attributes will be returned in the [text input interaction payload](#DOCS_INTERACTIONS_MESSAGE_COMPONENTS/text-input-object-text-input-interaction). -![A text input in a modal on desktop client](modal-desktop.png) +![A text input in a modal on desktop client](images/modal-desktop.png) ###### Text Input Example diff --git a/docs/interactions/overview.mdx b/docs/interactions/overview.mdx index 8c3394a609..a17bace804 100644 --- a/docs/interactions/overview.mdx +++ b/docs/interactions/overview.mdx @@ -18,7 +18,7 @@ There are different types of interactions in your app's toolbelt that can pick a **[Application commands](#DOCS_INTERACTIONS_APPLICATION_COMMANDS)** provide users a native way to invoke an app in Discord. They often map to an app's core features or functionality. -![Command launcher in the Desktop client](overview-command-desktop.png) +![Command launcher in the Desktop client](images/overview-command-desktop.png) When an app creates a command it can choose the command's type, which determines where it appears in the Discord client and the metadata the app will receive when the command is invoked. There are three types for application commands: @@ -33,7 +33,7 @@ Details about creating commands and handling command interactions are in the [Ap **[Message components](#DOCS_INTERACTIONS_MESSAGE_COMPONENTS)** are interactive elements that can be included in the content of a message that your app sends in Discord. -![Button message components in a message](overview-components.png) +![Button message components in a message](images/overview-components.png) The main interactive components that apps can send in messages include: @@ -47,7 +47,7 @@ A list of all message components and details on sending and receiving component **[Modals](#DOCS_INTERACTIONS_RECEIVING_AND_RESPONDING/interaction-response-object-modal)** are single-user pop-up interfaces that allow apps to collect form-like data. Modals can only be opened in response to a user invoking one of your app's commands or message components. -![Modals in the Discord client](overview-modals.png) +![Modals in the Discord client](images/overview-modals.png) The only interactive component that modals can contain are [text inputs](#DOCS_INTERACTIONS_MESSAGE_COMPONENTS/text-inputs), which allow users to fill out single-or-multi line form inputs. diff --git a/docs/monetization/managing-skus.mdx b/docs/monetization/managing-skus.mdx index aab128c3df..74154edd06 100644 --- a/docs/monetization/managing-skus.mdx +++ b/docs/monetization/managing-skus.mdx @@ -25,7 +25,7 @@ You can create multiple subscription tiers to offer different benefits at differ To support upgrading and downgrading between subscription tiers, see our guide on [Implementing App Subscriptions](#DOCS_MONETIZATION_IMPLEMENTING_APP_SUBSCRIPTIONS/supporting-upgrades-and-downgrades). -![Supporting multiple subscription tiers](multisub.png) +![Supporting multiple subscription tiers](images/multisub.png) ### SKU Limitations @@ -54,7 +54,7 @@ Your list of benefits will displayed on your app's Store page, the App Directory - A name, max 80 characters - A description, max 160 characters -![Example of SKU benefits](sku-benefits.png) +![Example of SKU benefits](images/sku-benefits.png) ### Pricing Your SKUs @@ -70,7 +70,7 @@ To set an icon using a standard Unicode emoji, enter the emoji in the `Unicode E > MacOS: `control + command + space bar` > Windows: `Windows + .` -![Set a unicode emoji](sku-unicode.png) +![Set a unicode emoji](images/sku-unicode.png)
@@ -82,7 +82,7 @@ To use a custom emoji, set a value for both fields: > info > You can find the ID of the emoji in the Discord app by escaping the emoji in a message with a backslash character `\`. For example, `\:uwu:` will render with the name and ID of the emoji. -![Set a custom emoji](sku-custom.png) +![Set a custom emoji](images/sku-custom.png) --- @@ -167,13 +167,13 @@ Users can access an app's Store page from the Bot User's profile in a server. Th > Only subscriptions and items that have been published to the Store will be visible to users on the Store page. #### Accessing your Store page from a Bot User's Profile -![Accessing the store as a user](botuser-profile.png) +![Accessing the store as a user](images/botuser-profile.png) #### Subscriptions in Your Store page -![Subscriptions in your Store View](multisub.png) +![Subscriptions in your Store View](images/multisub.png) #### Items in Your Store page -![Items in your Store View](premium-items.png) +![Items in your Store View](images/premium-items.png) --- @@ -186,7 +186,7 @@ You can link directly to a specific SKU using our Application Directory Store UR - When used in chat, it will render as a rich embed that allows users to launch a modal to view either the SKU details or checkout flow - When used as a direct URL in a browser, it will take the user to your product in the Application Directory on web -![Embed for direct link to SKU](sku_embed.png) +![Embed for direct link to SKU](images/sku_embed.png) --- @@ -199,7 +199,7 @@ You can link directly to your Store page using our Application Directory Store U - When used in chat, it will render as a rich embed that allows users to launch a modal to your Store page - When used as a direct URL in a browser, it will take the user to your Store page in the Application Directory on web -![Embed for direct link to Store](store_embed.png) +![Embed for direct link to Store](images/store_embed.png) --- @@ -226,4 +226,4 @@ return new JsonResponse({ }); ``` -![A premium button](premium-button.png) \ No newline at end of file +![A premium button](images/premium-button.png) \ No newline at end of file diff --git a/docs/monetization/overview.mdx b/docs/monetization/overview.mdx index ed3f536c8f..fff7304445 100644 --- a/docs/monetization/overview.mdx +++ b/docs/monetization/overview.mdx @@ -4,7 +4,7 @@ sidebar_label: Overview # Monetizing Your Discord App -![Monetizing Your Discord App](monetization-overview.png) +![Monetizing Your Discord App](images/monetization-overview.png) ### Offer native payment and checkout in your app using our Monetization APIs. diff --git a/docs/quick-start/getting-started.mdx b/docs/quick-start/getting-started.mdx index b8c144318e..425fde50c5 100644 --- a/docs/quick-start/getting-started.mdx +++ b/docs/quick-start/getting-started.mdx @@ -14,7 +14,7 @@ We'll be building a Discord app that lets users play rock-paper-scissors (with 7 Here's what the finished app will look like: -![Demo of example app](getting-started-demo.gif) +![Demo of example app](images/getting-started-demo.gif) To make the user flow a bit more explicit: @@ -166,7 +166,7 @@ On the **Installation** page in the **Default Install Settings** section: - For **User Install**, add the `applications.commands` scope - For **Guild Install**, add the `applications.commands` scope and `bot` scope. When you select `bot`, a new **Permissions** menu will appear to select the bot user's permissions. Select any permissions that you may want for your app—for now, I'll just select `Send Messages`. -![Default Install Settings](getting-started-default-install.png) +![Default Install Settings](images/getting-started-default-install.png) See a list of all [OAuth2 scopes](#DOCS_TOPICS_OAUTH2/shared-resources-oauth2-scopes), or read more on [permissions](#DOCS_TOPICS_PERMISSIONS) in the documentation. @@ -271,7 +271,7 @@ We'll use **Forwarding** URL as the publicly-accessible URL where Discord will s Go to your [app's settings](https://discord.com/developers/applications) and on the **General Information** page under **Interaction Endpoint URL**, paste your new ngrok forwarding URL and append `/interactions`. -![Interactions Endpoint URL](getting-started-interactions-endpoint.png) +![Interactions Endpoint URL](images/getting-started-interactions-endpoint.png) Click **Save Changes** and ensure your endpoint is successfully verified. diff --git a/docs/quick-start/overview-of-apps.mdx b/docs/quick-start/overview-of-apps.mdx index 2b686bc4ea..e33e9ac92f 100644 --- a/docs/quick-start/overview-of-apps.mdx +++ b/docs/quick-start/overview-of-apps.mdx @@ -4,7 +4,7 @@ sidebar_label: Overview of Apps # Overview of Discord Apps -![Overview of Apps](overview-of-apps-banner.png) +![Overview of Apps](images/overview-of-apps-banner.png) Discord apps customize, extend, and enhance Discord for millions of users. Whether you're a developer interested in building an Activity, customizing servers, or integrating a game, apps are the container to bring your idea to life. diff --git a/docs/resources/poll.md b/docs/resources/poll.md index df4128b94d..29bd1e42f2 100644 --- a/docs/resources/poll.md +++ b/docs/resources/poll.md @@ -6,7 +6,7 @@ sidebar_label: Poll A poll is... well... a poll! It holds information about a poll! -![Example message containing a poll](example-poll.png) +![Example message containing a poll](images/example-poll.png) ### Poll Object diff --git a/docs/rich-presence/best-practices.md b/docs/rich-presence/best-practices.md index 5ea0975f21..3d37ebf195 100644 --- a/docs/rich-presence/best-practices.md +++ b/docs/rich-presence/best-practices.md @@ -26,7 +26,7 @@ The data in your players’ profiles is the first thing that others on Discord w ###### Examples -![Example of a good rich presence string that is concise and easy to read compared to a bad string that is too long to fit on one line](rp-short-strings.png) +![Example of a good rich presence string that is concise and easy to read compared to a bad string that is too long to fit on one line](images/rp-short-strings.png) ### Make it Actionable! @@ -36,7 +36,7 @@ The data in your players’ profiles is the first thing that others on Discord w ###### Examples -![Examples of good rich presence strings that show a game mode of "Ranked: Control Point" and that the user is "In Queue (2 of 3)" compared to a bad string that reads "Rank 9999"](rp-actionable.png) +![Examples of good rich presence strings that show a game mode of "Ranked: Control Point" and that the user is "In Queue (2 of 3)" compared to a bad string that reads "Rank 9999"](images/rp-actionable.png) ### Use ALL of the fields (where applicable)! @@ -46,7 +46,7 @@ The data in your players’ profiles is the first thing that others on Discord w ###### Examples -![Example of a good rich presence string that takes advantage of storing less important information in tooltips compared to a bad string that is hard to read at a glance](rp-all-fields.png) +![Example of a good rich presence string that takes advantage of storing less important information in tooltips compared to a bad string that is hard to read at a glance](images/rp-all-fields.png) ### Have interesting, expressive art! @@ -57,7 +57,7 @@ The data in your players’ profiles is the first thing that others on Discord w ###### Examples -![Example of a good rich presence icon that is clear and detailed compared to a bad icon that is too dark to see clearly](rp-good-art.png) +![Example of a good rich presence icon that is clear and detailed compared to a bad icon that is too dark to see clearly](images/rp-good-art.png) ## Launch Checklist diff --git a/docs/rich-presence/overview.mdx b/docs/rich-presence/overview.mdx index a19f0a1da7..daffc3f65c 100644 --- a/docs/rich-presence/overview.mdx +++ b/docs/rich-presence/overview.mdx @@ -4,7 +4,7 @@ sidebar_label: Overview # Overview of Rich Presence -![Examples of Rich Presence data on Discord user profiles](rich-presence-examples.png) +![Examples of Rich Presence data on Discord user profiles](images/rich-presence-examples.png) Rich Presence lets you display actionable data in a Discord user's profile about what they're up to in your game or app. The data you choose to display is up to you—whether it's a user's score, the duration they've been playing your game, what they're listening to on your platform, or something else. @@ -63,7 +63,7 @@ The Rich Presence invite image appears when [invites](#DOCS_DEVELOPER_TOOLS_GAME > info > The invite image can be ignored if you're building using the [Embedded App SDK](#DOCS_RICH_PRESENCE_OVERVIEW/embedded-app-sdk). Invites sent using the Embedded App SDK's[`openInviteDialog()`](#DOCS_DEVELOPER_TOOLS_EMBEDDED_APP_SDK/openinvitedialog) use the Activity's cover art. -![Rich Presence invite image in app settings](rich-presence-invite-image.png) +![Rich Presence invite image in app settings](images/rich-presence-invite-image.png) ### Assets @@ -76,7 +76,7 @@ If you need more than 300 custom assets or want to use images stored somewhere e When uploading Rich Presence assets, **the asset keys will automatically be changed to lowercase**. You can see this reflected in your app's settings after saving a newly-uploaded asset, and should keep it in mind when referencing any asset keys in your code. -![Rich Presence assets in app settings](rich-presence-asset-images.png) +![Rich Presence assets in app settings](images/rich-presence-asset-images.png) ### Using the Visualizer diff --git a/docs/rich-presence/using-with-the-discord-social-sdk.mdx b/docs/rich-presence/using-with-the-discord-social-sdk.mdx index dc0a59162a..84d2d24167 100644 --- a/docs/rich-presence/using-with-the-discord-social-sdk.mdx +++ b/docs/rich-presence/using-with-the-discord-social-sdk.mdx @@ -15,7 +15,7 @@ When developing a game, the [Discord Social SDK](#DOCS_DISCORD_SOCIAL_SDK_OVERVI Before we dig in, it's helpful to understand what Rich Presence data you can set when updating a user's presence data. Let's just take a look at what we're working with: -![Graphical representation of the legend for rich presence details](rp-legend.png) +![Graphical representation of the legend for rich presence details](images/rp-legend.png) > info > For tips on designing Rich Presence, take a look at the [Rich Presence best practices guide](#DOCS_RICH_PRESENCE_BEST_PRACTICES). @@ -26,4 +26,4 @@ Check out our [Setting Rich Presence](#DOCS_DISCORD_SOCIAL_SDK_DEVELOPMENT_GUIDE - [Design Guidelines: Status & Rich Presence](#DOCS_DISCORD_SOCIAL_SDK_DESIGN_GUIDELINES_STATUS_RICH_PRESENCE) -![Rich Presence](social-sdk/design-guidelines/StatusPresence-06.png) +![Rich Presence](images/social-sdk/design-guidelines/StatusPresence-06.png) diff --git a/docs/rich-presence/using-with-the-embedded-app-sdk.mdx b/docs/rich-presence/using-with-the-embedded-app-sdk.mdx index 1c222d1ef2..33255b1cc5 100644 --- a/docs/rich-presence/using-with-the-embedded-app-sdk.mdx +++ b/docs/rich-presence/using-with-the-embedded-app-sdk.mdx @@ -19,7 +19,7 @@ The rest of the guide assumes you've already developed an [app](#DOCS_QUICK_STAR By default, when a user is connected to your Activity, the app's icon will appear on their profile. If the user viewing the profile has the ability to join, an "Ask to Join" button will be displayed as well. -![Example of default Rich Presence data for an Activity](default-presence-activities.png) +![Example of default Rich Presence data for an Activity](images/default-presence-activities.png) While this is okay, it's pretty limited and doesn't provide much context about what a user is actually *doing* inside of the Activity. In the following sections, we'll take a look at what richer and more actionable presence can look like. @@ -27,7 +27,7 @@ While this is okay, it's pretty limited and doesn't provide much context about w Now let's see what custom presence data can look like when a user joins your Activity. The [types for these fields](#DOCS_RICH_PRESENCE_USING_WITH_THE_EMBEDDED_APP_SDK/setactivity-fields) and [examples](#DOCS_RICH_PRESENCE_USING_WITH_THE_EMBEDDED_APP_SDK/setactivity-example) are in the sections below, but for now let's just get an idea of what we're working with: -![Image of where Rich Presence data appears in Discord profiles for Activities](annotated-presence-data-activities.png) +![Image of where Rich Presence data appears in Discord profiles for Activities](images/annotated-presence-data-activities.png) A few small things to note about the above image: 1. `large_image` and `small_image` are both in the `assets` object, which you can see below in the [table below](#DOCS_RICH_PRESENCE_USING_WITH_THE_EMBEDDED_APP_SDK/activity-partial-object). They're labeled with the object's keys to make it more clear how they appear in a Discord profile. @@ -96,7 +96,7 @@ Below is a table with many of the available fields for the activity partial. Som Now let's take a look at more of a real example. Take a look at the Rich Presence data below that is for an Activity: -![Example of a fake game's Rich Presence data](activities-presence-example.png) +![Example of a fake game's Rich Presence data](images/activities-presence-example.png) To create this sort of Rich Presence, here is what the `setActivity()` code would look like: diff --git a/docs/rich-presence/using-with-the-game-sdk.mdx b/docs/rich-presence/using-with-the-game-sdk.mdx index f5c403693e..a2b2acc86c 100644 --- a/docs/rich-presence/using-with-the-game-sdk.mdx +++ b/docs/rich-presence/using-with-the-game-sdk.mdx @@ -18,7 +18,7 @@ Before we dig in, make sure you've gone through the guide on [Getting Started wi Before we dig in, it's helpful to understand what Rich Presence data you can set when updating a user's presence data. We'll explain the specific fields below, but for now let's just take a look at what we're working with: -![Graphical representation of the legend for rich presence details](rp-legend.png) +![Graphical representation of the legend for rich presence details](images/rp-legend.png) | location | field name | notes | @@ -88,7 +88,7 @@ Now let's take a look at a code example for updating presence data. Our code sample in this section is based on the data from the example from before: -![Example of presence data with buttons](game-sdk-presence-example.png) +![Example of presence data with buttons](images/game-sdk-presence-example.png) The **Ask to Join** button will be covered more in the following sections, but if you don't want it included, you can remove the `Party` and `Secret` fields. diff --git a/docs/topics/certified-devices.md b/docs/topics/certified-devices.md index 49c661a1b2..5c2993aa33 100644 --- a/docs/topics/certified-devices.md +++ b/docs/topics/certified-devices.md @@ -12,7 +12,7 @@ I'm glad you asked! Yup, that's it. You give us the real-time info about any connected devices, and we'll handle the rest to make sure that anyone using your device will have an awesome experience. Your device will also have a `CERTIFIED` badge in Discord's audio settings, and really, who doesn't love badges? -![An example of how a certified device may be shown for an example audio input and output device](certified-device.png) +![An example of how a certified device may be shown for an example audio input and output device](images/certified-device.png) ## Connecting diff --git a/docs/topics/teams.md b/docs/topics/teams.md index 48b34641d1..190aee89b7 100644 --- a/docs/topics/teams.md +++ b/docs/topics/teams.md @@ -6,7 +6,7 @@ Teams are groups of developers (or other Discord users) who want to collaborate To create or be a member on a team, you must [enable 2FA for your Discord account](https://support.discord.com/hc/en-us/articles/219576828-Setting-up-Two-Factor-Authentication). After you have 2FA enabled, create a team by navigating to the [Teams page](https://discord.com/developers/teams) then clicking the "New Team" button. -![Screenshot of the Teams page](team-page.png) +![Screenshot of the Teams page](images/team-page.png) Once you create a team, you'll land on the **Team Information** page where you can fill out details and start inviting other Discord users to join your team. Since users added to a team have access to any apps that team owns, use caution when adding new team members. @@ -21,7 +21,7 @@ Once your team is set up, you can create or transfer apps that will be owned by To create a new app that belongs to a team, select the team from the **Team** dropdown in the app creation modal. If you want to keep the app under your own account's ownership, choose `Personal`: -![Screenshot of the create application modal with a Team selected](create-team-owned-app.png) +![Screenshot of the create application modal with a Team selected](images/create-team-owned-app.png) ### Transferring an App @@ -30,7 +30,7 @@ To transfer an existing app to a team, navigate to the [Application](https://dis > danger > Once an app has been transferred to a team, it _cannot_ be transferred back. -![Screenshot of where to find the button to transfer an Application to a team](transfer-app-to-team.png) +![Screenshot of where to find the button to transfer an Application to a team](images/transfer-app-to-team.png) ## Team Member Roles diff --git a/docs/tutorials/configuring-app-metadata-for-linked-roles.md b/docs/tutorials/configuring-app-metadata-for-linked-roles.md index 3534f0dd5a..e783d503d3 100644 --- a/docs/tutorials/configuring-app-metadata-for-linked-roles.md +++ b/docs/tutorials/configuring-app-metadata-for-linked-roles.md @@ -57,7 +57,7 @@ To start, [remix (or clone) the Glitch project 🎏](https://glitch.com/edit/#!/ When you remix the project, you'll see a new Glitch project with a unique name similar to this: -![Glitch Remix](linked-roles-glitch.png) +![Glitch Remix](images/linked-roles-glitch.png) #### Project structure @@ -88,11 +88,11 @@ First, copy your bot user’s token from earlier and paste it in the `DISCORD_TO Next, navigate to your app settings in the developer portal, and navigate to OAuth2 -> General. Copy the Client ID and Client Secret for your application, and paste the values as `DISCORD_CLIENT_ID` and `DISCORD_CLIENT_SECRET` in your `.env`. -![Configure OAuth2](linked-roles-oauth-config.png) +![Configure OAuth2](images/linked-roles-oauth-config.png) Now, we need to set the Redirect URL that will be used for our OAuth2 flow. Go back to Glitch, and click the `Share` button for your project. Copy the public live URL for your app: -![Glitch Share](linked-roles-glitch-share-url.png) +![Glitch Share](images/linked-roles-glitch-share-url.png) Go back to the OAuth2 -> General tab in the Discord developer portal, and add a new redirect for your app using the Glitch URL and the `/discord-oauth-callback` route. Copy this URL, then paste it as `DISCORD_REDIRECT_URI` in your `.env`. @@ -101,7 +101,7 @@ Go to the General Information tab in the developer portal, and scroll down to th > info > For the Glitch project used in the screenshots, the verification URL would be `https://adjoining-crawling-yamamomo.glitch.me/linked-role` -![Verify endpoint](linked-roles-verify-endpoint.png) +![Verify endpoint](images/linked-roles-verify-endpoint.png) Finally, to generate a unique cookie secret, go back to Glitch, and click on the `Terminal` tab. Run the following commands: @@ -132,7 +132,7 @@ Go back to Glitch, click the **terminal** tab, and run the following command: $ node src/register.js ``` -![Register Metadata Schema](linked-roles-register.png) +![Register Metadata Schema](images/linked-roles-register.png) ## Trying it out @@ -144,7 +144,7 @@ To try out the app, we'll create a linked role in a server where you have admin Give the role a name, save it, then click on `Links`. Click the `Add requirement` button, and you should see your bot in the list of available Apps. Click on it, and you will see a setup screen where you can configure specific criteria for your role. -![Verification Setup](linked-roles-verification-setup.png) +![Verification Setup](images/linked-roles-verification-setup.png) ### Acquiring the role @@ -153,15 +153,15 @@ To acquire your newly created role, click the server name in the upper left corn > info > When you connect your account, one of the scopes requested in the OAuth flow is `role_connections.write`, which is required for an app to update a user's role connection information. -![Connect accounts](linked-roles-connect-account.png) +![Connect accounts](images/linked-roles-connect-account.png) Click on the linked role criteria. This should lead to the Discord OAuth2 consent screen. Click `Authorize`, and then return to Discord. -![Consent Dialog](linked-roles-consent-dialog.png) +![Consent Dialog](images/linked-roles-consent-dialog.png) After returning to Discord, you should see your account granted the linked role. -![Connected](linked-roles-connected.png) +![Connected](images/linked-roles-connected.png) Finally, create a new private channel, and add the new linked role. diff --git a/docs/tutorials/developing-a-user-installable-app.mdx b/docs/tutorials/developing-a-user-installable-app.mdx index d299ba0a3d..a1aecd2779 100644 --- a/docs/tutorials/developing-a-user-installable-app.mdx +++ b/docs/tutorials/developing-a-user-installable-app.mdx @@ -114,7 +114,7 @@ Under the **Default Install Settings** section: After you've selected the scopes and permissions for your app, click **Save Changes**. -![Installation settings in App Settings](user-install-settings.png) +![Installation settings in App Settings](images/user-install-settings.png) ### Installing your app @@ -345,7 +345,7 @@ Message component interactions can be triggered by any user the component is vis Consider we added a new `/game` command supported in the `USER_INSTALL` installation context that a user could trigger to send a message to whatever guild or group DM they're in to ask others if they're interested in joining a game match: -![Sample game command response](user-install-game-message.png) +![Sample game command response](images/user-install-game-message.png) When someone clicks on the button, our app would care about two users when handling the interaction: 1. User B, who clicked the "Join" button so our app can track who is interested in joining the match diff --git a/docs/tutorials/hosting-on-cloudflare-workers.md b/docs/tutorials/hosting-on-cloudflare-workers.md index c68cb9a08e..5b8aacc8e6 100644 --- a/docs/tutorials/hosting-on-cloudflare-workers.md +++ b/docs/tutorials/hosting-on-cloudflare-workers.md @@ -10,7 +10,7 @@ Discord will send these events to a pre-configured HTTPS endpoint (called an Int This tutorial walks through building a Discord app powered by [`r/aww`](https://www.reddit.com/r/aww) using JavaScript: -![Demo of Reddit API app](cloudflare-tutorial-demo.gif) +![Demo of Reddit API app](images/cloudflare-tutorial-demo.gif) All of the code for this app can be found **[on GitHub](https://github.com/discord/cloudflare-sample-app)**. @@ -30,7 +30,7 @@ To start, we'll create the app through the [Discord Developer Dashboard](https:/ - Click `New Application`, and choose a name - Copy your **Public Key** and **Application ID**, and put them somewhere locally (we'll need these later) -![IDs found in app settings](cloudflare-general-overview.png) +![IDs found in app settings](images/cloudflare-general-overview.png) - Now click on the **Bot** tab on the left sidebar. - Grab the `token` for your bot, and store it somewhere safe (I like to put these tokens in a password manager like [1password](https://1password.com/) or [lastpass](https://www.lastpass.com/)). @@ -45,7 +45,7 @@ Now we'll configure the bot with [permissions](#DOCS_TOPICS_PERMISSIONS) require - Click on the `OAuth2` tab, and choose the `URL Generator`. Click the `bot` and `applications.commands` scopes. - Check the boxes next to `Send Messages` and `Use Slash Commands`, then copy the `Generated URL`. -![Configuring bot permissions in app settings](cloudflare-url-generator.png) +![Configuring bot permissions in app settings](images/cloudflare-url-generator.png) - Paste the URL into the browser and follow the OAuth flow, selecting the server where you'd like to develop and test your bot. @@ -211,13 +211,13 @@ When a user types a slash command, Discord will send an HTTP request to a public $ npm run ngrok ``` -![ngrok forwarding address](cloudflare-ngrok.png) +![ngrok forwarding address](images/cloudflare-ngrok.png) This is going to bounce requests off of an external endpoint, and forward them to your machine. Copy the HTTPS link provided by the tool. It should look something like `https://8098-24-22-245-250.ngrok.io`. Now head back to the Discord Developer Dashboard, and update the `Interactions Endpoint URL` for your app: -![Interactions Endpoint URL](cloudflare-interactions-endpoint.png) +![Interactions Endpoint URL](images/cloudflare-interactions-endpoint.png) This is the process we'll use for local testing and development. When you've published your app to Cloudflare, you will **want to update this field to use your Cloudflare Worker URL.** diff --git a/docs/tutorials/upgrading-to-application-commands.md b/docs/tutorials/upgrading-to-application-commands.md index 36beb10e11..a64ffed9b8 100644 --- a/docs/tutorials/upgrading-to-application-commands.md +++ b/docs/tutorials/upgrading-to-application-commands.md @@ -8,7 +8,7 @@ As [message content has become a privileged intent](https://support-dev.discord. This guide is intended to provide developers with apps currently using message content with a resource to walk through implementing and designing commands. Throughout the guide, the terms "application commands" and "commands" are used interchangeably. -![Client interfaces showing the different types of application commands](command-types.png) +![Client interfaces showing the different types of application commands](images/command-types.png) > info > If you are developing an app for the first time, the [commands documentation](#DOCS_INTERACTIONS_APPLICATION_COMMANDS) may be a more helpful resource for you. @@ -61,7 +61,7 @@ While most apps won’t need to register more than a handful of commands, apps c Command options is an optional field (`options`) that can be defined when creating commands. When used, options will display for the user to fill out during invocation. You can also provide dynamic option suggestions using the `autocomplete` field. Read more about options [in the documentation](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/application-command-object-application-command-option-structure). -![Slash command using options](slash-command-options.png) +![Slash command using options](images/slash-command-options.png) ### Using Subcommands to Group Actions @@ -152,7 +152,7 @@ However, before adding your URL to your app settings, your endpoint must be set After your URL is set up to handle signature verification and `PING` requests, you can add your Interaction Endpoint URL by navigating to your app settings from the [developer portal](https://discord.com/developers/applications). On the **General Information** page, you’ll see a field for your **Interactions Endpoint URL**. -![Interactions endpoint URL in app settings](interactions-url.png) +![Interactions endpoint URL in app settings](images/interactions-url.png) After you paste your URL and click **Save Changes**, Discord will attempt to verify your endpoint. @@ -265,7 +265,7 @@ For a `/search` command that searches an external service, an app could respond Ephemeral messages can also contain message components, so when relevant, there could be a button to share the information in the ephemeral message to a channel. -![Example of ephemeral message to show search results](examples-ephemeral-message.png) +![Example of ephemeral message to show search results](images/examples-ephemeral-message.png) ## Onboarding Users @@ -286,7 +286,7 @@ You can also inform users about changes within the servers your app is installed The following is an example of an app update that may be sent to communicate the new way to access commands. Depending on the different features your app adopts (like options, subcommands, permissions, etc.), an update message or changelog entry will look very different. -![Example message updating users about a new feature](examples-update-message.png) +![Example message updating users about a new feature](images/examples-update-message.png) ### Making Help Available diff --git a/images/API_center.gif b/static/images/API_center.gif similarity index 100% rename from images/API_center.gif rename to static/images/API_center.gif diff --git a/images/activities-presence-example.png b/static/images/activities-presence-example.png similarity index 100% rename from images/activities-presence-example.png rename to static/images/activities-presence-example.png diff --git a/images/activities/activities-hero.png b/static/images/activities/activities-hero.png similarity index 100% rename from images/activities/activities-hero.png rename to static/images/activities/activities-hero.png diff --git a/images/activities/activity-instance-validation.jpg b/static/images/activities/activity-instance-validation.jpg similarity index 100% rename from images/activities/activity-instance-validation.jpg rename to static/images/activities/activity-instance-validation.jpg diff --git a/images/activities/application-test-mode-prod.gif b/static/images/activities/application-test-mode-prod.gif similarity index 100% rename from images/activities/application-test-mode-prod.gif rename to static/images/activities/application-test-mode-prod.gif diff --git a/images/activities/bobble-bash.png b/static/images/activities/bobble-bash.png similarity index 100% rename from images/activities/bobble-bash.png rename to static/images/activities/bobble-bash.png diff --git a/images/activities/bobble-league.png b/static/images/activities/bobble-league.png similarity index 100% rename from images/activities/bobble-league.png rename to static/images/activities/bobble-league.png diff --git a/images/activities/chess-victory.png b/static/images/activities/chess-victory.png similarity index 100% rename from images/activities/chess-victory.png rename to static/images/activities/chess-victory.png diff --git a/images/activities/custom-link-embed.png b/static/images/activities/custom-link-embed.png similarity index 100% rename from images/activities/custom-link-embed.png rename to static/images/activities/custom-link-embed.png diff --git a/images/activities/debug-logs-filtering.gif b/static/images/activities/debug-logs-filtering.gif similarity index 100% rename from images/activities/debug-logs-filtering.gif rename to static/images/activities/debug-logs-filtering.gif diff --git a/images/activities/default_orientation_lock_state.png b/static/images/activities/default_orientation_lock_state.png similarity index 100% rename from images/activities/default_orientation_lock_state.png rename to static/images/activities/default_orientation_lock_state.png diff --git a/images/activities/developer-mode.gif b/static/images/activities/developer-mode.gif similarity index 100% rename from images/activities/developer-mode.gif rename to static/images/activities/developer-mode.gif diff --git a/images/activities/discord-activities.png b/static/images/activities/discord-activities.png similarity index 100% rename from images/activities/discord-activities.png rename to static/images/activities/discord-activities.png diff --git a/images/activities/eights.png b/static/images/activities/eights.png similarity index 100% rename from images/activities/eights.png rename to static/images/activities/eights.png diff --git a/images/activities/embedded-app-flow-diagram.svg b/static/images/activities/embedded-app-flow-diagram.svg similarity index 100% rename from images/activities/embedded-app-flow-diagram.svg rename to static/images/activities/embedded-app-flow-diagram.svg diff --git a/images/activities/enable-activities.png b/static/images/activities/enable-activities.png similarity index 100% rename from images/activities/enable-activities.png rename to static/images/activities/enable-activities.png diff --git a/images/activities/encourage-hardware-acceleration-modal.png b/static/images/activities/encourage-hardware-acceleration-modal.png similarity index 100% rename from images/activities/encourage-hardware-acceleration-modal.png rename to static/images/activities/encourage-hardware-acceleration-modal.png diff --git a/images/activities/external-link-modal.png b/static/images/activities/external-link-modal.png similarity index 100% rename from images/activities/external-link-modal.png rename to static/images/activities/external-link-modal.png diff --git a/images/activities/invite-dialog.png b/static/images/activities/invite-dialog.png similarity index 100% rename from images/activities/invite-dialog.png rename to static/images/activities/invite-dialog.png diff --git a/images/activities/join-application.png b/static/images/activities/join-application.png similarity index 100% rename from images/activities/join-application.png rename to static/images/activities/join-application.png diff --git a/images/activities/new-app.png b/static/images/activities/new-app.png similarity index 100% rename from images/activities/new-app.png rename to static/images/activities/new-app.png diff --git a/images/activities/oauth-flow-diagram.svg b/static/images/activities/oauth-flow-diagram.svg similarity index 100% rename from images/activities/oauth-flow-diagram.svg rename to static/images/activities/oauth-flow-diagram.svg diff --git a/images/activities/oauth2-details.png b/static/images/activities/oauth2-details.png similarity index 100% rename from images/activities/oauth2-details.png rename to static/images/activities/oauth2-details.png diff --git a/images/activities/oauth2-redirect.png b/static/images/activities/oauth2-redirect.png similarity index 100% rename from images/activities/oauth2-redirect.png rename to static/images/activities/oauth2-redirect.png diff --git a/images/activities/share-moment-dialog-example.png b/static/images/activities/share-moment-dialog-example.png similarity index 100% rename from images/activities/share-moment-dialog-example.png rename to static/images/activities/share-moment-dialog-example.png diff --git a/images/activities/start-activity.png b/static/images/activities/start-activity.png similarity index 100% rename from images/activities/start-activity.png rename to static/images/activities/start-activity.png diff --git a/images/activities/supported-platforms.png b/static/images/activities/supported-platforms.png similarity index 100% rename from images/activities/supported-platforms.png rename to static/images/activities/supported-platforms.png diff --git a/images/activities/tutorial-auth.png b/static/images/activities/tutorial-auth.png similarity index 100% rename from images/activities/tutorial-auth.png rename to static/images/activities/tutorial-auth.png diff --git a/images/activities/tutorial-channel-name.png b/static/images/activities/tutorial-channel-name.png similarity index 100% rename from images/activities/tutorial-channel-name.png rename to static/images/activities/tutorial-channel-name.png diff --git a/images/activities/tutorial-hero.png b/static/images/activities/tutorial-hero.png similarity index 100% rename from images/activities/tutorial-hero.png rename to static/images/activities/tutorial-hero.png diff --git a/images/activities/tutorial-launched.png b/static/images/activities/tutorial-launched.png similarity index 100% rename from images/activities/tutorial-launched.png rename to static/images/activities/tutorial-launched.png diff --git a/images/activities/url-mapping-do.png b/static/images/activities/url-mapping-do.png similarity index 100% rename from images/activities/url-mapping-do.png rename to static/images/activities/url-mapping-do.png diff --git a/images/activities/url-mapping-dont.png b/static/images/activities/url-mapping-dont.png similarity index 100% rename from images/activities/url-mapping-dont.png rename to static/images/activities/url-mapping-dont.png diff --git a/images/activities/url-mapping-tutorial.png b/static/images/activities/url-mapping-tutorial.png similarity index 100% rename from images/activities/url-mapping-tutorial.png rename to static/images/activities/url-mapping-tutorial.png diff --git a/images/alerts.png b/static/images/alerts.png similarity index 100% rename from images/alerts.png rename to static/images/alerts.png diff --git a/images/annotated-presence-data-activities.png b/static/images/annotated-presence-data-activities.png similarity index 100% rename from images/annotated-presence-data-activities.png rename to static/images/annotated-presence-data-activities.png diff --git a/images/app-add-bot.png b/static/images/app-add-bot.png similarity index 100% rename from images/app-add-bot.png rename to static/images/app-add-bot.png diff --git a/images/app-create-modal.png b/static/images/app-create-modal.png similarity index 100% rename from images/app-create-modal.png rename to static/images/app-create-modal.png diff --git a/images/ask-to-join.gif b/static/images/ask-to-join.gif similarity index 100% rename from images/ask-to-join.gif rename to static/images/ask-to-join.gif diff --git a/images/available-published.png b/static/images/available-published.png similarity index 100% rename from images/available-published.png rename to static/images/available-published.png diff --git a/images/botuser-profile.png b/static/images/botuser-profile.png similarity index 100% rename from images/botuser-profile.png rename to static/images/botuser-profile.png diff --git a/images/bp-productpage-app-description.png b/static/images/bp-productpage-app-description.png similarity index 100% rename from images/bp-productpage-app-description.png rename to static/images/bp-productpage-app-description.png diff --git a/images/bp-productpage-summary-bad.png b/static/images/bp-productpage-summary-bad.png similarity index 100% rename from images/bp-productpage-summary-bad.png rename to static/images/bp-productpage-summary-bad.png diff --git a/images/bp-productpage-summary-good.png b/static/images/bp-productpage-summary-good.png similarity index 100% rename from images/bp-productpage-summary-good.png rename to static/images/bp-productpage-summary-good.png diff --git a/images/bp-productpage-tags.png b/static/images/bp-productpage-tags.png similarity index 100% rename from images/bp-productpage-tags.png rename to static/images/bp-productpage-tags.png diff --git a/images/button-styles.png b/static/images/button-styles.png similarity index 100% rename from images/button-styles.png rename to static/images/button-styles.png diff --git a/images/certified-device.png b/static/images/certified-device.png similarity index 100% rename from images/certified-device.png rename to static/images/certified-device.png diff --git a/images/cloudflare-general-overview.png b/static/images/cloudflare-general-overview.png similarity index 100% rename from images/cloudflare-general-overview.png rename to static/images/cloudflare-general-overview.png diff --git a/images/cloudflare-interactions-endpoint.png b/static/images/cloudflare-interactions-endpoint.png similarity index 100% rename from images/cloudflare-interactions-endpoint.png rename to static/images/cloudflare-interactions-endpoint.png diff --git a/images/cloudflare-ngrok.png b/static/images/cloudflare-ngrok.png similarity index 100% rename from images/cloudflare-ngrok.png rename to static/images/cloudflare-ngrok.png diff --git a/images/cloudflare-tutorial-demo.gif b/static/images/cloudflare-tutorial-demo.gif similarity index 100% rename from images/cloudflare-tutorial-demo.gif rename to static/images/cloudflare-tutorial-demo.gif diff --git a/images/cloudflare-url-generator.png b/static/images/cloudflare-url-generator.png similarity index 100% rename from images/cloudflare-url-generator.png rename to static/images/cloudflare-url-generator.png diff --git a/images/command-entry-point.png b/static/images/command-entry-point.png similarity index 100% rename from images/command-entry-point.png rename to static/images/command-entry-point.png diff --git a/images/command-types.png b/static/images/command-types.png similarity index 100% rename from images/command-types.png rename to static/images/command-types.png diff --git a/images/command-with-groups-subcommands-parameters.png b/static/images/command-with-groups-subcommands-parameters.png similarity index 100% rename from images/command-with-groups-subcommands-parameters.png rename to static/images/command-with-groups-subcommands-parameters.png diff --git a/images/command-with-groups-subcommands.png b/static/images/command-with-groups-subcommands.png similarity index 100% rename from images/command-with-groups-subcommands.png rename to static/images/command-with-groups-subcommands.png diff --git a/images/command.png b/static/images/command.png similarity index 100% rename from images/command.png rename to static/images/command.png diff --git a/images/cpp-files-sdk.png b/static/images/cpp-files-sdk.png similarity index 100% rename from images/cpp-files-sdk.png rename to static/images/cpp-files-sdk.png diff --git a/images/create-store-channel.png b/static/images/create-store-channel.png similarity index 100% rename from images/create-store-channel.png rename to static/images/create-store-channel.png diff --git a/images/create-team-owned-app.png b/static/images/create-team-owned-app.png similarity index 100% rename from images/create-team-owned-app.png rename to static/images/create-team-owned-app.png diff --git a/images/default-presence-activities.png b/static/images/default-presence-activities.png similarity index 100% rename from images/default-presence-activities.png rename to static/images/default-presence-activities.png diff --git a/images/deferred-example.png b/static/images/deferred-example.png similarity index 100% rename from images/deferred-example.png rename to static/images/deferred-example.png diff --git a/images/desktop-role-select-menu.png b/static/images/desktop-role-select-menu.png similarity index 100% rename from images/desktop-role-select-menu.png rename to static/images/desktop-role-select-menu.png diff --git a/images/desktop-select.png b/static/images/desktop-select.png similarity index 100% rename from images/desktop-select.png rename to static/images/desktop-select.png diff --git a/images/discovery-app-directory-product-page.png b/static/images/discovery-app-directory-product-page.png similarity index 100% rename from images/discovery-app-directory-product-page.png rename to static/images/discovery-app-directory-product-page.png diff --git a/images/discovery-app-launcher.png b/static/images/discovery-app-launcher.png similarity index 100% rename from images/discovery-app-launcher.png rename to static/images/discovery-app-launcher.png diff --git a/images/discovery-sharing-links.png b/static/images/discovery-sharing-links.png similarity index 100% rename from images/discovery-sharing-links.png rename to static/images/discovery-sharing-links.png diff --git a/images/docs-header.svg b/static/images/docs-header.svg similarity index 100% rename from images/docs-header.svg rename to static/images/docs-header.svg diff --git a/images/example-poll.png b/static/images/example-poll.png similarity index 100% rename from images/example-poll.png rename to static/images/example-poll.png diff --git a/images/examples-ephemeral-message.png b/static/images/examples-ephemeral-message.png similarity index 100% rename from images/examples-ephemeral-message.png rename to static/images/examples-ephemeral-message.png diff --git a/images/examples-message-reactive.png b/static/images/examples-message-reactive.png similarity index 100% rename from images/examples-message-reactive.png rename to static/images/examples-message-reactive.png diff --git a/images/examples-update-message.png b/static/images/examples-update-message.png similarity index 100% rename from images/examples-update-message.png rename to static/images/examples-update-message.png diff --git a/images/game-overlay-sdk-invite.gif b/static/images/game-overlay-sdk-invite.gif similarity index 100% rename from images/game-overlay-sdk-invite.gif rename to static/images/game-overlay-sdk-invite.gif diff --git a/images/game-overlay-sdk-voice-settings.png b/static/images/game-overlay-sdk-voice-settings.png similarity index 100% rename from images/game-overlay-sdk-voice-settings.png rename to static/images/game-overlay-sdk-voice-settings.png diff --git a/images/game-overlay-sdk-voice-widget.png b/static/images/game-overlay-sdk-voice-widget.png similarity index 100% rename from images/game-overlay-sdk-voice-widget.png rename to static/images/game-overlay-sdk-voice-widget.png diff --git a/images/game-sdk-presence-example.png b/static/images/game-sdk-presence-example.png similarity index 100% rename from images/game-sdk-presence-example.png rename to static/images/game-sdk-presence-example.png diff --git a/images/gateway-lifecycle.svg b/static/images/gateway-lifecycle.svg similarity index 100% rename from images/gateway-lifecycle.svg rename to static/images/gateway-lifecycle.svg diff --git a/images/getting-started-default-install.png b/static/images/getting-started-default-install.png similarity index 100% rename from images/getting-started-default-install.png rename to static/images/getting-started-default-install.png diff --git a/images/getting-started-demo.gif b/static/images/getting-started-demo.gif similarity index 100% rename from images/getting-started-demo.gif rename to static/images/getting-started-demo.gif diff --git a/images/getting-started-interactions-endpoint.png b/static/images/getting-started-interactions-endpoint.png similarity index 100% rename from images/getting-started-interactions-endpoint.png rename to static/images/getting-started-interactions-endpoint.png diff --git a/images/gift-code-creation.png b/static/images/gift-code-creation.png similarity index 100% rename from images/gift-code-creation.png rename to static/images/gift-code-creation.png diff --git a/images/glitch-project.png b/static/images/glitch-project.png similarity index 100% rename from images/glitch-project.png rename to static/images/glitch-project.png diff --git a/images/heroku-baking.gif b/static/images/heroku-baking.gif similarity index 100% rename from images/heroku-baking.gif rename to static/images/heroku-baking.gif diff --git a/images/heroku-buildpack.png b/static/images/heroku-buildpack.png similarity index 100% rename from images/heroku-buildpack.png rename to static/images/heroku-buildpack.png diff --git a/images/heroku-configVars.png b/static/images/heroku-configVars.png similarity index 100% rename from images/heroku-configVars.png rename to static/images/heroku-configVars.png diff --git a/images/heroku-connectGH.png b/static/images/heroku-connectGH.png similarity index 100% rename from images/heroku-connectGH.png rename to static/images/heroku-connectGH.png diff --git a/images/heroku-deploy.png b/static/images/heroku-deploy.png similarity index 100% rename from images/heroku-deploy.png rename to static/images/heroku-deploy.png diff --git a/images/heroku-dynos.png b/static/images/heroku-dynos.png similarity index 100% rename from images/heroku-dynos.png rename to static/images/heroku-dynos.png diff --git a/images/heroku-login.png b/static/images/heroku-login.png similarity index 100% rename from images/heroku-login.png rename to static/images/heroku-login.png diff --git a/images/heroku-logs.png b/static/images/heroku-logs.png similarity index 100% rename from images/heroku-logs.png rename to static/images/heroku-logs.png diff --git a/images/heroku-procfile.png b/static/images/heroku-procfile.png similarity index 100% rename from images/heroku-procfile.png rename to static/images/heroku-procfile.png diff --git a/images/heroku-token.png b/static/images/heroku-token.png similarity index 100% rename from images/heroku-token.png rename to static/images/heroku-token.png diff --git a/images/interactions-url.png b/static/images/interactions-url.png similarity index 100% rename from images/interactions-url.png rename to static/images/interactions-url.png diff --git a/images/lib-linked-sdk.png b/static/images/lib-linked-sdk.png similarity index 100% rename from images/lib-linked-sdk.png rename to static/images/lib-linked-sdk.png diff --git a/images/linked-roles-connect-account.png b/static/images/linked-roles-connect-account.png similarity index 100% rename from images/linked-roles-connect-account.png rename to static/images/linked-roles-connect-account.png diff --git a/images/linked-roles-connected.png b/static/images/linked-roles-connected.png similarity index 100% rename from images/linked-roles-connected.png rename to static/images/linked-roles-connected.png diff --git a/images/linked-roles-consent-dialog.png b/static/images/linked-roles-consent-dialog.png similarity index 100% rename from images/linked-roles-consent-dialog.png rename to static/images/linked-roles-consent-dialog.png diff --git a/images/linked-roles-glitch-share-url.png b/static/images/linked-roles-glitch-share-url.png similarity index 100% rename from images/linked-roles-glitch-share-url.png rename to static/images/linked-roles-glitch-share-url.png diff --git a/images/linked-roles-glitch.png b/static/images/linked-roles-glitch.png similarity index 100% rename from images/linked-roles-glitch.png rename to static/images/linked-roles-glitch.png diff --git a/images/linked-roles-oauth-config.png b/static/images/linked-roles-oauth-config.png similarity index 100% rename from images/linked-roles-oauth-config.png rename to static/images/linked-roles-oauth-config.png diff --git a/images/linked-roles-register.png b/static/images/linked-roles-register.png similarity index 100% rename from images/linked-roles-register.png rename to static/images/linked-roles-register.png diff --git a/images/linked-roles-verification-setup.png b/static/images/linked-roles-verification-setup.png similarity index 100% rename from images/linked-roles-verification-setup.png rename to static/images/linked-roles-verification-setup.png diff --git a/images/linked-roles-verify-endpoint.png b/static/images/linked-roles-verify-endpoint.png similarity index 100% rename from images/linked-roles-verify-endpoint.png rename to static/images/linked-roles-verify-endpoint.png diff --git a/images/mdx-button.png b/static/images/mdx-button.png similarity index 100% rename from images/mdx-button.png rename to static/images/mdx-button.png diff --git a/images/mdx-card.png b/static/images/mdx-card.png similarity index 100% rename from images/mdx-card.png rename to static/images/mdx-card.png diff --git a/images/mdx-collapsible.png b/static/images/mdx-collapsible.png similarity index 100% rename from images/mdx-collapsible.png rename to static/images/mdx-collapsible.png diff --git a/images/message-command.png b/static/images/message-command.png similarity index 100% rename from images/message-command.png rename to static/images/message-command.png diff --git a/images/mobile-select.png b/static/images/mobile-select.png similarity index 100% rename from images/mobile-select.png rename to static/images/mobile-select.png diff --git a/images/modal-desktop.png b/static/images/modal-desktop.png similarity index 100% rename from images/modal-desktop.png rename to static/images/modal-desktop.png diff --git a/images/monetization-eligibility.png b/static/images/monetization-eligibility.png similarity index 100% rename from images/monetization-eligibility.png rename to static/images/monetization-eligibility.png diff --git a/images/monetization-interaction-response.png b/static/images/monetization-interaction-response.png similarity index 100% rename from images/monetization-interaction-response.png rename to static/images/monetization-interaction-response.png diff --git a/images/monetization-overview.png b/static/images/monetization-overview.png similarity index 100% rename from images/monetization-overview.png rename to static/images/monetization-overview.png diff --git a/images/monetization.png b/static/images/monetization.png similarity index 100% rename from images/monetization.png rename to static/images/monetization.png diff --git a/images/multiple-buttons-example-1.png b/static/images/multiple-buttons-example-1.png similarity index 100% rename from images/multiple-buttons-example-1.png rename to static/images/multiple-buttons-example-1.png diff --git a/images/multiple-buttons-example-2.png b/static/images/multiple-buttons-example-2.png similarity index 100% rename from images/multiple-buttons-example-2.png rename to static/images/multiple-buttons-example-2.png diff --git a/images/multisub.png b/static/images/multisub.png similarity index 100% rename from images/multisub.png rename to static/images/multisub.png diff --git a/images/new-permissions-flowchart.svg b/static/images/new-permissions-flowchart.svg similarity index 100% rename from images/new-permissions-flowchart.svg rename to static/images/new-permissions-flowchart.svg diff --git a/images/overview-command-desktop.png b/static/images/overview-command-desktop.png similarity index 100% rename from images/overview-command-desktop.png rename to static/images/overview-command-desktop.png diff --git a/images/overview-components.png b/static/images/overview-components.png similarity index 100% rename from images/overview-components.png rename to static/images/overview-components.png diff --git a/images/overview-modals.png b/static/images/overview-modals.png similarity index 100% rename from images/overview-modals.png rename to static/images/overview-modals.png diff --git a/images/overview-of-apps-banner.png b/static/images/overview-of-apps-banner.png similarity index 100% rename from images/overview-of-apps-banner.png rename to static/images/overview-of-apps-banner.png diff --git a/images/premium-button.png b/static/images/premium-button.png similarity index 100% rename from images/premium-button.png rename to static/images/premium-button.png diff --git a/images/premium-example.png b/static/images/premium-example.png similarity index 100% rename from images/premium-example.png rename to static/images/premium-example.png diff --git a/images/premium-items.png b/static/images/premium-items.png similarity index 100% rename from images/premium-items.png rename to static/images/premium-items.png diff --git a/images/premium-subscriptions.png b/static/images/premium-subscriptions.png similarity index 100% rename from images/premium-subscriptions.png rename to static/images/premium-subscriptions.png diff --git a/images/previous-new-server-background.png b/static/images/previous-new-server-background.png similarity index 100% rename from images/previous-new-server-background.png rename to static/images/previous-new-server-background.png diff --git a/images/rich-presence-asset-images.png b/static/images/rich-presence-asset-images.png similarity index 100% rename from images/rich-presence-asset-images.png rename to static/images/rich-presence-asset-images.png diff --git a/images/rich-presence-examples.png b/static/images/rich-presence-examples.png similarity index 100% rename from images/rich-presence-examples.png rename to static/images/rich-presence-examples.png diff --git a/images/rich-presence-invite-image.png b/static/images/rich-presence-invite-image.png similarity index 100% rename from images/rich-presence-invite-image.png rename to static/images/rich-presence-invite-image.png diff --git a/images/rp-actionable.png b/static/images/rp-actionable.png similarity index 100% rename from images/rp-actionable.png rename to static/images/rp-actionable.png diff --git a/images/rp-all-fields.png b/static/images/rp-all-fields.png similarity index 100% rename from images/rp-all-fields.png rename to static/images/rp-all-fields.png diff --git a/images/rp-good-art.png b/static/images/rp-good-art.png similarity index 100% rename from images/rp-good-art.png rename to static/images/rp-good-art.png diff --git a/images/rp-legend.png b/static/images/rp-legend.png similarity index 100% rename from images/rp-legend.png rename to static/images/rp-legend.png diff --git a/images/rp-profile-example-1.png b/static/images/rp-profile-example-1.png similarity index 100% rename from images/rp-profile-example-1.png rename to static/images/rp-profile-example-1.png diff --git a/images/rp-profile-example-2.png b/static/images/rp-profile-example-2.png similarity index 100% rename from images/rp-profile-example-2.png rename to static/images/rp-profile-example-2.png diff --git a/images/rp-short-strings.png b/static/images/rp-short-strings.png similarity index 100% rename from images/rp-short-strings.png rename to static/images/rp-short-strings.png diff --git a/images/server-banner-example.png b/static/images/server-banner-example.png similarity index 100% rename from images/server-banner-example.png rename to static/images/server-banner-example.png diff --git a/images/server-banner-margin-top.png b/static/images/server-banner-margin-top.png similarity index 100% rename from images/server-banner-margin-top.png rename to static/images/server-banner-margin-top.png diff --git a/images/sku-benefits.png b/static/images/sku-benefits.png similarity index 100% rename from images/sku-benefits.png rename to static/images/sku-benefits.png diff --git a/images/sku-configure.png b/static/images/sku-configure.png similarity index 100% rename from images/sku-configure.png rename to static/images/sku-configure.png diff --git a/images/sku-custom.png b/static/images/sku-custom.png similarity index 100% rename from images/sku-custom.png rename to static/images/sku-custom.png diff --git a/images/sku-customization.png b/static/images/sku-customization.png similarity index 100% rename from images/sku-customization.png rename to static/images/sku-customization.png diff --git a/images/sku-management.png b/static/images/sku-management.png similarity index 100% rename from images/sku-management.png rename to static/images/sku-management.png diff --git a/images/sku-publish.png b/static/images/sku-publish.png similarity index 100% rename from images/sku-publish.png rename to static/images/sku-publish.png diff --git a/images/sku-unicode.png b/static/images/sku-unicode.png similarity index 100% rename from images/sku-unicode.png rename to static/images/sku-unicode.png diff --git a/images/sku_embed.png b/static/images/sku_embed.png similarity index 100% rename from images/sku_embed.png rename to static/images/sku_embed.png diff --git a/images/slash-command-options.png b/static/images/slash-command-options.png similarity index 100% rename from images/slash-command-options.png rename to static/images/slash-command-options.png diff --git a/images/snowflake.png b/static/images/snowflake.png similarity index 100% rename from images/snowflake.png rename to static/images/snowflake.png diff --git a/images/snowflake_original_size.png b/static/images/snowflake_original_size.png similarity index 100% rename from images/snowflake_original_size.png rename to static/images/snowflake_original_size.png diff --git a/images/social-sdk/design-guidelines/Brand-02.png b/static/images/social-sdk/design-guidelines/Brand-02.png similarity index 100% rename from images/social-sdk/design-guidelines/Brand-02.png rename to static/images/social-sdk/design-guidelines/Brand-02.png diff --git a/images/social-sdk/design-guidelines/Brand-03.png b/static/images/social-sdk/design-guidelines/Brand-03.png similarity index 100% rename from images/social-sdk/design-guidelines/Brand-03.png rename to static/images/social-sdk/design-guidelines/Brand-03.png diff --git a/images/social-sdk/design-guidelines/Brand-04.png b/static/images/social-sdk/design-guidelines/Brand-04.png similarity index 100% rename from images/social-sdk/design-guidelines/Brand-04.png rename to static/images/social-sdk/design-guidelines/Brand-04.png diff --git a/images/social-sdk/design-guidelines/ConnectionPoints-02.png b/static/images/social-sdk/design-guidelines/ConnectionPoints-02.png similarity index 100% rename from images/social-sdk/design-guidelines/ConnectionPoints-02.png rename to static/images/social-sdk/design-guidelines/ConnectionPoints-02.png diff --git a/images/social-sdk/design-guidelines/ConnectionPoints-03.png b/static/images/social-sdk/design-guidelines/ConnectionPoints-03.png similarity index 100% rename from images/social-sdk/design-guidelines/ConnectionPoints-03.png rename to static/images/social-sdk/design-guidelines/ConnectionPoints-03.png diff --git a/images/social-sdk/design-guidelines/ConnectionPoints-04.png b/static/images/social-sdk/design-guidelines/ConnectionPoints-04.png similarity index 100% rename from images/social-sdk/design-guidelines/ConnectionPoints-04.png rename to static/images/social-sdk/design-guidelines/ConnectionPoints-04.png diff --git a/images/social-sdk/design-guidelines/ConnectionPoints-05.png b/static/images/social-sdk/design-guidelines/ConnectionPoints-05.png similarity index 100% rename from images/social-sdk/design-guidelines/ConnectionPoints-05.png rename to static/images/social-sdk/design-guidelines/ConnectionPoints-05.png diff --git a/images/social-sdk/design-guidelines/Consoles-01.jpg b/static/images/social-sdk/design-guidelines/Consoles-01.jpg similarity index 100% rename from images/social-sdk/design-guidelines/Consoles-01.jpg rename to static/images/social-sdk/design-guidelines/Consoles-01.jpg diff --git a/images/social-sdk/design-guidelines/Consoles-02.jpg b/static/images/social-sdk/design-guidelines/Consoles-02.jpg similarity index 100% rename from images/social-sdk/design-guidelines/Consoles-02.jpg rename to static/images/social-sdk/design-guidelines/Consoles-02.jpg diff --git a/images/social-sdk/design-guidelines/Consoles-03.jpg b/static/images/social-sdk/design-guidelines/Consoles-03.jpg similarity index 100% rename from images/social-sdk/design-guidelines/Consoles-03.jpg rename to static/images/social-sdk/design-guidelines/Consoles-03.jpg diff --git a/images/social-sdk/design-guidelines/Consoles-04.jpg b/static/images/social-sdk/design-guidelines/Consoles-04.jpg similarity index 100% rename from images/social-sdk/design-guidelines/Consoles-04.jpg rename to static/images/social-sdk/design-guidelines/Consoles-04.jpg diff --git a/images/social-sdk/design-guidelines/Consoles-05.jpg b/static/images/social-sdk/design-guidelines/Consoles-05.jpg similarity index 100% rename from images/social-sdk/design-guidelines/Consoles-05.jpg rename to static/images/social-sdk/design-guidelines/Consoles-05.jpg diff --git a/images/social-sdk/design-guidelines/Consoles-06.jpg b/static/images/social-sdk/design-guidelines/Consoles-06.jpg similarity index 100% rename from images/social-sdk/design-guidelines/Consoles-06.jpg rename to static/images/social-sdk/design-guidelines/Consoles-06.jpg diff --git a/images/social-sdk/design-guidelines/DMs-02.png b/static/images/social-sdk/design-guidelines/DMs-02.png similarity index 100% rename from images/social-sdk/design-guidelines/DMs-02.png rename to static/images/social-sdk/design-guidelines/DMs-02.png diff --git a/images/social-sdk/design-guidelines/DMs-03.png b/static/images/social-sdk/design-guidelines/DMs-03.png similarity index 100% rename from images/social-sdk/design-guidelines/DMs-03.png rename to static/images/social-sdk/design-guidelines/DMs-03.png diff --git a/images/social-sdk/design-guidelines/DMs-04.png b/static/images/social-sdk/design-guidelines/DMs-04.png similarity index 100% rename from images/social-sdk/design-guidelines/DMs-04.png rename to static/images/social-sdk/design-guidelines/DMs-04.png diff --git a/images/social-sdk/design-guidelines/GameFriends-01.png b/static/images/social-sdk/design-guidelines/GameFriends-01.png similarity index 100% rename from images/social-sdk/design-guidelines/GameFriends-01.png rename to static/images/social-sdk/design-guidelines/GameFriends-01.png diff --git a/images/social-sdk/design-guidelines/GameFriends-02.png b/static/images/social-sdk/design-guidelines/GameFriends-02.png similarity index 100% rename from images/social-sdk/design-guidelines/GameFriends-02.png rename to static/images/social-sdk/design-guidelines/GameFriends-02.png diff --git a/images/social-sdk/design-guidelines/GameFriends-03.png b/static/images/social-sdk/design-guidelines/GameFriends-03.png similarity index 100% rename from images/social-sdk/design-guidelines/GameFriends-03.png rename to static/images/social-sdk/design-guidelines/GameFriends-03.png diff --git a/images/social-sdk/design-guidelines/GameFriends-04.png b/static/images/social-sdk/design-guidelines/GameFriends-04.png similarity index 100% rename from images/social-sdk/design-guidelines/GameFriends-04.png rename to static/images/social-sdk/design-guidelines/GameFriends-04.png diff --git a/images/social-sdk/design-guidelines/GameFriends-05.png b/static/images/social-sdk/design-guidelines/GameFriends-05.png similarity index 100% rename from images/social-sdk/design-guidelines/GameFriends-05.png rename to static/images/social-sdk/design-guidelines/GameFriends-05.png diff --git a/images/social-sdk/design-guidelines/GameFriends-06.png b/static/images/social-sdk/design-guidelines/GameFriends-06.png similarity index 100% rename from images/social-sdk/design-guidelines/GameFriends-06.png rename to static/images/social-sdk/design-guidelines/GameFriends-06.png diff --git a/images/social-sdk/design-guidelines/GameFriends-07.png b/static/images/social-sdk/design-guidelines/GameFriends-07.png similarity index 100% rename from images/social-sdk/design-guidelines/GameFriends-07.png rename to static/images/social-sdk/design-guidelines/GameFriends-07.png diff --git a/images/social-sdk/design-guidelines/GameFriends-08.png b/static/images/social-sdk/design-guidelines/GameFriends-08.png similarity index 100% rename from images/social-sdk/design-guidelines/GameFriends-08.png rename to static/images/social-sdk/design-guidelines/GameFriends-08.png diff --git a/images/social-sdk/design-guidelines/GameFriends-09.png b/static/images/social-sdk/design-guidelines/GameFriends-09.png similarity index 100% rename from images/social-sdk/design-guidelines/GameFriends-09.png rename to static/images/social-sdk/design-guidelines/GameFriends-09.png diff --git a/images/social-sdk/design-guidelines/GameFriends-10.png b/static/images/social-sdk/design-guidelines/GameFriends-10.png similarity index 100% rename from images/social-sdk/design-guidelines/GameFriends-10.png rename to static/images/social-sdk/design-guidelines/GameFriends-10.png diff --git a/images/social-sdk/design-guidelines/LinkedChannels-04.png b/static/images/social-sdk/design-guidelines/LinkedChannels-04.png similarity index 100% rename from images/social-sdk/design-guidelines/LinkedChannels-04.png rename to static/images/social-sdk/design-guidelines/LinkedChannels-04.png diff --git a/images/social-sdk/design-guidelines/LinkedChannels-05.png b/static/images/social-sdk/design-guidelines/LinkedChannels-05.png similarity index 100% rename from images/social-sdk/design-guidelines/LinkedChannels-05.png rename to static/images/social-sdk/design-guidelines/LinkedChannels-05.png diff --git a/images/social-sdk/design-guidelines/LinkedChannels-06.png b/static/images/social-sdk/design-guidelines/LinkedChannels-06.png similarity index 100% rename from images/social-sdk/design-guidelines/LinkedChannels-06.png rename to static/images/social-sdk/design-guidelines/LinkedChannels-06.png diff --git a/images/social-sdk/design-guidelines/LinkedChannels-07.png b/static/images/social-sdk/design-guidelines/LinkedChannels-07.png similarity index 100% rename from images/social-sdk/design-guidelines/LinkedChannels-07.png rename to static/images/social-sdk/design-guidelines/LinkedChannels-07.png diff --git a/images/social-sdk/design-guidelines/Principle-02.png b/static/images/social-sdk/design-guidelines/Principle-02.png similarity index 100% rename from images/social-sdk/design-guidelines/Principle-02.png rename to static/images/social-sdk/design-guidelines/Principle-02.png diff --git a/images/social-sdk/design-guidelines/Principle-03.png b/static/images/social-sdk/design-guidelines/Principle-03.png similarity index 100% rename from images/social-sdk/design-guidelines/Principle-03.png rename to static/images/social-sdk/design-guidelines/Principle-03.png diff --git a/images/social-sdk/design-guidelines/Principle-04.png b/static/images/social-sdk/design-guidelines/Principle-04.png similarity index 100% rename from images/social-sdk/design-guidelines/Principle-04.png rename to static/images/social-sdk/design-guidelines/Principle-04.png diff --git a/images/social-sdk/design-guidelines/Principle-05.png b/static/images/social-sdk/design-guidelines/Principle-05.png similarity index 100% rename from images/social-sdk/design-guidelines/Principle-05.png rename to static/images/social-sdk/design-guidelines/Principle-05.png diff --git a/images/social-sdk/design-guidelines/Principle-06.png b/static/images/social-sdk/design-guidelines/Principle-06.png similarity index 100% rename from images/social-sdk/design-guidelines/Principle-06.png rename to static/images/social-sdk/design-guidelines/Principle-06.png diff --git a/images/social-sdk/design-guidelines/Principle-07.png b/static/images/social-sdk/design-guidelines/Principle-07.png similarity index 100% rename from images/social-sdk/design-guidelines/Principle-07.png rename to static/images/social-sdk/design-guidelines/Principle-07.png diff --git a/images/social-sdk/design-guidelines/Prov-02.png b/static/images/social-sdk/design-guidelines/Prov-02.png similarity index 100% rename from images/social-sdk/design-guidelines/Prov-02.png rename to static/images/social-sdk/design-guidelines/Prov-02.png diff --git a/images/social-sdk/design-guidelines/Prov-03.png b/static/images/social-sdk/design-guidelines/Prov-03.png similarity index 100% rename from images/social-sdk/design-guidelines/Prov-03.png rename to static/images/social-sdk/design-guidelines/Prov-03.png diff --git a/images/social-sdk/design-guidelines/Prov-04.png b/static/images/social-sdk/design-guidelines/Prov-04.png similarity index 100% rename from images/social-sdk/design-guidelines/Prov-04.png rename to static/images/social-sdk/design-guidelines/Prov-04.png diff --git a/images/social-sdk/design-guidelines/Prov-05.png b/static/images/social-sdk/design-guidelines/Prov-05.png similarity index 100% rename from images/social-sdk/design-guidelines/Prov-05.png rename to static/images/social-sdk/design-guidelines/Prov-05.png diff --git a/images/social-sdk/design-guidelines/SigningIn-02.png b/static/images/social-sdk/design-guidelines/SigningIn-02.png similarity index 100% rename from images/social-sdk/design-guidelines/SigningIn-02.png rename to static/images/social-sdk/design-guidelines/SigningIn-02.png diff --git a/images/social-sdk/design-guidelines/SigningIn-03.png b/static/images/social-sdk/design-guidelines/SigningIn-03.png similarity index 100% rename from images/social-sdk/design-guidelines/SigningIn-03.png rename to static/images/social-sdk/design-guidelines/SigningIn-03.png diff --git a/images/social-sdk/design-guidelines/SigningIn-04.png b/static/images/social-sdk/design-guidelines/SigningIn-04.png similarity index 100% rename from images/social-sdk/design-guidelines/SigningIn-04.png rename to static/images/social-sdk/design-guidelines/SigningIn-04.png diff --git a/images/social-sdk/design-guidelines/SigningIn-05.png b/static/images/social-sdk/design-guidelines/SigningIn-05.png similarity index 100% rename from images/social-sdk/design-guidelines/SigningIn-05.png rename to static/images/social-sdk/design-guidelines/SigningIn-05.png diff --git a/images/social-sdk/design-guidelines/SigningIn-06.png b/static/images/social-sdk/design-guidelines/SigningIn-06.png similarity index 100% rename from images/social-sdk/design-guidelines/SigningIn-06.png rename to static/images/social-sdk/design-guidelines/SigningIn-06.png diff --git a/images/social-sdk/design-guidelines/SigningIn-07.png b/static/images/social-sdk/design-guidelines/SigningIn-07.png similarity index 100% rename from images/social-sdk/design-guidelines/SigningIn-07.png rename to static/images/social-sdk/design-guidelines/SigningIn-07.png diff --git a/images/social-sdk/design-guidelines/SigningIn-08.png b/static/images/social-sdk/design-guidelines/SigningIn-08.png similarity index 100% rename from images/social-sdk/design-guidelines/SigningIn-08.png rename to static/images/social-sdk/design-guidelines/SigningIn-08.png diff --git a/images/social-sdk/design-guidelines/StatusPresence-02.png b/static/images/social-sdk/design-guidelines/StatusPresence-02.png similarity index 100% rename from images/social-sdk/design-guidelines/StatusPresence-02.png rename to static/images/social-sdk/design-guidelines/StatusPresence-02.png diff --git a/images/social-sdk/design-guidelines/StatusPresence-03.png b/static/images/social-sdk/design-guidelines/StatusPresence-03.png similarity index 100% rename from images/social-sdk/design-guidelines/StatusPresence-03.png rename to static/images/social-sdk/design-guidelines/StatusPresence-03.png diff --git a/images/social-sdk/design-guidelines/StatusPresence-04.png b/static/images/social-sdk/design-guidelines/StatusPresence-04.png similarity index 100% rename from images/social-sdk/design-guidelines/StatusPresence-04.png rename to static/images/social-sdk/design-guidelines/StatusPresence-04.png diff --git a/images/social-sdk/design-guidelines/StatusPresence-05.png b/static/images/social-sdk/design-guidelines/StatusPresence-05.png similarity index 100% rename from images/social-sdk/design-guidelines/StatusPresence-05.png rename to static/images/social-sdk/design-guidelines/StatusPresence-05.png diff --git a/images/social-sdk/design-guidelines/StatusPresence-06.png b/static/images/social-sdk/design-guidelines/StatusPresence-06.png similarity index 100% rename from images/social-sdk/design-guidelines/StatusPresence-06.png rename to static/images/social-sdk/design-guidelines/StatusPresence-06.png diff --git a/images/social-sdk/design-guidelines/UFL-02.png b/static/images/social-sdk/design-guidelines/UFL-02.png similarity index 100% rename from images/social-sdk/design-guidelines/UFL-02.png rename to static/images/social-sdk/design-guidelines/UFL-02.png diff --git a/images/social-sdk/design-guidelines/UFL-03.png b/static/images/social-sdk/design-guidelines/UFL-03.png similarity index 100% rename from images/social-sdk/design-guidelines/UFL-03.png rename to static/images/social-sdk/design-guidelines/UFL-03.png diff --git a/images/social-sdk/design-guidelines/UFL-04.png b/static/images/social-sdk/design-guidelines/UFL-04.png similarity index 100% rename from images/social-sdk/design-guidelines/UFL-04.png rename to static/images/social-sdk/design-guidelines/UFL-04.png diff --git a/images/social-sdk/design-guidelines/UFL-05.png b/static/images/social-sdk/design-guidelines/UFL-05.png similarity index 100% rename from images/social-sdk/design-guidelines/UFL-05.png rename to static/images/social-sdk/design-guidelines/UFL-05.png diff --git a/images/social-sdk/design-guidelines/UFL-06.png b/static/images/social-sdk/design-guidelines/UFL-06.png similarity index 100% rename from images/social-sdk/design-guidelines/UFL-06.png rename to static/images/social-sdk/design-guidelines/UFL-06.png diff --git a/images/social-sdk/design-guidelines/UFL-07.png b/static/images/social-sdk/design-guidelines/UFL-07.png similarity index 100% rename from images/social-sdk/design-guidelines/UFL-07.png rename to static/images/social-sdk/design-guidelines/UFL-07.png diff --git a/images/social-sdk/design-guidelines/UFL-08.png b/static/images/social-sdk/design-guidelines/UFL-08.png similarity index 100% rename from images/social-sdk/design-guidelines/UFL-08.png rename to static/images/social-sdk/design-guidelines/UFL-08.png diff --git a/images/social-sdk/design-guidelines/animated/Connecting-via-Browser.gif b/static/images/social-sdk/design-guidelines/animated/Connecting-via-Browser.gif similarity index 100% rename from images/social-sdk/design-guidelines/animated/Connecting-via-Browser.gif rename to static/images/social-sdk/design-guidelines/animated/Connecting-via-Browser.gif diff --git a/images/social-sdk/design-guidelines/animated/Connecting-via-Client.gif b/static/images/social-sdk/design-guidelines/animated/Connecting-via-Client.gif similarity index 100% rename from images/social-sdk/design-guidelines/animated/Connecting-via-Client.gif rename to static/images/social-sdk/design-guidelines/animated/Connecting-via-Client.gif diff --git a/images/social-sdk/design-guidelines/animated/DMs-02.gif b/static/images/social-sdk/design-guidelines/animated/DMs-02.gif similarity index 100% rename from images/social-sdk/design-guidelines/animated/DMs-02.gif rename to static/images/social-sdk/design-guidelines/animated/DMs-02.gif diff --git a/images/social-sdk/design-guidelines/animated/LinkedChannel-Setup.gif b/static/images/social-sdk/design-guidelines/animated/LinkedChannel-Setup.gif similarity index 100% rename from images/social-sdk/design-guidelines/animated/LinkedChannel-Setup.gif rename to static/images/social-sdk/design-guidelines/animated/LinkedChannel-Setup.gif diff --git a/images/social-sdk/design-guidelines/animated/LinkedChannel-Unlink.gif b/static/images/social-sdk/design-guidelines/animated/LinkedChannel-Unlink.gif similarity index 100% rename from images/social-sdk/design-guidelines/animated/LinkedChannel-Unlink.gif rename to static/images/social-sdk/design-guidelines/animated/LinkedChannel-Unlink.gif diff --git a/images/social-sdk/design-guidelines/animated/LinkedChannels-02.gif b/static/images/social-sdk/design-guidelines/animated/LinkedChannels-02.gif similarity index 100% rename from images/social-sdk/design-guidelines/animated/LinkedChannels-02.gif rename to static/images/social-sdk/design-guidelines/animated/LinkedChannels-02.gif diff --git a/images/social-sdk/design-guidelines/animated/LinkedChannels-08.gif b/static/images/social-sdk/design-guidelines/animated/LinkedChannels-08.gif similarity index 100% rename from images/social-sdk/design-guidelines/animated/LinkedChannels-08.gif rename to static/images/social-sdk/design-guidelines/animated/LinkedChannels-08.gif diff --git a/images/social-sdk/design-guidelines/animated/UFL-06.gif b/static/images/social-sdk/design-guidelines/animated/UFL-06.gif similarity index 100% rename from images/social-sdk/design-guidelines/animated/UFL-06.gif rename to static/images/social-sdk/design-guidelines/animated/UFL-06.gif diff --git a/images/social-sdk/development-guides/authorize_device.png b/static/images/social-sdk/development-guides/authorize_device.png similarity index 100% rename from images/social-sdk/development-guides/authorize_device.png rename to static/images/social-sdk/development-guides/authorize_device.png diff --git a/images/social-sdk/getting-started/partials/error.png b/static/images/social-sdk/getting-started/partials/error.png similarity index 100% rename from images/social-sdk/getting-started/partials/error.png rename to static/images/social-sdk/getting-started/partials/error.png diff --git a/images/social-sdk/getting-started/partials/open-anyway.png b/static/images/social-sdk/getting-started/partials/open-anyway.png similarity index 100% rename from images/social-sdk/getting-started/partials/open-anyway.png rename to static/images/social-sdk/getting-started/partials/open-anyway.png diff --git a/images/social-sdk/getting-started/partials/settings-security.png b/static/images/social-sdk/getting-started/partials/settings-security.png similarity index 100% rename from images/social-sdk/getting-started/partials/settings-security.png rename to static/images/social-sdk/getting-started/partials/settings-security.png diff --git a/images/social-sdk/overview/social_sdk_header.png b/static/images/social-sdk/overview/social_sdk_header.png similarity index 100% rename from images/social-sdk/overview/social_sdk_header.png rename to static/images/social-sdk/overview/social_sdk_header.png diff --git a/images/spectate.gif b/static/images/spectate.gif similarity index 100% rename from images/spectate.gif rename to static/images/spectate.gif diff --git a/images/store_embed.png b/static/images/store_embed.png similarity index 100% rename from images/store_embed.png rename to static/images/store_embed.png diff --git a/images/team-page.png b/static/images/team-page.png similarity index 100% rename from images/team-page.png rename to static/images/team-page.png diff --git a/images/transfer-app-to-team.png b/static/images/transfer-app-to-team.png similarity index 100% rename from images/transfer-app-to-team.png rename to static/images/transfer-app-to-team.png diff --git a/images/url-generator.png b/static/images/url-generator.png similarity index 100% rename from images/url-generator.png rename to static/images/url-generator.png diff --git a/images/user-command.png b/static/images/user-command.png similarity index 100% rename from images/user-command.png rename to static/images/user-command.png diff --git a/images/user-install-game-message.png b/static/images/user-install-game-message.png similarity index 100% rename from images/user-install-game-message.png rename to static/images/user-install-game-message.png diff --git a/images/user-install-settings.png b/static/images/user-install-settings.png similarity index 100% rename from images/user-install-settings.png rename to static/images/user-install-settings.png From c5a9bb28ed91ba1a4e256ff737af1d3604624b3a Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 15 Apr 2025 14:55:18 -0700 Subject: [PATCH 2/2] boop --- docs/activities/development-guides.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/activities/development-guides.mdx b/docs/activities/development-guides.mdx index bd366a8548..c4a18d2d6c 100644 --- a/docs/activities/development-guides.mdx +++ b/docs/activities/development-guides.mdx @@ -238,10 +238,10 @@ To add or modify your application's URL mappings, click on `Activities -> URL Ma - Targets must point to a directory; setting a target to a file (e.g. `example.com/index.html`) is unsupported and may lead to unexpected behavior. - Because of how URL globbing works, if you have multiple prefix urls with the same initial path, you must place the shortest of the prefix paths last in order for each url mapping to be reachable. For example, if you have `/foo` and `/foo/bar`, you must place the url `/foo/bar` before `/foo` or else the mapping for `/foo/bar` will never be reached. -| ✅ DO | ❌ DON'T | -|------------------------------------------------------|------------------------------------------------------------| -| Requests mapped correctly | Requests to /foo/bar will incorrectly be sent to `foo.com` | -| ![url-mapping-do.png](images/activities/url-mapping-do.png) | ![url-mapping-dont.png](images/activities/url-mapping-dont.png) | +| ✅ DO | ❌ DON'T | +|-------------------------------------------------------------|-----------------------------------------------------------------| +| Requests mapped correctly | Requests to /foo/bar will incorrectly be sent to `foo.com` | +| ![url-mapping-do.png](images/activities/url-mapping-do.png) | ![url-mapping-dont.png](images/activities/url-mapping-dont.png) | #### Exceptions