Knowledge Base

/

Release Notes

Feature

v2.4.0 Release Notes

Introducing Bot Environment Variables — safely store per-Bot secrets and reference them from custom commands. Custom commands can now call external Web APIs via the new apiReq node. The login and registration screens have been unified, and Bot start/stop/restart flows have been refreshed. We're also previewing an upcoming paid-plan feature that lets you set your Bot's Discord status / activity. Alongside this release, we're ending the temporary blanket paid-plan grant that was in place during the beta period, and setting all users to the "BotShade Free" plan.

BotShade Team
BotShade Team

|

7 min read

|

Published: July 7, 2026

Today is July 7 — Tanabata, Japan’s Star Festival. Have your wishes reached the night sky?

BotShade has been updated to v2.4.0. In this release, we deliver a way to entrust “secret wishes” to each of your Bots — Bot Environment Variables. Along with that, we’re adding a new node that lets your custom commands reach out to external Web services, a refreshed login screen, and a fix for a /nuke issue — updates that will broaden what you can do with your Bots.

If you notice anything, please don’t hesitate to report it via the Support page.

Contents:

Highlights

  • Bot Environment Variables — Store per-Bot secrets such as API keys and tokens, and reference them from custom commands using the {env.NAME} syntax.
  • apiReq Node — A new node that lets custom commands call external Web APIs. Build Bots that integrate with weather forecasts, translation services, game statistics, and more.
  • Unified Login and Registration Screen — The previously separate /login and /register screens have been merged into /auth, so you can complete either without switching pages. The loading indicator also now reflects the actual progress.
  • Refreshed Bot Start / Stop / Restart Flow — The status display and restart flow are now backed by a new, more stable foundation. Includes a fix we shipped quickly for the case where the Bot status would stay stuck at “Loading…”.
  • Coming Soon — Bot Status / Activity Configuration — Configure your Bot’s Discord presence (Online / Idle / Do Not Disturb / Offline) and activity (“Playing…”, “Watching…”, etc.) directly from the dashboard. This feature will be gradually made available as part of the upcoming paid plans.
  • Ending the Beta-Period Blanket Paid-Plan Grant — During the beta period, we provisionally granted all users access to paid-plan-tier features. With this release, we’re ending that temporary arrangement and setting all users to the “BotShade Free” plan.
  • Fixed an issue where using /nuke could cause a channel’s position (order) in the server to be lost.

Bot Environment Variables

We’ve added a new feature that lets you safely store per-Bot secrets — API keys, passwords, URLs, and the like — and reference them from custom command definitions. Like quietly hanging a tanzaku wish strip somewhere on your dashboard, you can add, edit, and remove these values under Bot detail page → Environment Variables (they’ll be kept somewhere out of plain sight).

  • The stored values themselves are never displayed in plaintext on the dashboard again. Edits are only accepted as a new value to overwrite — this is standard secret handling.
  • In custom command definitions and outgoing messages, environment variables can be referenced with the {env.NAME} syntax (where NAME is the variable name you registered).
  • The reserved name {env.BOT_TOKEN} refers to the Bot’s own token. Use this when you want to have a custom command perform additional Discord API operations as that same Bot.
  • References to environment variables can also be used from the URL, headers, and body of the apiReq node described in the next section. You’ll be able to integrate with external services without writing API keys directly into your command definitions.

Suggested Uses

  • Store a weather forecast API key as an environment variable and build a command that returns today’s weather
  • Store a translation API key and build a /translate-style custom command
  • Store an authentication token for your own Web dashboard or monitoring service, and use the apiReq node to send notifications

The apiReq Node — Calling External Web APIs from Custom Commands

We’ve added an apiReq node to the custom command builder, so commands can now make outbound calls to external Web APIs. Where custom commands were previously confined to the Bot’s own world, they can now cross the Milky Way to reach out to services beyond. Assemble GET / POST or other requests, and feed the returned JSON into subsequent steps of your command.

  • You specify URL / method / headers / body in the same flow as any other node. In each of those fields, you can interpolate Bot environment variables ({env.NAME}) as well as command inputs and variables.
  • The response JSON can be pulled out field-by-field in downstream nodes. Extracted values can be embedded directly into your outgoing messages or Embeds — so you can build compound commands such as “call a weather API → put the temperature into an Embed → add an umbrella icon.”
  • Outbound communication goes through BotShade’s own network path for stability reasons (no special setup is required on your side). If a response doesn’t come back within a reasonable time, the call is automatically cut off so the command can end safely.

This is a big expansion to what custom commands can express when combined with external services.

Unified Login and Registration Screen

Until now, the dashboard offered separate /login (sign in) and /register (create account) screens that you had to switch between. In this release, we’ve unified them into a single /auth screen. Where Orihime and Hikoboshi are said to meet only once a year across the Milky Way, sign-in and sign-up will now share the same place, every day.

  • You can toggle between sign-in and sign-up without changing pages. Both passkey and social login options are available from the same screen.
  • The progress indicator shown during sign-in now updates to reflect what’s actually happening, so the “Authenticating…” state won’t seem to freeze anymore.

Existing links to /login and /register continue to work and will forward you to /auth automatically.

Refreshed Bot Start / Stop / Restart Flow

The displays and behavior surrounding starting, stopping, and restarting your Bot from the dashboard have been switched over to a new, more stable foundation.

  • Quickly fixed an issue in production where the Bot status display could get stuck at “Loading…” and stop updating.
  • The status display now reflects the current state faster and more accurately.
  • Improved the long-running feedback during start / stop / restart requests, so the progress is easier to follow.
  • When a restart error occurs, the message now explains the cause and offers more actionable guidance depending on the root cause.

Coming Soon — Bot Status / Activity Configuration

You’ll now be able to configure how your Bot appears on Discord — its presence (Online / Idle / Do Not Disturb / Offline) and the activity shown under its name (“Playing…”, “Watching…”, “Streaming…”, “Listening to…”, or a custom status) — directly from the dashboard.

  • Supports all 5 activity display types, with free-form text for each.
  • Activity text supports variables such as the server name (for example, {Guild.name}), so you can display information that changes per server.
  • Changes take effect without restarting the Bot.

This feature will be gradually made available as part of the upcoming paid plans. We’ll share more details about when paid plans will launch in a separate announcement.

Ending the Beta-Period Blanket Paid-Plan Grant

Throughout the beta period, we granted all users provisional access to paid-plan-tier features free of charge. With this release (v2.4.0), we are ending that temporary blanket grant and setting all users to the “BotShade Free” plan.

  • Your Bot settings, commands, response templates, and other data will continue to be preserved as-is.
  • If you had been using paid-tier features, from this release onward your use will be limited to what’s available under the Free plan.
  • We’ll share the launch timing of the paid plans in a separate announcement.

To everyone who has used and given us feedback during the beta period — thank you, deeply, for helping us get here.

Bug Fixes

Fixed: /nuke losing the original channel position

Fixed an issue where running /nuke (delete a channel and recreate it in place) could fail to preserve where the channel was originally positioned within the server’s channel list, causing it to end up at the bottom. The recreated channel now returns to the same position as before.

Small dashboard polish

  • Fixed a case where the variable selector in the custom command editor wouldn’t refresh immediately after adding or removing an environment variable. The new variable is now available for reference in command edits right after being added.
  • Adjusted the color of some loading spinners that were blending too closely into the background.

Compatibility

Your existing Bots and custom command definitions continue to work as before in v2.4.0. No migration or configuration changes are required on your side.

The {env.NAME} syntax, the {env.BOT_TOKEN} reserved name, and the apiReq node are all newly available in v2.4.0 and do not affect any existing definitions.

Support and Community

For questions, bug reports, or feature requests, please reach out through any of the following:

Did your wish on the tanzaku come true? While Tanabata crosses the night sky only once a year, BotShade will keep running in your server today and every day after. Thank you as always for using BotShade.

← Back to Knowledge Base