Changelog

2023

June

  • Fixed custom images not always being displayed
  • Allowed for empty string values in $jsonSetString[]
  • Added $jsonArraySort[]
  • Added $jsonArrayReverse[]
  • JSON Array function now can interact with JSON root
  • Emoji argument now allows for emoji aliases
  • Added $nodeVersion[]
  • Added $removeEmoji[]
  • Added $addMessageReactions[]
  • Fixed $nickname[] to work with the new Discord username system
  • Added $displayName[]
  • Added $userBadges[]
  • Added $userBannerColor[]

May

  • Fixed $min[] and $max[] not working with floats

April

  • Fixed caching timeout information

March

  • Fixed callbacks not always getting detected
  • Fixed JSON functions inability to correctly return an object
  • Fixed $jsonArrayPop[] and $jsonArrayShift[] only working once on an array
  • Fixed a bug where $jsonArrayPop[] and $jsonArrayShift[] would stop execution when trying to operate on an empty array
  • Fixed $round[] adding trailing zeros
  • Added $removeAllComponents

February

  • Fixed caching issues for leaderboards
  • Added $jsonArrayShift[]
  • Added $jsonArrayUnshift[]
  • Added $jsonArrayPop[]
  • Added $jsonJoinArray[]

January

  • Added $jsonParse[]
  • Added $jsonClear
  • Added $jsonStringify
  • Added $jsonPretty[]
  • Added $json[]
  • Added $jsonExists[]
  • Added $jsonSet[]
  • Added $jsonArray[]
  • Added $jsonArrayAppend[]
  • Added $jsonArrayCount[]
  • Added $jsonUnset[]
  • Added $disableInnerSpaceRemoval
  • Fixed big numbers not working in leaderboard functions
  • Added Emoji argument type
  • Added $isTicket[]
  • Added $userBanner[]
  • Added $randomGuildID
  • Added $randomRoleID[]
  • Added $randomCategoryID[]
  • Added $channelNames[]
  • Added $categoryChannels[]
  • Fixed $allowUserMentions[] not working on slash commands
  • Fixed $addTextInput[] not working with empty values
  • Added $jsonSetString[]
  • Added $jsonArrayIndex[]

2022

December

  • Added limit on input numbers to 2128 on the basic math functions
  • Fixed BDScript 2 having problems with handling unicode characters
  • Fixed $stop causing undefined behaviour
  • Added $getBanReason[]
  • Fixed caching issues for the text splitting functions
  • Fixed issues with custom images

November

  • Deprecated $userJoinedDiscord[] in favor of $creationDate[]
  • Added Format argument to $creationDate[]
  • Added $editSplitText[]
  • Added $serverEmojis[]
  • Added $setChannelVar[]
  • Added $getChannelVar[]
  • Added $resetChannelVar[]
  • Added channel option to $variablesCount[]
  • Fixed BDScript 2's escaping not working in some cases

October

  • Added $publishMessage[]
  • Made $useChannel[] work with message components
  • Added $channelPosition[]
  • Added $categoryID
  • Added $varExists[]
  • Added $boostCount
  • Added $categoryCount
  • Added $isTimedOut[]
  • Added stage and forum channel types to $createChannel[]
  • Added stage, announcement, and forum channel types to $channelType[]
  • $enableDecimals[] now works with $calculate[]
  • Added $getCustomStatus[]
  • Added $httpStatus
  • Added $httpGetHeader[]
  • Added $botOwnerID
  • Added $repliedMessageID
  • Fixed the guild list fetching issue
  • Added $parentID

September

  • Added channelID field to $awaitFunc[]
  • Added $trimContent
  • Fixed fetching guilds not always working in the app
  • Added $slashID
  • Fixed slash command reordering
  • Added intent autodetection
  • Added globaluser option to $variablesCount[]
  • Added support for big numbers in the math functions
  • Added new text tutorial
  • Fixed $checkUserPerms[] ignoring channel permissions
  • Fixed $addReactions[] not working on slash commands
  • Fixed Ticket number argument not working in $newTicket[]
  • Fixed $httpAddHeader[]
  • Fixed some callbacks not being detected as callbacks
  • Fixed attachments not working in slash commands

August

  • Added $scriptLanguage
  • Fixed $stop breaking $if[]
  • Renamed $customImage[] argument to Custom image tag
  • Added $hypesquad[]
  • Added $dmChannelID[]
  • Fixed the app's max choices limit
  • Fixed $registerGuildCommands[] removing previously registered commands
  • Fixed $reply not working in DMs
  • Made it possible to return milliseconds and nanoseconds in $getTimestamp[]
  • Fixed $addTextInput[] not verifying max length
  • Fixed $url[] returning an error when no input was provided
  • Added $userServerAvatar[]
  • Fixed $cropText[] not supporting unicode
  • Not putting required slash command options on top no longer breaks the commands

July

  • Added hex to the color picker
  • Fixed $executionTime not working inside embed fields
  • App now sends notification when bot hosting is expired
  • Added $sendNotification[] for premium bots
  • Made it possible to use only one option in a select menu
  • Fixed $editChannelPerms[]
  • Fixed verification of slash command names
  • Fixed $sort not working with -1 as return amount

June

  • Fixed $onlyBotChannelPerms[]
  • Fixed description verification in $addSelectMenuOption[] and $editSelectMenuOption[]
  • Updated limits of select menu options
  • Fixed updating components which are refering to $messageID

May

  • Fixed token issues
  • Fixed disappearing slash command options
  • AllowedMentions field is now used in $channelSendMessage[], $sendEmbedMessage[] and $sendMessage[]
  • Fixed black screen after bot creation
  • Fixed in-app tutorial
  • Fixed escaping response in interactions
  • Fixed cooldown error messages
  • Fixed empty values in variables not getting saved
  • Fixed userID being ignored when guildID is passed to $getUserVar[]

April

  • Added "return ID of the ticket message" argument to $newTicket[]
  • Fixed disappearing slash commands from the app's state

March

  • Added $toTitleCase[]
  • Fixed invite permission calculator
  • Fixed $suppressErrors[] and $embedSuppressErrors[] getting ignored by components errors
  • Fixed updating some components
  • Added $registerGuildCommands[]
  • Added $unregisterGuildCommands[]
  • Added /callback_list, /callback_tag_list, and /callback/:callback_tag endpoints to public BDFD API

February

  • $httpResult[] can return JSON now
  • Fixed $httpResult[] not working with multiple requests
  • Saving a command in the webapp no longer restarts the bots
  • Optimized slash commands resynchronization
  • Fixed custom images not working after saving a command
  • Made it possible to escape \ by using \\
  • Removed user permission check for $ban[], $banID[], $unban[] and $unbanID[]
  • Added $newModal[]
  • Added $addTextInput[]
  • Added $input[]
  • Deprecated $channelIDFromName[], use $channelID[] instead
  • Added $onlyForCategories[]
  • Fixed $modifyChannelPerms[] ignoring last permission
  • Added $onAutoComplete[] callback
  • Added $autoCompleteOptionName
  • Added $autoCompleteOptionValue
  • Added $appendOptionSuggestion[]

January

  • Added $unescape[]
  • Added a neutral permission (/<perm>) to $modifyChannelPerms[]
  • Added stop bot button in the app
  • Added restart bot button in the app
  • Added $editChannelPerms[] (replacement for the deprecated $modifyChannelPerms[])
  • Added $roleGrant[] (replacement for the deprecated $giveRole[] and $takeRole[])
  • Fixed component functions inside $async[] scope
  • Increased the limit of http functions in one command to 5
  • Fixed $userPerms[]
  • Fixed some bugs regarding math commands
  • Added public BDFD API
  • Added $serverDescription[]

2021

December

  • Saving a command no longer causes the bot to restart
  • Fixed $noMentionMessage[] in BDScript 2
  • Added $timeout[] and $untimeout[]
  • $mute[] and $unmute[] has been marked as deprecated
  • Added guildID argument to $getUserVar[] and $setUserVar[]
  • Fixed the issue with some bots not starting with invalid intents enabled
  • Fixed the role cache
  • Slash command's option description is now required
  • Added $shardID[]
  • Added sharding
  • Improved interaction handling
  • Added $defer
  • Fixed getting invites
  • Added debug information inside the app for translators
  • Fixed $serverNames
  • Added % (modulo) to $calculate[]
  • Fixed removing custom images
  • Added missing permissions
  • Fixed unintentional server restarts
  • The last argument in $replaceText[] is now optional

November

  • Added $reply[]
  • Added $trimSpace[]
  • Added $url[]
  • Upgraded the database
  • Sped up the node starting time
  • Added $botCommands[]
  • Added $unpinMessage[]
  • Added $pinMessage[]
  • Fixed $isUserDMEnabled[] not returning false in some cases
  • $addReactions[] now works in slash commands
  • $dm[] now can dm to more than one mention and can be used multiple times
  • $dm now can be used with $dm[]
  • $random[] now can use decimals
  • Added $'randomChannelID (BDScript Unstable only)
  • Fixed $textSplit[] removing space

October

  • Added $deleteMessage[]
  • Added $hostingExpireTime[]
  • Added timestamp option to $premiumExpireTime
  • Fixed $isUserDMEnabled[]
  • Fixed image parameter in $sendEmbedMessage[] and $webhookSend[]
  • Fixed caching issue for $serverIcon
  • Made it possible to use empty labels in the buttons
  • New UI
  • Added search bar in the variables section
  • Made it possible to use https://youtu.be/ URL in the streaming statuses
  • Added $getTextSplitIndex[]
  • Added $serverChannelExists[]
  • Fixed $changeUsername[] and $changeUsernameWithID[] not working on the current bot
  • Made $ephemeral work with the buttons
  • Fixed global variables not getting saved
  • Fixed $deletecommand not getting catched by $try block
  • Made it possible to open function's wiki article from the functions list

September

  • Updated ToS
  • Fixed $executionTime not working in embeds
  • Added $botNode
  • Added $isBanned[]
  • Fixed a problem with $charCount[] having problems with unicode
  • Added $channelType[]
  • Added $async[] block function and $endasync
  • Added $await[]
  • Added $sort[]
  • Added $userPerms[]
  • Added $serverNames[]
  • Improved variables lookup time

August

  • Added $webhookTitle[]
  • Added $webhookDescription[]
  • Added $webhookFooter[]
  • Added $webhookContent[]
  • Added $webhookUsername[]
  • Added $webhookAvatarURL[]
  • Added $webhookCreate[]
  • Removed permission check from $deleteChannelsByName[]
  • Removed permission check from $deleteChannels[]
  • Removed permission check from $createChannel[]
  • Fixed the issue with bots not working in threads
  • Added $startThread[]
  • Added $webhookColor[]
  • Fixed optional field in $getServerVar[]
  • Fixed floating points in $onlyIf[] conditions
  • Added $webhookDelete[]
  • Added $webhookSend[]
  • Removed permission check from $modifyChannelPerms[]
  • Made it possible to use multiple $onInteraction[]s
  • Added $onInteraction callback (without [])
  • Added $customID
  • Made it possible to use different scripting languages in callbacks
  • Added $editThread[]
  • Added $threadAddMember[]
  • Added $threadRemoveMember[]
  • Added $getEmbedData[]
  • Made it possible to use block functions ($if[], $try, etc.) inside function arguments in BDScript 2
  • Fixed preprocessor failures in some corner cases in BDScript 2
  • Fixed a bug with block-functions adding extra new line in BDScript 2
  • Fixed and optimised $setVar[]
  • Added $sendEmbedMessage[]
  • Fixed condition parsing in $if[] for the normal BDScript and BDScript Unstable (BDScript 2 didn't have any issues)
  • Made command saving faster

July

  • Added $getTimestamp
  • Added support for decimals in the math functions
  • Added $newSelectMenu[]
  • Added $addSelectMenuOption[]
  • Added $editSelectMenu[]
  • Added $editSelectMenuOption[]
  • Added $removeComponent[]
  • Added $calculate[]
  • Added $round[]
  • Added $enableDecimals[]
  • Added $nickname
  • Added row and column information in BDScript 2 errors
  • Fixed an issue with BDScript 2 not requiring ]
  • Adjusted the optimizer in BDScript 2
  • Added $onlyForRoleIDs[]
  • Added $getCooldown[]
  • Fixed problems with ] in some functions
  • Fixed component functions inside $eval[] function
  • Fixed minor bugs inside BDScript 2 parser
  • Fixed author ID not showing up in $mentioned[..;yes]
  • Fixed $serverNames which removed two last characters
  • Fixed $addTimestamp[] when used for multiple embeds
  • Added limits for the $round[] function (max decimal place)
  • Added $and[]
  • Added $or[]
  • Added $allowRoleMentions[]
  • Added $allowUserMentions[]
  • Added $guildExists[]
  • Fixed $serverVerificationLvl

June

  • Fixed $sendMessage[] not working in normal BDScript
  • Fixed $checkUserPerms[]
  • Added BDScript 2 script language
  • Added to BDScript 2
    • $try, $catch and $error
    • $eval[]
    • $optOff[]
    • $stop[]
    • $var[]
  • Added customizable code highlighting
  • Fixed $lowestRole and $highestRole
  • Added $isBoolean[]
  • Made it possible to add 5 buttons per row
  • Added optional field return type to $getLeaderboardValue[]
  • Added $deleteRole[]
  • Added $ephemeral
  • Added $elseif[] to BDScript 2
  • Fixed URL in buttons
  • Fixed buttons in DMs
  • Fixed problems with custom prefixes
  • Added $getUserStatus[]
  • Added $min[]
  • Added $max[]
  • Fixed $customEmoji[]
  • Made it possible to edit embeds in $editMessage[]
  • Added support for multiple embeds
  • Added $httpAddHeader[]
  • Added $httpRemoveHeader[]

May

  • Fixed a bug which allowed executing certain types of callbacks as normal commands
  • Fixed member caching issue
  • Fixed caching bots
  • Fixed changing tokens in the webapp
  • Fixed $isUserDMEnabled[]
  • Added $addButton[]
  • Added $editButton[]
  • Added $removeButtons and $removeButtons[]
  • Added $onInteraction[] callback
  • Fixed some issues with slash commands
  • Added $c[]

April

  • Added $httpGet[], $httpPost[], $httpPut[], $httpDelete[] and $httpPatch[]
  • Improved overall caching
  • Added $httpResult[]
  • Made command execution faster

March

  • Added $cropText[]
  • Added userID field to $awaitFunc[]
  • Fixed removing normal commands and slash commands
  • Added $removeLinks[]
  • Made returning authorID optional in $findUser[]
  • Added $slowmode[]
  • Added $checkUserPerms[]
  • Added $isNSFW[]
  • Fixed setting NSFW in $modifyChannel[]
  • Fixed $userJoined[] and $userJoinedDiscord[]
  • Added $editMessage[]
  • Fixed caching for new members.
  • Added $slashCommandsCount
  • Added $botID
  • Added more permissions
    • AttachFiles
    • TTS
    • ManageWebhooks
    • EmbedLinks
    • ExternalEmojis
  • Added $serverCooldown[]
  • Fixed an issue with not expiring app bans
  • Fixed some issues with [ and ]
  • Fixed problems with slash commands and cooldowns

February

  • Added $sendMessage[]
  • Added $reply
  • Added slash commands
  • Fixed mentions in $findChannel[]
  • Improved performance in the command interpreter
  • Optimized reaction handlers
  • Added $isSlash
  • Added new optional field to $message[]
  • Fixed semicolons in $channelSendMessage[]

January

  • Fixed a problem with statuses not showing up
  • Fixed an issue with mentions not working
  • Fixed loading bots from database
  • Increased duration to 40 minutes for $deleteIn[], $editIn[], $editEmbedIn[], $replyIn[]
  • Added if statements ($if[], $else, $endif)
  • GuildID is now returned instead of everyone in $lowestRole[] and $highestRole[]
  • Space commands have been removed (you can still use $alwaysReply)
  • Added $channelTopic[]
  • Fixed issues with streaming status
  • Fixed the issue with tags/discriminators not working for $userID[] and $findUser[]
  • Added $findChannel[] and $channelExists[]
  • Added $userJoined[] and $userJoinedDiscord[]

2020

December

  • Timezones in $time[] has been fixed
  • Updated Discord API version
  • Added Competing presence
  • Added $botLeave[]
  • Fix for $getLeaderboardValue[]
  • Added userID option to $resetUserVar
  • Added serverID option to $serverOwner
  • Added $premiumExpireTime

November

  • Fixed disappearing bot status
  • Fixed $serverCount in bot status
  • Improved caching
  • Functions that require privileged intents are now marked accordingly
  • Added $getLeaderboardValue[]
  • Added $awaitReactions[]
  • Awaited commands are now available for everyone
  • Added awaited reactions
  • Fixed problems with DMs

October

  • Optimized memory usage
  • Added member and presence intents
  • Added $editEmbedIn[]
  • Added serverID field to server variables
  • Allowed using awaited functions in awaited commands
  • Fixed leaderboards
  • Fixed $randomMention, $randomUser and $randomUserID
  • Added $awaitReactions[] for premium bots
  • Added $usedEmoji
  • $deletecommand sends an error now
  • Fixed $serverVerificationLvl not working on very high verification servers
  • Fixed reconnecting bots to gateway

September

  • Added $ignoreTriggerCase for premium bots
  • Fixed caching guilds
  • $findUser[] & $findRole[] are no longer case sensitive
  • $findUser[] returns authorID if no user found
  • Added awaited commands for premium bots
  • Fixed weird brackets in embeds
  • Added trigger list in the app

August

  • Migrated to the new infrastructure (new database and API)
  • Premium released
  • Fixed $isMentionable[]
  • Fixed $isHoisted[]
  • Added $removeSplitTextElement[]
  • $userAvatar[] no longer stops code execution
  • Fixed $argCount[]
  • Added $findUser[]
  • Added $findRole[]
  • Added $disableSpecialEscaping

July

  • Renamed $splitText[] to $getSplitText[] to avoid confusion ($splitText[] still works)
  • Added $joinSplitText[]
  • Added $getInviteInfo[]
  • Added $guildID[]
  • Fixed $numberSeparator[] in the bot's status
  • $roleID[] and $channelID[] no longer stop code execution
  • Enabled BDScript Unstable for callbacks
  • Added $getTextSplitLength

June

  • Fixed $getReactions[] in BDScript Unstable
  • Fixed bracket escaping for some commands in BDScript Unstable
  • Fixed $modifyChannel[] (random slowmodes added on channels)

May

  • Fixed $onlyBotPerms[]
  • Bot Designer List Open Beta
  • Added $botListDescription[] and $botListHide
  • Fixed brackets issue in $serverNames
  • Other bug fixing for Bot Designer and Bot Designer List

April

  • Fixed $serverIcon
  • Added $changeCooldownTime[]
  • Disabled $randomUserID, $'randomUserID, $deleteIn and $dm in $onMessageDelete
  • Fixed $addField[]
  • Added error message in $getServerVar[] when provided variable does not exist
  • Fixed $userID[] to not stop code execution, if user is not found
  • Added $botLeave
  • Removed permission check from $clear command.
  • Fixed $isAdmin[]

March

  • Added $getReactions[] and $userReacted[]
  • New command interpreter
  • Added to new parser:
    • $'random[] and $'random
    • $'randomText[]
    • $'randomUser
    • $'randomMention
    • $'randomUserID
    • $'randomString[]
  • Fixed brackets in $getMessage[]
  • Changed behaviour of $onlyPerms[] command
  • Added $charCount[]
  • Added $clearReactions[]
  • Added new options to $getMessage[]
  • Fixed adding slowmode when using $modifyChannel[]
  • Added $checkContains[]
  • Added $addEmoji[]
  • Fixed the bug with $ command prefix and $noMentionMessage
  • Added $unbanID[]
  • Added $hasRole[]
  • Optimized the leaderboard commands
  • Fixed permissions in some commands
  • Fixed $onlyPerms[]
  • Fixed the bug with $ command prefix and $message

February

  • Fixed errors in $addField
  • Added $serverRegion
  • Added $serverOwner
  • Added $emoteCount
  • Added $isMentionable[]
  • Added $isHoisted[]
  • Added $serverIcon[]
  • Fixed suppressing errors in some variable commands
  • Fixed bug with $replaceText[] inside $description
  • Added $isValidHex[]
  • Added $isAdmin[]
  • $userID[] does not require discriminator now
  • Added $serverVerificationLvl
  • Fixed stopping command when $changeUsernameWithID[] or $changeUsername[] throws an exception
  • Added $modifyRolePerms[]
  • Added $isUserDMEnabled[]
  • Added new option to $mentioned[]
  • When userID is not provided in $discriminator[], the author's ID will be used
  • Added $argCount[]
  • Added $roleExists[] and $roleExists[]
  • Added $varExistError[]
  • Removed permissions check for $kick[] function
  • Fixed brackets issue in $message and $noMentionMessage
  • Fixed $globalUserLeaderboard[]
  • $repeatMessage[] won't send an error when there is 0 provided

January

  • Final premium preparations
  • Space commands for premium bots
  • Added sendChannelMessage() to JS
  • Added $isNumber[]
  • Better description for $replaceText[]
  • Removed # from $getRoleColor[]
  • Added possibility of adding custom error message to $suppressErrors[]
  • Added $embedSuppressErrors[]
  • Added $getServerVar[] in command's name for premium bots
  • Added custom separators to $numberSeparator[]
  • Fixed issue with + and - in $numberSeparator[]
  • iOS release
  • Added $isBot[]
  • Added userID option to $takeRole[]
  • Fixed problems with timezones
  • @everyone role shows up now when it's a highest/lowest role in $highestRole/$lowestRole
  • @everyone role now works in $rolePosition[]
  • Added multi-line support for $replaceText[]
  • Fixed no errors in $roleID[]
  • Added $toUppercase[] and $toLowercase[]
  • Added roleID and userID to $modifyChannelPerms[]
  • Added $authorOfMessage[]
  • Added $userID[]
  • Improved servers response time by over 10x
  • Fixed issues with $setServerVar[] and $setUserVar[]
  • Added multi-line support for $textSplit[]
  • Fixed brackets in $username

2019

December

  • Fixed high ping issues
  • Fixed whole bunch of other issues
  • Added to JS:
    • authorId,
    • channelId,
    • userMentions,
    • roleMentions,
    • unban(),
    • takeRole(),
    • giveRole(),
    • channelTyping(),
    • createChannel(),
    • removeChannel(),
    • unpinMessage(),
    • banWithReason(),
    • kickWithReason(),
    • removeRole(),
    • createRole()
  • Created status website https://status.botdesignerdiscord.com
  • Web version of Bot Designer for Discord has been moved to new address https://botdesignerdiscord.com
  • Fixed some issues in web version
  • Fixed $banID[]
  • Preparations for premium points

November

  • Added $rolePosition[]
  • Released translation strings to volunteers
  • Added kick() and ban() to JS
  • Released new stable version