📦 Expansions
Expansions unlock categories of Pieces on the Canvas. The Base Set is always included — unbox The Vault to give your bot a database, The Mod Squad for moderation tools, The Control Panel for buttons, dropdowns and pop-up forms, or The Darkroom for images, GIFs and the Studio.
📬Unbox → Install
Claim an expansion into your account, then attach it to a bot.
Browse the expansion gallery and click Unbox. The expansion lands in your account inventory.
Open bot settings → Expansions and install from your inventory. New Pieces appear in the palette.
📋Expansion Catalog
baseThe core collection. Messages, logic, utility, channels, and user pieces — all the building blocks for any bot, included automatically in every kit.
vaultGive your bot a memory. Tables for anything you want to keep, leaderboards and ranks, tallies, random picks and cooldowns for /daily — plus the 🔐 All-or-Nothing box, so a trade or a /pay either happens completely or not at all. Unlocks the Vault tab.
modEverything the people who keep the chaos at bay could want — kick, ban, timeout, purge, slowmode, lockdown and more. Now automated, so your mods can sleep at night.
uiStop making people type. Hand them a button to press, a menu to pick from, or a form to fill in — then catch what they did and carry on. Works on every bot, Interaction Only included.
imgDevelop pictures on the fly. Grab avatars and server art, read images out of any message, design rank cards and welcome banners in the Studio, touch up, caption and deep-fry, then send it all back — GIFs included. Unlocks the Gallery for your own images.
✅Kit validation
Before publishing, Kitcord checks that every piece id in your flows belongs to an expansion installed on that bot. The expansions array in the Kit lists which expansion ids are active (must include base).
// Canvas catalog (lib/expansions.ts)
interface ExpansionDef {
id: string; // "base" | "vault" | "mod" | "ui" | "img"
name: string;
tagline: string;
alwaysUnboxed?: boolean; // base is always available
}
// In a Bot Kit — validated before publish
type KitExpansions = string[]; // e.g. ["base", "mod", "ui"]{
"expansions": ["base", "mod"],
"flows": [
{
"id": "flow_warn",
"entry": "node_kick",
"nodes": [
{
"id": "node_kick",
"piece": "mod.kick",
"config": { "userId": "{{input.options.target.id}}", "reason": "Spam" }
}
],
"edges": []
}
]
}