v2.2 Release Notes
We launched the "BotShader AI" chat assistant in the dashboard and added a Discord Components V2 builder to custom commands. This major update also adds two new modules — a calculator (/calc) and currency conversion (/currency) — upgrades modal forms (sendModal) to all 7 field types, and lets you open BotShader AI from anywhere in the dashboard. It also brings array (list) variables and random nodes, persistent components, bot favorites, and improved log-message translations.

|
|
Published: June 10, 2026BotShade has been updated to v2.2. This is a major update centered on the BotShader AI chat and the Components V2 builder, and packed with much more — the new calculator and currency modules, array and random variables, persistent components, modal forms, and more.
If you notice anything, please don’t hesitate to report it via the Support page.
Table of contents:
- Highlights
- BotShader AI chat
- Components V2 builder
- Array variables and randomness
- New modules: calculator and currency
- Other features and improvements
- Fixed bugs
- Compatibility
- Support and community
Highlights
- Launched the “BotShader AI” chat assistant in the dashboard.
- Added a Discord Components V2 builder to message sending in custom commands, letting you lay out messages freely with containers and sections.
- Added array (list) variables for handling multiple values together, plus random nodes (generate a number, or draw from a set of choices).
- You can now make a message’s buttons and select menus persistent, so they keep working even after the bot restarts.
- Added two new commands (modules): a general-purpose calculator
/calcand currency conversion/currency. - Upgraded modal forms (sendModal) to Components V2, supporting all 7 field types — text, select menu, radio, and user / role / channel pickers.
- Made BotShader AI available as a drawer you can open from the top bar, sidebar, and mobile bottom bar, and added an AI sidebar in the command editor that reads your in-progress command and offers advice.
- Added bot favorites to the dashboard.
- You can now reference button and select-menu interaction context (who interacted, the channel, the server, the selected value, and more) as variables.
- Added a minimap and display settings (toggle the minimap and node descriptions) to the command editor.
- Changed the default navigation to the sidebar layout and tidied up bot switching via the bot selector (the top-bar layout is still available).
- Fixed a bug where renaming a command left the old-named command behind, causing duplicates.
- Fixed several bugs, including variable names with Japanese and other non-Latin characters and emoji rendering in quoted-message images (make-it-quote).
- Increased sidebar text and icon sizes for better readability.
BotShader AI chat

We launched “BotShader AI”, an AI assistant that helps you get the most out of BotShade through conversation. Just ask what you want to know — how to build a bot, how a feature works — and get an answer right away.
We’re also continually refining the input area, with height adjustment and scrolling for long messages and a tidier menu, for a more comfortable experience.
Open it from anywhere in the dashboard
BotShader AI is now available across the whole dashboard as a drawer you can open from the top bar, the sidebar, or the mobile bottom bar. It carries the bot you have open as context, and supports reviewing your conversation history and a “full screen” view.
Advisory AI in the command editor
We added an AI to the custom command editor’s sidebar that reads your in-progress command and offers advice. Click a node reference in its answer and the corresponding node is highlighted on the canvas, so you can see at a glance which one it means.
Components V2 builder
We added a builder for Discord’s latest message format, Components V2, to the “Send message” action in custom commands. In addition to the traditional body + embeds, you can now create advanced, freely composed message layouts.
Free-form layout
Combine containers, sections, text, separators, galleries, files, buttons, and select menus to build your message layout. A live preview shows the result as you edit, and the structural rules (where each component can go and the limits) are checked automatically.
Switching between V1 and V2
You can choose between the traditional Normal (body + embeds) format and Components V2. Because V2 cannot use the body or embeds (they are mutually exclusive), we clearly explain the impact when you switch.
Persistent buttons and select menus
Set a sent message’s buttons and select menus to “persistent” and they keep working even after the bot restarts. You can also restrict who is allowed to interact and set a session expiry (in seconds). This is ideal for long-lived messages such as standing panels and role-assignment buttons.
Modal forms (sendModal)
We upgraded sendModal — which shows an input form (modal) to the user and collects their values — to Components V2. In addition to text fields (short / long), you can now combine all 7 field types: select menu, radio, and user / role / mentionable / channel pickers. Each field supports required, placeholder, and default settings. You can open the modal right when the command runs or from a button, and the entered values are available as variables in the subsequent flow.
Array variables and randomness
We added array (list) variables for handling multiple values together, plus nodes that generate randomness, to custom commands. A new “Variables” category in the node palette gathers the variable, array, and random operations in one place.
Array variables
Create array variables with a specified element type and work with them through operation nodes: push, pop, set at index, insert, remove at index, and clear. Each operation’s input is checked automatically against the array’s element type, preventing type mismatches.
Random nodes
- Random number (randomNumber): generates a random number within a min–max range (choose integer or decimal).
- Random choice (randomChoice): draws one or more items at random from a set of choices such as an array (you can require no duplicates).
New modules: calculator and currency
We released two new modules you can add to your bot. Both can be enabled and customized from Module settings in the dashboard.
Calculator (/calc)
We added /calc, a general-purpose calculator command that supports not just basic arithmetic but also scientific functions and constants such as trigonometry and logarithms. Beyond the slash command, you can also enable automatic detection of expressions in messages (with a choice of detection methods) and calculation via reactions, so you can turn on what fits your use case.
Currency conversion (/currency)
We added a command that performs currency conversion at exchange rates with /currency amount from to. It supports a wide range of currencies, including major ones, and autocompletes currency codes as you type. The result comes with a ”🔁 swap” button to flip the source and target currencies and recalculate in one tap.
Other features and improvements
Button and select-menu interaction context as variables
You can now reference information from when a button is pressed or a select menu is used as variables in the subsequent flow.
- Button: who pressed it, the channel and server, and the button’s label / style / disabled state
- Select menu: the selected value, and who interacted, the channel, and the server
Set a “variable name” in each button / select menu, then reference it in later nodes as {name.user}. The variable name itself, {name}, holds the primary value — such as the selected value or the button’s interaction result.
Command editor enhancements
We added a minimap (bottom-right) to the custom command editor for an at-a-glance overview. We also expanded the editor settings so you can toggle the minimap and node descriptions on or off.
Navigation cleanup and the bot selector
We revisited the navigation layout and changed the default to the sidebar layout (the previous top-bar layout is still available). From the bot selector, you can search for and quickly switch between bots in the same project, and the module screen you have open is preserved when you switch.
Streamlined giveaway commands
We consolidated the giveaway commands into four — create / reroll / end / edit. The previously separate list, detail, edit, and delete operations are now handled together from edit in a Components V2 management screen. The /backup info screen was also unified to Components V2 for clarity.
Bot favorites
You can now mark frequently used bots as favorites in the dashboard’s bot list. Favorites are grouped in a dedicated section at the top of the list, so you can reach them quickly even when you run many bots.
Streamlined custom command list
Custom command cards can now be opened simply by clicking them, and the copy, share, and delete actions are consolidated into a kebab (…) menu. “Share” copies a link to that command to your clipboard.
Tidier variable and data-type lists
The variable editor and storage lists now show only the custom variables and custom data types you created (built-in variables and types are kept internally for autocomplete and validation, but excluded from editing). The lists are easier to read, and you won’t accidentally touch built-in definitions.
Key lookup in variable expressions (bracket access)
You can now pull a value out of an object (a variable that holds nested values) by specifying a key in square brackets. Write a key directly like {var}["key"], use a dynamic key from another variable like {var}[{keyVar}], or combine it with array indexing for multi-level access. A key that doesn’t exist resolves to an empty string.
Better sidebar readability
We revisited the sidebar’s text and icon sizes to improve readability.
Fixed bugs
Fixed duplicates when renaming a command
We fixed a bug where renaming a custom command left the old-named command behind, causing a duplicate. Renames are now reflected correctly without creating duplicates.
Variable names in more languages
Variable names that contain Japanese, Chinese, Korean, and other non-Latin characters — such as {お金} — are now interpreted correctly. Previously such names could be left as plain text instead of being substituted with their value.
Improved emoji rendering in message images
We fixed a bug in the quote-to-image feature (make-it-quote) where emoji did not render and showed up as a box (□). Standard Discord emoji now render correctly.
Improved log-message translations
We fixed a bug in the dashboard’s log display where some logs showed wording that didn’t match the actual operation (for example, a backup load showing as settings-related text). Logs now display more accurate content.
Other fixes
We fixed issues such as incorrect reward amounts in some features (including giveaway) and improved overall stability.
Compatibility
Bots and flow definitions you have been using continue to work as-is on v2.2. The settings changes from streamlining the giveaway commands are carried over automatically, so no migration is required on your side.
Support and community
If you have questions, want to report a bug, or have a feature request, please reach out through any of the following:
- Support page — contact form
- status.botshade.com — live service status
Thank you for your continued support of BotShade.