Skip to content

Command Deploy Modes

Discord maintains its own cache of slash command metadata (names, descriptions, options). When you change any of these, you tell Discord about the update through a deployment. Bight provides two modes.

Deploys commands to a single test guild. Updates appear in Discord within seconds.

Terminal window
pnpm deploy:commands:guild

This targets the guild ID set in DISCORD_TEST_GUILD_ID from your .env. Use this during development for instant feedback on structural changes.

Deploys commands to all guilds where the bot is installed. Discord’s global cache can take up to an hour to propagate across all clients (mobile, web, desktop).

Terminal window
pnpm deploy:commands

Because of this, treat global deploys as deliberate releases.

ChangeDeploy required?
Renamed a command or optionYes
Changed a command’s descriptionYes
Added, removed, or reordered optionsYes
Changed logic inside execute()No
Updated a service or helperNo

When releasing a new feature that includes structural changes:

  1. Deploy code first.

    Push updated runtime code to your server.

  2. Deploy metadata second.

    Run pnpm deploy:commands after the new code is live.

This ensures the runtime can handle the new command shape the moment Discord starts sending it. Deploying metadata before code creates a window where Discord sends options your runtime doesn’t expect yet.