Developer Portal
Experimental The bot & app platform is in active development. Self-hosted server support shipped on 2026-08-13 with a smaller feature surface than cloud. See what's supported.
← Docs

Feature Matrix

A "does it work?" view of every Discord bot feature on GameVox. Use this to scope a migration before you flip the gateway URL. The Self-hosted column shows whether a feature works when your bot is installed on a customer's self-hosted GameVox server. See the self-hosted docs for the forwarding architecture.

AreaFeatureCloudSelf-hostedNotes
GatewayJSON encodingYesYesDefault; what every library uses
zlib-stream compressionYesYesCovered by every major library
ETF encodingNoNoLibraries fall back to JSON when encoding=etf is missing
Zstandard compressionNoNozlib-stream is the universal alternative
Resume / op:6YesYesResume buffer mirrored to Redis, so op:6 survives api task restarts
ShardingYesYesStandard (guild_id >> 22) % num_shards hash
RESTMessages CRUDYesYesSend, edit, delete, bulk-delete, get, pin, typing, reactions
Channels CRUDYesYesCloud: incl. permission overwrites and reorder. Self-hosted: reorder yes, per-channel overwrites use groups
Per-channel permission overwritesYesNoSelf-hosted uses group-level permissions; overwrite PUT returns 501
Members / roles / bansYesYesFull CRUD; communication_disabled_until (timeout) not supported
Webhooks (channel & app)YesYesFull CRUD + execute (embeds, attachments, multipart). Rows stay in cloud storage; execute writes into self-hosted channels via the bot forwarding path
App-owned emojisPortal-onlyPortal-onlyManaged in the developer portal; GET on bot-API works. See Emojis
Audit logPartialPartialBot-relevant entries; per-channel-overwrite history not indexed
Rate-limit headersYesYesX-RateLimit-* on every response, bucket-aware
InteractionsApplication commands (slash, user, message)YesNoCloud: bulk PUT + individual CRUD. Self-hosted: registration & invocation not yet routed
Components v1 (buttons, selects, modals)YesNoRendered in the GameVox client; self-hosted needs event bridging
Components v2NoNoPlanned post-v1
HTTP-mode interactions (outgoing endpoint)YesNoCloud dispatches to your configured interactions_endpoint_url with Ed25519 signature; falls back to gateway if the endpoint is down. Self-hosted invocations aren't forwarded yet
VoiceUDP voice gatewayYesYesPer-region. See Voice docs
AEAD AES-256-GCMYesYesPreferred
AEAD XChaCha20-Poly1305YesYesFallback
Bot-driven voice-state modifyYesPartialBoth: PATCH .../voice-states/{user_id} for mute / move / disconnect. Self-hosted: deaf returns 501 (no SFU primitive); move fires two events instead of one
OtherServer emojis (read)YesYesList + get; create/patch/delete via portal only
Soundboard (read)YesYesList + get; bot-driven playback not supported
Vanity URLPartialNoCloud: read + patch (Gold+ servers). Self-hosted: PATCH returns 501
Threads / forum postsStubStubForum channels exist; thread CRUD returns empty / 400
Stage channels, AutoMod, Scheduled EventsNoNoIntents accepted, no events
Premium Apps / EntitlementsNoNoNo monetization layer in v1
PortalTeams (multi-developer ownership)YesDiscord parity. See Teams
Application transfer to teamYesOne-way (matches Discord)
App Testers (private-app install allowlist)Yes100/app. See Teams → Testers
OAuth2 install URLs (user + server contexts)YesNone / GameVox-provided / Custom URL. See OAuth2
Client secret rotationYesBcrypt-hashed; shown once on create / rotate
Bot directory listingYesAdmin-approved listings at gamevox.com/bots

Legend

  • Yes: works as on Discord, no code changes.
  • Partial: wire-compatible but missing some semantics. Safe to call, may not produce events.
  • No: accepted on the wire (won't 4014), but does nothing. Plan for it not being there.

← Back to docs