Changelog
Redbot 3.5.24 (2026-03-06)
Read before updating
The 3.5.23 changelog's “Read before updating” section has been updated with further information about Red’s Audio cog no longer supporting Java 11. If you use the Audio cog, please read that section again. Note that Red 3.5.24 supports Java 21 in addition to Java 17 as well.
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.5.24 uses a new Lavalink jar that you will need to manually update from our GitHub.
Note that Lavalink now requires Java 17 or newer.
End-user changelog
Changes
Core - The bot will no longer wait for the update check to finish before finishing the bot startup (#6687)
Core - Command-line Interfaces - Added new
--no-debug/--no-verboseflag allowing to reset the verbosity level set by the-v/--verbose/--debugflags used earlier in the argument list (#6680)Cogs - Audio - The cog can now be used with Java 21 (#6681)
Fixes
❤️ Cogs - Audio - Fixed issues with the cog not working on Linux aarch64 systems with a 16k page size kernel (as seen on Raspberry Pi OS ran on Raspberry Pi 5) (#6683, #6688)
Cogs - Audio - The cog will now correctly error about Java 11 being unsupported instead of trying to redownload Lavalink.jar repeatedly a few times (#6681)
Documentation changes
Updated the Audio cog documentation, command help, and errors to reflect that Java 11 is no longer supported
Updated the 3.5.23 changelog to include information about Java 11 no longer being supported
Redbot 3.5.23 (2026-03-04)
Read before updating
Red’s Audio cog now requires Java 17 to be present on the system. Java 11 is no longer supported.
All of the install guides for the systems that we currently support already provided instructions to install Java 17, so if you installed Red somewhat recently, you should already be set.
If you see an error about using the wrong Java version, you can install the right Java version by following the “Installing the pre-requirements” section of our install guide for your operating system.
We are planning to remove support for Red on systems using the armv7l architecture in Red 3.6.0. The support for other architectures (x86-64 and aarch64) will remain unchanged per our existing End-user Guarantees.
If you have any concerns regarding this, please reach out to us on our discord server.
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.5.23 uses a new Lavalink jar that you will need to manually update from our GitHub.
Note that Lavalink now requires Java 17 or newer.
We’ve updated our default application.yml file and you should update your instance’s
application.ymlaccordingly.More specifically, we bumped the version of YT source plugin. Download Red 3.5.23’s default application.yml file
Following operating systems are no longer supported as they have already reached their end of life:
macOS 13 (Ventura)
Fedora 41
Raspberry Pi OS (Legacy) 11
End-user changelog
Additions
Changes
Core - Dependencies - Red’s dependencies have been bumped (#6666)
❤️ Cogs - Audio - The cog has been updated to support Discord’s new end-to-end encryption protocol - DAVE (#6665)
Cogs - Warnings - Added a new
[p]warningset mywarnings sendtodmssetting that determines whether the output of[p]mywarningsshould be sent in user’s DMs or in the current channel (#6641, #6673)
Removals
Fixes
❤️ Core - Fixed the bot’s commands not working when the bot was installed as a user app (#6501, #6503)
Core - Fixed the bot’s fuzzy command help not ignoring users that are on the bot’s blocklist (#6482, #6594)
Core - Fixed the bot process hanging for indefinite time when trying to shutdown from an unhandled exception (#5780, #6659)
Core - Bot Commands - Fixed the modal in the
[p]set apicommand failing to submit (#6626)Core - Bot Commands - Fixed the
[p]tracebackcommand not being able to send long tracebacks in DMs (#6656)❤️ Cogs - Audio - Fixed a bunch of YT playback issues (#6665)
Cogs - General - Fixed the
[p]serverinfo 1command failing when the server’s feature list is too long (#6636, #6652)Cogs - Streams - The cog will now check that the bot has necessary permissions before sending stream alert messages (#4967)
Cogs - Warnings - Fixed the bot revealing a moderator that warned the user in the output of
[p]mywarningscommand when the[p]warningset showmoderatorsetting is disabled (#6641, #6673)
Developer changelog
Changes
❤️ Core - Dependencies - Bumped
discord.pyto version 2.7.1 (#6664)
Fixes
Core - Bot Class - Fixed a regression in the
Red.send_interactive()method causing it to not work withdiscord.Memberanddiscord.Userobjects (#6656)
Documentation changes
Added Backing Up and Restoring Red document (#3421, #6654)
Updated the Creating a bot account according to changes in Discord Developer Portal’s interface (#6647)
Redbot 3.5.22 (2025-09-05)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
We’ve updated our default application.yml file and you should update your instance’s
application.ymlaccordingly. More specifically, we updated YT client options to fix a few regressions introduced by changes in 3.5.21. Download Red 3.5.22’s default application.yml file
End-user changelog
Fixes
Developer changelog
Changes
Redbot 3.5.21 (2025-08-26)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
We’ve updated our default application.yml file and you should update your instance’s
application.ymlaccordingly. More specifically, we bumped the version of YT source plugin and updated its client options. Download Red 3.5.21’s default application.yml fileFollowing operating systems are no longer supported as they have already reached their end of life:
Ubuntu 20.04 LTS
versions of RHEL/Alma Linux/Oracle Linux/Rocky Linux 8 older than 8.10
versions of RHEL/Alma Linux/Oracle Linux/Rocky Linux 9 older than 9.4
End-user changelog
Additions
❤️ Cogs - Mod - The DM message (
[p]modset dm) sent by cog’s ban commands can now include customizable extra field (#6593)This feature can, for example, be useful for providing the banned user with information about the ban appeal process.
To configure it, look at the subcommands listed in the help text of the
[p]modset dmcommand.
Changes
Core - The application (slash) commands will now use the server’s configured language rather than the bot’s global language, same as regular text commands (#6272, #6579)
Core - The option to request a
filewill no longer be provided in interactively sent messages when the bot does not actually have the permission to send files in the current channel (#6540, #6552)Core - Command-line Interfaces - Red’s error logging will now use standard traceback formatting by default as the Rich tracebacks (previously default) proved to be impractical when providing support to users and affected performance (#6576)
If you want to continue using Rich tracebacks, you can pass the new
--rich-tracebacksflag when starting Red.
Core - Dependencies - Red’s dependencies have been bumped (#6599)
Removals
Core - OS Support - Ubuntu 20.04 LTS is no longer supported as it has already reached its end of life (#6598)
Core - OS Support - Versions of RHEL/Alma Linux/Oracle Linux/Rocky Linux 8 older than 8.10 are no longer supported as they have already reached their end of life (#6598)
Core - OS Support - Versions of RHEL/Alma Linux/Oracle Linux/Rocky Linux 9 older than 9.4 are no longer supported as they have already reached their end of life (#6598)
Fixes
❤️ Cogs - Alias - Fixed some of the issues with handling of quoted command arguments when using command aliases (#6582)
❤️ Cogs - Audio - Fixed recent YT playback issues (#6602)
Cogs - Audio - Fixed YT client configuration (#6601)
Cogs - Mod - Fixed formatting of the
[p]namescommand (#6538)Cogs - Reports - Fixed the
[p]reportcommand not working properly when invoked from a DM context (#6573)
Developer changelog
Changes
❤️ Core - Dependencies - Bumped
discord.pyto version 2.6.2 (#6597)
Fixes
Documentation changes
Refreshed the About (privileged) intents and public bots document with descriptions of how the intents are used in Red, our stance on public bots, and replaced some of the historical details with more up-to-date information (#6578)
Added more code examples to the Internationalization Framework document, including common pitfalls and an example of how to apply proper locale in non-command contexts (#6595)
Expanded the tutorial about creating translation catalogs for 3rd-party cogs in the Internationalization Framework document (#6595)
Added example of
Group.all()method’s usage to the tutorial in the Config document (#6295, #6550)Added a tip about the
[botname]placeholder in the Publishing cogs for Red V3 document (#6539)
Redbot 3.5.20 (2025-05-03)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
We’ve updated our default application.yml file and you should update your instance’s
application.ymlaccordingly. More specifically, we bumped the version of YT source plugin. Download Red 3.5.20’s default application.yml file
End-user changelog
Changes
Core - Dependencies - Red’s dependencies have been bumped (#6568)
Fixes
Redbot 3.5.19 (2025-04-27)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
We’ve updated our default application.yml file and you should update your instance’s
application.ymlaccordingly. More specifically, we bumped the version of YT source plugin. Download Red 3.5.19’s default application.yml fileFedora 40 is no longer supported as it will soon reach its end of life. Fedora install instructions have been updated with support for Fedora 42.
End-user changelog
Changes
Fixes
❤️ Cogs - Audio - Fixed recent YT playback issues (#6557)
Documentation changes
Changes
Updated Fedora install instructions to work with Fedora 42 (#6558)
Redbot 3.5.18 (2025-03-26)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
We’ve updated our default application.yml file and you should update your instance’s
application.ymlaccordingly. More specifically, we bumped the version of YT source plugin. Download Red 3.5.18’s default application.yml file
End-user changelog
Changes
Core - Dependencies - Red’s dependencies have been bumped (#6543)
Fixes
❤️ Cogs - Audio - Fixed recent YT playback issues (#6542)
Redbot 3.5.17 (2025-03-08)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
We’ve updated our default application.yml file and you should update your instance’s
application.ymlaccordingly. More specifically, we bumped the version of YT source plugin. Download Red 3.5.17’s default application.yml file
End-user changelog
Changes
Core - Dependencies - Red’s dependencies have been bumped (#6529, #6531)
Cogs - Cleanup - The
[p]cleanup duplicatescommand now considers more information about the message when determining if it’s a duplicate. Notably, messages with polls are ignored and equivalent messages replying to different messages are now not considered duplicates (#6529)Cogs - Filter - The cog now checks forwarded messages for filtered words (#6529)
Fixes
Developer changelog
Changes
Redbot 3.5.16 (2025-02-06)
This is a hotfix release changing our implementation to prevent crash at startup when invalid value of global locale/regional format configuration is encountered. We have seen a few reports of this occurring and we believe that this was caused by some 3rd-party cog(s) passing invalid values to Red <3.5 i18n APIs as those versions did not validate the input in some scenarios. During startup, Red will now simply log a warning, if it encounters incorrect global locale/regional format configuration and reset it to a known valid value.
Redbot 3.5.15 (2025-02-03)
Read before updating
openSUSE Leap 15.5 is no longer supported as it has already reached its end of life.
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
We’ve updated our default application.yml file and you should update your instance’s
application.ymlaccordingly. More specifically, we bumped the version of YT source plugin. Download Red 3.5.15’s default application.yml file
End-user changelog
Changes
Core - Dependencies - Red’s dependencies have been bumped (#6512)
Core - OS Support - openSUSE Leap 15.5 is no longer supported as it has already reached its end of life (#6512)
Cogs - Audio - The
[p]audioset logscommand can now be used in DMs (#6499)Cogs - Trivia - Lists - Added subnet masks in CIDR notations as answers to subnet-related questions in the
computerstrivia (#6495)
Fixes
Developer changelog
Changes
Core - i18n - Added
redbot.core.i18n.set_contextual_locale()andredbot.core.i18n.set_contextual_regional_format()functions (#6022)
Redbot 3.5.14 (2024-12-25)
Read before updating
Following operating systems are no longer supported as they have already reached their end of life:
Debian 11 (excluding Raspberry Pi OS 11)
Fedora 39
macOS 12 (Monterey)
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
We’ve updated our default application.yml file and you should update your instance’s
application.ymlaccordingly. More specifically, we bumped the version of YT source plugin. Download Red 3.5.14’s default application.yml file
End-user changelog
Additions
❤️ Cogs - Mod - Added new setting (
[p]modset requirereason) for enforcing reason to be filled in cog’s commands (#6477)
Changes
❤️ Core - Updated the output from help command to enable use of the new copy to clipboard feature on Discord code blocks to copy the command input (#6244)
Core - Updated ID parser used by some (core and 3rd-party) commands to reject IDs that are larger than a Discord ID (snowflake) can be (#6431, #6486)
❤️ Core - Bot Commands - The
[p]slash disablecogand[p]slash enablecogcommands can now be passed multiple cog names to disable/enable app commands from many cogs at the same time (#6001)Core - Dependencies - Red’s dependencies have been bumped (#6492)
Core - OS Support - Debian 11, Fedora 39, and macOS 12 (Monterey) are no longer supported as they have already reached end of life (#6492)
Core - OS Support - Ubuntu non-LTS version is currently considered unsupported due to lack of support for Python 3.12 from Red (#6492)
Cogs - Audio - The
[p]playcommand will now mention how the URL restrictions can be disabled, if they’re currently enabled (#6348)Cogs - Audio - The Lavalink download process now has a separate, larger, timeout than the timeout for startup of the Lavalink process (#6460, #6461)
Cogs - Downloader - Changed the format of the
[p]repo listcommand’s output to include repo links (#6284)❤️ Cogs - Warnings - The
[p]warncommand will now prompt whether to ban the user, if that user has already left the server by the time the command was called (#6445, #6481)Cogs - Trivia - Lists - Added variants of the answers without punctuation to the
harrypottertrivia list (#5889)
Fixes
Core - Fixed issues with permission handling for user-installable app commands (#6457)
Core - Bot Commands - Fixed uncaught error when running
[p]load localescommand (#4623)❤️ Cogs - Audio - Fixed various issues with YT playback resulting in “Something broke when playing the track” error (#6488, #6490)
Cogs - Trivia - Lists - Fixed typos in Golden Glove questions in the
worldcuptrivia list (#6441)
Developer changelog
Additions
❤️ Core - Bot Class - Added
Red.get_app_command_id()andRed.get_app_command_mention()methods for getting app command IDs/mentions from Red’s cache (#5976, #6278)Core - Utils Package - Added
hyperlink(),header(), andsubtext()chat formatting functions (#6102, #6444)❤️ Core - Utils Package - Added
redbot.core.utils.chat_formatting.rich_markup()function for generating Discord-compatible code blocks with ANSI formatting using a limited set of Rich markup (#5538)Cogs - Downloader - Downloader will now replace
[botname]in the install messages with the bot’s name, same as is done for command help messages (#6443)
Changes
Core - Utils Package - Added support for
SimpleMenuto customize the select options before sending (#6455, #6480)
Deprecations
Core - Utils Package - Deprecated
SimpleMenu.select_menuattribute (#6480)
Fixes
Core - Fixed the cooldown bypass (enabled by
[p]bypasscooldownscommand) not being respected by the[p]slash synccommand (#6465)Core - Commands Package - Updated
RawUserIdConverterto reject IDs that are larger than a Discord ID (snowflake) can be (#6431, #6486)
Redbot 3.5.13 (2024-08-27)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
We’ve updated our default application.yml file and you should update your instance’s
application.ymlaccordingly. More specifically, we bumped the version of YT source plugin. Download Red 3.5.13’s default application.yml file
End-user changelog
Changes
Core - Dependencies - Red’s dependencies have been bumped (#6436)
Fixes
Cogs - Audio - Updated Audio to support planned changes to Discord API scheduled for November (#6435)
Cogs - Audio - Fixed YT live stream detection (#6435)
Cogs - Audio - Fixed Red erroneously trying to send a message to a notification channel when one is not set (#6429)
Cogs - Trivia - Lists - Fixed spelling of Steven Spielberg’s first name in the
entertainmenttrivia list (#6434)
Redbot 3.5.12 (2024-08-08)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
We’ve updated our default application.yml file and you should update your instance’s
application.ymlaccordingly. More specifically, we bumped the version of YT source plugin. Download Red 3.5.12’s default application.yml file
End-user changelog
Fixes
Redbot 3.5.11 (2024-08-04)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
We’ve updated our default application.yml file and you should update your instance’s
application.ymlaccordingly. More specifically, we bumped the version of YT source plugin and added new plugin configuration. Download Red 3.5.11’s default application.yml file
End-user changelog
Changes
Fixes
Core - RPC - RPC is now forcefully shut down after 2 minutes, if it cannot shutdown gracefully (#6391, #6412)
❤️ Cogs - Audio - Fixed some of the recent YT playback issues (#6414, #6415)
Cogs - Mutes - Fixed the cog failing to unmute a user, if they were muted by someone who no longer has permissions to mute that user (#6376, #6411)
Cogs - Streams - Fixed the viewer count for Twitch streams (#6413)
Developer changelog
Additions
Core - App Commands Package - Added
app_commands.UserFeedbackCheckFailureexception allowing the cog creators to return non-default error message when the check fails (#6397)
Documentation changes
Changes
Updated instructions for installing the development version of Red in Creating cogs for Red V3 (#6408)
Updated the contents of the
red.plistfile in the Setting up auto-restart on Mac document to use no resource limitations, same as regular applications (#6416)
Redbot 3.5.10 (2024-07-10)
Read before updating
This release fixes a security issue in one of the APIs we provide for 3rd-party cog creators. See Security changelog below for more information.
Following operating systems are no longer supported as they have already reached their end of life:
CentOS 7
CentOS Stream 8
Fedora 38
versions of RHEL/Alma Linux/Oracle Linux/Rocky Linux 8 older than 8.8
versions of RHEL/Alma Linux/Oracle Linux/Rocky Linux 9 older than 9.2
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
We’ve updated our default application.yml file and you should update your instance’s
application.ymlaccordingly. More specifically, we switched from using the built-in YT source to YT source plugin. Download Red 3.5.10’s default application.yml file
End-user changelog
Security
Core - Fixed incorrect authorization in one of the utilities provided to 3rd-party cog creators (
commands.can_manage_channel()) resulting in anyone being authorized to run a command using it, if the command has no other permission controls. None of the core commands or core cogs are affected. The maintainers of the project are not aware of any public 3rd-party cog utilizing this API at the time of writing this changelog. Full security advisory can be found on our GitHub.
Additions
Changes
Core - Red’s
--team-members-are-ownersflag now only considers Team Owner, Admins, and Developers as bot owners (#6401)Core - Dependencies - Red’s dependencies have been bumped (#6402)
Cogs - Audio - Updated the cog to configure managed Lavalink node to use YT source plugin instead of the built-in, no longer supported, implementation (#6373)
Cogs - Filter - The cog now checks poll contents and attachment alt text for filtered words (#6401)
Fixes
Developer changelog
Changes
❤️ Core - Dependencies - Bumped
discord.pyto version 2.4.0 (#6401)
Documentation changes
Additions
Added Ubuntu 24.04 install guide (#6364)
Changes
Removals
Removed all mentions of pyenv now that the last OS using it (CentOS 7) is no longer supported (#6386)
Fixes
Fixed Java instructions in macOS install guide (#6368)
Fixed list of required
info.jsonkeys from the Becoming an Approved Cog Creator document (#6382)
Redbot 3.5.9 (2024-04-21)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.5.9 uses a new Lavalink jar that you will need to manually update from our GitHub.
End-user changelog
Fixes
Core - Fixed inaccuracies in error messages shown when the user passes a time duration outside accepted range (#6357)
Core - Commands that ask the user to “Type
moreto continue” when they return long output will now typically wait for 60 seconds rather than just 15 (#6346, #6352)❤️ Cogs - Audio - Resolved recent issues where the player would be stuck at 0:00 on some tracks (#6358)
Cogs - Mutes - The Mutes cog will no longer erroneously accept very large values (i.e. hundreds of years) for mute durations (#6353)
Cogs - Mutes - To avoid ambiguity, the Mutes cog will now parse the time only when it’s placed at the beginning, the end, or directly after
t=/time=prefix in the mute command arguments (#6274, #6349)Cogs - Streams - The schedule announcements for YT streams will now use relative Discord timestamps (#6257, #6264)
Developer changelog
Changes
Core - Commands Package - Functions and converters for parsing text into
datetime.timedeltaordateutil.relativedelta.relativedeltain theredbot.core.commands.converterpackage now support negative values whenminimumparameter is set accordingly (#6349)Core - Utils Package - The
redbot.core.utils.chat_formatting.humanize_timedelta()function now allows specifying the maximum number of different units that will be present in the final string with themaximum_unitsparameter (#6350)Core - Utils Package - The
redbot.core.utils.chat_formatting.humanize_timedelta()function now supports formatting negativedatetime.timedeltainstances. Newnegative_formatparameter was added to allow specifying a different way of formatting negativedatetime.timedeltainstances (#6350)
Documentation changes
Fixes
Updated links to the Lavalink repository (#6356)
Redbot 3.5.8 (2024-04-01)
Read before updating
Server-wide mutes in the Mutes cog can no longer be performed using channel permissions (overrides). Instead, the cog will now use Discord’s native server timeout functionality when a mute role is not set. Role mutes and channel-specific mutes are not affected.
Red 3.5.7 and lower allowed usage of channel permissions (overrides) for server-wide mutes when
[p]muteset forcerolesetting was explicitly disabled and no mute role was set for the server. This behavior is no longer available and now, when mute role is not set, server-wide mutes will be performed using Discord’s native server timeouts.If you were one of the few users that chose to use channel permissions (overrides) for server-wide mutes, please note that the existing server mutes will now be considered channel-specific mutes and can only be removed with
[p]channelunmute(and will be automatically removed after timeout elapses, if they have one set). If you want to quickly remove all channel-specific mutes (that were previously server-wide mutes) for a user, you can use the hidden[p]forceunmute <user>command that has been provided to ease the migration.Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.5.8 uses a new Lavalink jar that you will need to manually update from our GitHub.
End-user changelog
Additions
❤️ Cogs - Mutes - Added support for Discord’s native server timeouts. The cog will now use those when a mute role is not set or, when the new
[p]timeoutcommand is used (#5604)Cogs - Trivia - Trivia lists can now have a description as documented in Trivia List Creation Guide (#5897)
❤️ Cogs - Trivia - Added
[p]trivia infocommand for getting information about the specified Trivia list, including its setting overrides (#3978, #5897)
Changes
Core - Bot Commands - The
[p]addpathcommand will now detect potentially incorrect paths and prompt for confirmation (#6330)Core - Bot Commands - The
[p]addpathcommand will now error out when the user tries adding a path that’s part of the core path or instance’s data path (#6330)Core - Dependencies - Red’s dependencies have been bumped (#6333)
Cogs - Audio - The cog will now log the reason for Lavalink.jar being re-downloaded (#6334)
❤️ Cogs - Mutes - The
[p]activemutescommand will now use menus for pagination (#6266)
Removals
Cogs - Mutes - Server-wide mutes can no longer be performed using channel permissions (overrides). Server timeouts or mute role can be used instead (#5604)
Cogs - Mutes - The
[p]muteset forcerolecommand and the setting it adjusted has been removed. Server timeouts will now be used for a server, if it has no mute role set (#5604)
Fixes
Documentation changes
Additions
❤️ Added install instructions for Amazon Linux 2023 (#6331)
Redbot 3.5.7 (2024-03-24)
This is a hotfix release fixing a bug with Red’s reaction-based menus introduced in the previous release.
End-user changelog
Fixes
Redbot 3.5.6 (2024-03-22)
Read before updating
macOS 11 (Big Sur), Fedora 37, Ubuntu 22.10 (Kinetic Kudu), 23.04 (Lunar Lobster), openSUSE Leap 15.4, and Raspberry Pi OS (Legacy) 10 Buster are no longer supported as they have already reached their end of life.
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.5.6 uses a new Lavalink jar that you will need to manually update from our GitHub.
End-user changelog
Additions
Changes
Improved handling of very large numbers in various areas of the bot (#4619, #6283)
Core - Empty (server) prefixes are now disallowed (#6013)
❤️ Core - Menu-based help will now be sent to DMs when max number of pages (
[p]helpset maxpages) is set to 0, similarly to non-menu help (#5093, #5375)❤️ Core - Prefix can now be automatically inserted into help tagline by putting
[p]at the position that the prefix should appear at (#4669, #4972)Core - Command-line Interfaces - Improved first-time user experience when setting up new instance by asking for confirmation after user enters the prefix (#6287)
Core - Dependencies - Red’s dependencies have been bumped (#6312)
Core - Modlog - Case auto-creation for bans and unbans now relies directly on recently introduced audit log events which should make it work more reliably (#5970)
❤️ Cogs - Alias - Fixed a long-known issue with aliases not retaining new lines from the arguments they are passed (#2704, #4656)
Cogs - Downloader - Downloader commands will now try to detect potential Git authentication failures and report them more clearly (#5420)
Cogs - Modlog - The cog help now mentions how the user can change the modlog settings (#6300)
Cogs - Trivia - Lists - Updated FIFA World Cup list to include outcomes of the 2022 tournament (#5931)
Removals
Core - OS Support - macOS 11 (Big Sur), Fedora 37, Ubuntu 22.10 (Kinetic Kudu), 23.04 (Lunar Lobster), openSUSE Leap 15.4, and Raspberry Pi OS (Legacy) 10 Buster are no longer supported as they have already reached end of life (#6309)
Fixes
Cogs - Admin - Fixed the
[p]editrole colourcommand erroring out whenever it’s ran (#6270)❤️ Cogs - Audio - Fixed YT playback (#6305)
Cogs - Audio - Fixed not being able to seek when player is paused (#6305)
Cogs - Audio - Fixed handling of file name suffixes in
[p]playlist uploadcaused by changes in Discord API (#6279, #6280)❤️ Cogs - General - Fixed issues with
[p]lmgtfycommand once and for all by deploying an equivalent service as part of Cog-Creators’ infrastructure (#6255, #6268, #6269)Cogs - Streams - Fixed markdown formatting in the
[p]streamalert listcommand to be compliant with newer Discord markdown renderer (#6292)
Developer changelog
Changes
Core - Utils Package - Added
SimpleMenu.start_dm()method for sending the menu to the given user rather thanContext(#6286)Core - Utils Package - The
menu()utility function received a new provisionaluserparameter for defining who can interact with the menu (instead of the defaultctx.author) (#4913)If no issues arise, we plan on including this parameter under developer guarantees in the first release made after 2024-05-24.
Core - Utils Package - The
SimpleMenu.start()method received a new provisionaluserparameter for defining who can interact with the menu (instead of the defaultctx.author) (#4913)If no issues arise, we plan on including this parameter under developer guarantees in the first release made after 2024-05-24.
Fixes
Core - Commands Package - Fixed an edge case where the permission names passed as keyword arguments were not validated in Red’s custom decorators (#6291)
Core - Utils Package - Tracebacks from custom control functions are no longer suppressed by
menu()when[p]set usebuttonsoption is enabled (#6310)
Documentation changes
Additions
❤️ Added install guide for Raspberry Pi OS 12 Bookworm (#6309)
Added a tip in Slash Commands and Interactions about forcing the client to see the new commands after syncing (#6298)
Changes
Install guide for Raspberry Pi OS Legacy now describes installation for Raspberry Pi OS (Legacy) 11 (#6309)
Updated Python versions used in Arch Linux and openSUSE Leap instructions to 3.10 and 3.11 respectively (#6309)
Clarified the meaning of the word "provisional" that is used across the documentation to refer to APIs excluded from version guarantees (#6311)
Added
force_registration=Trueto allConfig.get_conf()usage examples in Config documentation to reflect our current recommendations (#6259)
Fixes
Fixed the “Edit on GitHub” links in Red’s online documentation (#6258)
Redbot 3.5.5 (2023-09-14)
End-user changelog
Changes
Fixes
Core - Bot Commands - Fixed handling of an edge case in the
[p]diagnoseissuescommand that involved commands without a cog (#6237)Core - Bot Commands - Fixed the formatting of nested result lists in the
[p]diagnoseissuescommand (#6238)Cogs - Mod - Fixed the formatting of the help description for the
[p]ban,[p]kick, and[p]tempbancommands (#6245)❤️ Cogs - Streams - Updated the implementation of Twitch streams to no longer use the “Get Users Follows” endpoint that was deprecated in February 2023 (#6246, #6247)
Documentation changes
Changes
Updated Python version in
pyenvinstructions (#6241)
Redbot 3.5.4 (2023-08-12)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.5.4 uses a new Lavalink jar that you will need to manually update from our GitHub.
End-user changelog
Additions
❤️ Core - Bot Commands - Added
[p]set status customcommand allowing the bot owner to change the bot’s custom status (#6226)
Changes
Core - Dependencies - Red’s dependencies have been bumped (#6225)
Fixes
Core - Fixed errors showing in logs when the button menu timed out and the original message no longer existed (#6228, #6229)
❤️ Cogs - Audio - Fixed YT playback (#6221)
Cogs - Audio - Fixed poor quality of
[p]local/queue search’s results when case sensitive matching was involved (#6129, #6224)Cogs - Audio - Fixed
[p]local searchresorting to YT playback when file name involved certain characters such as-(#6223)Cogs - CustomCommands - Fixed poor quality of
[p]customcom search’s results when case sensitive matching was involved (#6224)Cogs - Streams - Fixed Picarto channels showing without the channel avatar (#6230)
Redbot 3.5.3 (2023-07-24)
Read before updating
Fedora 36, Ubuntu 18.04 LTS and versions of RHEL/Alma Linux/Oracle Linux/Rocky Linux older than 8.6 are no longer supported as they have already reached their end of life.
End-user changelog
Changes
❤️ Red has been updated to support Discord’s new username system (#6130)
This means that we now support passing the new usernames as arguments and properly display usernames/global display names in core commands and cogs where applicable.
Core - All bots are are now considered to be immune to auto-moderation (#6130)
Core - Added list of command-line arguments to
redbot --debuginfo <instance_name>and[p]debuginfo(#6164)Core - Bot Commands - The
[p]set apicommand will now hide the button once the time to open the modal to set API keys elapses (#6166)Core - Command-line Interfaces - Multiple arguments to
--co-owner,--load-cogs, and--unload-cogsflags can now be specified both by passing multiple arguments right after the flag and by repeating the flag multiple times with different arguments (#6200)Core - Dependencies - Red’s dependencies have been bumped (#6185)
❤️ Cogs - Audio - The managed Lavalink server can now be run with either Java 11 or Java 17 (#6190)
Cogs - Audio - Added an option to auto-use default HTTP/HTTPS port for unmanaged Lavalink server (#5629)
Cogs - Mod - The cog now tracks both the usernames and global display names (#6130)
Removals
Core - OS Support - Fedora 36, Ubuntu 18.04 LTS and versions of RHEL/Alma Linux/Oracle Linux/Rocky Linux older than 8.6 are no longer supported as they have already reached end of life (#6189)
Fixes
Core - Red’s menu timeout is now consistent between reaction and button menus (#6173)
Core - Bot Commands - Fixed message too long error in the
[p]slash listcommand (#6167)Core - Command-line Interfaces - Red will now properly exit with code
1(CRITICAL) when the bot fails after connecting to Discord but before becoming ready instead of indefinitely hanging in non-working condition (#6202)Cogs - Audio - Fixed playlist selection in the picker used by the playlist-related commands (#6169, #6170)
Cogs - Cleanup - Fixed an issue with
[p]cleanup selfnot working in DMs (#6196, #6197)Cogs - Downloader - Fixed
CancelledErrortracebacks showing up in logs when the bot is shut down quickly after the cog is loaded (#6203)Cogs - Mutes - Fixed
CancelledErrortracebacks showing up in logs when the bot is shut down quickly after the cog is loaded (#6203)
Developer changelog
Additions
❤️ Core - Utils Package - Added new view (
ConfirmView) that can be used to ask for confirmation (#6174, #6176)Core - Commands Package - Added
Command.is_enabled()method allowing to check whether the command is disabled in a guild/globally (#4130, #5552, #6209)
Fixes
Core - Commands Package - Fixed handling of cases where the string returned by
Cog.format_help_for_context()/Command.format_help_for_context()starts with"\n\n"(#5941)Cogs - Dev - Fixed issues with exception formatting in
[p]eval/repl/debugcommands not including the code for chained/grouped exceptions (#6178)
Documentation changes
Additions
Added usage example to
get_end_user_data_statement_or_raise()(#6171)
Changes
Redbot 3.5.2 (2023-05-14)
End-user changelog
Changes
Core - Added list of global prefixes to
redbot --debuginfo <instance_name>and[p]debuginfo(#6153)Core - Dependencies - Red’s dependencies have been bumped (#6155)
Cogs - Downloader - Updated the code block style in
[p]repo listand[p]cog listto account for Discord client changes (#6003, #6152)Cogs - Trivia - Updated the code block style in the scoreboard to account for Discord client changes (#6152)
Fixes
Fixed visual issues with numbered and unnumbered lists caused by Discord’s new Markdown support (#6101)
Core - Fixed handling of cooldown errors for application commands (#6159)
Core - Bot Commands - Added missing backtick to the help of
[p]set serverprefix(#6004)Core - Command-line Interfaces - Fixed
redbot --debuginfotrying to start/starting the bot (#6131)Cogs - Audio - Fixed Audio’s managed node trying to allocate 4 GB of memory on 32-bit platforms regardless of how much is actually available (#6137, #6150)
Cogs - Audio - Fixed song selection in
[p]searchalways picking the first option when buttons are used (#6136, #6143)Cogs - CustomCommands - Fixed parameter handling (#6138, #6149)
Cogs - Mutes - Fixed
[p]channelmutereturning “That user is already muted” error when the user is not actually muted (#6144)Cogs - Mutes - Fixed unexpected error in automatic channel unmuting when the relevant channel is not available (#6140, #6144)
Cogs - Reports - Fixed
[p]reportcommand not working in DMs (#6148)Vendored Packages - Fixed menus breaking in DMs (#6139)
Developer changelog
Additions
Core - Data Manager - Added a new
data_manager.instance_name()public function (#6146)
Fixes
Core - Utils Package - Fixed
menu()passing an instance ofdiscord.PartialEmojiinstead ofstrwhen a button with a unicode emoji is used (#6143)Cogs - Dev - Fixed issues with exception formatting in
[p]eval/repl/debugcommands failing when code from a previous invocation of any of those commands was used (#6135)
Documentation changes
Fixes
Fixed the search box on the documentation page returning no results (#6185)
Fixed command choices example in Slash Commands and Interactions guide (#6154)
Updated the 3.5.0 changelog, Backward incompatible changes in Red 3.5, and End-user Guarantees documents to mention the new
x86-64-v2instruction set requirement (#6141, #6147)
Redbot 3.5.1 (2023-05-04)
This is a hotfix release fixing documentation issues and a bug with the update notification logic that caused Red to crash.
End-user changelog
Fixes
Core - Fixed a crash in the Red update notification logic (#6124)
Documentation changes
Fixes
Fix the instructions for updating Red (#6123)
Redbot 3.5.0 (2023-05-04)
Read before updating
[p]banksetis now a core command and as a consequence, the bank cog has been removed. This means that when you start the bot for the first time after the update, you’ll see a “Failed to load package bank” message. That is perfectly normal and this message can be ignored.Red 3.5 comes with breaking changes for users. Look at Backward incompatible changes in Red 3.5 document and End-user changelog for full details.
Note that because this release also comes with breaking changes for developers, the cogs you’re currently using will likely not work with the new release until you update (and that’s if they have been updated).
Our update instructions include instructions on how you can safely update your bot and cogs from versions before 3.5. Make sure that you look at the instructions for the version you currently have, not the version you’re updating to.
Note that any cogs that have not yet been updated will likely not work until their author releases an update.
Red 3.5 comes with breaking changes for cog developers. Look at Backward incompatible changes in Red 3.5 document and Developer changelog for full details.
Fedora 35 and Debian 10 (Buster) are no longer supported as they have already reached their end of life.
On x86-64 systems, we now require that the CPU supports x86-64-v2 instruction set. This roughly translates to us dropping support for Intel CPUs that have been released before 2009 and AMD CPUs that have been released before 2012.
End-user changelog
Breaking Changes
Core - The bot will no longer launch without an owner set (#4926)
Core - OS support - On x86-64 systems, we now require that the CPU supports x86-64-v2 instruction set. This roughly translates to us dropping support for Intel CPUs that have been released before 2009 and AMD CPUs that have been released before 2012 (#6100)
Additions
❤️ Core - Preference for button menus over reaction menus can now be set with
[p]set usebuttons. While this depends on the cog, this should allow users to replace most existing reaction menus with button menus (#5683, #5885)Core - The error message for uncaught bot errors is now configurable. See help of
[p]set errormsgfor more details (#5622, #5894)❤️ Core - Bot Commands - Added
[p]slashcommand for managing application commands (#5672, #5992, #6015)Core - Command-line Interfaces - Added new launch flag
--unload-cogs(#5796, #5802)Cogs - Streams - Added
[p]streamset livebuttonto add a link button under stream alerts (#5646, #5856)
Changes
Core - The home directory is now always preferred for the metadata file on Linux, even for system users (#5022)
Core - Bot prefixes can no longer start with
/(#5693)Core - Cooldown messages now use relative discord timestamps (#5893)
❤️ Core - Added the option to request a
filecontaining all content remaining in interactive prompts (#5901, #5902)Core - Parsing errors for integer and number arguments are now more user-friendly (#5600)
❤️ Core - Reaction menus now trigger both when adding and removing the reaction (#4517)
Core - Threads will now inherit parent channel’s embed settings (#5600)
❤️ Core - Commands can now be used in threads, voice channels, and stage channels (#5600, #5709)
Core - Voice and stage channels can now be a destination for owner notifications (
[p]set ownernotifications adddestination) (#5709)Core - Channel embed settings can now be applied to forum, voice, and stage channels (#5709)
Core - Command invocations in specific threads can now be ignored with
[p]ignore channel. See Backward incompatible changes in Red 3.5 for details (#5600)Core - Bot Commands -
[p]modlogsetand[p]banksetare now core commands (#4128, #4486)Core - Bot Commands - Moved
[p]setsubcommands:username,nickname,avatar,description, andcustominfoto[p]set botsubgroup (#4612, #5432)Core - Bot Commands - Moved activity related
[p]setsubcommands to[p]set status(#4612, #5432)Core - Bot Commands - Moved status related
[p]setsubcommands to[p]set status(#4612, #5432)Core - Bot Commands - Moved
[p]set globallocaleto[p]set locale global(#4612, #5432)Core - Bot Commands -
[p]set localecan now also be used through[p]set locale server(#4612, #5432)Core - Bot Commands - Moved
[p]set globalregionalformatto[p]set regionalformat global(#4612, #5432)Core - Bot Commands -
[p]set regionalformatcan now also be used through[p]set regionalformat server(#4612, #5432)❤️ Core - Bot Commands - Help can now use buttons and/or select menus instead of reaction menus. See the help of
[p]helpset usemenuscommand for more information (#5634, #5886)Core - Bot Commands -
[p]set apinow sends a modal to securely set api tokens when no arguments are passed (#5637)Core - Bot Commands -
[p]tracebacknow prompts to continue if the output requires multiple messages (#5621, #5851)Core - Bot Commands -
[p]removepathnow allows passing more than one path at once (#5820, #5859)Core - Bot Commands - Always available commands such as
[p]licenseinfonow always accept a mention prefix (#5460, #5865)Core - Bot Commands - Added an optional
serverparameter to[p]set showsettingsand[p]set serverprefixto prevent lock outs in servers after forgetting a prefix (#5891, #5918)Core - Command-line Interfaces -
-vand--verboseare now aliased to--debug, and the flag can be passed up to 3 times to increase the verbosity of the debugging logs (#5613)Core - Command-line Interfaces - Updated the output of
--debuginfoto be consistent with[p]debuginfoand allow passing the instance name for additional information (#5662)Core - Command-line Interfaces - Added new exit codes
2(invalid CLI usage) and78(configuration error) (#5069, #5674)Core - Command-line Interfaces - Instance names must now start and end with a letter or number (#5680)
Core - Command-line Interfaces - Instance names can no longer consecutive underscores (_) and periods (.) (#5680)
Core - Command-line Interfaces - Added descriptions for the
--overwrite-existing-instanceand--debugflags inredbot-setup --help(#5808, #5818)Core - Command-line Interfaces - Modified the console messages for shutting down the bot to be more consistent (#6095)
❤️ Core - Dependencies - Bumped
discord.pyto version 2.2.3 (#5600, #5709, #5920, #5998, #6100, #6109)Core - Dependencies - Added support for Python versions 3.10 and 3.11 (#5611)
Core - Dependencies - Red’s other dependencies have been bumped (#5611, #5631, #6100)
Core - Modlog - Modlog channel can now be set to a voice or stage channel with the
[p]modlogset channelcommand (#5709)Cogs - Admin - Announcement channel can now be set to a voice or stage channel with the
[p]announceset channelcommand (#5709)Cogs - Audio - Expanded
[p]llsetto allow configuring the backend options of the internal/managed node (Lavalink) (#5593)Cogs - Audio - The cog now uses verbose and trace level logging to improve readability of the debug logs (#5618)
Cogs - Audio - Swapped references from “internal”/”external” to “managed”/”unmanaged” (#5944, #5952)
Cogs - Cleanup - Cleanups now include a message in the audit log detailing who triggered the deletion (#5861, #5863)
Cogs - CustomCommands -
{channel}substitution parameter may now be a thread, voice channel, or stage channel (#5600)Cogs - Downloader - Added an argument allowing to automatically reload cogs after updating with
[p]cog update(#3539, #5623)Cogs - Economy - Moved
[p]economyset registeramountto[p]bankset registeramount(#4128, #4486)Cogs - Economy - Moved
[p]bank resetto[p]bankset reset(#4128, #4486)Cogs - Economy - Moved
[p]bank pruneto[p]bankset prune(#4128, #4486)Cogs - Filter - Messages in threads will now be checked for the filtered words of thread’s parent channel and server (#5600)
Cogs - Filter - Messages in voice or stage channels will now be checked for the filtered words and have their own channel word list (#5709)
Cogs - General - Added stage channel information to the extended output of
[p]serverinfo(#5785)Cogs - Mutes - Usage of
[p]channelmuteand[p]channelunmutecommands in a thread will now mute the user in thread’s parent channel (#5600)Cogs - Mutes - The cog will now deny Send Messages in Threads, Create Public Threads, Create Private Threads, and Use Application Commands permissions in the generated mute role and channel overrides (#5600, #5709)
Cogs - Mutes - Notification channel can now be set to a voice or stage channel with the
[p]muteset notificationcommand (#5709)Cogs - Mutes - Channel/voice mutes will now behave differently for voice/stage channels: voice mute will only deny the Speak permission while channel mute will deny message permissions as well (#5709)
Cogs - Permissions - Red’s command permission system will now use thread’s parent channel for resolving rules (#5600)
Cogs - Reports - Reports channel can now be set to a voice or stage channel with the
[p]reportset outputcommand (#5709)Cogs - Streams -
[p]streamalert listnow shows the platform of each channel (#3866, #5160)Cogs - Streams -
[p]streamalertsubcommands now accept an additional argument to toggle alerts in a particular channel (#3866, #5160)Cogs - Streams - Stream alerts can now be sent to a voice or stage channel (#5709)
Cogs - Warnings - Warn channel can now be set to a voice or stage channel with the
[p]warningset warnchannelcommand (#5709)
Removals
Core - Removed
redbot-launcher(#5999)Core - OS Support - Fedora 35 and Debian 10 (Buster) are no longer supported as they have already reached end of life (#5974, #6110)
Cogs - Audio - Removed the
[p]llsetupalias of[p]llset(#5953)Cogs - Bank - Removed the bank cog as its only command -
[p]bankset- is now a core command (#4128, #4486)
Fixes
Core - Duration parsing in command arguments no longer matches on certain kinds of invalid data (#5385, #5393)
Core - Optimized how disabled commands are checked when cogs are loaded (#5550)
Core - Bot Commands - The core path is now always an absolute path in
[p]paths(#5142)Core - Command-line Interfaces - Fixed an unintended suppression of exceptions in Red’s shutdown logic (#5661, #5673)
❤️ Core - Modlog - Fixed enormous performance issues with commands that have to gather a lot of cases such as
[p]casesforand[p]listcases(#4977)Core - Modlog - Case messages are no longer edited immediately after being sent (#5577)
Cogs - Audio - Fixed a RAM allocation warning happening in unintended cases (#5643)
Cogs - Audio - Fixed the Audio’s managed node becoming unresponsive after it’s been used for a while (#5903)
Cogs - Downloader - Fixed a missing space to an output of
[p]cog install(#5531)Cogs - Trivia - Lists - Fixed some inaccuracies in the
worldflagslist (#5684)Cogs - Trivia - Lists - Fixed some inaccuracies in the
geographylist (#5743)Cogs - Trivia - Lists - Fixed some inaccuracies in the
clashroyalelist (#5771)
Developer changelog
Breaking Changes
Core - Fixed edge cases in the ordering logic of
VersionInfo(#5932)Core - Removed
is_mod_or_superior(),is_admin_or_superior(), andcheck_permissions()fromredbot.core.checks(#6016)Core - Bot Class - Merged
RedBasewith theRedclass (#5159)Core - Bot Class - Removed the
guild_idparameter fromRed.allowed_by_whitelist_blacklist(). Use theguildparameter instead (#4905, #4914, #5433)Core - Bot Class - Removed the
userparameter fromRed.embed_requested()(#5576)Core - Bot Class - The
commandparameter ofRed.embed_requested()is now keyword-only (#5576)Core - Bot Class - The
check_permissionsparameter ofRed.embed_requested()now defaults toTrue(#5576)Core - Bot Class -
Red.add_cog()will now raisediscord.ClientExceptionrather thanRuntimeErrorwhen a cog with the same name is already loaded (#5600)Core - Bot Class - Some of the method arguments in the
Redclass have been made positional-only. See Backward incompatible changes in Red 3.5 for more information (#5600)Core - Bot Class -
Red.add_cog()andRed.remove_cog()are now asynchronous methods (#5600)Core - Bot Class -
setup()andteardown()functions in cog packages are now required to be asynchronous (#5600)Core - Bot Class - The list returned by
Red.get_owner_notification_destinations()may now contain instances ofdiscord.VoiceChannelanddiscord.StageChannel(#5709)Core - Commands Package -
Context.maybe_send_embed()now raises aValueErrorif the message’s length is not between 1 and 2000 characters (#4383, #4465)Core - Commands Package - Removed
GuildConverterfrom theredbot.core.commands.converternamespace. Usediscord.Guildorcommands.GuildConverteras the converter instead (#4928, #5433)Core - Commands Package -
BadArgumentis no longer wrapped with aConversionFailureclass (#5600)Core - Commands Package - Some of the method arguments in the
commands.Commandandcommands.CogMixinclass have been made positional-only. See Backward incompatible changes in Red 3.5 for more information (#5600)Core - Commands Package - Removed
commands.requires.DM_PERMS(#5709)Core - Commands Package -
ctx.channelcan now be adiscord.PartialMessageableif it represents a DM channel (#5995, #6005)Core - Config - Unserializable values can no longer be registered as config defaults (#5557)
Core - Config -
_from_idmethods now raise aTypeErrorif the provided value is not anint(#5459, #5564)Core - Modlog -
Case.messageis now adiscord.PartialMessageunless the case object is created withmodlog.create_case()(#4977)Core - Modlog -
modlog.get_modlog_channel()may now return an instance ofdiscord.VoiceChannelordiscord.StageChannel(#5709)Core - Modlog -
modlog.create_case()now raises aValueErrorwhen an invalid casetype is passed (#3346, #5386)Core - Modlog -
modlog.create_case()now raises aRuntimeErrorwhen a bot user is passed as theuserargument (#5386)Core - Utils Package -
redbot.core.utils.menus.menu()now listens to both reaction add and remove events (#4517)Core - Utils Package - Removed
redbot.core.utils.mod.is_allowed_by_hierarchy()(#4435, #5433)Core - Utils Package - Removed the
cachingandsafetymodules (#5653)Core - Utils Package -
DEFAULT_CONTROLS,ALPHABET_EMOJIS, andNUMBER_EMOJISare now immutable (#5586, #5666)
Additions
Core - Added an
on_cog_removeevent which is dispatched when cogs are unloaded (#5570)Core - Added
RedTreeand general app command support (#5672, #5992, #6015)Core - Added
redbot.core.app_commandspackage shadowingdiscord.app_commands. We expect developers to use it instead ofdiscord.app_commandswhen working with Red (#6006)Core - App Commands Package - Allowed setting
red_force_enableinextrastoTruein an app command to bypass[p]slash enable(#6018)Core - Bot Class - Added
Red.send_interactive()- a port ofContext.send_interactive()that can be used with anydiscord.abc.Messageable(#5851)Core - Bot Class - Added
Red.enable_app_command(),Red.disable_app_command(), andRed.list_enabled_app_commands()(#5992)Core - Bank - Added
redbot.core.bank.is_owner_if_bank_global()(#3709, #4486)Core - Commands Package - Added
RawUserIdConverter(#4486)❤️ Core - Commands Package - Added support for hybrid commands (#5681)
Core - Commands Package - Added
positive_intandfinite_floatconverters (#5939, #5969)Core - Commands Package - Added new checks for proper permission resolution in both channels and threads:
bot_can_manage_channel(),bot_can_react(),can_manage_channel(),guildowner_or_can_manage_channel(),admin_or_can_manage_channel(),mod_or_can_manage_channel()(#5600)Core - Dependencies - Added
red_commonsas a dependency (#5624)Core - Modlog - Added
Case.parent_channelandCase.parent_channel_id(support for threads) (#5600)Core - Utils Package - Added
SimpleMenu, a template view subclass (#5634)Core - Utils Package - Added
SetApiModalandSetApiView(#5637)Core - Utils Package - Added new utilities for proper permissions resolution in both channels and threads:
can_user_send_messages_in(),can_user_manage_channel(),can_user_react_in()(#5600)
Changes
❤️ Core -
logging.getLogger()now returns a custom logger subclass with support forverboseandtracelevel logging (#5613)Core - Added extra information to version info for dev versions of Red (#5664)
Core - Modernized packaging-related things (#5924)
Core - Modified Developer Guarantees, privatizing many APIs that were not intended to be public. See Backward incompatible changes in Red 3.5 for more details (#6021)
Core - Bot Class -
Red.ignored_channel_or_guild()now acceptsdiscord.Interactionobjects (#6015)Core - Bot Class - The
channelparameter ofRed.embed_requested()now accepts any messageable guild channel (#5576)Core - Bot Class - The bot’s color is now set earlier in the launch process (#5627)
Core - Bot Class -
Red.remove_cog()returns acommands.Coginstance now (#5600)Core - Commands Package - The provisional
Literalconverter has been replaced with discord.py’s owntyping.Literalimplementation (#5600)Core - Commands Package - Added a
join_characterparameter toRed.send_interactive()andContext.send_interactive()to allow choosing the character messages are joined with (#5901, #5902)Core - Modlog -
modlog.set_modlog_channel()can now acceptdiscord.VoiceChannelanddiscord.StageChannel(#5709)Core - Utils Package -
menu()now defaults toDEFAULT_CONTROLSif thecontrolsargument is not passed (#5678)Core - Utils Package - Removed
bordered()(#5692)Core - Utils Package - Optimized the performance of
pagify()to better handle large inputs (#5698)Core - Utils Package -
channelparameter inMessagePredicate’s methods now accepts anydiscord.abc.Messageable(#5942)❤️ Cogs - Dev - Tracebacks for code ran with
[p]eval,[p]debug, and[p]replcommands now include source lines (#5843)
Fixes
Core - Commands Package - Fixed decorator order inconsistencies in permissions checks (#5625)
Core - Modlog - Fixed
modlog.get_case()andmodlog.get_all_cases()raising a runtime error when no modlog channel is configured (#5644, #5866)Core - Utils Package - Fixed an unintended
IndexErrorin menus when page number is below 0 or above last page number (#5430)Cogs - Dev - Fixed line numbers in tracebacks (#5843)
Cogs - Dev -
[p]mockonly works in servers now (#5923, #5926)
Documentation changes
Additions
Added End-user Guarantees codifying our support policy for different operating system versions (#5437, #5677)
Added a list of currently supported operating system versions and architectures (#5437, #5677, #5803, #5974, #6110)
Added documentation for the
redbot.core.utils.antispammodule (#5641)Added documentation for creating app commands with Red (#6008)
Added documentation listing past and future breaking changes (#5603)
Changes
Linux install guides have been updated to, if possible, use the Python versions already distributed through the official repositories (#5611)
Fixes
Redbot 3.4.19 (2023-04-20)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.19 uses a new Lavalink jar that you will need to manually update from our GitHub.
End-user changelog
Additions
Changes
Core - Updated the PostgreSQL driver to not depend on the execution of purposefully erroneous SQL queries (#3983, #5855)
Core - Bot Commands - Updated
[p]infocommand to link to the full contributor list instead of linking to the org (#6079)Core - Bot Commands - Updated
[p]invitecommand to warn the user if the bot is serverlocked (#5898)Core - Bot Commands -
[p]dmcommand now uses the bot’s configured embed color (#5868)❤️ Cogs - Admin - Role names are no longer case sensitive in
[p]selfroleand itsaddandremovesubcommands (#3853, #3865)Cogs - Admin -
[p]addroleand[p]removerolecommands will now add an audit log reason to when applying/removing roles (#5927)Cogs - Audio - Updated enqueued track message to show track’s album or playlist if present (#5569)
Cogs - Downloader - Updated
[p]findcogcommand to show both the cog and cog package name (#5443, #5772)Cogs - General - Changed
[p]serverinfocommand to not require an update whenever a new server feature is added (#5830, #5919)Cogs - Mod - Hid
[p]movedeletedelayand[p]moveignoredchannelscommands to prevent accidental use (#5870)Cogs - Mod - Updated mention spam handling to count role mentions. Such mentions are counted as a single mention (#4471, #5388)
Cogs - Modlog - Improved clarity of the help of the
[p]modlogset casescommand (#5352)Cogs - Trivia - Changed the validation of custom trivia lists to match the restrictions from
[p]triviasetcommands (#5947, #5949)Cogs - Trivia - Improved error messages for schema errors in custom lists (#5947)
Cogs - Trivia - Added JSON schema for Trivia’s custom list format and allowed the usage of
$schemakey (#5565)Cogs - Trivia - Lists - Added over 30 new questions to the
harrypottertrivia list (#5887)Cogs - Trivia - Lists - Renamed the country of Turkey to Türkiye as per the United Nations’ name change (#5795)
Cogs - Trivia - Lists - Improved the topography trivia by adding/removing correct/incorrect answers and fixing inconsistencies (#5572)
Fixes
Fixed various typos across Red’s codebase (#5867, #5888, #5977, #5989)
Core - Resolved an edge case in the PostgreSQL driver that made it fail to clear an entire Config scope when it had no data (#5855)
Cogs - Admin - Fixed
[p]selfroleset add/removecommands not showing the help when they’re invoked with no arguments (#6084)❤️ Cogs - Audio - Fixed Twitch playback (#6033)
❤️ Cogs - Audio - Fixed plain word search queries (#6033)
Cogs - Audio - Prevented formatting from being escaped on Playlist Enqueued message (#6025)
Cogs - Audio - Fixed command usage help for the
[p]audioset autoplay playlistcommand (#5592)Cogs - CustomCommands - Fixed the documentation of
[p]cc cooldown’s arguments (#5914)Cogs - Downloader - Fixed handling of repo names containing dots (#5937, #5938)
Cogs - General - Fixed the URL generated by
[p]lmgtfycommand (#5908, #5909)Cogs - Mutes - Fixed a bug where muting a member in one voice channel would unintentionally move them between other voice channels (#4993, #5854)
Cogs - Trivia - Fixed error handling for long file names in
[p]triviaset custom upload(#5948, #5950)
Developer changelog
Changes
Core - Improved asyncio loop’s exception handling to allow it to show resource warnings (#5813)
Fixes
Core - Utils Package - Fixed
Tunnel.message_forwarder’s handling of strings larger than 2000 characters (#5844)Cogs - Dev - Fixed
__repr__()errors in[p]replwhen referencing an instance of a class with a faulty__repr__()(#5794)
Documentation changes
Additions
❤️ Added a guide for making auto-restart script on Windows using the Startup folder (#5996)
❤️ Added cog guide for Dev cog (#1734, #5869)
Added
brew shellenvcall to shell profile in macOS install guide to ensure properPATHsetup on Apple Silicon (#5993)
Changes
❤️ Improved the format and consistency of the changelogs A LOT! (#5602)
❤️ Highlights of a release are now prepended in the changelog with ❤️ emoji (#5602)
Merged all changelogs into a single page (#5602)
Added changelogs for 3.0.1-3.1.9 releases to the documentation (#5602)
Documented the
CONFIGkey in the Trivia List Creation Guide (#3977, #5390)Updated Python version in
pyenvinstructions (#5960)Changed Windows install instructions to use python39 package rather than python3 package with a version pin (#5960)
Updated the screenshot showing what intents need to be selected (#5935, #5936)
Updated bot hosting list with the new location for Contabo and addition of AlphaVPS (#5928)
Updated installation URLs for Homebrew and Chocolatey (#5776)
Updated the auto-restart script for Linux to only restart when there’s a critical error (crash) or the restart command is ran (#5069, #5674)
Redbot 3.4.18 (2022-08-15)
Read before updating
openSUSE Leap 15.2 is no longer supported as it has already reached its end of life.
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.18 uses a new Lavalink jar that you will need to manually update from our GitHub.
We’ve updated our application.yml file and you should update your instance’s
application.ymlappropriately.
End-user changelog
Removals
Core - OS Support - openSUSE Leap 15.2 is no longer supported as it has already reached its end of life (#5777)
Fixes
Documentation changes
Changes
Updated the screenshot in Creating a bot account to include the message content intent (#5798)
Unpinned Temurin version on Windows as a fixed version is now available (#5815)
Redbot 3.4.17 (2022-06-07)
Read before updating
Fedora 34 is no longer supported as it has already reached its end of life.
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.17 uses a new Lavalink jar that you will need to manually update from our GitHub.
End-user changelog
Additions
Cogs - Trivia - Lists - Added a trivia list for the FIFA World Cup with questions based on hosts, placements, venues, continental confederations, number of participants, top goal scorers, qualification shocks, and more (#5639)
Changes
Core - Bot Commands - Added instructions on how to respond to the message received from
[p]contactin the embed footer of the message sent to the bot owner (#5528, #5529)Core - Bot Commands - Updated
[p]serverscommand to escape Discord markdown in server names (#5696, #5744)Cogs - Audio - Added timestamps to all embeds sent by Audio cog (#5632)
Cogs - Audio - Improved handling of voice connection close codes received from Discord (#5712)
❤️ Cogs - Downloader - Added information about the commit hash at which the cog is pinned in the output of
[p]cog listpinnedcommand (#5551, #5563)Cogs - General - Updated features list in
[p]serverinfowith the latest changes from Discord (#5655)Cogs - Mod - Updated Red’s ban commands to address the breaking change that Discord made in their ban list API endpoint (#5656)
Cogs - Mutes - Added proper error handling for VERY long durations in mute commands (#5605)
Cogs - Permissions - Updated
[p]permissions acl setglobaland[p]permissions acl setserverto allow sending the file in a follow-up message (#5473, #5685)Cogs - Permissions -
[p]permissions canrunnow prepends an emoji to the response to better differentiate between the positive and negative results (#5711)Cogs - Trivia - Allowed passing
use_spoilerssetting in the CONFIG section of the trivia list file (#5566)Cogs - Trivia - Lists - Updated
geographytrivia list with up-to-date answers and removed questions that lack sources for their claimed answers (#5638)Cogs - Trivia - Lists - Updated Kazakhstan’s capital city in the
worldcapitalstrivia list (#5598, #5599)
Removals
Core - OS Support - Fedora 34 is no longer supported as it has already reached its end of life (#5701)
Fixes
Core - Bot Commands - Fixed grammar in the
[p]uptimecommand (#5596)Core - Command-line Interfaces - Fixed a bug that prevented users from changing the name and data location with
redbot --editcommand (#5545, #5540, #5541)Core - Modlog - Modlog’s automated case creation for bans now properly checks that the guild is available before further processing (#5647)
❤️ Cogs - Audio - Fixed plain word YT searching with
[p]playand[p]searchcommands (#5712)❤️ Cogs - Audio - Fixed YT age-restricted track playback (#5712)
Cogs - Audio - Fixed the cog not sending any Track Error message on track decoding errors (#5716)
Cogs - Audio - Fixed the
UnboundLocalErrorexception happening when using[p]playlist listwith an empty playlist (#5378, #5394)Cogs - Filter - Fixed a potential memory leak in Filter cog (#5578)
Cogs - Trivia - Lists - Fixed spelling error in the answer to one of the questions in
computerstrivia list (#5587, #5588)
Developer changelog
Changes
Vendored Packages - Updated
discord.ext.menusvendor (#5579)
Documentation changes
Additions
Changes
Changed the recommended operating system for hosting Red from Ubuntu 20.04 LTS to Ubuntu 22.04 LTS (#5720)
Updated Python version in
pyenvand Windows instructions (#5719)Replaced install instructions for discontinued AdoptOpenJDK package with Temurin 11 package in the macOS install guide (#5718)
Updated Visual Studio Build Tools version in Windows install guide (#5702)
Updated systemd guide to use the absolute path to
whichcommand to avoid triggering shell aliases on some OSes (#5547)Emphasized lines that contain text that needs to be replaced by the user (#5548)
Prevented Google and other search engines from indexing versioned documentation (#5549)
Fixes
Redbot 3.4.16 (2021-12-31)
This is a hotfix release fixing issues with invite URL API that caused
[p]invite command and CORE__INVITE_URL RPC method to not work.
End-user changelog
Fixes
Core - Bot Commands - Fixed
[p]invitecommand (#5517)
Developer changelog
Fixes
RPC methods - Fixed
CORE__INVITE_URLRPC method (#5517)
Documentation changes
Changes
Changed Arch install guide to temporarily use
python39AUR package instead ofpythonpackage as Red does not currently support Python 3.10 (#5518)
Redbot 3.4.15 (2021-12-31)
Read before updating
Fedora 33 and CentOS 8 are no longer supported as they have already reached end of life.
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.15 uses a new Lavalink jar that you MUST manually update from our GitHub to be able to continue using Audio.
End-user changelog
Additions
❤️ Core - Command-line Interfaces - Added new CLI options for non-interactive usage of
redbot-setup(#2396, #5448)See output of
redbot-setup --helpfor more information.Cogs - Admin - Added
[p]selfroleset clearcommand which can be used to clear the list of available selfroles in the server (#5387)Cogs - Audio - Added native Mac M1 support for Java runtimes supporting Mac M1 (#5474)
Changes
Core - Bot Commands - Updated prefix length limit to
25to allow setting bot mention as a prefix (#5476)Core - Bot Commands - Improved
[p]helpset showaliasesresponses (#5376)Core - Bot Commands - Added plural forms to the responses of
[p]leavecommand (#5391)Core - Bot Commands - The embed setting for
[p]helpcommand set with[p]embedset commandwill now affect all help messages, not just the ones sent when invoking[p]helpcommand directly (#5452)Core - Bot Commands -
[p]tracebackcommand now indicates that it DMed the command caller with a tick reaction (#5353)Core - Command-line Interfaces - JSON is now more strongly recommended and is used by default for new instances in
redbot-setup(#5448)Cogs - Audio - Enabled JDA-NAS on all system architectures which should limit stuttering/buffering issues on some machines (#5474)
Cogs - Audio - The bot will now disconnect from the voice channel when all members are bots if the auto-disconnect setting is enabled (#5421)
Cogs - CustomCommands - Added 2000 character limit for custom command responses to prevent Nitro users from adding longer responses than a Discord bot can send (#5499)
Cogs - Downloader - Added repo name to the response of
[p]findcogcommand (#5382, #5383)Cogs - Mod -
[p]voicekicknow sends a response when the action succeeds (#5367)❤️ Cogs - Modlog - Added the new native Discord timestamps in
[p]case,[p]casesfor, and[p]listcasescommands (#5395)
Removals
Fixes
Fixed short help for some of the commands in Core Red (#5502)
Confirmation prompts (accepting “yes/no” or “I agree” as the answer) no longer wrongfully translate the answer that needs to be sent when only English answers are accepted by the bot (#5363, #5364, #5404)
Core - Bot Commands - Corrected usage examples in help of
[p]set apiand[p]set api remove(#5444)Core - Bot Commands -
[p]command enable guildand[p]command disable guildcommands no longer error out for commands that only check for user permissions, not caller’s roles (#5477)Core - Command-line Interfaces - Fixed an issue with instance backup failing for non-JSON storage backends (#5315)
Core - Command-line Interfaces - Running Red with
--no-instanceCLI flag no longer fails when no instance was ever created by the user (#5415, #5416)Core - Modlog - Fixed issues with rendering of modlog cases with usernames written in a right-to-left language (#5422)
❤️ Cogs - Audio - Fixed an issue with resuming playback after changing voice channels (#5170)
❤️ Cogs - Audio - Fixed issues with Soundcloud private playlists and mobile links (#5474)
❤️ Cogs - Audio - Fixed searching music with some of the queries containing quotes or backslashes (#5474)
❤️ Cogs - Audio - Fixed an exception caused by unavailable YT tracks in Mix playlists (#5474)
Cogs - Audio - Fixed
IndexErrorin[p]queuecommand which occurred when the user provides negative integer as the page number (#5429)Cogs - Cleanup - Restricted
[p]cleanupset notifyto only be invokable in server channels (#5466)Cogs - Economy -
[p]economyset showsettingsnow includes configured role payday amounts (#5455, #5457)Cogs - Mod - Fixed an error with
[p]tempbanfailing to send an invite link when a server has an unset vanity URL (#5472)Cogs - Mod - Fixed explanations of example usage for
[p]ban,[p]kick, and[p]tempbancommands (#5372)Cogs - Mod - Fixed a typo in one of
[p]unban’s error messages (#5470)Cogs - Warnings - Warning actions no longer error out when the action is set to use a command that only checks for user permissions, not caller’s roles (#5477)
Developer changelog
Additions
Core - Bot Class - Added optional
check_permissionskeyword-only argument toRed.embed_requested()which, ifTrue, will make the method also check whether the bot can send embeds in the given channel (#5452)❤️ Core - Bot Class - Added
Red.get_invite_url()andRed.is_invite_url_public()that expose the functionality of[p]inviteprogrammatically (#5152, #5424)❤️ Core - Commands Package - Added optional
messageargument toContext.tick()andContext.react_quietly()which is used if adding the reaction doesn’t succeed (#3359, #4092)
Changes
Documentation changes
Additions
Changes
Updated the Java distribution used in the Windows install guide to Temurin - rebranded AdoptOpenJDK (#5403)
Improved Mac and pyenv instructions to address common issues with load path configuration (#5356)
Updated the server locations for Hetzner and Contabo in Hosting Information document (#5475)
Updated Python version in
pyenvand Windows instructions (#5447)Removed LXC from unsupported hosting platforms as many VPS providers utilize that technology (#5351)
Fixes
Removed inaccurate note from Unix install guides about install commands also being used for updating Red (#5439)
Redbot 3.4.14 (2021-09-23)
Read before updating
Versions of RHEL older than 8.4 (including 7) and versions of CentOS older than 8.4 (excluding 7) are no longer supported.
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.14 uses a new Lavalink jar that you will need to manually update from our GitHub.
End-user changelog
Additions
❤️ Core - Bot Commands - Added the new native Discord timestamp in the
[p]uptimecommand (#5323)
Changes
Fixes
Documentation changes
Additions
❤️ Added install guide for CentOS Stream 8, Oracle Linux 8.4-8.x, and Rocky Linux 8 (#5328)
Changes
Fixes
Redbot 3.4.13 (2021-09-09)
Read before updating
If you’re hosting a public/big bot (>75 servers) or strive to scale your bot at that level, you should read our stance on (privileged) intents and public bots.
Fedora 32 is no longer supported as it has already reached end of life.
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.13 uses a new Lavalink jar that you will need to manually update from our GitHub.
End-user changelog
Additions
❤️ Core - Red 3.4.13 is the first release to (finally) support Python 3.9! (#4655, #5121)
❤️ Core - Bot Commands - Added a new
[p]diagnoseissuescommand to allow the bot owners to diagnose issues with various command checks with ease (#4717, #5243)Since some of us are pretty excited about this feature, here’s a very small teaser showing a part of what it can do:
Core - Bot Commands - Added a setting for
[p]help’s reaction timeout (#5205)This can be changed with
[p]helpset reacttimeoutcommandCogs - Alias - Added commands for editing existing aliases (#5108)
Cogs - Audio - Added a per-guild max volume setting (#5165)
This can be changed with the
[p]audioset maxvolumecommand❤️ Cogs - Cleanup - All
[p]cleanupcommands will now send a notification with the number of deleted messages. The notification is deleted automatically after 5 seconds (#5218)This can be disabled with the
[p]cleanupset notifycommandCogs - Filter - Added
[p]filter clearand[p]filter channel clearcommands for clearing the server’s/channel’s filter list (#4841, #4981)
Changes
Core - Bot Commands - Revamped the
[p]debuginfoto make it more useful for… You guessed it, debugging! (#4997, #5156)More specifically, added information about CPU and RAM, bot’s instance name and owners
❤️ Core - Bot Commands - Added the new native Discord timestamps in Modlog cases,
[p]userinfo,[p]serverinfo, and[p]tempban(#5155, #5241)Core - Bot Commands - The
[p]invitecommand will now add a tick reaction after it DMs an invite link to the user (#5184)❤️ Core - Command-line Interfaces - The formatting of Red’s console logs has been updated to make it more copy-paste friendly (#4868, #5181)
Core - Command-line Interfaces - The console error about missing Privileged Intents stands out more now (#5184)
Core - Dependencies - Upgraded all Red’s dependencies (#5121)
Cogs - Admin - The
[p]selfroleset addand[p]selfroleset removecommands can now be used to add multiple selfroles at once (#5237, #5238)Cogs - Audio -
[p]summonwill now indicate that it has succeeded or failed to summon the bot (#5186)❤️ Cogs - Cleanup - The
[p]cleanup usercommand can now be used to clean messages of a user that is no longer in the server (#5169)Cogs - Downloader - The dot character (
.) can now be used in repo names. No more issues with adding repositories using the commands provided by the Cog Index! (#5214)❤️ Cogs - Mod - The DM message from the
[p]tempbancommand will now include the ban reason if[p]modset dmsetting is enabled (#4836, #4837)Cogs - Streams - Made small optimizations in regards to stream alerts (#4968)
Cogs - Trivia - Added schema validation of the custom trivia files (#4571, #4659)
Removals
Core - OS Support - Fedora 32 is no longer supported as it has already reached end of life (#5121)
Fixes
Core - Bot Commands - Fixed a bunch of errors related to the missing permissions and channels/messages no longer existing (#5109, #5163, #5172, #5191)
Cogs - Audio - Fixed an issue with short clips being cutoff when auto-disconnect on queue end is enabled (#5158, #5188)
❤️ Cogs - Audio - Fixed fetching of age-restricted tracks (#5233)
❤️ Cogs - Audio - Fixed searching of YT Music (#5233)
❤️ Cogs - Audio - Fixed playback from SoundCloud (#5233)
Cogs - Downloader - Added a few missing line breaks (#5185, #5187)
Cogs - Mod - Fixed an error with handling of temporary ban expirations while the guild is unavailable due to Discord outage (#5173)
Cogs - Mod - The
[p]renamecommand will no longer permit changing nicknames of members that are not lower in the role hierarchy than the command caller (#5187, #5211)Cogs - Streams - Fixed an issue with some YouTube streamers getting removed from stream alerts after a while (#5195, #5223)
❤️ Cogs - Warnings - 0 point warnings are, once again, allowed. (#5177, #5178)
Developer changelog
Additions
❤️ Core - Bot Class - Added more APIs for allowlists and blocklists (#5206)
Here’s the list of the methods that were added to the
botobject:❤️ Core - Commands Package - Added
RelativedeltaConverterandparse_relativedeltato theredbot.core.commandspackage (#5000)This converter and function return
dateutil.relativedelta.relativedeltaobject that represents a relative delta. In addition to regular timedelta arguments, it also accepts months and years!Core - Commands Package - Added
CommandConverterandCogConverterto theredbot.core.commandspackage (#5037)
Documentation changes
Additions
Changes
❤️ Updated the commands in the install guide for Mac OS to work properly on Apple Silicon devices (#5234)
Fixes
Redbot 3.4.12 (2021-06-17)
This is a hotfix release related to Red ceasing to use the Audio Global API service.
End-user changelog
Additions
Core - Bot Commands -
applications.commandsscope can now be included in the invite URL returned from[p]inviteby enabling it with``[p]inviteset commandscope``
Changes
Core - Bot Commands -
[p]set serverprefixcommand will now prevent the user from setting a prefix with length greater than 20 characters (#5091, #5117)Core - Bot Commands -
[p]set prefixcommand will now warn the user when trying to set a prefix with length greater than 20 characters (#5091, #5117)❤️ Cogs - Audio - All local caches are now enabled by default (#5140)
Removals
Cogs - Audio - Global API service will no longer be used in Audio and as such support for it has been removed from the cog (#5143)
Fixes
Developer changelog
Changes
Cogs - Dev -
[p]debugcommand will now confirm the code finished running with a tick reaction (#5107)
Redbot 3.4.11 (2021-06-12)
This is a hotfix release fixing a crash involving guild uploaded stickers.
End-user changelog
Changes
Core - Dependencies - discord.py version has been bumped to 1.7.3 (#5129)
Documentation changes
Fixes
Links to the CogBoard in Red’s documentation have been updated to use the new domain (#5124)
Redbot 3.4.10 (2021-05-28)
Read before updating
PM2 process manager is no longer supported as it is not a viable solution due to certain parts of its behavior.
- We highly recommend you to switch to one of the other supported solutions:
If you experience any issues when trying to configure it, you can join our discord server and ask in the support channel for help.
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.10 uses a new Lavalink jar that you will need to manually update from our GitHub.
We’ve updated our application.yml file and you should update your instance’s
application.ymlappropriately.
End-user changelog
Additions
Changes
Rephrased a few strings and fixed maaaaany grammar issues and typos (#4793, #4832, #4955, #4966, #5015, #5019, #5029, #5038, #5055, #5080, #5081)
Cogs - Admin - The cog will now log when it leaves a guild due to the serverlock (#5008, #5073)
Cogs - Audio - The
[p]audiostatscommand can now only be used by bot owners (#5017)Cogs - Audio - The cog will now check whether it has speak permissions in the channel before performing any actions (#5012)
Cogs - Audio - Improved logging in Audio cog (#5044)
Cogs - Cleanup - Clarified that
[p]cleanupcommands only delete the messages from the current channel (#5070)Cogs - Downloader -
[p]repo removecan now remove multiple repos at the same time (#4765, #5082)Cogs - General - The
[p]urbancommand will now use the default embed color of the bot (#5014)Cogs - Modlog - Modlog will no longer try editing the case’s Discord message once it knows that it no longer exists (#4975)
Cogs - Modlog -
[p]modlogset resetcaseswill now ask for confirmation before proceeding (#4976)Cogs - Streams - - Improved logging of API errors in Streams cog (#4995)
Removals
Fixes
Core - Bot Commands - Added missing information about the
showaliasessetting in[p]helpset showsettings(#4971)Core - Bot Commands - The help command no longer errors when it doesn’t have permission to read message history and menus are enabled (#4959, #5030)
Core - Bot Commands - Fixed a bug in
[p]embedset userthat made it impossible to reset the user’s embed setting (#4962)Core - Bot Commands -
[p]embedset commandand its subcommands now properly check whether any of the passed command’s parents require Embed Links permission (#4962)Core - Bot Commands - Fixed an issue with Red reloading unrelated modules when using
[p]loadand[p]reload(#4956, #4958)❤️ Core - Command-line Interfaces - Fixed terminal colors on Windows (#5063)
Core - Command-line Interfaces - Fixed the
--rich-traceback-extra-linesflag (#5028)Cogs - Audio - Fixed an issue that made it possible to remove Aikaterna’s curated tracks playlist (#5018)
❤️ Cogs - Audio - Fixed auto-resume of auto play after Lavalink restart (#5051)
Cogs - Audio - Fixed an error with
[p]audiostatscaused by players not always having their connection time stored (#5046)Cogs - Audio - Fixed track resuming in a certain edge case (#4996)
Cogs - Audio - Fixed an error in
[p]audioset restart(#4987)Cogs - Audio - Fixed an issue with Audio failing when it’s missing permissions to send a message in the notification channel (#4960)
❤️ Cogs - Audio - Fixed fetching of age-restricted tracks (#5085)
Cogs - Audio - Fixed an issue with SoundCloud URLs that ended with a slash (
/) character (#5085)Cogs - CustomCommands -
[p]customcom create simpleno longer errors for a few specific names (#5026, #5027)Cogs - Downloader -
[p]cog installnow properly shows the repo name rather than{repo.name}(#4954)Cogs - Mod -
[p]muteno longer errors on muting a bot user if thesenddmoption is enabled (#5071)Cogs - Mutes - Forbidden errors during the channel mute are now handled properly in a rare edge case (#4994)
Cogs - Streams -
[p]twitchstream,[p]youtubestream, and[p]picartocommands can no longer be run in DMs (#5036, #5035)❤️ Cogs - Streams - Fixed Twitch stream alerts for streams that use localized display names (#5050, #5066)
Cogs - Streams - The cog no longer errors when trying to delete a cached message from a channel that no longer exists (#5032, #5031)
Cogs - Warnings - The warn action is now taken after sending the warn message to the member (#4713, #5004)
Developer changelog
Changes
Fixes
Documentation changes
Additions
❤️ Added a guide for making auto-restart service on Mac (#4082, #5020)
❤️ Added cog guide for core commands (#1734, #4597)
❤️ Added cog guide for Mod cog (#1734, #4886)
❤️ Added cog guide for Modlog cog (#1734, #4919)
❤️ Added cog guide for Mutes cog (#1734, #4875)
❤️ Added cog guide for Permissions cog (#1734, #4985)
❤️ Added cog guide for Reports cog (#1734, #4882)
❤️ Added cog guide for Warnings cog (#1734, #4920)
❤️ Added a guide about Trivia list creation (#4595, #5023)
Added the documentation for
redbot.core.modlog.Case(#4979)Added information on how to set the bot not to start on boot anymore to auto-restart docs (#5020)
Changes
Removals
Removed PM2 guide (#4991)
Redbot 3.4.9 (2021-04-06)
This is a hotfix release fixing an issue with command error handling.
discord.py version has been bumped to 1.7.1.
Thanks again to @Rapptz for quick response on this issue.
Redbot 3.4.8 (2021-04-06)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.8 uses a new Lavalink jar that you will need to manually update from our GitHub.
Fedora 31 and OpenSUSE Leap 15.1 are no longer supported as they have already reached end of life.
End-user changelog
Additions
❤️ Core - Added per-command embed settings (#4049)
See help of
[p]embedsetand[p]embedset commandcommand group for more information
Core - An error message will now be shown when a command that is only available in NSFW channels is used in a non-NSFW channel (#4933)
❤️ Core - Bot Commands -
[p]leaveaccepts server IDs now (#4831)❤️ Cogs - Trivia - Added a new option for hiding the answer to the Trivia answer in a spoiler (#4700, #4877)
[p]triviaset usespoilerscommand can be used to enable/disable this option
Changes
❤️ Core - Bot Commands - The
[p]serverscommand uses menus now (#4720, #4831)❤️ Core - Bot Commands - Commands for listing global and local allowlists and blocklists will now, in addition to IDs, contain user/role names (#4839)
Core - Bot Commands - Added more singular and plural forms in a bunch of commands in the bot (#4004, #4898)
❤️ Core - Command-line Interfaces - Added a progress bar to
redbot-setup convert(#2952)Cogs - Audio - Improved playlist extraction (#4932)
❤️ Cogs - Cleanup -
[p]cleanup beforeand[p]cleanup aftercommands can now be used without a message ID if the invocation message replies to some message (#4790)Cogs - Filter - Added meaningful error messages for incorrect arguments in the
[p]bank setcommand (#4789, #4801)Cogs - Mod - Improved performance of checking tempban expirations (#4907)
Cogs - Mutes - Vastly improved performance of automatic unmute handling (#4906)
Cogs - Streams - Streams cog should now load faster on bots that have many stream alerts set up (#4731, #4742)
Cogs - Streams - Checking Twitch streams will now make less API calls (#4938)
Cogs - Streams - Ratelimits from Twitch API are now properly handled (#4808, #4883)
Cogs - Warnings - Embeds now use the default embed color of the bot (#4878)
Removals
Fixes
❤️ Core - Messages sent interactively in DM channels no longer fail (#4876)
Core - Help - Fixed how the command signature is shown in help for subcommands that have group args (#4928)
Cogs - Alias - Fixed issues with command aliases for commands that take an arbitrary, but non-zero, number of arguments (e.g.
[p]load) (#4766, #4871)❤️ Cogs - Audio - Fixed stuttering (#4565)
❤️ Cogs - Audio - Fixed random disconnects (#4565)
❤️ Cogs - Audio - Fixed the issues causing the player to be stuck on 00:00 (#4565)
❤️ Cogs - Audio - Fixed ghost players (#4565)
❤️ Cogs - Audio - Audio will no longer stop playing after a while (#4565)
Cogs - Audio - Fixed playlist loading for playlists with over 100 songs (#4932)
Cogs - Audio - Fixed an issue with alerts causing errors in playlists being loaded (#4932)
Cogs - Audio - Fixed an issue with consent pages appearing while trying to load songs or playlists (#4932)
Cogs - Downloader - Improved compatibility with Git 2.31 and newer (#4897)
Cogs - Mod - Fixed tracking of nicknames that were set just before nick reset (#4830)
Cogs - Streams - Fixed possible memory leak related to automatic message deletion (#4731, #4742)
Cogs - Streams - Streamer accounts that no longer exist are now properly handled (#4735, #4746)
Cogs - Streams - Fixed stream alerts being sent even after unloading Streams cog (#4940)
Cogs - Warnings - Fixed output of
[p]warningscommand for members that are no longer in the server (#4900, #4904)
Developer changelog
Changes
Core - Dependencies - Bumped discord.py version to 1.7.0 (#4928)
Deprecations
Core - Bot Class - Added
guildparameter tobot.allowed_by_whitelist_blacklist()which is meant to replace the deprecatedguild_idparameter (#4905, #4914)Read the method’s documentation for more information
Core - Commands Package - Deprecated importing
GuildConverterfromredbot.core.commands.converternamespace (#4928)discord.GuildorGuildConverterfromredbot.core.commandsshould be used instead
Fixes
Documentation changes
Additions
❤️ Added cog guide for Image cog (#4821)
Changes
Added a note about updating cogs in update message and documentation (#4910)
Getting started now contains an explanation of parameters that can take an arbitrary number of arguments (#4888, #4889)
All shell commands in the documentation are now prefixed with an unselectable prompt (#4908)
Setting up auto-restart using systemd on Linux now asks the user to create the new service file using
nanotext editor (#4869, #4870)Instructions for all Linux-based operating systems now recommend to install
nano
Updated Python version in
pyenvand Windows instructions (#4864, #4942)Added a warning to Arch Linux install guide about the instructions being out-of-date (#4866)
Fixes
Updated Mac install guide with new
brewcommands (#4865)
Redbot 3.4.7 (2021-02-26)
End-user changelog
Security
Cogs - Mutes - Added proper permission checks to
[p]muteset senddmand[p]muteset showmoderator(#4849)
Changes
Core - Bot Commands - Updated the
[p]infocommand to more clearly indicate that the instance is owned by a team (#4851)
Fixes
Documentation changes
Additions
❤️ Added cog guide for General cog (#4797)
❤️ Added cog guide for Trivia cog (#4566)
Redbot 3.4.6 (2021-02-16)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.6 uses a new Lavalink jar that you will need to manually update from our GitHub.
End-user changelog
Security
Cogs - Mutes - Added more role hierarchy checks to ensure permission escalations cannot occur on servers with a careless configuration (#4741)
Additions
❤️ Core - Help - Help now includes command aliases in the command help (#3040)
This can be disabled with
[p]helpset showaliasescommand
Cogs - Mod - Added two new settings for disabling username and nickname tracking (#4799)
Added a command
[p]modset trackallnamesthat disables username tracking and overrides the nickname tracking setting for all guildsAdded a command
[p]modset tracknicknamesthat disables nickname tracking in a specific guild
Cogs - Mod - Added a command
[p]modset deletenamesthat deletes all stored usernames and nicknames (#4827)Cogs - Modlog - Added a command
[p]listcasesthat allows you to see multiple cases for a user at once (#4426)❤️ Cogs - Mutes - A DM can now be sent to the (un)muted user on mute and unmute (#3752, #4563)
Added
[p]muteset senddmto set whether the DM should be sent (function disabled by default)Added
[p]muteset showmoderatorto set whether the DM sent to the user should include the name of the moderator that muted the user (function disabled by default)
Cogs - Trivia - Lists - Added new Who’s That Pokémon - Gen. VI trivia list (#4785)
Changes
Core - Bot Commands - Added a friendly error message to
[p]loadthat is shown when trying to load a cog with a command name that is already taken by a different cog (#3870)❤️ Core - Command-line Interfaces - Improvements and fixes for our new (colorful) logging (#4702, #4726)
The colors used have been adjusted to be readable on many more terminal applications
The
NO_COLORenvironment variable can now be set to forcefully disable all colors in the console outputTracebacks will now use the full width of the terminal again
Tracebacks no longer contain multiple lines per stack level (this can now be changed with the flag
--rich-traceback-extra-lines)Disabled syntax highlighting on the log messages
Dev cog no longer captures logging output
Added some cool features for developers
Added the flag
--rich-traceback-extra-lineswhich can be used to set the number of additional lines in tracebacksAdded the flag
--rich-traceback-show-localswhich enables showing local variables in tracebacks
Improved and fixed a few other minor things
Core - Dependencies - Red’s dependencies have been bumped (#4572)
Cogs - Admin -
[p]selfrolecan now be used without a subcommand and passed with a selfrole directly to add/remove it from the user running the command (#4826)Cogs - Audio - Improved detection of embed players for fallback on age-restricted YT tracks (#4818, #4819)
Cogs - Audio - Requests for YT tracks are now retried if the initial request causes a connection reset (#4818, #4819)
Cogs - Cleanup - Renamed the
[p]cleanup spamcommand to[p]cleanup duplicates, with the old name kept as an alias for the time being (#4814)Cogs - Economy -
[p]economyset rolepaydayamountcan now remove the previously set payday amount (#4661, #4758)Cogs - Filter - Added a case type
filterhitwhich is used to log filter hits (#4676, #4739)Cogs - Mod - Added usage examples to
[p]kick,[p]ban,[p]massban, and[p]tempban(#4712, #4715)Cogs - Mod - Updated DM on kick/ban to use bot’s default embed color (#4822)
Cogs - Modlog - Added typing indicator to
[p]casesforcommand (#4426)Cogs - Reports - Reports now use the default embed color of the bot (#4800)
Cogs - Trivia - Payout for trivia sessions ending in a tie now gets split between all the players with the highest score (#3931, #4649)
Cogs - Trivia - Lists - Updated answers regarding some of the hero’s health and abilities in the
overwatchtrivia list (#4805)
Fixes
Various grammar fixes (#4705, #4748, #4750, #4763, #4788, #4792, #4810)
Core - Bot Commands - Fixed command usage in the help messages for few commands in Red (#4599, #4733)
Core - Bot Commands - Fixed errors in
[p]command defaultdisablecogand[p]command defaultenablecogcommands (#4767, #4768)Core - Bot Commands -
[p]command listdisabled guildcan no longer be run in DMs (#4771, #4772)❤️ Core - Command-line Interfaces - Fixed the rotation of Red’s logs that could before result in big disk usage (#4405, #4738)
Core - Command-line Interfaces - Fixed errors appearing when using Ctrl+C to interrupt
redbot --edit(#3777, #4572)Cogs - Cleanup - Fixed an error from passing an overly large integer as a message ID to
[p]cleanup afterand[p]cleanup before(#4791)Cogs - Mod - The
[p]tempbancommand no longer errors out when trying to ban a user in a guild with the vanity url feature that doesn’t have a vanity url set (#4714)Cogs - Mod - Fixed an edge case in role hierarchy checks (#4740)
Cogs - Mutes - Fixed an edge case in role hierarchy checks (#4740)
Cogs - Mutes - The modlog reason no longer contains leading whitespace when it’s passed after the mute time (#4749)
Cogs - Mutes - Help descriptions of the cog and its commands now get translated properly (#4815)
Cogs - Streams - Fixed incorrect timezone offsets for some YouTube stream schedules (#4693, #4694)
Cogs - Streams - Fixed meaningless errors happening when the YouTube API key becomes invalid or when the YouTube quota is exceeded (#4745)
Developer changelog
Additions
Core - Bot Class - Added an event
on_red_before_identifythat is dispatched before IDENTIFYing a session (#4647)Core - Utils Package - Added a function
redbot.core.utils.chat_formatting.spoiler()that wraps the given text in a spoiler (#4754)❤️ Cogs - Dev - Cogs can now add their own variables to the environment of
[p]debug,[p]eval, and[p]replcommands (#4667)Variables can be added and removed from the environment of Dev cog using two new methods:
Changes
Core - Dependencies - Updated versions of the libraries used in Red: discord.py to 1.6.0, aiohttp to 3.7.3 (#4728)
Fixes
Cogs - Dev - Help descriptions of the cog and its commands now get translated properly (#4815)
Documentation changes
Additions
❤️ Added cog guide for Filter cog (#4579)
Changes
Added information about the Red Index to Publishing cogs for Red V3 (#4778)
Restructured the host list (#4710)
Clarified how to use pm2 with
pyenv virtualenv(#4709)Updated Python version in
pyenvand Windows instructions (#4770)
Fixes
Updated the pip command for Red with the postgres extra in Linux/macOS install guide to work on zsh shell (#4697)
Redbot 3.4.5 (2020-12-24)
This is a hotfix release fixing an issue with Streams cog failing to load.
End-user changelog
Fixes
Redbot 3.4.4 (2020-12-24)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.4 uses a new Lavalink jar that you will need to manually update from our GitHub.
Ubuntu 16.04 is no longer supported as it will soon reach its end of life and it is no longer viable for us to maintain support for it.
While you might still be able to run Red on it, we will no longer put any resources into supporting it. If you’re using Ubuntu 16.04, we highly recommend that you upgrade to the latest LTS version of Ubuntu.
End-user changelog
Additions
❤️ Core - Command-line Interfaces - Red’s logging will now shine in your terminal more than ever (#4577)
❤️ Cogs - Streams - YouTube stream schedules are now announced before the stream (#4615)
Alerts about YouTube stream schedules can be disabled with a new
[p]streamset ignoreschedulecommand (#4615)
Cogs - Trivia - Lists - Added
whosthatpokemon5trivia list containing Pokémon from the 5th generation (#4646)Cogs - Trivia - Lists - Added
geographytrivia list (#4618)
Changes
Core - Added a friendly error when the duration provided to commands that use the
commands.TimedeltaConverterconverter is out of the maximum bounds allowed by Python interpreter (#4019, #4628, #4630)Core - Bot Commands - Improved consistency of command usage in the help messages within all commands in Core Red (#4589)
Cogs - Audio - Added more friendly messages for 429 errors to let users know they have been temporarily banned from accessing the service instead of a generic Lavalink error (#4683)
Cogs - Audio - Environment information will now be appended to Lavalink tracebacks in the spring.log (#4683)
Cogs - Cleanup -
[p]cleanup selfwill now delete the command message when the bot has permissions to do so (#4640)Cogs - Economy -
[p]economyset slotminand[p]economyset slotmaxnow warn when the new value will cause the slots command to not work (#4583)Cogs - General - Updated features list in
[p]serverinfowith the latest changes from Discord (#4678)Cogs - Streams - Improved error logging (#4680)
Fixes
Core - Bot Commands - Fixed an error when removing path from a different operating system than the bot is currently running on with
[p]removepath(#2609, #4662, #4466)Cogs - Audio - Fixed
[p]llset javafailing to set the Java executable path (#4621, #4624)❤️ Cogs - Audio - Fixed SoundCloud playback (#4683)
❤️ Cogs - Audio - Fixed YouTube age-restricted track playback (#4683)
Cogs - Mod -
[p]bancommand will no longer error out when the given reason is too long (#4187, #4189)❤️ Cogs - Streams - Scheduled YouTube streams now work properly with the cog (#3691, #4615)
Developer changelog
Additions
Core - Utils Package -
get_audit_reason()can now be passed ashortenkeyword argument which will automatically shorten the returned audit reason to fit the max length allowed by Discord audit logs (#4189)❤️ Cogs - Dev - Added new
[p]bypasscooldowncommand that allows owners to bypass command cooldowns (#4440)
Changes
Core - Bot Class -
bot.remove_command()now returns the command object of the removed command as does the equivalent method fromdiscord.ext.commands.Botclass (#4636)
Documentation changes
Additions
❤️ Added cog guide for Downloader cog (#4511)
❤️ Added cog guide for Economy cog (#4519)
❤️ Added cog guide for Streams cog (#4521)
Added Becoming an Approved Cog Creator document (#4637)
Removals
Removed install instructions for Ubuntu 16.04 (#4650)
Redbot 3.4.3 (2020-11-16)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.3 uses a new Lavalink jar that you will need to manually update from our GitHub.
End-user changelog
Additions
Changes
Fixes
Cogs - Audio - Volume changes on ARM systems running a 64 bit OS will now work again (#4608)
❤️ Cogs - Audio - Fixed only 100 results being returned on a Youtube playlist (#4608)
❤️ Cogs - Audio - Fixed YouTube VOD duration being set to unknown (#3885, #4608)
❤️ Cogs - Audio - Fixed some YouTube livestreams getting stuck (#4608)
Cogs - Audio - Fixed internal Lavalink manager failing for Java with untypical version formats (#4608)
Cogs - Economy - The
[p]leaderboardcommand no longer fails in DMs when a global bank is used (#4569)Cogs - Mod - The ban reason is now properly set in the audit log and modlog when using the
[p]massbancommand (#4575)Cogs - Mod - The
[p]userinfocommand now shows the new Competing activity (#4610, #4611)Cogs - Modlog - The
[p]caseand[p]casesforcommands no longer fail when the bot doesn’t have Read Message History permission in the modlog channel (#4587, #4588)Cogs - Mutes - Fixed automatic remuting on member join for indefinite mutes (#4568)
Developer changelog
Fixes
Documentation changes
Additions
❤️ Added guide for Cog Manager UI (#4152)
❤️ Added cog guide for CustomCommands cog (#4490)
Redbot 3.4.2 (2020-10-28)
Read before updating
Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
Red 3.4.2 uses a new Lavalink jar that you will need to manually update from our GitHub.
End-user changelog
Changes
Core - Command-line Interfaces - Added info about the metadata file to
redbot --debuginfo(#4557)Cogs - Audio - Commands in
[p]llsetgroup can now be used in DMs (#4562)Cogs - Streams - Added error messages when exceeding the YouTube quota in the Streams cog (#4552)
Cogs - Streams - Improved logging for unexpected errors in the Streams cog (#4552)
Fixes
Documentation changes
Additions
❤️ Added cog guide for Cleanup cog (#4488)
Changes
Removed multi-line commands from Linux install guides to avoid confusing readers (#4550)
Redbot 3.4.1 (2020-10-27)
Read before updating
This release fixes a security issue in Mod cog. See Security changelog below for more information.
This Red update bumps discord.py to version 1.5.1, which explicitly requests Discord intents. Red requires all Privileged Intents to be enabled. More information can be found at Enabling Privileged Intents.
Mutes functionality has been moved from the Mod cog to a new separate cog (Mutes) featuring timed and role-based mutes. If you were using it (or want to start now), you can load the new cog with
[p]load mutes. You can see the full Removals changelog below.Information for Audio users that are using an external Lavalink instance (if you don’t know what that is, you should skip this point):
We’ve updated our application.yml file and you should update your instance’s
application.ymlappropriately. Please ensure that the WS port in Audio’s settings ([p]llset wsport) is set to the port from theapplication.yml.
End-user changelog
Security
NOTE: If you can’t update immediately, we recommend globally disabling the affected command until you can.
Cogs - Mod - Fixed unauthorized privilege escalation exploit in
[p]massban(also called[p]hackban) command. Full security advisory can be found on our GitHub.
Additions
Core - Bot Commands - Added
[p]set api listto list all currently set API services, without tokens (#4370)Core - Bot Commands - Added
[p]set api removeto remove API services, including tokens (#4370)Core - Bot Commands - Added
[p]helpset usetick, toggling command message being ticked when help is sent to DM (#4467, #4075)❤️ Core - i18n - Locales and regional formats can now be set in individual guilds using
[p]set localeand[p]set regionalformat(#3896, #1970)Global locale and regional format setters have been renamed to
[p]set globallocaleand[p]set globalregionalformat
Cogs - Audio - Added the Global Audio API, to cut down on Youtube 429 errors and allow Spotify playback past user’s quota. (#4446)
❤️ Cogs - Audio - Added persistent queues, allowing for queues to be restored on a bot restart or cog reload (#4446)
Cogs - Audio - Added
[p]audioset restart, allowing for Lavalink connection to be restarted (#4446)❤️ Cogs - Audio - Added
[p]audioset autodeafen, allowing for bot to auto-deafen itself when entering voice channel (#4446)Cogs - Audio - Added
[p]audioset mycountrycode, allowing Spotify search locale per user (#4446)Cogs - Audio - Added
[p]llset java, allowing for a custom Java executable path (#4446)Cogs - Audio - Added
[p]llset infoto show Lavalink settings (#4527)Cogs - Audio - Added
[p]audioset logsto download Lavalink logs if the Lavalink server is set to internal (#4527)Cogs - Mod - Added
[p]modset mentionspam strictallowing for duplicated mentions to count towards the mention spam cap (#4359)❤️ Cogs - Mod - Added a default tempban duration for
[p]tempban(#4473, #3992)❤️ Cogs - Mutes - Added
[p]muteset forceroleto make mutes role based, instead of permission based (#3634)❤️ Cogs - Mutes - Added an optional time argument to all mutes, to specify when the user should be unmuted (#3634)
Cogs - Trivia - Lists - Added new MLB trivia list (#4455)
Cogs - Trivia - Lists - Added new Who’s That Pokémon - Gen. IV trivia list (#4434)
Cogs - Trivia - Lists - Added new Hockey trivia list (#4384)
Changes
Replaced a few instances of Red with the bot name in command docstrings (#4470)
Core - Bot Commands - Added a default color field to
[p]set showsettings(#4498, #4497)Core - Bot Commands - Added the datapath and metadata file to
[p]debuginfo(#4524)Core - Bot Commands - Added a list of disabled intents to
[p]debuginfo(#4423)Core - Dependencies - Bumped discord.py dependency to version 1.5.1 (#4423)
Cogs - Audio - Removed lavalink logs from being added to backup (#4453, #4452)
Cogs - Audio - Removed stream durations from being in queue duration (#4513)
Cogs - Cleanup - Allowed
[p]cleanup selfto work in DMs for all users (#4481)Cogs - Economy - Added an embed option for
[p]leaderboard(#4184, #4104)❤️ Cogs - Mod - Added an option to ban users not in the guild to
[p]ban(#4422, #4419)Cogs - Mod - Renamed
[p]hackbanto[p]massban, keeping[p]hackbanas an alias, allowing for multiple users to be banned at once (#4422, #4419)Cogs - Mutes - Changed
[p]muteto only handle serverwide muting,[p]mute voiceand[p]mute channelhave been moved to separate commands called[p]mutechanneland[p]mutevoice(#3634)❤️ Cogs - Mutes - Mute commands can now take multiple user arguments, to mute multiple users at a time (#3634)
Cogs - Warnings - Added bool arguments to toggle commands to improve consistency (#4409)
Removals
Cogs - Mod - Moved mutes to a separate, individual cog (#3634)
Fixes
Fixed grammar in places scattered throughout bot (#4500)
Core - Fixed an ungraceful error being raised when a bot left a guild while a menu was open (#3902)
Core - Bot Commands - Fixed an incorrect error being reported on
[p]set namewhen the passed name was longer than 32 characters (#4364, #4363)Core - Bot Commands - Fixed
[p]set nicknameerroring when the passed name was longer than 32 characters (#4364, #4363)Core - Bot Commands - Fixed an ungraceful error being raised when running
[p]tracebackwith closed DMs (#4329)Core - Bot Commands - Fixed errors that could arise from invalid URLs in
[p]set avatar(#4437)Core - Bot Commands - Fixed an error being raised with
[p]set nicknamewhen no nickname was provided (#4451)Core - Bot Commands - Fixed and clarified errors being raised with
[p]set username(#4463)Core - Bot Commands - Fixed an ungraceful error being raised when the output of
[p]unloadis larger than 2k characters (#4469)Core - Bot Commands - Fixed an ungraceful error being raised when running
[p]choosewith empty options (#4499)Core - Bot Commands - Fixed info missing on the non-embed version of
[p]debuginfo(#4524)Core - Dependencies - Properly define supported Python versions to be lower than 3.9 (#4538)
Cogs - Audio - Scattered grammar and typo fixes (#4446)
❤️ Cogs - Audio - Fixed Bandcamp playback (#4504)
❤️ Cogs - Audio - Fixed YouTube playlist playback (#4504)
❤️ Cogs - Audio - Fixed YouTube searching issues (#4504)
❤️ Cogs - Audio - Fixed YouTube age restricted track playback (#4504)
Cogs - Audio - Fixed the Audio cog not being translated when setting locale (#4492, #4495)
❤️ Cogs - Audio - Fixed tracks getting stuck at 0:00 after long player sessions (#4529)
Cogs - CustomCommands - Fixed an ungraceful error being thrown on
[p]cc edit(#4325)Cogs - General - Fixed issues with text not being properly URL encoded (#4024)
Cogs - General - Fixed an ungraceful error occurring when a title is longer than 256 characters in
[p]urban(#4474)Cogs - General - Changed “boosters” to “boosts” in
[p]serverinfoto clarify what the number represents (#4507)Cogs - Mod - Fixed nicknames not being properly stored and logged (#4131)
Cogs - Mod - Fixed plural typos in
[p]userinfo(#4397, #4379)Cogs - Modlog - Fixed an error being raised when running
[p]casesforand[p]case(#4415)Cogs - Modlog - Long reasons in Modlog are now properly shortened in message content (#4541)
Cogs - Trivia - Lists - Fixed incorrect order of Machamp and Machoke questions (#4424)
Cogs - Warnings - Fixed users being able to warn users above them in hierarchy (#4100)
Developer changelog
Additions
Core - Bot Class - Added
bot.get_or_fetch_user()andbot.get_or_fetch_member()methods (#4403, #4402)Core - Bot Class - Added
bot.remove_shared_api_services()to remove all keys and tokens associated with an API service (#4370)Core - Bot Class - Added an option to return all tokens for an API service if
service_nameis not specified inbot.get_shared_api_tokens()(#4370)Core - Dependencies - Added
[all]and[dev]extras to theRed-DiscordBotpackage (#4443)❤️ Core - i18n - Added API for setting contextual locales (#3896, #1970)
New function added:
redbot.core.i18n.set_contextual_locales_from_guild()Contextual locale is automatically set for commands and only needs to be done manually for things like event listeners; see Recommendations for Cog Creators for more information
Core - Modlog - Added
last_known_usernameparameter tomodlog.create_case()function (#4326)❤️ Core - Utils Package - Added
redbot.core.utils.get_end_user_data_statement()andredbot.core.utils.get_end_user_data_statement_or_raise()to attempt to fetch a cog’s End User Data Statement (#4404)Core - Utils Package - Added
redbot.core.utils.chat_formatting.quote()to quote text in a message (#4425)❤️ Cogs - Dev - Added
[p]repl pauseto pause/resume the REPL session in the current channel (#4366)❤️ Cogs - Downloader - Added JSON schema files for
info.jsonfiles (#4375)
Changes
Core - Bank - Bank API methods now consistently throw TypeError if a non-integer amount is supplied (#4376)
Core - Commands Package - Moved
redbot.core.checks.bot_in_a_guild()toredbot.core.commands.bot_in_a_guild()(old name has been left as an alias) (#4515, #4510)❤️ Core - Modlog - Added an option to accept a
discord.Objectinmodlog.create_case()(#4326)
Deprecations
Core - Utils Package - Deprecated
redbot.core.utils.mod.is_allowed_by_hierarchy()(#4435)
Fixes
Core - Modlog - Fixed an error being raised with a deleted channel in
Case.message_content()(#4415)
Documentation changes
Additions
Changes
Clarified that naive
datetimeobjects will be treated as local times for parameterscreated_atanduntilinmodlog.create_case()(#4389)Replaced the link to the approved repository list on CogBoard and references to
cogs.redwith a link to new Red Index (#4439)Improved documentation about arguments in command syntax (#4058)
Redbot 3.4.0 (2020-08-17)
Read before updating
Red 3.4 comes with support for data deletion requests. Bot owners should read Red and End User Data to ensure they know what information about their users is stored by the bot.
Debian Stretch, Fedora 30 and lower, and OpenSUSE Leap 15.0 and lower are no longer supported as they have already reached end of life.
There’s been a change in behavior of
[p]tempban. Look at Changes changelog for Mod cog for full details.There’s been a change in behavior of announcements in Admin cog. Look at Changes changelog for Admin cog for full details.
Red 3.4 comes with breaking changes for cog developers. Look at Developer changelog for full details.
End-user changelog
Security
Cogs - Streams - Fixed critical vulnerability that could allow remote code execution (CVE-2020-15147), see security advisory GHSA-7257-96vg-qf6x for more information (#4183)
Additions
❤️ Core - Added per-guild cog disabling (#4043, #3945)
Bot owners can set the default state for a cog using
[p]command defaultdisablecogand[p]command defaultenablecogcommandsGuild owners can enable/disable cogs for their guild using
[p]command disablecogand[p]command enablecogcommandsCogs disabled in the guild can be listed with
[p]command listdisabledcogs
❤️ Core - Added support for data deletion requests; see Red and End User Data for more information (#4045)
Core - Bot Commands - Added
[p]helpset showsettingscommand (#4013, #4022)❤️ Cogs - Mod - Users can now set mention spam triggers which will warn or kick the user. See
[p]modset mentionspamfor more information (#3786, #4038)Cogs - Trivia - Lists - Added
whosthatpokemon2trivia containing Pokémons from 2nd generation (#4102)Cogs - Trivia - Lists - Added
whosthatpokemon3trivia containing Pokémons from 3rd generation (#4141)
Changes
[p]set nickname,[p]set serverprefix,[p]streamalert, and[p]streamsetcommands now can be run by users with permissions related to the actions they’re making (#4109)Updated Red’s emoji usage to ensure consistent rendering accross different devices (#4106, #4105, #4127)
Core - Bot Commands -
[p]licenseinfonow has a 3 minute cooldown to prevent a single user from spamming channel by using it (#4110)Core - Bot Commands - Whitelist and blacklist are now called allowlist and blocklist. Old names have been left as aliases (#4138)
Core - Command-line Interfaces - Red now logs clearer error if it can’t find package to load in any cog path during bot startup (#4079)
❤️ Cogs - Admin -
[p]announcewill now only send announcements to guilds that have explicitly configured text channel to send announcements to using[p]announceset channelcommand (#4088, #4089)❤️ Cogs - Downloader -
[p]cog infocommand now shows end user data statement made by the cog creator (#4169)❤️ Cogs - Downloader -
[p]cog updatecommand will now notify the user if cog’s end user data statement has changed since last update (#4169)Cogs - General - Updated features list in
[p]serverinfowith the latest changes from Discord (#4116)Cogs - General - Simple version of
[p]serverinfonow shows info about more detailed[p]serverinfo 1(#4121)Cogs - Mod -
[p]tempbannow respects default days setting ([p]modset defaultdays) (#3993)❤️ Cogs - Mod -
[p]mute voiceand[p]unmute voicenow take action instantly if bot has Move Members permission (#4064)Cogs - Mod - Added typing to
[p](un)mute guildto indicate that mute is being processed (#4066, #4172)Cogs - Modlog - Added timestamp to text version of
[p]casesforand[p]casecommands (#4118, #4137)Cogs - Streams - Stream alerts will no longer make roles temporarily mentionable if bot has “Mention @everyone, @here, and All Roles” permission in the channel (#4182)
Cogs - Streams - Hitbox commands have been renamed to smashcast (#4161)
Cogs - Streams - Improve error messages for invalid channel names/IDs (#4147, #4148)
Removals
Cogs - Streams - Mixer service has been closed and for that reason we’ve removed support for it from the cog (#4072)
Fixes
Fixed timestamp storage in few places in Red (#4017)
Developer changelog
Breaking Changes
❤️ By default, none of the
.send()methods mention roles or@everyone/@here(#3845)see
discord.AllowedMentionsandallowed_mentionskwarg of.send()methods, if your cog requires to mention roles or@everyone/@here
Method/attribute names starting with
red_or being in the form of__red_*__are now reserved. See Versioning for more information (#4085)Removed things past deprecation time: (#4163)
redbot.core.commands.APITokenloopkwarg frombounded_gather_iter(),bounded_gather(), andstart_adding_reactions()
Core - Cog package names (i.e. name of the folder the cog is in and the name used when loading the cog) now have to be valid Python identifiers (#3605, #3679)
Core - Commands Package -
Context.maybe_send_embed()now supresses all mentions, including user mentions (#4192)Core - Commands Package - The default value of the
filterkeyword argument inContext.send()has been changed toNone(#3845)Core - Utils Package -
humanize_list()no longer raisesIndexErrorfor empty sequences (#2982)
Additions
❤️ Core - Added cog disabling API (#4043, #3945)
New methods added:
bot.cog_disabled_in_guild(),bot.cog_disabled_in_guild_raw()Cog disabling is automatically applied for commands and only needs to be done manually for things like event listeners; see Recommendations for Cog Creators for more information
❤️ Core - Added data request API (#4045, #4169)
New special methods added to
redbot.core.commands.Cog:red_get_data_for_user()(documented provisionally),red_delete_data_for_user()New special module level variable added:
__red_end_user_data_statement__These methods and variables should be added by all cogs according to their documentation; see Recommendations for Cog Creators for more information
New
info.jsonkey added:end_user_data_statement; see Info.json format documentation for more information
Core - Bot Class - Added
bot.message_eligible_as_command()utility method which can be used to determine if a message may be responded to as a command (#4077)❤️ Core - Commands Package - Added a provisional API for replacing the help formatter. See documentation for more details (#4011)
Core - Commands Package -
commands.NoParseOptionalis no longer provisional and is now fully supported part of API (#4142)
Changes
Core - Bot Class -
bot.ignored_channel_or_guild()now acceptsdiscord.Messageobjects (#4077)❤️ Core - Commands Package - Autohelp in group commands is now sent after invoking the group, which allows before invoke hooks to prevent autohelp from getting triggered (#4129)
Core - Utils Package -
humanize_list()now acceptslocaleandstylekeyword arguments. See its documentation for more information (#2982)❤️ Core - Utils Package -
humanize_list()is now properly localized (#2906, #2982)Core - Utils Package -
humanize_list()now accepts empty sequences (#2982)Core - Utils Package -
bordered()now uses+for corners if keyword argumentascii_borderis set toTrue(#4097)Vendored Packages - Updated
discord.ext.menusvendor (#4167)
Fixes
Documentation changes
Additions
Removals
Removed install instructions for Debian Stretch (#4099)
Redbot 3.3.12 (2020-08-18)
End-user changelog
Security
Cogs - Streams - Fixed critical vulnerability that could allow remote code execution (CVE-2020-15147), see security advisory GHSA-7257-96vg-qf6x for more information (#4183)
Additions
Changes
Core - Command-line Interfaces - Red now logs clearer error if it can’t find package to load in any cog path during bot startup (#4079)
Cogs - General - Updated features list in
[p]serverinfowith the latest changes from Discord (#4116)Cogs - General - Simple version of
[p]serverinfonow shows info about more detailed[p]serverinfo 1(#4121)Cogs - Mod -
[p]mute voiceand[p]unmute voicenow take action instantly if bot has Move Members permission (#4064)Cogs - Mod - Added typing to
[p](un)mute guildto indicate that mute is being processed (#4066, #4172)Cogs - Streams - Improve error messages for invalid channel names/IDs (#4147, #4148)
Redbot 3.3.11 (2020-08-10)
End-user changelog
Security
Cogs - Trivia - Fixed critical vulnerability that could allow remote code execution (CVE-2020-15140), see security advisory GHSA-7257-96vg-qf6x for more information (#4175)
Fixes
Cogs - Audio - Audio should now work again on all voice regions (#4162, #4168)
Cogs - Audio - Removed an edge case where an unfriendly error message was sent in Audio cog (#3879)
Cogs - Cleanup - Fixed a bug causing
[p]cleanupcommands to clear all messages within last 2 weeks when0is passed as the amount of messages to delete (#4114, #4115)Cogs - CustomCommands -
[p]cc shownow sends an error message when command with the provided name couldn’t be found (#4108)Cogs - Downloader -
[p]findcogno longer fails for 3rd-party cogs without any author (#4032, #4042)Cogs - Downloader - Update commands no longer crash when a different repo is added under a repo name that was once used (#4086)
Cogs - Permissions -
[p]permissions removeserverruleand[p]permissions removeglobalruleno longer error when trying to remove a rule that doesn’t exist (#4028, #4036)Cogs - Warnings -
[p]warnnow sends an error message (instead of no feedback) when an unregistered reason is used by someone who doesn’t have Administrator permission (#3839, #3840)
Redbot 3.3.10 (2020-07-09)
End-user changelog
Additions
Cogs - Downloader - Added
[p]cog listpinnedsubcommand to see currently pinned cogs (#3974)Cogs - Filter - Added
[p]filter listto show filtered words, and removed DMs when no subcommand was passed (#3973)Cogs - Trivia - Lists - Added new
lotrtrivia list (#3980)Cogs - Trivia - Lists - Added new
r6seigetrivia list (#4026)
Changes
Core - Bot Commands - Added settings view commands for nearly all cogs. (#4041)
Core - Bot Commands - Added more strings to be fully translatable by i18n. (#4044)
Core - Bot Commands - Clarified that
[p]embedset useronly affects commands executed in DMs (#3972, #3953)Core - Command-line Interfaces - Red now prints a link to Getting Started guide if the bot isn’t in any server (#3906)
Core - Command-line Interfaces - Added the option of using dots in the instance name when creating your instances (#3920)
Core - Command-line Interfaces - Added a confirmation when using hyphens in instance names to discourage the use of them (#3920)
Core - Dependencies - Bumped the Discord.py requirement from 1.3.3 to 1.3.4 (#4053)
Cogs - Audio - Added information about internally managed jar to
[p]audioset info(#3915)Cogs - Downloader - Added embed version of
[p]findcog(#3965, #3944)Cogs - Mod - Added option to delete messages within the passed amount of days with
[p]tempban(#3958)Cogs - Mod - Reduced the number of API calls made to the storage APIs (#3910)
Cogs - Mod - Prevented an issue whereby the author may lock themself out of using the bot via whitelists (#3903)
Cogs - Mod - Improved error response in
[p]modset banmentionspam(#3951, #3949)Cogs - Modlog - Improved error response in
[p]modlogset modlog(#3951, #3949)Cogs - Permissions - Uploaded YAML files now accept integer commands without quotes (#3987, #3185)
Cogs - Permissions - Uploaded YAML files now accept command rules with empty dictionaries (#3987, #3961)
Cogs - Trivia - Lists - Updated
greekmythto include more answer variations (#3970)
Fixes
Core - Bot Commands - Fixed delayed help when
[p]set deletedelayis enabled (#3884, #3883)Core - Bot Commands - Fixed grammar errors and added full stops in various core commands (#4023)
Cogs - Audio - Twitch playback and YouTube searching should be functioning again. (#4055)
Cogs - Downloader - Fixed unnecessary typing when running downloader commands (#3964, #3948)
Cogs - Downloader - Fixed
[p]findcognot differentiating between core cogs and local cogs(#3969, #3966)Cogs - Image - Updated instructions for obtaining and setting the GIPHY API key (#3994)
Cogs - Mod - Added the ability to permanently ban a temporarily banned user with
[p]hackban(#4025)Cogs - Mod - Fixed the passed reason not being used when using
[p]tempban(#3958)Cogs - Mod - Fixed invite being sent with
[p]tempbaneven when no invite was set (#3991)Cogs - Mod - Fixed exceptions being ignored or not sent to log files in special cases (#3895)
Cogs - Mod - Fixed migration owner notifications being sent even when migration was not necessary (#3911. #3909)
Cogs - Streams - Fixed Streams cog sending multiple owner notifications about twitch secret not set (#3901, #3587)
Cogs - Streams - Fixed old bearer tokens not being invalidated when the API key is updated (#3990, #3917)
Cogs - Streams - Fixed commands being translated where they should not be (#3938, #3919)
Cogs - Trivia - Lists - Fixed URLs in
whosthatpokemon(#3975, #3023)Cogs - Trivia - Lists - Fixed trivia files
leagueultsandsports(#4026)
Developer changelog
Additions
Changes
Core - Utils Package - Added new
discord.comdomain toINVITE_URL_REcommon filter (#4012)
Deprecations
Core - Commands Package - Updated deprecation times for
APIToken, and loops being passed to various functions to the first minor release (represented byXin3.X.0) after 2020-08-05 (#3608)Cogs - Downloader - Updated deprecation warnings for shared libs to reflect that they have been moved for an undefined time (#3608)
Fixes
Core - Utils Package - Fixed incorrect role mention regex in
MessagePredicate(#4030)
Redbot 3.3.9 (2020-06-12)
Read before updating
Bot owners can no longer restrict access to some commands in Permissions cog using global permissions rules. Look at Security changelog for full details.
There’s been a change in behavior of warning messages. Look at Additions changelog for full details.
End-user changelog
Security
Cogs - Mod -
[p]tempbannow properly respects Discord’s hierarchy rules (#3957)NOTE: If you can’t update immediately, we recommend disabling the affected command until you can.
Cogs - Permissions - Both global and server rules can no longer prevent guild owners from accessing commands for changing server rules. Bot owners can still use
[p]command disableif they wish to completely disable any command in Permissions cog (#3955, #3107)Full list of affected commands:
[p]permissions acl getserver[p]permissions acl setserver[p]permissions acl updateserver[p]permissions addserverrule[p]permissions removeserverrule[p]permissions setdefaultserverrule[p]permissions clearserverrules[p]permissions canrun[p]permissions explain
Additions
Cogs - Warnings - Warnings sent to users don’t show the moderator who warned the user by default now. Newly added
[p]warningset showmoderatorscommand can be used to switch this behaviour (#3781)
Changes
Core - Bot Commands -
[p]infocommand can now be used when bot doesn’t have Embed Links permission (#3907, #3102)Core - Bot Commands - Improved instructions on obtaining user ID in help of
[p]dmcommand (#3946)Core - Command-line Interfaces - Red’s start up message now shows storage type (#3935)
Cogs - Alias -
[p]alias globalgroup,[p]alias help, and[p]alias showcommands can now be used in DMs (#3941, #3940)Cogs - Bank -
[p]banksetnow displays bank’s scope (#3954)
Fixes
Added missing help message for Downloader, Reports and Streams cogs (#3892)
Core - Bot Commands - Fixed ungraceful error that happened in
[p]set custominfowhen provided text was too long (#3923)Core - Bot Commands - Cooldown in
[p]contactno longer applies when it’s used without any arguments (#3942)Cogs - Audio - Audio now properly ignores streams when max length is enabled (#3878, #3877)
Cogs - Audio - Commands that should work in DMs no longer error (#3880)
Cogs - Audio - Fixed
[p]audioset autoplaybeing available in DMs (#3899)Cogs - Filter - Fixed behavior of detecting quotes in commands for adding/removing filtered words (#3925)
Cogs - Mod - Preemptive fix for d.py 1.4 (#3891)
Cogs - Warnings - Warn channel functionality has been fixed (#3781)
Developer changelog
Additions
Core - Bot Class - Added
bot.set_prefixes()method that allows developers to set global/server prefixes (#3890)
Documentation changes
Changes
Added Oracle Cloud to free hosting section in Hosting Information (#3916)
Redbot 3.3.8 (2020-05-29)
End-user changelog
Additions
Cogs - Audio - Added new option (settable with
[p]audioset lyrics) that makes Audio cog prefer (prioritize) tracks with lyrics (#3519)Cogs - Audio - Added global daily (historical) queues (#3518)
Cogs - Audio - Added
[p]audioset countrycodethat allows to set the country code for spotify searches (#3528)
Changes
Few clarifications and typo fixes in few command help docstrings (#3817, #3823, #3837, #3851, #3861)
Core - Red now includes information on how to update when sending information about being out of date (#3744)
Cogs - Alias -
[p]alias helpshould now work more reliably (#3864)Cogs - Audio -
[p]local playno longer enqueues tracks from nested folders (#3528)Cogs - Audio -
[p]disconnectnow allows to disconnect if both DJ mode and voteskip aren’t enabled (#3502, #3485)Cogs - Audio - Many UX improvements and fixes, including, among other things:
Creating playlists without explicitly passing
-scopeno longer causes errors (#3500)[p]playlist listnow shows all accessible playlists if--scopeflag isn’t used (#3518)[p]removenow also accepts a track URL in addition to queue index (#3201)[p]playlist uploadnow accepts a playlist file uploaded in the message with a command (#3251)Commands now send friendly error messages for common errors like lost Lavalink connection or bot not connected to voice channel (#3503, #3528, #3353, #3712)
Cogs - Mod -
[p]userinfonow shows default avatar when no avatar is set (#3819)
Fixes
Core - Made important fixes to how PostgreSQL data backend saves data in bulks (#3829)
Core - Using backslashes in bot’s username/nickname no longer causes issues (#3826, #3825)
Core - Bot Commands - Fixed
[p]localwhitelistand[p]localblacklistcommands (#3857)Cogs - Alias - Added pagination to
[p]alias listand[p]alias global listto avoid errors for users with a lot of aliases (#3844, #3834)Cogs - Audio - Twitch playback is functional once again (#3873)
Cogs - Audio - Recent errors with YouTube playback should be resolved (#3873)
Cogs - Audio - Local folders with special characters should work properly now (#3528, #3467)
Cogs - Audio - Audio no longer fails to take the last spot in the voice channel with user limit (#3528)
Cogs - Audio - Fixed
[p]playlist dedupenot removing tracks (#3518)Cogs - CustomCommands -
[p]customcom createno longer allows spaces in custom command names (#3816)Cogs - Modlog - Fixed (again)
AttributeErrorfor cases whose moderator doesn’t share the server with the bot (#3805, #3784, #3778)Cogs - Permissions - Commands for settings ACL using yaml files now properly works on PostgreSQL data backend (#3829, #3796)
Cogs - Warnings - Warnings cog no longer allows to warn bot users (#3855, #3854)
Developer changelog
Changes
Core - Bot Class - Red now inherits from
discord.ext.commands.AutoShardedBotfor better compatibility with code expecting d.py bot (#3822)Core - Bot Class - All bot owner IDs can now be found under
bot.owner_idsattribute (#3793)Note: If you want to use this on bot startup (e.g. in cog’s initialisation), you need to await
bot.wait_until_red_ready()first
Fixes
Documentation changes
Changes
Added information about provisional status of RPC (#3862)
Revised install instructions (#3847)
Improved navigation in document about updating Red (#3856, #3849)
Redbot 3.3.7 (2020-04-28)
This is a hotfix release fixing issue with generating messages for new cases in Modlog.
Redbot 3.3.6 (2020-04-27)
End-user changelog
Additions
Changes
Core - Various optimizations
Reduced calls to data backend when loading bot’s commands (#3764)
Reduced calls to data backend when showing help for cogs/commands (#3766)
Improved performance for bots with big amount of guilds (#3767)
Mod cog no longer fetches guild’s bans every 60 seconds when handling unbanning for tempbans (#3783)
Reduced the bot load for messages starting with a prefix when fuzzy search is disabled (#3718)
Aliases in Alias cog are now cached for better performance (#3788)
Core - Bot Commands -
[p]set avatarnow supports setting avatar using attachment (#3747)Core - Bot Commands -
[p]debuginfonow shows used storage type (#3794)Cogs - Trivia - Lists - Updated
leagueoflegendslist with new changes to League of Legends (b8ac70e)
Fixes
Core - Fixed big delays in commands that happened when the bot was owner-less (or if it only used co-owners feature) and command caller wasn’t the owner (#3782)
Core - Bot Commands - Fixed list of ignored channels that is shown in
[p]ignore/[p]unignore(#3746)Core - Command-line Interfaces - Converting from and to Postgres driver with
redbot-setup converthave been fixed (#3714, #3115)Cogs - Audio - Age-restricted tracks, live streams, and mix playlists from YouTube should work in Audio again (#3791)
Cogs - Audio - SoundCloud sets and playlists with more than 50 tracks should work in Audio again (#3791)
Cogs - Modlog - Fixed
AttributeErrorfor cases whose moderator doesn’t share the server with the bot (#3784, #3778)Cogs - Streams - Fixed incorrect stream URLs for Twitch channels that have localised display name (#3773, #3772)
Cogs - Trivia - Fixed the error in
[p]trivia stopthat happened when there was no ongoing trivia session in the channel (#3774)Cogs - Trivia - Lists - Corrected spelling of Compact Disc in
gameslist (#3759, #3758)
Developer changelog
Additions
Core - Utils Package - Added
redbot.core.utils.AsyncIterutility class which allows you to wrap regular iterable into async iterator yielding items and sleeping fordelayseconds everystepsitems (#3767, #3776)
Changes
Core - Utils Package -
bold(),italics(),strikethrough(), andunderline()now acceptescape_formattingargument that can be used to disable escaping of markdown formatting in passed text (#3742)
Fixes
Core - Config - JSON driver will now properly have only one lock per cog name (#3780)
Documentation changes
Additions
Added document about updating Red (#3790)
Updated install docs to include Ubuntu 20.04 (#3792)
Changes
Redbot 3.3.5 (2020-04-09)
End-user changelog
Changes
Core - Bot Commands - “Outdated” field no longer shows in
[p]infowhen Red is up-to-date (#3730)
Fixes
Cogs - Alias - Fixed regression in
[p]alias addthat caused it to reject commands containing arguments (#3734)
Redbot 3.3.4 (2020-04-05)
End-user changelog
Changes
Fixes
Core - Bot Commands - Fixed checks related to bank’s global state that were used in commands in Bank, Economy and Trivia cogs (#3707)
Developer changelog
Changes
Core - Dependencies - Bump dependencies, including update to discord.py 1.3.3 (#3723)
Core - Utils Package -
redbot.core.utils.common_filters.filter_invitesnow filtersdiscord.io/discord.liinvites links (#3717)
Fixes
Core - Utils Package - Fixed false-positives in
redbot.core.utils.common_filters.filter_invites(#3717)
Documentation changes
Changes
Versions of pre-requirements are now included in Windows install guide (#3708)
Redbot 3.3.3 (2020-03-28)
End-user changelog
Security
Cogs - Cleanup - Removed regex support in
[p]cleanup self(#3704)
Additions
Core - i18n - Added
[p]set regionalformatcommand that allows users to set regional formatting that is different from bot’s locale (#3677, #3588)Cogs - Cleanup - Added
[p]cleanup spamcommand that deletes duplicate messages from the last X messages and keeps only one copy (#3688)Cogs - CustomCommands - Added
[p]cc searchcommand that allows users to search through created custom commands (#2573)Cogs - Trivia - Added
[p]triviaset custom upload/delete/listcommands for managing custom trivia lists from Discord (#3420, #3307)Cogs - Warnings - Sending warnings to warned user can now be disabled with
[p]warnset toggledmcommand (#2929, #2800)Cogs - Warnings - Added
[p]warnset warnchannelcommand that allows to set a channel where warnings should be sent to instead of the channel command was called in (#2929, #2800)Cogs - Warnings - Added
[p]warnset togglechannelcommand that allows to disable sending warn message in guild channel (#2929, #2800)
Changes
Core - Delete delay for command messages has been moved from Mod cog to Core (#3638, #3636)
Core - Command errors (i.e. command on cooldown, dm-only and guild-only commands, etc) can now be translated (#3665, #2988)
Core - Bot Commands -
[p]set localeallows any valid locale now, not just locales for which Red has translations (#3676, #3596)Core - Bot Commands - Permissions for commands in Bank, Economy and Trivia cogs can now be overridden by Permissions cog (#3672, #3233)
Core - Bot Commands - Added
[p]set playingand[p]set streamingaliases for respectively[p]set gameand[p]set stream(#3646, #3590)Core - Command-line Interfaces -
redbot-setupnow prints link to Getting started guide at the end of the setup (#3027)Cogs - Downloader -
[p]cog checkforupdatesnow includes information about cogs that can’t be installed due to Red/Python version requirements (#3678, #3448)Cogs - Downloader - Improved error messages for unexpected errors in
[p]repo add(#3656)Cogs - General - Added more detailed mode to
[p]serverinfocommand that can be accessed with[p]serverinfo 1(#2382, #3659)Cogs - Image - Users can now specify how many images should be returned in
[p]imgur searchand[p]imgur subredditusing[count]argument (#3667, #3044)Cogs - Image -
[p]imgur searchand[p]imgur subredditnow return one image by default (#3667, #3044)Cogs - Mod -
[p]userinfonow shows user’s activities (#3669)Cogs - Mod -
[p]userinfonow shows status icon near the username (#3669)Cogs - Modlog - Modlog’s cases now keep last known username to prevent losing that information from case’s message on edit (#3674, #3443)
Cogs - Permissions - Commands for setting default rules now error when user tries to deny access to command designated as being always available (#3504, #3465)
Cogs - Streams - Preview picture for YouTube stream alerts is now bigger (#3689, #3685)
Cogs - Streams - Failures in Twitch API authentication are now logged (#3657)
Cogs - Warnings -
[p]warnnow tells the moderator when bot wasn’t able to send the warning to the user (#3653, #3633)
Fixes
All owner notifications in core cogs now use proper prefixes in messages (#3632)
Core - Fixed various bugs with blacklist and whitelist (#3643, #3642)
Core - Outages of
pypi.orgno longer prevent the bot from starting (#3663)Core - Fixed formatting of help strings in fuzzy search results (#3673, #3507)
Core - Fixed few deprecation warnings related to menus and uvloop (#3644, #3700)
Core - Bot Commands -
[p]set gameno longer errors when trying to clear the status (#3630, #3628)Core - Bot Commands - Whitelist and blacklist commands now properly require passing at least one user (or role in case of local whitelist/blacklist) (#3652, #3645)
Cogs - Downloader - Fix misleading error appearing when repo name is already taken in
[p]repo add(#3695)Cogs - Downloader - Prevent encoding errors from crashing
[p]cog update(#3639, #3637)Cogs - Mod - Muting no longer fails if user leaves while applying overwrite (#3627)
Cogs - Mod - Fixed error that happened when Mod cog was loaded for the first time during bot startup (#3632, #3626)
Cogs - Streams - Fixed an error that happened when no game was set on Twitch stream (#3631)
Cogs - Streams - YouTube channels with a livestream that doesn’t have any current viewer are now properly showing as streaming (#3690)
Cogs - Trivia - Trivia sessions no longer error on payout when winner’s balance would exceed max balance (#3666, #3584)
Cogs - Trivia - Non-finite numbers can no longer be passed to
[p]triviaset timelimit,[p]triviaset stopafterand[p]triviaset payout(#3668, #3583)
Developer changelog
Fixes
Deprecation warnings issued by Red now use correct stack level so that the cog developers can find the cause of them (#3644)
Core - Utils Package -
redbot.core.utils.menus.menu()now checks permissions before trying to clear reactions (#3589, #3145)Cogs - Dev - Added
__name__to environment’s globals (#3649, #3648)
Documentation changes
Changes
Windows install instructions now use
choco upgradecommands instead ofchoco installto ensure up-to-date packages (#3684)
Fixes
Redbot 3.3.2 (2020-02-28)
End-user changelog
Additions
Cogs - Streams - Added
[p]streamset timercommand which can be used to control how often the cog checks for live streams (#3237)
Changes
Core - Ignored guilds/channels and whitelist/blacklist are now cached for performance (#3472)
Core - Ignored guilds/channels have been moved from Mod cog to Core (#3472)
Core - Bot Commands -
[p]ignore channelcommand can now also ignore channel categories (#3472)Core - Bot Commands - Improved user experience of
[p]set game/listening/watching/commands (#3562)Core - Bot Commands - Added
[p]licenceinfoalias for[p]licenseinfocommand to conform with non-American English (#3460)Cogs - Downloader - Added better logging of errors when Downloader fails to add a repo (#3558)
Cogs - Mod -
[p]hackbanand[p]unbancommands support user mentions now (#3524)Cogs - Streams - Significantly reduce the quota usage for YouTube stream alerts (#3237)
Cogs - Warnings - Users can now pass a reason to
[p]unwarncommand (#3490, #3093)Cogs - Warnings - Use more reliant way of checking if command is bot owner only in
[p]warnaction(Warnings cog) (#3516, #3515)
Fixes
Core cogs will now send bot mention prefix properly in places where discord doesn’t render mentions (#3579, #3591, #3499)
Core - Stop using deprecated code in Core (#3610)
Core - Bot Commands - Fixed a bug with
[p]blacklist addthat made it impossible to blacklist users that bot doesn’t share a server with (#3472, #3220)Core - Bot Commands - Update PyPI domain in
[p]infoand update checker (#3607)Cogs - Admin -
[p]announcewill now only send error message if an actual errors occurs (#3514, #3513)Cogs - Alias -
[p]alias helpwill now properly work in non-English locales (#3546)Cogs - Audio - Users should be able to play age-restricted tracks from YouTube again (#3620)
Cogs - Downloader - Downloader will no longer fail because of invalid
info.jsonfiles (#3533, #3456)Cogs - Economy - Next payday time will now be adjusted for users when payday time is changed (#3496, #3438)
Cogs - Image - Fixed load error for users that updated Red from version lower than 3.1 to version 3.2 or newer (#3617)
Cogs - Streams - Fixed stream alerts for Twitch (#3487)
Cogs - Trivia - Added better handling for errors in trivia session (#3606)
Cogs - Trivia - Lists - Removed empty answers in trivia lists (#3581)
Developer changelog
Security
Core - Commands Package - Subcommands of command group with
invoke_without_command=Truewill again inherit this group’s checks (#3614)
Additions
Cogs - Dev - Allow for top-level
Await expression,The async for statementandThe async with statementin[p]debugand[p]replcommands (#3508)
Changes
Core - Command-line Interfaces - Added traceback logging to task exception handling (#3517)
Core - Command-line Interfaces - Bot will now show deprecation warnings in logs (#3527, #3615)
Core - Commands Package - Developers can now create a command from an async function wrapped in
functools.partial(#3542)Core - Dependencies - Updated all our dependencies - we’re using discord.py 1.3.2 now (#3609)
Core - Utils Package - Added clearer error when page is of a wrong type in
redbot.core.utils.menus.menu()(#3571)Cogs - Downloader - Downloader will now replace
[p]with clean prefix same as it does in help command (#3592)Cogs - Downloader - Added schema validation to
info.jsonfile processing - it should now be easier to notice any issues with those files (#3533, #3442)
Fixes
Documentation changes
Additions
Added guidelines for Cog Creators in Creating cogs for Red V3 document (#3568)
Changes
Restructured virtual environment instructions to improve user experience (#3495, #3411, #3412)
Getting started guide now explains use of quotes for arguments with spaces (#3555, #3111)
latestversion of docs now displays a warning about possible differences from current stable release (#3570)Made systemd guide clearer on obtaining username and python path (#3537, #3462)
Improved indication of instructions for different venv types in systemd guide (#3538)
Service file in Setting up auto-restart using systemd on Linux now also waits for network connection to be ready (#3549)
Hid alias of
randomize_colourin docs (#3491)Added separate headers for each event predicate class for better navigation (#3595, #3164)
Improved wording of explanation for
required_cogskey in Publishing cogs for Red V3 (#3520)
Redbot 3.3.1 (2020-02-05)
End-user changelog
Additions
Changes
Fixes
Developer changelog
Deprecations
Core - Utils Package - Passing the event loop explicitly in
bounded_gather(),bounded_gather_iter(), andstart_adding_reactions()is deprecated and will be removed in 3.4 (#3509)
Documentation changes
Additions
Changes
Redbot 3.3.0 (2020-01-26)
End-user changelog
Additions
Core - Team applications are now supported (#2781, #3445)
Added new
--team-members-are-ownersflag that will make Red treat owners of the team application as bot owners
Core - Bot Commands - Embed use can now be configured per channel with new
[p]embedset channelcommand (#3152, #3418)Cogs - Mod - You can set a default amount of days to clean up when banning with
[p]banand[p]tempban(#2441, #2930, #3437)Cogs - Mod - Users can now optionally be DMed their ban reason (#2649, :issue:2990`)
Changes
Core - Help - Help is now self consistent in the extra formatting used (#3451)
Cogs - Admin - Role granting/removing commands will now notify when the user already has/doesn’t have a role when attempting to add/remove it (#3010, #3408)
Cogs - Audio - Playlist searching is now more intuitive (#3430)
Cogs - Downloader - Some user facing messages were improved (#3409)
Cogs - Mod -
[p]slowmodeshould no longer error on nonsensical time quantities (#3453)
Fixes
Cogs - Audio -
[p]audioset dcand[p]repeatcommands no longer interfere with each other (#3425, #3426)Cogs - Cleanup - Fixed a rare edge case involving messages that were deleted during cleanup (#3414)
Cogs - CustomCommands -
[p]cc create randomno longer errors when exiting an interactive menu (#3416, #3417)Cogs - Downloader - Downloader’s initialization can no longer time out at startup (#3415, #3440, #3444)
Cogs - General -
[p]rollcommand will no longer attempt to roll obscenely large amounts (#3284, #3395)Cogs - Permissions - Now has stronger enforcement of prioritizing botwide settings
Developer changelog
Breaking Changes
Core - Commands Package - Importing submodules of
discord.ext.commandsfromredbot.core.commandswill no longer work (#3410)Core - Commands Package -
PermState.ALLOWED_STATESfromredbot.core.commands.requireshas been moved to a global variable calledPermStateAllowedStatesin the same module (#3410)Core - Commands Package -
PermState.TRANSITIONSfromredbot.core.commands.requireshas been moved to a global variable calledPermStateAllowedStatesin the same module (#3410)Core - Commands Package - Use of
@asyncio.coroutineis no longer supported. Useasync definstead (#3410)
Changes
Deprecations
Cogs - Downloader - Updated deprecation warnings for shared libs to reflect that they will instead be removed in 3.4 (#3449)
Fixes
Core - Commands Package - Fixed an issue with default units in
TimedeltaConverter(#3453)
Documentation changes
Fixes
We’ve made some small fixes to inaccurate instructions about installing with pyenv (#3434)
Redbot 3.2.3 (2020-01-17)
End-user changelog
Additions
Core - The bot’s description is now configurable through
[p]set description(#3340)
Changes
Core - Further improvements have been made to bot startup and shutdown (#3358, #3392)
Core - Prefixes are now cached for performance (#3148, #3150)
Core - The bot now ensures it has at least the bare neccessary permissions before running commands (#3304, #3305, #3361)
Core - Bot Commands - The
[p]serverscommand now also shows the ids (#3224, #3393)Cogs - Audio - Reduced cooldowns for some of the playlist commands (#3342)
Cogs - Downloader - Improved a few user facing messages (#3343)
Cogs - Downloader - Added logging of failures (#3372)
Fixes
Core - Embed settings (
[p]embedset) for[p]helpnow work the same as for other commands (#3382)Core - Command-line Interfaces - Deleting instances works as intended again (#3338, #3384)
Cogs - Admin - The selfrole command now has reasonable expectations about hierarchy (#3331)
Cogs - Audio - Audio now properly disconnects the bot when
[p]audioset dcis turned on, even if[p]audioset notifyis being used (#3349, #3350)Cogs - Audio - Symbolic links now work as intended for local tracks (#3332, #3376)
Cogs - Audio -
[p]bumpplaynow shows the correct remaining time until the bumped track is played (#3373, #3375)Cogs - Audio - Multiple user facing messages have been made more correct (#3347, #3348, #3374)
Cogs - Downloader - Added pagination of output on cog update when it’s too long for single message (#3385, #3388)
Developer changelog
Additions
Core - Added the means for cog creators to use a global preinvoke hook (#3369)
Core - Commands Package - New features added for cog creators to further customize help behavior (#3339)
Check out our command reference for details on new
format_help_for_contextmethod
Core - Commands Package -
[botname]is now replaced with the bot’s display name in help text (#3339)
Documentation changes
Additions
Changes
Added a note about how to update Red to the install guides (#3400)
Clarified some information about breaking changes in Red 3.2.0 changelog (#3367)
Improved the structure of the Linux/Mac install guide to make it more clear to the user which sections they should be following (#3365)
Added more details to the API key reference (#3400)
Updated the documentation to require the usage of virtual environment for installing and running Red (#3351)
Updated auto-restart guides to use Python’s
-Oflag to enable assert optimizations (#3354)
Fixes
Redbot 3.2.2 (2020-01-10)
End-user changelog
Fixes
Documentation changes
Fixes
Redbot 3.2.1 (2020-01-10)
End-user changelog
Changes
Cogs - Modlog - Modlog will now log an error with unexpected case type key (and any other keys) rather than crash (#3318)
Fixes
Redbot 3.2.0 (2020-01-09)
Read before updating
Red 3.2 dropped support for the MongoDB driver. When updating your instance from an older version, be sure to use instructions for your current version from the document about updating Red to be able to still start your instance after the update.
Red 3.2 requires Python 3.8.1 or newer. In order to be able to update, you’ll first have to install appropriate versions of your dependencies so be sure to use instructions for your current version from the document about updating Red.
Note
You may get a notification from the downloader cog about needing to refetch dependencies. This is expected and it will walk you through everything and do as much as it can for you.
Red 3.2 comes with improvements which required breaking changes for 3rd party cogs. When you update to 3.2, your cogs may not be compatible if the author has not handled the changes yet. If you’re a cog creator, you can look at Developer changelog for full details.
End-user changelog
Breaking Changes
Additions
Core - Added a config driver for PostgreSQL (#2723)
Core - Bot Commands - Added
[p]licenseinfo(#3090)Core - Bot Commands - Added a command to list disabled commands globally or per guild (#3118)
Core - Command-line Interfaces - Added the cli flag
redbot --editwhich is used to edit the instance name, token, owner, and datapath (#3060)Core - Command-line Interfaces - Added
redbot-setup backup(#3235)Core - Command-line Interfaces - Added
redbot --debuginfoflag which shows useful information for debugging (#3183)Cogs - Audio - Added support for nested folders in the localtrack folder (#270)
Cogs - Audio - Audio now auto pauses the queue when the voice channel is empty (#721)
Cogs - Audio - All playlist commands now accept optional arguments, use
[p]help playlist <subcommand>for more details (#2861)Cogs - Audio -
[p]playlist renamewill now allow users to rename existing playlists (#2861)Cogs - Audio -
[p]playlist updatewill now allow users to update non-custom Playlists to the latest available tracks (#2861)Cogs - Audio - There are now 3 different scopes of playlist. To define them, use the
--scopeargumentGlobal PlaylistThese playlists will be available in all servers the bot is in.
These can be managed by the Bot Owner only.
Server PlaylistThese playlists will only be available in the server they were created in.
These can be managed by the Bot Owner, Guild Owner, Mods, Admins, DJs, and the Creator (if the DJ role is disabled).
User PlaylistThese playlists will be available in all servers both the bot and the creator are in.
These can be managed by the Bot Owner and Creator only. (#2861)
Cogs - Audio -
[p]audioset cachecan now be used to set the cache level. It’s off by default (#2904)Cogs - Audio -
[p]genrecan now be used to play spotify playlists (#2904)Cogs - Audio -
[p]audioset cacheagecan now be used to set the maximum age of an entry in the cache. Default is 365 days (#2904)Cogs - Audio -
[p]audioset autoplaycan now be used to enable auto play once the queue runs out (#2904)Cogs - Audio -
[p]queue shufflecan now be used to shuffle the queue manually (#2904)Cogs - Audio -
[p]queue clean selfcan now be used to remove all songs you requested from the queue (#2904)Cogs - Audio -
[p]audioset restrictionscan now be used to add or remove keywords which songs must have or are not allowed to have (#2904)Cogs - Audio -
[p]playlist dedupecan now be used to remove duplicated tracks from a playlist (#2904)Cogs - Audio -
[p]autoplaycan now be used to play a random song (#2904)Cogs - Audio -
[p]bumpplaycan now be used to add a song to the front of the queue (#2940)Cogs - Audio -
[p]shufflenow has an additional argument to tell the bot whether it should shuffle bumped tracks (#2940)Cogs - Audio - Added global whitelist/blacklist commands (#3047)
Cogs - Audio - Added self-managed daily playlists in the GUILD scope, these are called “Daily playlist - YYYY-MM-DD” and auto delete after 7 days (#3199)
Cogs - Bank - Added
[p]bankset maxbalto set the maximum bank balance (#2926)Cogs - Economy - Added new commands for pruning bank accounts (#2845)
[p]bank prune user- This will delete a user’s bank account.[p]bank prune local- This will prune the bank of accounts for users who are no longer in the server.[p]bank prune global- This will prune the global bank of accounts for users who do not share any servers with the bot.
Cogs - Downloader - Added
[p]repo update [repos]which updates repos without updating the cogs from them (#2527)Cogs - Downloader - Added
[p]cog installversion <repo_name> <revision> <cogs>which installs cogs from a specified revision (commit, tag) of the given repo. When using this command, the cog will automatically be pinned (#2527)Cogs - Downloader - Added
[p]cog pin <cogs>and[p]cog unpin <cogs>for pinning cogs. Cogs that are pinned will not be updated when using update commands (#2527)Cogs - Downloader - Added
[p]cog checkforupdatesthat lists which cogs can be updated (including pinned cog) without updating them (#2527)Cogs - Downloader - Added
[p]cog updateallfromrepos <repos>that updates all cogs from the given repos (#2527)Cogs - Downloader - Added
[p]cog updatetoversion <repo_name> <revision> [cogs]that updates all cogs or ones of user’s choosing to chosen revision of the given repo (#2527)Cogs - Downloader - Added
[p]cog reinstallreqsthat reinstalls cog requirements and shared libraries for all installed cogs (#3167)Cogs - Trivia - Lists - Added trivia lists for Prince and Michael Jackson lyrics (#12)
Changes
Red now takes less time to fetch cases, unban members, and list warnings (#2964)
Core - JSON config files are now stored without indentation, this is to reduce the file size and increase the performance of write operations (#2921)
Core - Red now handles more things prior to connecting to discord to reduce issues during the initial load (#3045)
Core - Red will now send a message when the invoked command is DM-only (#3057)
Core - The lib folder is now cleared on minor Python version changes.
[p]cog reinstallreqsin Downloader can be used to regenerate the lib folder for a new Python version (#3274)Core - If Red detects operating system or architecture change, it will now warn the owner about possible problems with the lib folder (#3274)
Core - Bot Commands - Changed
[p]infoto say “This bot is an…” instead of “This is an…” for clarity (#3121)Core - Bot Commands - Added the Python executable field to
[p]debuginfo(#3184)Core - Command-line Interfaces - Added the option to modify the RPC port with the
--rpc-portflag (#2429)Core - Command-line Interfaces -
--[no-]backup,--[no-]drop-dband--[no-]remove-datapathin theredbot-setup deletecommand are now on/off flags (#2958)Core - Command-line Interfaces - The confirmation prompts in
redbot-setupnow have default values for user convenience (#2958)Core - Command-line Interfaces -
redbot-setup deletenow has the option to leave Red’s data untouched on database backends (#2962)Core - Command-line Interfaces - All
y/nconfirmations in cli commands are now unified (#3060)Core - Command-line Interfaces -
redbot-setupwill now use the instance name in default data paths to avoid creating a second instance with the same data path (#3171)Core - Command-line Interfaces - Instance names can now only include characters A-z, numbers, underscores, and hyphens. Old instances are unaffected by this change (#3171)
Core - Command-line Interfaces - When Red prompts for a token, it will now print a link to the guide explaining how to obtain a token (#3204)
Core - Command-line Interfaces -
redbot-setupwill no longer log to disk (#3269)Core - Dependencies - Bumped dependency versions (#3288)
Core - Dependencies - Bumped Red-Lavalink version (#3290)
Core - Modlog - Modlog no longer generates cases without being told to for actions the bot did (#2897)
Core - Modlog - Modlog is now much faster at creating cases, especially in large servers (#2908)
Cogs - Admin - Changed
[p]announce ignoreand[p]announce channelto[p]announceset ignoreand[p]announceset channel(#3250)Cogs - Admin - Changed
[p]selfrole <role>to[p]selfrole add <role>, changed[p]selfrole addto[p]selfroleset add, and changed[p]selfrole deleteto[p]selfroleset remove(#3250)Cogs - Admin - Added custom issue messages for adding and removing roles, this makes it easier to create translations (#3016)
Cogs - Audio -
[p]playlist downloadwill now compress playlists larger than the server attachment limit and attempt to send that (#3279)Cogs - Audio -
[p]playlist uploadwill now load playlists generated via[p]playlist downloadmuch faster if the playlist uses the new scheme (#2861)Cogs - Audio -
[p]playlistcommands now can be used by everyone regardless of DJ settings, however it will respect DJ settings when creating/modifying playlists in the server scope (#2861)Cogs - Audio - Spotify, Youtube Data, and Lavalink API calls can now be cached to avoid repeated calls in the future, see
[p]audioset cache(#2890)Cogs - Audio - Playlists will now start playing as soon as first track is loaded (#2890)
Cogs - Audio -
[p]audioset localpathcan set a path anywhere in your machine now. Note: This path needs to be visible byLavalink.jar(#2904)Cogs - Audio -
[p]queuenow works when there are no tracks in the queue, showing the track currently playing (#2904)Cogs - Audio -
[p]audioset settingsnow reports Red Lavalink version (#2904)Cogs - Audio - Adding and removing reactions in Audio is no longer a blocking action (#2904)
Cogs - Audio - When shuffle is on, queue now shows the correct play order (#2904)
Cogs - Audio -
[p]seekand[p]skipcan now be used by user if they are the song requester while DJ mode is enabled and votes are disabled (#2904)Cogs - Audio - Adding a playlist and an album to a saved playlist now skips tracks already in the playlist (#2904)
Cogs - Audio - DJ mode is now turned off if the DJ role is deleted (#2904)
Cogs - Audio - When playing a localtrack,
[p]playand[p]bumpplayno longer require the use of the prefix “localtracks\” (#2904)Before:
[p]bumpplay localtracks\ENM\501 - Inside The Machine.mp3Now:[p]bumpplay ENM\501 - Inside The Machine.mp3Now nested folders:[p]bumpplay Parent Folder\Nested Folder\track.mp3Cogs - Audio - Removed commas in explanations about how to set API keys (#2905)
Cogs - Audio - Expanded local track support to all file formats (m3u, m4a, mp4, etc) (#2940)
Cogs - Audio - Cooldowns are now reset upon failure of commands that have a cooldown timer (#2940)
Cogs - Audio - Improved the explanation in the help string for
[p]audioset emptydisconnect(#3051)Cogs - Audio - Added a typing indicator to playlist dedupe (#3058)
Cogs - Audio - Exposed clearer errors to users in the play commands (#3085)
Cogs - Audio - Improved error handling when the player is unable to play multiple tracks in the sequence (#3165)
Cogs - CustomCommands - The group command
[p]cc createcan now be used to create simple CCs without specifying “simple” (#1767)Cogs - CustomCommands - Added a query option for CC typehints for URL-based CCs (#3228)
Cogs - CustomCommands - Now uses the
humanize_list()utility for iterable parameter results, e.g.{#:Role.members}(#3277)Cogs - Downloader - During cog update, Downloader will now check if the Python and bot versions match requirements provided by the cog author(s) in
info.json(#1866)Cogs - Downloader -
[p]cog installnow accepts multiple cog names (#2527)Cogs - Downloader - When passing cogs to
[p]cog update, it will now only update those cogs, not all cogs from the repo those cogs are from (#2527)Cogs - Downloader - Added error messages for failures when installing/reinstalling requirements and copying cogs and shared libraries (#2571)
Cogs - Downloader -
[p]findcognow uses sanitized urls (without HTTP Basic Auth fragments) (#3129)Cogs - Downloader -
[p]repo infowill now show the repo’s url, branch, and authors (#3225)Cogs - Downloader -
[p]cog infowill now show cog authors (#3225)Cogs - Downloader -
[p]findcogwill now show the repo’s branch (#3225)Cogs - Economy - Slots now has a 62.5% expected payout and will not inflate economy when spammed (#2875)
Cogs - Image - Updated the
[p]giphycredscommand to match the formatting of the other API commands (#2905)Cogs - Image - Removed commas from explanations about how to set API keys (#2905)
Cogs - Mod -
[p]slowmodenow accepts integer-only inputs as seconds (#2884)Cogs - Permissions - Better explained the usage of commands with the
<who_or_what>argument (#2991)Cogs - Streams - Removed commas from explanations about how to set API keys (#2905)
Removals
Core - Bot Commands -
[p]set ownerand[p]set tokenhave been removed in favor ofredbot --edit(#2928)Core - Bot Commands - Removed
[p]backup. Use the cli commandredbot-setup backupinstead (#3235)Core - Command-line Interfaces - Removed a lot of the functionality of
redbot-launcherand deprecated what’s left (#3289)Cogs - Downloader - Shared libraries are marked for removal in Red 3.4 (#3106)
Fixes
Core - Red no longer types infinitely when a command with a cooldown is called within the last second of a cooldown. (#2985)
Core - Added a 3rd-party lib folder to
sys.pathbefore loading cogs. This prevents issues with 3rd-party cogs failing to load when Downloader is not loaded to install requirements (#3036)Core - Red will now properly send an error message when the invoked command is guild-only (#3057)
Core - Red now always appends the 3rd-party lib folder to the end of
sys.pathto avoid shadowing Red’s dependencies (#3062)Core - Guild owners are no longer affected by the local whitelist and blacklist (#3221)
Core - Bot Commands - The
[p]invitecommand no longer errors when a user has the bot blocked or DMs disabled in the server (#2948)Core - Bot Commands - Cleaned up the
[p]inviteset publicand[p]inviteset permshelp strings (#2963)Core - Bot Commands -
`[p]embedset usernow only affects DM’s (#2966)Core - Bot Commands - Fixed the help text and response of
[p]set usebotcolorto accurately reflect what the command is doing (#2974)Core - Bot Commands - Fixed an error in
[p]uptimewhen the uptime is under a second (#3009)Core - Bot Commands - Added quotation marks to the response of
[p]helpset taglineso that two consecutive full stops do not appear (#3010)Core - Bot Commands - Red will now prevent users from locking themselves out with
[p]localblacklist(#3207)Core - Bot Commands - Fixed formatting issues in commands that list whitelisted/blacklisted users/roles when the list is empty (#3219)
Core - Bot Commands - Red will now prevent users from locking the guild owner out with
[p]localblacklist(unless the command caller is bot owner) (#3221)Core - Command-line Interfaces - Stopped using the
:character in backup’s filename - Windows doesn’t accept it (#2954)Core - Command-line Interfaces -
redbot-setup deleteno longer errors with “unexpected keyword argument” (#2955)Core - Command-line Interfaces -
redbot-setup deleteno longer prompts about backup when the user passes the option--no-prompt(#2956)Core - Command-line Interfaces - Fixed an unfriendly error when the provided instance name doesn’t exist (#2968)
Core - Command-line Interfaces - Removed f-string usage in the launcher to prevent our error handling from causing an error (#3002)
Core - Command-line Interfaces - Arguments
--co-ownerand--load-cogsnow properly require at least one argument to be passed (#3060)Core - Command-line Interfaces - Fixed the generation of the
repos.jsonfile in the backup process (#3114)Core - Command-line Interfaces - Added handling for invalid folder names in the data path gracefully in
redbot-setupandredbot --edit(#3171)Core - Command-line Interfaces -
--ownerand-pcli flags now work when added from launcher (#3174)Core - Help - Help now properly hides disabled commands (#2863)
Core - Help - Fixed help ending up a little too large for Discord embed limits (#3208)
Core - Modlog - Modlog entries now show up properly without the mod cog loaded (#2897)
Core - Modlog - Removed potential for additional bad API calls per ban/unban (#2945)
Cogs - Admin - Fixed
[p]announcefailing after encountering an error attempting to message the bot owner (#3166)Cogs - Admin - Improved the clarity of user facing messages when the user is not allowed to do something due to Discord hierarchy rules (#3250)
Cogs - Admin - Fixed some role managing commands not properly checking if Red had Manage Roles permission before attempting to manage roles (#3250)
Cogs - Admin - Fixed commands from
[p]editrolecommand group not checking if roles to be edited are higher than Red’s highest role before trying to edit them (#3250)Cogs - Admin - Fixed
[p]announce ignoreand[p]announce channelnot being able to be used by guild owners and administrators (#3250)Cogs - Audio -
[p]playlist removenow removes the playlist url if the playlist was created through[p]playlist save(#2861)Cogs - Audio - Users are no longer able to accidentally overwrite existing playlist if a new one with the same name is created/renamed (#2861)
Cogs - Audio -
[p]audioset settingsno longer shows lavalink JAR version (#2904)Cogs - Audio - Fixed a
KeyError: loadTypewhen trying to play tracks (#2904)Cogs - Audio -
[p]audioset settingsnow properly considers co-owners as owners (#2904)Cogs - Audio - Fixed track indexes being off by 1 in
[p]search(#2940)Cogs - Audio - Fixed an issue where updating your Spotify and YouTube Data API tokens did not refresh them (#3047)
Cogs - Audio - Fixed an issue where the blacklist was not being applied correctly (#3047)
Cogs - Audio - Fixed an issue in
[p]audioset restrictions blacklist listwhere it would call the list aWhitelist(#3047)Cogs - Audio - Red’s status is now properly cleared on emptydisconnect (#3050)
Cogs - Audio - Fixed a console spam caused sometimes when auto disconnect and auto pause are used (#3123)
Cogs - Audio - Fixed an error that was thrown when running
[p]audioset dj(#3165)Cogs - Audio - Fixed a crash that could happen when the bot can’t connect to the Lavalink node (#3238)
Cogs - Audio - Restricted the number of songs shown in the queue to first 500 to avoid heartbeats (#3279)
Cogs - Audio - Added more cooldowns to playlist commands and restricted the queue and playlists to 10k songs to avoid bot errors (#3286)
Cogs - Audio - Lavalink will now be restarted after an unexpected shutdown (#3033)
Cogs - Audio - Track descriptions are now escaped so that they do not break markdown (#3047)
Cogs - Audio - Fixed an issue where calling Audio commands when not in a voice channel could result in a crash (#3120)
Cogs - Audio - Fixed an issue where some YouTube playlists were being recognised as single tracks (#3104)
Cogs - Downloader - Made the regex for repo names use raw strings to stop causing a
DeprecationWarningfor invalid escape sequences (#2571)Cogs - Downloader - Downloader will no longer attempt to install cogs that are already installed (#2571)
Cogs - Downloader - Repo names can now only contain the characters listed in the help text (A-Z, 0-9, underscores, and hyphens) (#2827)
Cogs - Downloader -
[p]findcogno longer attempts to find a cog for commands without a cog (#2902)Cogs - Downloader - Downloader will no longer attempt to install a cog with same name as another cog that is already installed (#2927)
Cogs - Downloader - Added error handling for when a remote repository or branch is deleted; now it notifies which repository failed and continues to update the others (#2936)
Cogs - Downloader -
[p]cog installwill no longer error if a cog has an empty install message (#3024)Cogs - Downloader - Fixed an error on
[p]repo addfrom empty string values for theinstall_msginfo.json field (#3153)Cogs - Downloader - Disabled all git auth prompts when adding/updating a repo with Downloader (#3159)
Cogs - Downloader -
[p]findcognow properly works for cogs with less typical folder structure (#3177)Cogs - Downloader -
[p]cog uninstallnow fully unloads cog - the bot will not try to load it on next startup (#3179)Cogs - Economy - Fixed a crash seen when calling economy commands in DM with a global bank (#2997)
Cogs - Mod -
[p]userinfono longer breaks when a user has an absurd number of roles (#2910)Cogs - Mod - Fixed Mod cog not recording username changes for
[p]namesand[p]userinfocommands (#2918)Cogs - Mod - Fixed
[p]modset deletedelaydeleting non-command messages (#2924)Cogs - Mod - Fixed an error when reloading Mod (#2932)
Cogs - Modlog - Fixed an error in
[p]reasonwhen setting the reason for a case without a moderator (#2908)Cogs - Permissions - Defaults are now cleared properly when clearing all rules (#3037)
Cogs - Permissions - Fixed an issue with clearing rules in permissions (#3014)
Cogs - Streams - Fixed a
TypeErrorin theTwitchStreamclass when calling Twitch client_id from Red shared APIs tokens (#3042)Cogs - Streams - Changed the
stream_alertfunction for Twitch alerts to make it work with how theTwitchStreamclass works now (#3042)Cogs - Trivia - Fixed a bug where
[p]trivia leaderboardfailed to run (#2911)Cogs - Trivia - Lists - Fixed a typo in Ahsoka Tano’s name in the Starwars trivia list (#2909)
Cogs - Trivia - Lists - Fixed a typo in the Greek mythology trivia list regarding Hermes’ staff (#2994)
Cogs - Trivia - Lists - Fixed a question in the Overwatch trivia list that accepted blank responses (#2996)
Cogs - Trivia - Lists - Fixed questions and answers that were incorrect in the Clash Royale trivia list (#3236)
Developer changelog
Breaking Changes
Core - Extension’s
setup()function should no longer assume that we are, or even will be connected to Discord (#3073)This also means that cog creators should no longer use
bot.wait_until_ready()inside itCore - Bank - Removed
bank.MAX_BALANCE, useredbot.core.bank.get_max_balance()from now on (#2926)Core - Commands Package - Reserved some command names for internal Red use. These are available programatically as
redbot.core.commands.RESERVED_COMMAND_NAMES(#2973)Core - Commands Package - Qualified command names are limited to a maximum of 60 characters (#3223)
Core - Bot Class - The main bot config is no longer directly accessible to cogs. New methods have been added for use where this is concerned (#2967)
New methods for this include:
Red.get_embed_colour()(and its alias -get_embed_color())
Core - Bot Class - Removed
bot._counter, Made a few more attributes private (cog_mgr,main_dir) (#2976)Core - Modlog - Modlog casetypes no longer have an attribute for auditlog action type (#2897)
Core - Modlog - Removed
redbot.core.modlog.get_next_case_number()(#2908)
Additions
Added a few methods and classes replacing direct config access (which is no longer supported) (#2976)
Core - Bot Class - Added the method
Red.wait_until_red_ready()that waits until Red’s post connection startup is done (#3273)Core - Bot Class - New event
on_red_api_tokens_updateis now dispatched when shared api keys for a service are updated (#3134)Core - Config - Added functions to acquire locks on Config groups and values. These locks are acquired by default when calling a value as a context manager. See
Value.get_lock()for details (#2654)Core - Config - Added methods to Config for accessing things by id without mocked objects (#2804)
Config.member_from_ids()- This one requires multiple ids, one for the guild, one for the user - Consequence of discord’s object model
Core - Modlog - Added
redbot.core.modlog.get_latest_case()to fetch the case object for the most recent Modlog case (#2908)Core - Utils Package - Added
redbot.core.utils.chat_formatting.humanize_number()function to convert numbers into text that respects the current locale (#2836)Core - Utils Package - Added the function
redbot.core.utils.chat_formatting.text_to_file()to prepare a long text to be sent as a file (#2849)Core - Utils Package - Added
use_cachedandimages_onlykwargs toredbot.core.utils.tunnel.Tunnel.files_from_attach()(#2885)Cogs - Audio - New events dispatched by Audio (#2904)
on_red_audio_track_start(guild: discord.Guild, track: lavalink.Track, requester: discord.Member)on_red_audio_track_end(guild: discord.Guild, track: lavalink.Track, requester: discord.Member)on_red_audio_track_enqueue(guild: discord.Guild, track: lavalink.Track, requester: discord.Member)on_red_audio_track_auto_play(guild: discord.Guild, track: lavalink.Track, requester: discord.Member)on_red_audio_queue_end(guild: discord.Guild, track: lavalink.Track, requester: discord.Member)on_red_audio_audio_disconnect(guild: discord.Guild)on_red_audio_skip_track(guild: discord.Guild, track: lavalink.Track, requester: discord.Member)
Changes
Core - Bot Class -
Red.send_filtered()now returns the message that is sent (#3052)Core - Bot Class -
Red.send_to_owners()andRed.get_owner_notification_destinations()now log when they are not able to find the owner notification destination (#3273)Core - Commands Package - Allowed passing
clsin theredbot.core.commands.group()decorator (#2881)Core - Modlog - Some generic modlog casetypes are now pre-registered for cog creator use (#2897)
Removals
Core - Utils Package - Removed the functions
safe_delete,fuzzy_command_search,format_fuzzy_resultsandcreate_backupfromredbot.core.utils(#3240)
Fixes
Core - Bank - Bank functions now check the recipient balance before transferring and stop the transfer if the recipient’s balance will go above the maximum allowed balance (#2923)
Core - Bot Class - Fixed
Red.remove_command()throwing an error when trying to remove a non-existent command (#2888)Core - Bot Class - Fixed
is_automod_immune’s handling of the guild check and added support for checking webhooks (#3100)Core - Bot Class -
Red.owner_idis now set in the post connection startup (#3273)Core - Bot Class -
Red.send_to_owners()andRed.get_owner_notification_destinations()now wait until Red is done with post connection startup to ensure owner ID is available (#3273)Core - Commands Package -
Command.can_see()now works as intended for disabled commands (#2892)Core - Commands Package - Fixed
Context.clean_prefixissues resulting from undocumented changes from discord (#3249)Core - Utils Package - Fixed
MessagePredicate.greater()andMessagePredicate.less()allowing any valid int instead of only valid ints/floats that are greater/less than the given value (#3004)Core - Utils Package - Fixed an attribute error that can be raised in
redbot.core.utils.chat_formatting.humanize_timedelta()ifseconds = 0(#3231)
Documentation changes
Additions
Started the user guides covering cogs and the user interface of the bot. This includes, for now, a “Getting started” guide (#1734)
Added documentation for PM2 support (#2105)
Updated linux install docs, adding sections for Fedora Linux, Debian/Raspbian Buster, and openSUSE (#2558)
Created documentation covering what we consider a developer facing breaking change and the guarantees regarding them (#2882)
Added notes explaining the best practices with config (#3149)
Added a “Publishing cogs for V3” document explaining how to make user’s cogs work with Downloader (#3234)
Changes
Reworded the virtual environment guide to make it sound less scary (#2920)
Added more information about
redbot.core.utils.chat_formatting.humanize_timedelta()into the docs (#2986)Added a direct link to the “Installing Red” section in “Installing using powershell and chocolatey” (#2995)
Updated Git PATH install (Windows), capitalized some words, stopped mentioning the launcher (#2998)
Added autostart documentation for Red users who installed Red inside of a virtual environment (#3005)
Updated the Cog Creation guide with a note regarding the Develop version as well as the folder layout for local cogs (#3021)
Added links to the getting started guide at the end of installation guides (#3025)
Added proper docstrings to enums that show in drivers docs (#3035)
Discord.py doc links will now always use the docs for the currently used version of discord.py (#3053)
Added
|DPY_VERSION|substitution that will automatically get replaced by the current discord.py version (#3053, #3082)Added MS Azure to the host list (#3083)
Added information about
info.json’smin_python_versionkey in Downloader Framework docs (#3124)Documented additional attributes in Context (#3151)
Updated Windows docs with up to date dependency instructions (#3188)
Added a line about setuptools and wheel (#3262)
Ensured development builds are not advertised to the wrong audience (#3292)
Clarified the usage intent of some of the chat formatting functions (#3292)
Removals
Removed API References for Downloader (#3234)
Fixes
Fixed the user parameter being labeled as
discord.TextChannelinstead ofdiscord.abc.Userinredbot.core.utils.predicates(#2914)Driver docs no longer show twice (#2972)
Added missing descriptions for function returns (#3054)
Fixed broken docs for
redbot.core.commands.Context.react_quietly(#3257)Updated the docs footer copyright to 2018-2019 (#3105)
Updated copyright notices on License and RTD config to 2020 (#3259)
Redbot 3.1.9 (2020-01-08)
This is a maintenance release patching a denial of service issue with Audio.
Redbot 3.1.8 (2019-11-19)
This is a hotfix release updating discord.py to fix a full bot crash when emoji reaction is added/removed. This was caused by Discord API changes.
Redbot 3.1.7 (2019-11-05)
End-user changelog
Changes
Cogs - Audio - Improved handling of user facing errors (989e16b)
Fixes
Redbot 3.1.6 (2019-10-18)
This is a hotfix release updating discord.py for a critical issue related to voice connections.
Redbot 3.1.5 (2019-07-31)
This is a maintenance release fixing issues with playback of YouTube tracks.
Redbot 3.1.4 (2019-07-16)
This is a hotfix release fixing issues with broken custom commands and modlog cases.
Redbot 3.1.3 (2019-07-14)
End-user changelog
Additions
Core - Bot Commands - Added new settings for the invite returned by
[p]invitecommand (#1847)[p]inviteset public- Defines if the command should be accessible for users that aren’t bot owners.[p]inviteset perms- Sets permissions for bot’s managed role that can get created automatically when bot is invited.
For more information, see help of each of the listed commands.
Cogs - Audio - Added a
[p]eqcommand group that allows to manage the Audio equalizer (#2787, #2813)Cogs - Audio - Added a
[p]summoncommand that summons the bot to the voice channel (#2786)
Changes
Core - A server can now have multiple admin and mod roles (#2783)
Core - Dependencies - Improved overall performance on Linux and Mac systems by swapping asyncio loop implementation to uvloop (#2819)
Cogs - Audio - Added support for armv6l, aarch32, and aarch64 architectures (#2755)
Cogs - Audio - Improved error handling and added retrying to jar download and Lavalink connection (#2764)
Cogs - Audio - Internal Lavalink manager now accepts any jar with a build number greater than or equal to our release build (#2656, #2785)
Cogs - Audio - Increased Lavalink connection timeout to 50 seconds to ensure Lavalink manages to start before the time runs out on lower-end devices (#2784)
Cogs - Filter - Updated name filtering to be consistent with message content filtering (#2740, #2794)
Cogs - Mod -
[p]userinfocommand now mentions the roles the user has (#2759)Cogs - Modlog - Improved efficiency of case storage (#2766)
Fixes
Core - Fixed broken fuzzy help (#2768)
Core - Fixed a race condition that could allow a user to run commands they are denied to run by Permissions cog for a short moment before the cog is loaded (#2857)
Core - Bot Commands -
[p]command disableand its subcommands now ensure that the command to disable is not[p]commandor any of its subcommands to prevent lockout (#2770)Core - Bot Commands - Fixed an issue with error message being sent multiple times when help command was unable to DM the user (#2790)
Core - Bot Commands - Fixed broken link in help of
[p]set color(#2715, #2803)Core - Bot Commands - Fixed user output and exception handling on cog load/reload (#2767)
Core - Help - Fixed substitution of
[p]in command descriptions in non-embedded help output (#2846)Cogs - Audio - Added missing bot permission checks to commands in Audio cog (#2756)
Cogs - Audio - Fixed an issue with jar downloading on mixed-filesystem environments (#2682, #2765)
Cogs - Audio - Fixed an issue with
[p]playlist copyand[p]playlist queuefailing when the prefix contains certain characters (#2788, #2789)Cogs - Audio - Fixed an issue that caused
[p]shuffleand[p]repeatto send an error message when the user is not in the voice channel (#2811, #2812, #2842)Cogs - Filter - Fixed caching issue that caused filter to use an old list of words to filter (#2810)
Cogs - Permissions - Commands for adding/removing rules in
[p]permissionscommand group now no longer ignore invalid arguments (#2851, #2865)Cogs - Trivia - Lists - Fixed answers for Beethoven-related questions in
entertainmenttrivia list (#2318, #2823)
Developer changelog
Additions
Core - Added
UserFeedbackCheckFailure(#2761)Core - Bank - Added
redbot.core.bank.cost()(#2761)Core - Commands Package - Added (optional)
default_unitkeyword argument toTimedeltaConverter(#2753)Core - Commands Package - Added
Context.react_quietly()(#2834)
Fixes
Core - Config - Fixed cache issues with Config when the developer accidentally tries to set an object that isn’t JSON serializable (#2793, #2796)
Core - Config - Fixed an issue with identifiers that contain
$or.which has caused a KeyError exception regardless of whether such key existed in the data (#2832)
Documentation changes
Changes
Added a warning about the PATH changes to Windows install guide (#2791)
Fixes
Fixed code examples in Bank, Config, and ModLog API documentation (#2775, #2780, #2860)
Fixed the code example for the documentation of
Command.errordecorator and added a note with clarifications (#2760)
Redbot 3.1.2 (2019-05-31)
End-user changelog
Additions
Core - Added a generic system that can be used by cog creators to send notifications meant for bot owners (#2665, #2738, #2745)
Core - Bot Commands - Added
[p]debuginfocommand (#2728)This comes with some commands that allow to manage the destinations for the owner notifications. See the help of commands in
[p]set ownernotificationscommand group for more information.Core - Help - Added a few new settings for bot’s help (#2667, #2681, #2676)
[p]helpset usemenus- Allows the help command to be sent as a paginated menu.[p]helpset showhidden- Allows the help command to show hidden commands.[p]helpset verifychecks- Sets if commands which can’t be run in the current context should be filtered from help.[p]helpset verifyexists- Allows the bot to respond indicating the existence of a specific help topic even if the user can’t use it.
For more information, see help of each of the listed commands.
Cogs - Mod - Added
[p]slowmodecommand (#2734)
Changes
Core - Bot Commands -
[p]load,[p]unload, and[p]reloadcommands now strip commas from the passed cogs to aid with copy-pasting (#2693)Core - Bot Commands - Improved naming consistency of subcommands that delete something (#2731)
Core - Bot Commands -
[p]set apicommand now allows the user to separate their keys and values with space in addition to commas and semicolons (#2692)Cogs - Downloader -
[p]pipinstallnow indicates that it’s doing something (#2700)Cogs - Mod -
[p]namescommand no longer requires quoting usernames that contain spaces (#2675)Cogs - Mod -
[p]userinfocommand now mentions the voice channel the user is in (#2680)
Fixes
Core - Fixed update notification for bots that have co-owners (#2677)
Core - Fixed an issue where bad user input didn’t result in the bot sending help for the command (#2707)
Core - Help - Fixed an issue with incorrect subcommand descriptions being shown in non-embed help (#2678)
Core - Help - Fixed help for commands with no docstring (#2415, #2722)
Core - Help - Help menu no longer blocks settings preview in command groups like
[p]set(#2712, #2725)Core - Bot Commands - Fixed few more issues with help command (#2676)
Core - Bot Commands - Fixed error handling in
[p]loadcommand (#2686, #2688)Core - Bot Commands - Fixed an issue with long cog descriptions in help command (#2730)
Core - Command-line Interfaces - Fixed
redbot-setup deletecommand failing to delete data path (#2709)Cogs - Downloader - Fixed problems with installing a cog again after uninstalling (#2685, #2690)
Cogs - General - Fixed
[p]urbancommand failure for very long phrase definitions (#2683, #2684)Cogs - General - Fixed issues with
[p]gifand[p]gifrcommands. The bot owner now needs to provide an API key in order to use these commands (#2653)Cogs - Streams - Fixed an issue with stream commands not properly dealing with stream reruns (#2679)
Cogs - Streams - Fixed a regression that caused stream alerts for non-Twitch users to not work anymore (#2724, #2699)
Developer changelog
Additions
Core - Bot Class - Added
Red.send_to_owners()andRed.get_owner_notification_destinations()(#2665, #2738)Core - Commands Package - Added
DictConverter(#2692)Core - Commands Package - Added
TimedeltaConverterandparse_timedelta()(#2736)Core - Commands Package - Added
assume_yesattribute toredbot.core.commands.Context(#2746)
Changes
Core - Utils Package -
menu()now acceptsfunctools.partial(#2718, #2720)
Redbot 3.1.1 (2019-05-15)
This is a hotfix release fixing issues related to fuzzy command search that were happening with the new help formatter.
Redbot 3.1.0 (2019-05-15)
End-user changelog
Known Issues
Core - Bot Commands - Backup support for Mongo is currently broken (#2579)
Additions
Core - Bot Commands - Added new
[p]datapathcommand that prints the bot’s data path (#2652)Core - Command-line Interfaces - Added
redbot-setup convertcommand which can be used to convert between data backends (#2579)Cogs - Audio - Added Spotify support (#2328)
Cogs - Audio -
[p]local foldernow accepts folder name as (optional) argument (#2457)Cogs - Audio - Added track length restriction (#2465)
Cogs - Audio - Added option for disconnection at queue end, see
[p]audioset dc(#2472)Cogs - Audio - Added
[p]queue cleanand[p]queue clear(#2476)Cogs - Audio - Added
[p]playlist download(#2482)Cogs - Mod - Added the command
[p]voicekickto kick members from a voice channel with optional modlog case (#2639)Cogs - Streams - Added support for setting custom stream alert messages per server (#2600)
Cogs - Streams - Added ability to exclude Twitch stream reruns (#2620)
Changes
Core - Error messages about cooldowns will now show more friendly representation of cooldown’s expiration time (#2412)
Core - Cooldown messages are now auto-deleted after cooldown expiration expired (#2469)
Core - Updated Mongo driver to support large guilds (#2536)
Core - Command-line Interfaces -
redbot --versionwill now give you current version of Red (#2567)Core - Help - Redesigned help and its formatter (#2628)
Cogs - Audio - Changed
[p]pauseto a toggle (#2461)Cogs - Audio - Removed command aliases (
dc,np,n,song,track,q,forceskip,fs,s) (#2462)Cogs - Audio -
[p]seekcommand can now seek to position (#2470)Cogs - Audio - Audio now matches Red V2 behavior for changing voice channels (#2521)
Cogs - Downloader - The
[p]cog installcommand will not allow to install cogs which aren’t suitable for installed version of Red anymore (#2605)Cogs - Downloader - The
[p]cog installcommand will now tell the user that cog has to be loaded after the install (#2523)Cogs - Downloader - The
[p]cog uninstallcommand allows to uninstall multiple cogs now (#2592)Cogs - Filter - Significantly improved performance of Filter cog on large servers (#2509)
Cogs - Mod - Admins can now decide how many times message has to be repeated before cog’s
deleterepeatsfunctionality removes it (#2437)Cogs - Permissions - Removed
[p]palias for[p]permissionscommand (#2467)Cogs - Streams - Twitch stream reruns are now marked as reruns in embed title (#2620)
Removals
Cogs - DataConverter - DataConverter has been completely removed from Red (#2554)
Fixes
Core - Bot Commands - Fixed local blacklist/whitelist management commands (#2531)
Core - Bot Commands -
[p]set localenow only accepts actual locales (#2553)Core - Bot Commands -
[p]listlocalesnow includesen-USlocale (#2553)Core - Command-line Interfaces - Fixed the list of available extras in the
redbot-launcher(#2588)Core - i18n - Changed default locale from
entoen-US(#2642)Cogs - Audio - Fixed
[p]audioset status(#2481)Cogs - Audio - Fixed an issue where queuing song from
[p]searchcommand did not do anything (#2513)Cogs - Audio - Bot will no longer complain about permissions when trying to connect to user-limited channel, if it has “Move Members” permission (#2525)
Cogs - Audio - Fixed an issue on
[p]audiostatscommand that occurred when there were more than 20 servers to display (#2533)Cogs - Audio - Fixed the link shown by
[p]prevcommand (#2556)Cogs - Audio - Fixed an issue with
[p]playlist queuethat occurred when the bot was connected but wasn’t playing anything (#2586)Cogs - Audio - Fixed an issue with setting DJ role in
[p]audioset djcommand (#2606)Cogs - Downloader - Fixed a bug that caused Downloader to include submodules on cog list (#2590)
Cogs - Downloader - The error message sent by
[p]cog installwhen required libraries fail to install is now properly formatted (#2576)Cogs - Downloader - The
[p]cog uninstallcommand will now remove cog from installed cogs list even if it can’t find the cog in install path anymore (#2595)Cogs - Mod - Fixed
[p]bannot allowing to omitdaysargument (#2602)Cogs - Trivia - Lists - Fixed dead image link for Sao Tome and Principe flag in
worldflagstrivia (#2540)
Developer changelog
Breaking Changes
Core - Config - We now record custom group primary key lengths in the core config object (#2550)
Cogs - Downloader - Cog Developers now have to use
min_bot_versionkey instead ofbot_versionto specify minimum version of Red supported by the cog ininfo.json, see more information in Info.json format (#2605)
Additions
Core - Added a
on_message_without_commandevent that is dispatched when bot gets an event for a message that doesn’t contain a command (#2338)Core - Config - Introduced
Config.init_custom()method (#2545)Core - Utils Package - Added
chat_formatting.humanize_timedelta()(#2412)Cogs - Downloader - Added
max_bot_versionkey toinfo.jsonthat allows to specify maximum supported version of Red supported by the cog ininfo.json, see more information in Info.json format. (#2605)
Changes
Core - Usage of
yaml.loadwill now warn about its security issues (#2326)Core - Config - Migrated internal UUIDs to maintain cross platform consistency (#2604)
Core - Utils Package - Improved error handling of empty lists in
chat_formatting.humanize_list()(#2597)Core - Dependencies - Red is now no longer vendoring discord.py and installs it from PyPI (#2587)
Core - Dependencies - Upgraded discord.py dependency to version 1.0.1 (#2587)
Fixes
Core - Utils Package - Fixed spelling of the
Tunnel’s method fromfiles_from_attatch()tofiles_from_attach(); old name was left for backwards compatibility (#2496)Core - Utils Package - Fixed behavior of
Tunnel.react_close()- now when tunnel closes, the message will be sent to the other end (#2507)
Redbot 3.0.2 (2019-02-24)
End-user changelog
Fixes
Redbot 3.0.1 (2019-02-17)
End-user changelog
Changes
Core - Bot Commands - Improve some of the core commands to not require double quotes for arguments with spaces, if they’re the last argument required by the command (#2407)
Core - Bot Commands - Using
[p]loadcommand now sends help message when it’s used without arguments (#2432)Cogs - Downloader - The
[p]pipinstallcommand now sends help message when it’s used without arguments (eebed27)Cogs - Mod - Usernames and nicknames listed in
[p]namesand[p]userinfocommands now have the spoiler markdown escaped (#2401)Cogs - Modlog - Usernames listed in modlog cases now have the spoiler markdown escaped (#2401)
Cogs - Warnings - Members can now also be passed with username, nickname, or user mention to
[p]warningsand[p]unwarncommands (#2403, #2404)
Fixes
Core - Messages sent interactively (i.e. prompting user whether they would like to view the next message) now no longer cause errors if bot’s prompt message gets removed by other means (#2380, #2447)
Core - Bot Commands - Fixed error in
[p]serverscommand that was happening when bot’s prompt message was deleted before the prompt time was over (#2400)Core - Command-line Interfaces - Fixed behavior of CLI arguments in
redbot-launcher(#2432)Cogs - Audio - Fixed issues with setting external Lavalink (#2306, #2460)
Cogs - Audio - Audio now cleans up zombie players from guilds it’s no longer in (#2414)
Cogs - Downloader - Fixed issues with cloning that happened if instance’s data path had spaces (#2421)
Cogs - Mod -
[p]userinfonow accounts for guild’s lurkers (#2406, #2426)Cogs - Permissions - Fixed rule precedence issues for default rules (#2313, #2422)
Developer changelog
Additions
Core - Utils Package - Added
escape_spoilers()andescape_spoilers_and_mass_mentions()methods for escaping strings with spoiler markdown (#2401)
Fixes
Core - Utils Package -
MessagePredicate.lower_contained_in()now actually lowers the message content before trying to match (#2399)
Redbot 3.0.0 (2019-01-28)
First stable release of Red V3. Changelogs for this and previous versions can be found on our GitHub releases page.