A DAG editor with reusable functions
BotShade's custom command builder is a DAG built on a visual node editor with roughly 60 node types. Three nodes — a function definition node, a function call node, and a return node — turn any subgraph into a typed subroutine with arguments, return values, and recursion up to depth 32 and 1000 calls per run. BotGhost's block editor has Loops and Conditions, but its documentation does not describe a comparable concept of argument-typed reusable functions.
Typed persistent variables with atomic RMW
BotShade stores string, number, boolean, object, array, url, money, and time values alongside typed Discord references (user, role, channel, guild), nested up to five levels for shapes like nested arrays of objects. The equation update node wraps updates in row-level locking to prevent lost writes. BotGhost exposes four primitive types — Text, Number, Collection, Object — across Global, Server, Channel, and User scopes, with Free plans capped at 500 variable calls per month.
AI treated as a first-class citizen
BotShade's AI command builder generates a command build plan as an intermediate representation from natural language, then applies it as a reviewable diff with undo. BotGhost's AI module is scoped to ChatGPT and DALL-E, requires a Premium plan plus your own OpenAI API key, and does not document support for Claude or other vendors.
Structured conditions, loops, and error handlers
Condition nodes in BotShade (comparison, chance, channel, role, user, permission, regex) automatically generate and lock the required branches — the else branch, the post-condition continuation, and the matching match branch — and the loop family pairs the loop body and after-loop branch with built-in flow controls for breaking out, continuing, and waiting. A dedicated error-handler subtree exposes the error message as a variable expression, and the recursion guard raises a warning rather than blocking, so recursive calls remain available.
Components V2 and a variable-aware editor
BotShade builds Discord Components V2 messages (Section, Container, MediaGallery, File, Separator) and pairs them with a variable-aware autocomplete that completes server, user, role, and command-option references inline as you type. BotGhost also supports Components V2; the differentiator on the BotShade side is the inline variable-expression completion sitting on top of it.
Per-bot diagnostics with variable provenance
BotShade streams structured logs per bot, labeled by the action that produced them (for example, a custom command blocked from overwriting a protected variable), and tags every variable in the catalog by its origin — user-defined, declared by a plugin's configuration, or installed from the marketplace — to stop marketplace plugins from silently hijacking a name. BotGhost's log surface centers on Real-time Bot Alerts, gated behind Premium Priority Hosting.