Plugins
Unbanded loads plugins dynamically (remote URL or local .js file). Each plugin receives a ctx and can register commands, hooks, and styles. Enable/disable and ordering are persisted.
Plugin structure
export default {
name: "my-plugin",
version: "1.0.0",
init(ctx) {
ctx.commands.register("hello", (args) => ctx.chat.send("Hello " + args.join(" ")));
ctx.ui.toast("Plugin loaded");
},
destroy() {}
};
ctx API
ctx.commands.register(name, handler, opts)— register a command (with aliases/description).ctx.chat.send(text)— send a message.ctx.ui.toast(msg)— show a toast.ctx.storage.get/set(key, value)— plugin-scoped storage (prefixbtt:plugin:<name>:).ctx.settings— access global settings.
Installation
Settings → Plugins → "Add plugin": paste a URL or pick a .js file. The code is fetched (URL) or read (file) then eval-ed. CSP of band.us may block some URLs → prefer file import.
Built-in plugins
AFK, mini-games, pet-pet (GIF), reactions (18 commands), tools (calc/roll/coin/8ball). See Commands.
Sharing
Share the .js file or a URL. No build required for plugins — they are loaded at runtime.