Betacade Docs

Run your web game in Discord as an Activity

A Discord Activity is a web game that runs inside a Discord voice or text channel. While someone plays, their profile says they're playing it. Betacade can run your game there, from its public builds, and its sessions show on your dashboard as "On Discord".

In Betacade's Discord app#

On your game's Game page, under In Discord, choose List it in Betacade's Discord app. The card then shows two links:

  • The launch link opens your game in Discord. Share it with your testers.
  • The install link adds Betacade's app to a Discord server. Someone with Manage Server opens it once. Then anyone in the server joins a voice channel, opens Activities (the rocket), picks Betacade, and chooses your game from the list.

Players' profiles say "Playing Betacade", with your game's name under it.

With your own Discord app#

For "Playing" followed by your game's name, give the game a Discord app of its own:

1. At discord.com/developers/applications, make a new application named after your game, with its icon. 2. On its OAuth2 page, copy the Client ID and the Client Secret. 3. On your game's Game page, under In Discord › Your own Discord app, paste both and choose Link the app. Betacade checks them with Discord, keeps the secret encrypted, and never shows it again. 4. Follow the steps on that card in the Developer Portal: the URL Mappings (filled in for your game), a redirect placeholder, Enable Activities, and the install settings.

Until Discord verifies your app, only its team and App Testers can launch it, in servers with fewer than 25 members.

What works in Discord#

Discord blocks requests to any other site, so your game can load only its own files, through relative paths, as on Betacade. Fonts, scripts or videos from other sites won't load. There's no pause menu, feedback or saves list, and sessions aren't recorded for replay.

Betacade still sees sessions and play time, errors with the console lines before them, and your game's localStorage saves. Each Discord user is one tester, on every device. You never see their Discord name.

When nobody has played for 10 minutes and nothing is playing (or for an hour, even with a video going), the Activity warns, then closes a minute later, so no one's profile says "Playing" forever.