{ "blocks": { "button_id": { "args": [], "category": "buttons", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr(__ctx.button?.id)", "shape": "reporter", "text": "clicked button id" }, "button_respond": { "args": [ { "default": "Thanks!", "name": "TEXT", "options": [], "type": "string" } ], "category": "buttons", "event": "", "guard": "", "is_expression": false, "js": "await __ctx.button?.respond({ content: __bb.toStr({TEXT}) });", "shape": "stack", "text": "respond to the button with %1" }, "button_respond_titled": { "args": [ { "default": "Result", "name": "TITLE", "options": [], "type": "string" }, { "default": "Thanks!", "name": "TEXT", "options": [], "type": "string" } ], "category": "buttons", "event": "", "guard": "", "is_expression": false, "js": "await __ctx.button?.respond({ title: __bb.toStr({TITLE}), content: __bb.toStr({TEXT}) });", "shape": "stack", "text": "respond with title %1 and text %2" }, "button_user": { "args": [], "category": "buttons", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr(__ctx.button?.user?.username)", "shape": "reporter", "text": "who clicked" }, "control_forever": { "args": [ { "default": "", "name": "SUBSTACK", "options": [], "type": "substack" } ], "category": "control", "event": "", "guard": "", "is_expression": false, "js": "while (true) {\n{SUBSTACK}\n await __bb.wait(0);\n}", "shape": "c", "text": "forever %1" }, "control_if": { "args": [ { "default": "", "name": "COND", "options": [], "type": "boolean" }, { "default": "", "name": "SUBSTACK", "options": [], "type": "substack" } ], "category": "control", "event": "", "guard": "", "is_expression": false, "js": "if ({COND}) {\n{SUBSTACK}\n}", "shape": "c", "text": "if %1 then %2" }, "control_if_else": { "args": [ { "default": "", "name": "COND", "options": [], "type": "boolean" }, { "default": "", "name": "SUBSTACK", "options": [], "type": "substack" }, { "default": "", "name": "SUBSTACK2", "options": [], "type": "substack" } ], "category": "control", "event": "", "guard": "", "is_expression": false, "js": "if ({COND}) {\n{SUBSTACK}\n} else {\n{SUBSTACK2}\n}", "shape": "e", "text": "if %1 then %2 else %3" }, "control_repeat": { "args": [ { "default": "10", "name": "TIMES", "options": [], "type": "number" }, { "default": "", "name": "SUBSTACK", "options": [], "type": "substack" } ], "category": "control", "event": "", "guard": "", "is_expression": false, "js": "for (let __i = 0, __n = __bb.toNum({TIMES}); __i < __n; __i++) {\n{SUBSTACK}\n await __bb.wait(0);\n}", "shape": "c", "text": "repeat %1 %2" }, "control_repeat_until": { "args": [ { "default": "", "name": "COND", "options": [], "type": "boolean" }, { "default": "", "name": "SUBSTACK", "options": [], "type": "substack" } ], "category": "control", "event": "", "guard": "", "is_expression": false, "js": "while (!({COND})) {\n{SUBSTACK}\n await __bb.wait(0);\n}", "shape": "c", "text": "repeat until %1 %2" }, "control_stop": { "args": [ { "default": "this script", "name": "WHAT", "options": [ "this script", "all" ], "type": "dropdown" } ], "category": "control", "event": "", "guard": "", "is_expression": false, "js": "return;", "shape": "cap", "text": "stop %1" }, "control_wait": { "args": [ { "default": "1", "name": "SECS", "options": [], "type": "number" } ], "category": "control", "event": "", "guard": "", "is_expression": false, "js": "await __bb.wait({SECS});", "shape": "stack", "text": "wait %1 seconds" }, "control_wait_until": { "args": [ { "default": "", "name": "COND", "options": [], "type": "boolean" } ], "category": "control", "event": "", "guard": "", "is_expression": false, "js": "while (!({COND})) { await __bb.wait(0.1); }", "shape": "stack", "text": "wait until %1" }, "data_addtolist": { "args": [ { "default": "thing", "name": "ITEM", "options": [], "type": "string" }, { "default": "my list", "name": "LIST", "options": [], "type": "list" } ], "category": "lists", "event": "", "guard": "", "is_expression": false, "js": "{LIST}.push({ITEM});", "shape": "stack", "text": "add %1 to %2" }, "data_changevariableby": { "args": [ { "default": "my variable", "name": "VARIABLE", "options": [], "type": "variable" }, { "default": "1", "name": "VALUE", "options": [], "type": "number" } ], "category": "variables", "event": "", "guard": "", "is_expression": false, "js": "{VARIABLE} = __bb.toNum({VARIABLE}) + __bb.toNum({VALUE});", "shape": "stack", "text": "change %1 by %2" }, "data_deletealloflist": { "args": [ { "default": "my list", "name": "LIST", "options": [], "type": "list" } ], "category": "lists", "event": "", "guard": "", "is_expression": false, "js": "{LIST}.length = 0;", "shape": "stack", "text": "delete all of %1" }, "data_deleteoflist": { "args": [ { "default": "1", "name": "INDEX", "options": [], "type": "number" }, { "default": "my list", "name": "LIST", "options": [], "type": "list" } ], "category": "lists", "event": "", "guard": "", "is_expression": false, "js": "__bb.listDelete({LIST}, {INDEX});", "shape": "stack", "text": "delete %1 of %2" }, "data_insertatlist": { "args": [ { "default": "thing", "name": "ITEM", "options": [], "type": "string" }, { "default": "1", "name": "INDEX", "options": [], "type": "number" }, { "default": "my list", "name": "LIST", "options": [], "type": "list" } ], "category": "lists", "event": "", "guard": "", "is_expression": false, "js": "__bb.listInsert({LIST}, {INDEX}, {ITEM});", "shape": "stack", "text": "insert %1 at %2 of %3" }, "data_itemnumoflist": { "args": [ { "default": "thing", "name": "ITEM", "options": [], "type": "string" }, { "default": "my list", "name": "LIST", "options": [], "type": "list" } ], "category": "lists", "event": "", "guard": "", "is_expression": true, "js": "__bb.listIndexOf({LIST}, {ITEM})", "shape": "reporter", "text": "item # of %1 in %2" }, "data_itemoflist": { "args": [ { "default": "1", "name": "INDEX", "options": [], "type": "number" }, { "default": "my list", "name": "LIST", "options": [], "type": "list" } ], "category": "lists", "event": "", "guard": "", "is_expression": true, "js": "__bb.listGet({LIST}, {INDEX})", "shape": "reporter", "text": "item %1 of %2" }, "data_lengthoflist": { "args": [ { "default": "my list", "name": "LIST", "options": [], "type": "list" } ], "category": "lists", "event": "", "guard": "", "is_expression": true, "js": "{LIST}.length", "shape": "reporter", "text": "length of %1" }, "data_listcontainsitem": { "args": [ { "default": "my list", "name": "LIST", "options": [], "type": "list" }, { "default": "thing", "name": "ITEM", "options": [], "type": "string" } ], "category": "lists", "event": "", "guard": "", "is_expression": true, "js": "__bb.listContains({LIST}, {ITEM})", "shape": "boolean", "text": "%1 contains %2 ?" }, "data_listcontents": { "args": [ { "default": "my list", "name": "LIST", "options": [], "type": "list" } ], "category": "lists", "event": "", "guard": "", "is_expression": true, "js": "{LIST}.join(' ')", "shape": "reporter", "text": "%1" }, "data_replaceitemoflist": { "args": [ { "default": "1", "name": "INDEX", "options": [], "type": "number" }, { "default": "my list", "name": "LIST", "options": [], "type": "list" }, { "default": "thing", "name": "ITEM", "options": [], "type": "string" } ], "category": "lists", "event": "", "guard": "", "is_expression": false, "js": "__bb.listReplace({LIST}, {INDEX}, {ITEM});", "shape": "stack", "text": "replace item %1 of %2 with %3" }, "data_setvariableto": { "args": [ { "default": "my variable", "name": "VARIABLE", "options": [], "type": "variable" }, { "default": "0", "name": "VALUE", "options": [], "type": "string" } ], "category": "variables", "event": "", "guard": "", "is_expression": false, "js": "{VARIABLE} = {VALUE};", "shape": "stack", "text": "set %1 to %2" }, "data_variable": { "args": [ { "default": "my variable", "name": "VARIABLE", "options": [], "type": "variable" } ], "category": "variables", "event": "", "guard": "", "is_expression": true, "js": "{VARIABLE}", "shape": "reporter", "text": "%1" }, "event_broadcast": { "args": [ { "default": "message1", "name": "NAME", "options": [], "type": "string" } ], "category": "events", "event": "", "guard": "", "is_expression": false, "js": "await __bb.broadcast({NAME});", "shape": "stack", "text": "broadcast %1" }, "event_broadcast_receive": { "args": [ { "default": "message1", "name": "NAME", "options": [], "type": "string" } ], "category": "events", "event": "__broadcast", "guard": "", "is_expression": false, "js": "", "shape": "hat", "text": "when I receive %1" }, "event_button": { "args": [], "category": "events", "event": "MessageButtonClick", "guard": "", "is_expression": false, "js": "", "shape": "hat", "text": "when any button is clicked" }, "event_button_id": { "args": [ { "default": "yes", "name": "ID", "options": [], "type": "string" } ], "category": "events", "event": "MessageButtonClick", "guard": "__bb.eq(__ctx.button?.id, {ID})", "is_expression": false, "js": "", "shape": "hat", "text": "when button %1 is clicked" }, "event_command": { "args": [ { "default": "ping", "name": "NAME", "options": [], "type": "string" }, { "default": "what this command does", "name": "HELP", "options": [], "type": "string" } ], "category": "events", "event": "MessageCreate", "guard": "__bb.eq(__ctx.message?.command?.name, {NAME})", "is_expression": false, "js": "", "shape": "hat", "text": "when command %1 is used, help %2" }, "event_member_join": { "args": [], "category": "events", "event": "ServerMemberJoined", "guard": "", "is_expression": false, "js": "", "shape": "hat", "text": "when someone joins the server" }, "event_member_leave": { "args": [], "category": "events", "event": "ServerMemberLeft", "guard": "", "is_expression": false, "js": "", "shape": "hat", "text": "when someone leaves the server" }, "event_message": { "args": [], "category": "events", "event": "MessageCreate", "guard": "", "is_expression": false, "js": "", "shape": "hat", "text": "when I get a message" }, "event_message_contains": { "args": [ { "default": "hello", "name": "TEXT", "options": [], "type": "string" } ], "category": "events", "event": "MessageCreate", "guard": "__bb.contains(__ctx.message?.content, {TEXT})", "is_expression": false, "js": "", "shape": "hat", "text": "when a message contains %1" }, "event_message_deleted": { "args": [], "category": "events", "event": "MessageDelete", "guard": "", "is_expression": false, "js": "", "shape": "hat", "text": "when a message is deleted" }, "event_message_edited": { "args": [], "category": "events", "event": "MessageUpdate", "guard": "", "is_expression": false, "js": "", "shape": "hat", "text": "when a message is edited" }, "event_message_is": { "args": [ { "default": "hello", "name": "TEXT", "options": [], "type": "string" } ], "category": "events", "event": "MessageCreate", "guard": "__bb.eq(__ctx.message?.content, {TEXT})", "is_expression": false, "js": "", "shape": "hat", "text": "when a message says %1" }, "event_message_starts": { "args": [ { "default": "!", "name": "TEXT", "options": [], "type": "string" } ], "category": "events", "event": "MessageCreate", "guard": "__bb.toStr(__ctx.message?.content).toLowerCase().startsWith(__bb.toStr({TEXT}).toLowerCase())", "is_expression": false, "js": "", "shape": "hat", "text": "when a message starts with %1" }, "event_reaction_add": { "args": [], "category": "events", "event": "MessageReactionAdded", "guard": "", "is_expression": false, "js": "", "shape": "hat", "text": "when a reaction is added" }, "event_reaction_remove": { "args": [], "category": "events", "event": "MessageReactionRemoved", "guard": "", "is_expression": false, "js": "", "shape": "hat", "text": "when a reaction is removed" }, "event_ready": { "args": [], "category": "events", "event": "Ready", "guard": "", "is_expression": false, "js": "", "shape": "hat", "text": "when the bot starts" }, "member_ban": { "args": [ { "default": "rule break", "name": "REASON", "options": [], "type": "string" } ], "category": "members", "event": "", "guard": "", "is_expression": false, "js": "await __ctx.member?.ban({ reason: __bb.toStr({REASON}) });", "shape": "stack", "text": "ban this member because %1" }, "member_has_permission": { "args": [ { "default": "ADMIN", "name": "PERM", "options": [ "ADMIN", "SEND_MESSAGE", "MANAGE_ROLES", "MANAGE_CHANNELS", "KICK", "BAN" ], "type": "dropdown" } ], "category": "members", "event": "", "guard": "", "is_expression": true, "js": "(__ctx.member?.hasPermission?.({PERM}) === true)", "shape": "boolean", "text": "member has permission %1" }, "member_id": { "args": [], "category": "members", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr(__ctx.member?.user?.id ?? __ctx.user?.id)", "shape": "reporter", "text": "member id" }, "member_kick": { "args": [], "category": "members", "event": "", "guard": "", "is_expression": false, "js": "await __ctx.member?.kick();", "shape": "stack", "text": "kick this member" }, "member_kick_id": { "args": [ { "default": "user id", "name": "ID", "options": [], "type": "string" } ], "category": "members", "event": "", "guard": "", "is_expression": false, "js": "await __ctx.server?.kickMember(__bb.toStr({ID}));", "shape": "stack", "text": "kick user %1" }, "member_name": { "args": [], "category": "members", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr(__ctx.member?.user?.username ?? __ctx.user?.username)", "shape": "reporter", "text": "member name" }, "member_nickname": { "args": [], "category": "members", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr(__ctx.member?.nickname ?? __ctx.member?.user?.username)", "shape": "reporter", "text": "member nickname" }, "member_role_count": { "args": [], "category": "members", "event": "", "guard": "", "is_expression": true, "js": "((__ctx.member?.roleIds ?? []).length)", "shape": "reporter", "text": "number of roles" }, "member_unban_id": { "args": [ { "default": "user id", "name": "ID", "options": [], "type": "string" } ], "category": "members", "event": "", "guard": "", "is_expression": false, "js": "await __ctx.server?.unbanMember(__bb.toStr({ID}));", "shape": "stack", "text": "unban user %1" }, "message_author": { "args": [], "category": "messages", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr(__ctx.message?.user?.username)", "shape": "reporter", "text": "author name" }, "message_author_id": { "args": [], "category": "messages", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr(__ctx.message?.user?.id)", "shape": "reporter", "text": "author id" }, "message_author_is_bot": { "args": [], "category": "messages", "event": "", "guard": "", "is_expression": true, "js": "(__ctx.message?.user?.bot === true)", "shape": "boolean", "text": "author is a bot?" }, "message_channel_id": { "args": [], "category": "messages", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr(__ctx.message?.channelId)", "shape": "reporter", "text": "channel id" }, "message_command_arg": { "args": [ { "default": "1", "name": "N", "options": [], "type": "number" } ], "category": "messages", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr((__ctx.message?.command?.args ?? [])[__bb.toNum({N}) - 1])", "shape": "reporter", "text": "command argument %1" }, "message_command_args": { "args": [], "category": "messages", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr((__ctx.message?.command?.args ?? []).join(' '))", "shape": "reporter", "text": "all command arguments" }, "message_delete": { "args": [], "category": "messages", "event": "", "guard": "", "is_expression": false, "js": "await __ctx.message?.delete();", "shape": "stack", "text": "delete this message" }, "message_edit": { "args": [ { "default": "edited", "name": "TEXT", "options": [], "type": "string" } ], "category": "messages", "event": "", "guard": "", "is_expression": false, "js": "await __ctx.message?.edit(__bb.toStr({TEXT}));", "shape": "stack", "text": "edit this message to %1" }, "message_reaction_name": { "args": [], "category": "messages", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr(__ctx.reaction?.name)", "shape": "reporter", "text": "reaction emoji" }, "message_reply": { "args": [ { "default": "Hello!", "name": "TEXT", "options": [], "type": "string" } ], "category": "messages", "event": "", "guard": "", "is_expression": false, "js": "await __ctx.message?.reply(__bb.toStr({TEXT}));", "shape": "stack", "text": "reply with %1" }, "message_reply_buttons": { "args": [ { "default": "Pick one", "name": "TEXT", "options": [], "type": "string" }, { "default": "Yes, No", "name": "BUTTONS", "options": [], "type": "string" } ], "category": "messages", "event": "", "guard": "", "is_expression": false, "js": "await __ctx.message?.reply(__bb.toStr({TEXT}), { buttons: __bb.toStr({BUTTONS}).split(',').map(s => s.trim()).filter(Boolean).map(s => ({ id: s.toLowerCase(), label: s })) });", "shape": "stack", "text": "reply with %1 and buttons %2" }, "message_reply_html": { "args": [ { "default": "hi", "name": "HTML", "options": [], "type": "string" } ], "category": "messages", "event": "", "guard": "", "is_expression": false, "js": "await __ctx.message?.reply('\\u200c', { htmlEmbed: __bb.toStr({HTML}) });", "shape": "stack", "text": "reply with html %1" }, "message_safe": { "args": [ { "default": "", "name": "TEXT", "options": [], "type": "string" } ], "category": "messages", "event": "", "guard": "", "is_expression": true, "js": "__bb.escapeHtml({TEXT})", "shape": "reporter", "text": "safe text %1" }, "message_send": { "args": [ { "default": "Hello!", "name": "TEXT", "options": [], "type": "string" } ], "category": "messages", "event": "", "guard": "", "is_expression": false, "js": "await __ctx.channel?.send(__bb.toStr({TEXT}));", "shape": "stack", "text": "send %1" }, "message_send_html": { "args": [ { "default": "hi", "name": "HTML", "options": [], "type": "string" } ], "category": "messages", "event": "", "guard": "", "is_expression": false, "js": "await __ctx.channel?.send('\\u200c', { htmlEmbed: __bb.toStr({HTML}) });", "shape": "stack", "text": "send html %1" }, "message_send_to": { "args": [ { "default": "Hello!", "name": "TEXT", "options": [], "type": "string" }, { "default": "channel id", "name": "CHANNEL", "options": [], "type": "string" } ], "category": "messages", "event": "", "guard": "", "is_expression": false, "js": "await client.channels?.cache?.get(__bb.toStr({CHANNEL}))?.send(__bb.toStr({TEXT}));", "shape": "stack", "text": "send %1 to channel %2" }, "message_text": { "args": [], "category": "messages", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr(__ctx.message?.content)", "shape": "reporter", "text": "message text" }, "message_text_clean": { "args": [], "category": "messages", "event": "", "guard": "", "is_expression": true, "js": "__bb.stripMentions(__ctx.message?.content)", "shape": "reporter", "text": "message text without mentions" }, "operator_add": { "args": [ { "default": "", "name": "A", "options": [], "type": "number" }, { "default": "", "name": "B", "options": [], "type": "number" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "(__bb.toNum({A}) + __bb.toNum({B}))", "shape": "reporter", "text": "%1 + %2" }, "operator_and": { "args": [ { "default": "", "name": "A", "options": [], "type": "boolean" }, { "default": "", "name": "B", "options": [], "type": "boolean" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "(({A}) && ({B}))", "shape": "boolean", "text": "%1 and %2" }, "operator_contains": { "args": [ { "default": "apple", "name": "A", "options": [], "type": "string" }, { "default": "a", "name": "B", "options": [], "type": "string" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "__bb.contains({A}, {B})", "shape": "boolean", "text": "%1 contains %2 ?" }, "operator_divide": { "args": [ { "default": "", "name": "A", "options": [], "type": "number" }, { "default": "", "name": "B", "options": [], "type": "number" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "(__bb.toNum({A}) / __bb.toNum({B}))", "shape": "reporter", "text": "%1 / %2" }, "operator_equals": { "args": [ { "default": "", "name": "A", "options": [], "type": "string" }, { "default": "50", "name": "B", "options": [], "type": "string" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "__bb.eq({A}, {B})", "shape": "boolean", "text": "%1 = %2" }, "operator_gt": { "args": [ { "default": "", "name": "A", "options": [], "type": "string" }, { "default": "50", "name": "B", "options": [], "type": "string" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "__bb.gt({A}, {B})", "shape": "boolean", "text": "%1 > %2" }, "operator_is_empty": { "args": [ { "default": "", "name": "A", "options": [], "type": "string" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "(__bb.toStr({A}).trim().length === 0)", "shape": "boolean", "text": "%1 is empty ?" }, "operator_join": { "args": [ { "default": "apple ", "name": "A", "options": [], "type": "string" }, { "default": "banana", "name": "B", "options": [], "type": "string" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "(__bb.toStr({A}) + __bb.toStr({B}))", "shape": "reporter", "text": "join %1 %2" }, "operator_length": { "args": [ { "default": "apple", "name": "TEXT", "options": [], "type": "string" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr({TEXT}).length", "shape": "reporter", "text": "length of %1" }, "operator_letter_of": { "args": [ { "default": "1", "name": "N", "options": [], "type": "number" }, { "default": "apple", "name": "TEXT", "options": [], "type": "string" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "__bb.letterOf({N}, {TEXT})", "shape": "reporter", "text": "letter %1 of %2" }, "operator_lowercase": { "args": [ { "default": "HELLO", "name": "TEXT", "options": [], "type": "string" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr({TEXT}).toLowerCase()", "shape": "reporter", "text": "lowercase %1" }, "operator_lt": { "args": [ { "default": "", "name": "A", "options": [], "type": "string" }, { "default": "50", "name": "B", "options": [], "type": "string" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "__bb.lt({A}, {B})", "shape": "boolean", "text": "%1 < %2" }, "operator_mathop": { "args": [ { "default": "abs", "name": "OP", "options": [ "abs", "floor", "ceiling", "sqrt", "sin", "cos", "tan", "ln", "log", "e ^", "10 ^" ], "type": "dropdown" }, { "default": "", "name": "A", "options": [], "type": "number" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "__bb.mathop({OP}, {A})", "shape": "reporter", "text": "%1 of %2" }, "operator_mod": { "args": [ { "default": "", "name": "A", "options": [], "type": "number" }, { "default": "", "name": "B", "options": [], "type": "number" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "(__bb.toNum({A}) % __bb.toNum({B}))", "shape": "reporter", "text": "%1 mod %2" }, "operator_multiply": { "args": [ { "default": "", "name": "A", "options": [], "type": "number" }, { "default": "", "name": "B", "options": [], "type": "number" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "(__bb.toNum({A}) * __bb.toNum({B}))", "shape": "reporter", "text": "%1 * %2" }, "operator_not": { "args": [ { "default": "", "name": "A", "options": [], "type": "boolean" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "(!({A}))", "shape": "boolean", "text": "not %1" }, "operator_or": { "args": [ { "default": "", "name": "A", "options": [], "type": "boolean" }, { "default": "", "name": "B", "options": [], "type": "boolean" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "(({A}) || ({B}))", "shape": "boolean", "text": "%1 or %2" }, "operator_random": { "args": [ { "default": "1", "name": "FROM", "options": [], "type": "number" }, { "default": "10", "name": "TO", "options": [], "type": "number" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "__bb.randomInt({FROM}, {TO})", "shape": "reporter", "text": "pick random %1 to %2" }, "operator_round": { "args": [ { "default": "", "name": "A", "options": [], "type": "number" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "Math.round(__bb.toNum({A}))", "shape": "reporter", "text": "round %1" }, "operator_subtract": { "args": [ { "default": "", "name": "A", "options": [], "type": "number" }, { "default": "", "name": "B", "options": [], "type": "number" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "(__bb.toNum({A}) - __bb.toNum({B}))", "shape": "reporter", "text": "%1 - %2" }, "operator_trim": { "args": [ { "default": " hi ", "name": "TEXT", "options": [], "type": "string" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr({TEXT}).trim()", "shape": "reporter", "text": "trim %1" }, "operator_uppercase": { "args": [ { "default": "hello", "name": "TEXT", "options": [], "type": "string" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr({TEXT}).toUpperCase()", "shape": "reporter", "text": "uppercase %1" }, "operator_word_of": { "args": [ { "default": "1", "name": "N", "options": [], "type": "number" }, { "default": "a b c", "name": "TEXT", "options": [], "type": "string" }, { "default": " ", "name": "SEP", "options": [], "type": "string" } ], "category": "operators", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr((__bb.toStr({TEXT}).split(__bb.toStr({SEP})))[__bb.toNum({N}) - 1])", "shape": "reporter", "text": "word %1 of %2 split by %3" }, "sensing_current": { "args": [ { "default": "hour", "name": "WHAT", "options": [ "year", "month", "date", "dayofweek", "hour", "minute", "second", "timestamp" ], "type": "dropdown" } ], "category": "sensing", "event": "", "guard": "", "is_expression": true, "js": "__bb.nowPart({WHAT})", "shape": "reporter", "text": "current %1" }, "sensing_fetch": { "args": [ { "default": "https://example.com", "name": "URL", "options": [], "type": "string" } ], "category": "sensing", "event": "", "guard": "", "is_expression": true, "js": "await __bb.fetchText({URL})", "shape": "reporter", "text": "text from url %1" }, "sensing_json": { "args": [ { "default": "data.name", "name": "PATH", "options": [], "type": "string" }, { "default": "", "name": "JSON", "options": [], "type": "string" } ], "category": "sensing", "event": "", "guard": "", "is_expression": true, "js": "__bb.jsonPath({JSON}, {PATH})", "shape": "reporter", "text": "value %1 of json %2" }, "server_bot_name": { "args": [], "category": "server", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr(client.user?.username)", "shape": "reporter", "text": "my bot name" }, "server_channel_name": { "args": [], "category": "server", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr(__ctx.channel?.name)", "shape": "reporter", "text": "channel name" }, "server_id": { "args": [], "category": "server", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr(__ctx.server?.id)", "shape": "reporter", "text": "server id" }, "server_member_count": { "args": [], "category": "server", "event": "", "guard": "", "is_expression": true, "js": "((__ctx.server?.members?.cache?.size) ?? 0)", "shape": "reporter", "text": "member count" }, "server_name": { "args": [], "category": "server", "event": "", "guard": "", "is_expression": true, "js": "__bb.toStr(__ctx.server?.name)", "shape": "reporter", "text": "server name" } }, "format": 1, "generated_by": "app/tools/export_catalog.gd" }