Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
The official documentation of RitaBot. Breaking the language barrier for thousands of people.
RitaBot is a fast, automatic Discord Translating Bot. Allowing communication across the language barrier from features like automatic-channel translation, to flag reaction translations and many more.
Rita was created because of a drive to communicate with others. Chatting platforms are awesome things and allow fast & simple communication across the entire world. However, something as simple as translating messages for others to understand can become so complicated. Across the internet, there are hundreds of translation bots but a flaw in many of them is increasing costs, changing features & overall difficulty to use.
This is where RitaBot came in. Many bots feature translations which are pricey due to hosting costs & translation costs. Rita, however, is an affordable bot & getting translations straight from the Google Translation API.
In this documentation, we'll teach you the functionalities and abilities of RitaBot
🗣️ Speak with others across multiple channels using the /group command.
🪝 Use webhooks to send translations in a beautiful, user-like manner.
🇺🇸 🇫🇷 🇪🇸 Use flag reactions to translate any message. Simply add a reaction of the country of your choice and a translation will pop up with the languages of that country.
💪 The most powerful Translator Bot. Providing fast, automatic translation to thousands.
❤ Made with love by the Rita Dev Team
If you have any suggestions for future features feel free to join our Discord Server and add a request to #feature-request
In order to pay for translations, for both Google's API and our own Machine Learning API, RITA makes use of a subscriptions with given tiers.
The overview here explains further, and you can see how much it costs on the Dashboard or by reading Avalaible Plans
To install, you can follow the guide Quick setup steps
How to make RITA running in your Discord Server
Check that your discord account is the owner of the server or an admin of the server you want RITA Bot in
Invite RITA in your discord server : https://ritabot.gg/invite
Subscribe to a RITA plan through dashboard : https://dashboard.ritabot.gg/
On dashboard, select the server you want to link to the subscription you've just took
Now you can Personalize your RITA's setting and translate a Discord chanel into another one with serveral commands. Most common use is by running /group createand following the instructions displayed
With the release of Version 1.3.0, we introduced the new /quicksetup command to simplify the entire server setup process.
This command automatically handles the creation of the required group, channels, permissions, and access controls for you. To complete the setup, it also configures a reaction role system, allowing users to grant themselves access to the newly created channels.
Whether you're setting up Rita for the first time or creating additional translation groups, /quicksetup provides the fastest and easiest way to get started.
Information on Transaltion Commands.
Here you will find info on the new commands added to RITA as of version 2.3.0 Please report any issues by useing the /feedback command or in the support server
/help and !tr help have been reworked in 2.3.0
/reactionroles is a new command as of 2.3.0 - Please report any issue using /feedback
/diag is a new command as of 2.3.0 - Please report any issue using /feedback
/feedback is a new command as of 2.3.0 - Please report any issue to the suport server.
RITA is not responsible for any errors in permission levels or incompatible permission structures. This tool is designed to assist with quick setup — please review all permissions and channel settings to ensure they are configured to your requirements.Disclaimer: RITA is not responsible for any errors in permission levels or incompatible permission structures. This tool is designed to assist with quick setup — please review all permissions and channel settings to ensure they are configured to your requirements.
!tr stats - Shows a summary of the Global & Server stats.
!tr stats sub - View character usage for your subscription, and other information.
!tr stats global - Shows a summary of Global stats, all the servers the bot is currently on.
!tr stats server - Shows a summary of the Server stats.
!tr proc - Shows the processor usage, CPU, Ram and Uptime of the bot.
!tr shards- Shows the number of shards the bot is running on.
All the information you need to know about subscriptions.
For support, please visit us at our Discord Server If you wish to email us about payments, please use Payments@ritabot.gg
All development and support of the self-hosted version has now been discontinued
RITA is the culmination of many things, it started with a mobile game, a community of gamers, a discord server of different languages and a desire to all be understood. She is a Real-Time Translator Bot for use on Discord. She is maintained by a small group of users (that have a real life and a job), each with different backgrounds and some learning as we go. You want to learn more about Rita and what she does ? Just take a loot at the introduction page.
The mobile game itself would get old, fast. The community around it, however, is what kept us going. The one downside was we did not all speak the same language. The game we played translated our conversations for us, but Discord did not, so the server admins used a translation bot called C-3P0. This introduction is the start of the story.
There are loads of different translation bots out there, some are amazing, some are expensive, some are free but have limits, and others are just rubbish. C-3P0 checked all these boxes.
Originally called discord-translator and made by Aziz, then forked By NotMyself and renamed Louie, forked again By AlooAkbar and renamed C-3P0, its code was neglected, not maintained, left outdated and iterations made private for commercial gains.
I and a group of fellow C-3P0 users decided that collectively we could do better, plagued with crashes, API changes, relentless bugs and issues, the drive to make something better was born.
Rita’s history and various iterations each added something extra, it just needed to be brought together and molded, molded into something amazing, molded into Rita. The Real-Time Interchangeable Translating Assistant.
Then we provided for a few time a self-hosted version before making the actual version of Unified Rita as it was impossible for everyone to request the google API, to maintain all codes, to help everyone with his particular settings. And moreover, self hosting would not answer to an easy installation with an invite link. Also code was not already used in a good way (meaning, taking some code in order to add it in some exepensive ones).
There you have it, the story, dramatized and electrified for effect, but all true, of how RITA was born.
Version History for 1.2.?
Information about the 1.2.0 Update.
No Code changes, just URL updates for New name of Bot
Published to NPM
Non code changes will be appended with Version-** from now on.
Various Spelling mistakes in ReadMe have been corrected.
Dev Dependencies core to this bot, the google-translate-api & google-translate-token have been updated
Setup on a Raspberry Pi instruction Section added.
gulp-watch updated dependencies. (Moved to Local Repo as it was out-of-date and full of Security Issues.)
Patch for Chinese language support.
Various Security vulnerabilities fixed.
Various commands re-activated.
Version History for 1.3.?
Version Changes for 1.3.?-?
### 1.3.12-0
Date: 30/10/22
User: Qjuh
> ----------
>>> auto.js, send.js
* Added support for stickers being sent as attachments for cross-channel translation tasks
* Added the error log for empty message again, as it should be fixed now
>>> translate.js
* Fixed translation throwing empty message errors in blockChain mode
>>> events.js
* Fixed joining of Threads to only try threads we didn't join yetWooooo, Rita is back, and hopfully for good. (Launch Date: 01/05/2022 00:00 GMT)
PLEASE NOTE: This Update was accurate at the time of sharing. Please refer to our Support documentation to ensure accurate and up-to-date information is known, If you have any questions or concerns please join our Discord Server and someone will assist.
If you have not been following our announcement channel, or have not read our previous Update; we would advise you to do this. It will answer most of your questions.
For further information check out FAQ or join our support server.
You can do this in a few ways. You can purchase from Ko-Fi or Patreon. For info and step by step guide check this out.
Head to #active-rita-here and type `!tr sub` to get started... What are you waiting for?.
If you cant see the Subscription category in the Support server, you can't access the #active-rita-here channel, or something went wrong then please #open-a-ticket and we will assist you ASAP.
RITA Rewward are more than just a thank you....
RITA Rewards is our loyalty programme designed to thank subscribers for supporting the continued development and operation of RITA.
Every month you remain subscribed, you'll earn Reward Points based on your subscription tier. These points can then be redeemed for subscription discounts or used to generate a one-month gift subscription for a friend.
Unlike traditional promotional offers that are only available during special events, RITA Rewards is designed to provide ongoing value to every subscriber, rewarding loyalty and long-term support.
RITA has grown significantly over the years thanks to the support of our community. Many subscribers have remained with us for months, and in some cases years, helping us continue to develop new features, improve translations, expand language support, and maintain the infrastructure required to keep RITA running.
We wanted a way to recognise that commitment.
RITA Rewards was created to:
Thank subscribers for their continued support.
Reward long-term loyalty.
Provide additional value beyond the subscription itself.
Give subscribers a simple way to share RITA with friends.
Most importantly, we wanted to ensure that the longer someone supports RITA, the more they benefit from doing so.
Reward Points are awarded automatically whenever a subscription payment is processed.
You can view your current points balance, available rewards, active reward codes, and redemption history at any time using the /reward command.
Reward Points can currently be redeemed for discount codes ranging from 25% to 100% off a subscription, or for a one-month gift subscription code for a new user.
You can use discord slash commands to interact with the bot (recommanded and more user friendly).
If you want to use legacy features, bot’s default prefix is !tr, or !translate - All commands must start with this prefix for the bot to process them.
[prefix] + [main command] + [parameters]
For Example:
!translate help modules
!tr help modules
!tr help
This project was originally released by Aziz under the MIT license. He chose to take the project private/commercial at version 0.4.2 Beta. Bobby Johnson forked the project and renamed it Louie after his dog. AlooAkbar forked Louie and added the necessary modifications for simple and free deployment of the bot using Heroku. RitaBot-Project Picked up the fork and as part of a team fixed over 200 errors and brought it in to the modern age, All would like to thank Aziz for his hard work and making these early versions OSS so that others may learn and build on his hard work to share with the community.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Version Changes for 1.3.?-?
### 1.3.20-1
Date: 8/12/22
User: Zycore
> ----------
>>> translate.js
* Removed console log messages
* Removed message.type variable created in 1.3.20-0 as it was only for testing.
* Minor change to char counters
>>> stats.js
* Added Global total for ml and google
* Added server total for ml and google
>>> misc.js
* Added char values
* Added engine valueImportant Annoucement Shared Via Discord
PLEASE NOTE: This Update was accurate at the time of sharing. Please refer to our Support documentation to ensure accurate and up-to-date information is known, If you have any questions or concerns please join our Discord Server and someone will assist.
Hey everyone,
Rita, as a service, is officially 1 year old today, Again, Sort of...
RITA was In testing for a month and then she went live to the public on 1st May 2022, but the idea and RITA we know and love was born on 12th July 2019
Since then this has changed massively, we have grown from 3 devs to over 10 development staff, we have a team of dedicated helpers and a loyal user base we are overwhelmed with.
At our peak, we had over 18k servers using RITA when she was free. And while we were saddened and dismayed when we could no longer support RITA being free (See our old post as to why), seeing RITA bounce back has been amazing.
We truly worked tirelessly to try and keep her free and when we had to start charging for RITA, I had a tiny part of me that had doubts we would succeed.
We have had our struggles but for the most part, it's been great. With an uptime of over 98% in the last 11 months of public usage, not 1 but 2 migrations to different hosts, the leap to purchasing our own hardware, development of our own ML engine and my never-ending ability to introduce bugs every time I touch the code, I am so happy we decided to take this journey. And it's all down to you. So again, thank you.
Don't worry, I know it sounds like the start of a break-up speech, but it's not.
We want to hear from you. What do you want us to work on next. What big thing do you think we are missing. What's that feature you are dying for us to implement (just be prepared for bugs) and yes, we are working on a dashboard.
Let us know in #suggestions and vote for what you want to see in #suggestions-vote
We will try and complete as many as we can, so we want to know what you think. What are you waiting for... Suggest away.
Thank you
From everyone on the @Developer Team, and @Bot Helper, we are truly humbled.
@Zycore - Finance DirectorCommand is currently disabled pending re-write.
Translates last message chain(s) in channel. A chain is a collection of messages by the same author, to keep things simple.
!tr last
!tr last [n] to [lang] from [lang]
to [lang] - Defaults to server default language
to [lang, lang, ...] - Translates to multiple languages
from [lang] - Defaults to automatic detection
[n] - Number of chains to translate, default is 1
[-n] - Negative number means only one chain is translated
!tr last 2
!tr last to english
!tr last to english, german, french
!tr last -6 to english from german
Version Changes for 1.3.?-?
Information about the 1.2.4 Update.
Dev only Command handler has been added in to enable fast changes to command restrictions.
Lots of little things, nothing of consequence.
!tr history shows Development History of the bot.
!tr stats server [ServerID] shows stats for the targets server.
!tr blacklist [ServerID] Blacklists a server (Developers Only).
!tr unblacklist [ServerID] un-Blacklists a server (Developers Only).
!tr warn [ServerID] Warns a server (Developers Only).
!tr unwarn [ServerID] un-Warns a server (Developers Only).
!tr eject [ServerID] Removes RITA from the target server (Developers Only).
!tr check [ServerID] Checks Warn & Blacklist status of the given server.
!tr checkperms [bot/user] checks permissions of the bot and the user for RITA compatibility.
A new column has been added to manage blacklisting and Warning, backwards compatible to all previous versions.
Once again Zycore broke something (a lot of times) Zycore fixed it again.
Help muenus update with new commands.
Help menus has been reworked, Still a work in progress but they look much better now.
See below for our archived previous updates. This is not intended to be a definitive list, as certain updates may have been published or communicated solely through our Discord server.
PLEASE NOTE: These Updates was accurate at the time of sharing. Please refer to our Support documentation to ensure accurate and up-to-date information is known, If you have any questions or concerns please join our Discord Server and someone will assist.
Version Changes for 1.3.?-?
### 1.3.10.0
Date: 27/10/22
User: Zycore
> ----------
>>> permission.js
* new file, playing around with BitField
>>> events.js
* saved supportguild to client, but im not sure if this will run every action and thus leak or if it will only store once.
>>> message.js
* if a command is run, then the BitField value is added ot data.BitField
>>> misc.js, args.js
* Test commandVersion Changes for 1.3.?-?
### 1.3.17-0
Date: 21/11/22
User: Qjuh
> ----------
>>> commands.js
* New file for checking command permissions, sub-only commands, tier-restricted commands and potentially more
* Moved list of commands from args.js to commands.js
>>> args.js
* Calls commands.js to determine what function to call
>>> permissions.js, auth.js
* Added auth.helperID and use it to populate the BitField with BotHelper value
* Fixed GuildAdmin using BitField value of GlobalChanManager by accidentCreate a one-month gift subscription code for someone else using reward points.
/reward gift

Once a code has been generated, you will be given the following output.
You must provide the discount code to the intended recipient, the code will be valid for 30 days, and can only be used once. The message is not a public responce so other can not see it, so you must share it.

If the message is removed or deleted, you can get the code again by typing /reward history

All Plans, Prices, Limitations and Restrictions are correct at time of publication.
Subscriptions are available on RITA Dashboard. The guide is available here
If you need help at any point join our Discord Server and someone will help you.

Please review our S.A.L.T.S Policy for more information on Availability, Limitations and Restrictions.
S.A.L.T.S PolicyInformation about the 1.2.5 Update.
db.js has had a overhaul
Database has been migrated to a larger DB, We wont be needing to do that again for a good 5 years.
Color now working in Embed on and takes user role color.
Stop command for @user has now been fixed
Welcome message added for all new servers. System Channel is default, if not available it will pick first channel that has Write permissions.
Announcement command added, This is Restreicted to DEV ONLY.
Opt in and out commands added for announcements.
!tr settings persist [on/off] command has been added, this will prevent bot responses from being deleted.
Validation Checks added at startup to avoid Blacklist and Stats SQL Errors
New Debug Settings for console.
MESSAGE_DEBUG
0 - Error's Only
1 - Console for all Messages
2 - Console for Translate Messages only
3 - Content of all Messages
4 - Content of Translate Messages only
5 - Commands Only
Important Note
The bot’s default prefix is !tr (or !translate) - All commands must start with this prefix for the bot to process them. Bot must have proper permissions in all relevant channels for full functionality (read, write, react, mention, attachments, embed).
Users who wish to receive automatic translations in private must enable DMs via server privacy settings.
!tr help - Shows RITA's help menu for all help commands.
!tr help modules - Shows RITA's help menu for all modules.
!tr help commands - Shows RITA's help examples for common commands. Such as Translation Commands, Information Commands, Style Commands, Misc Commands, and Debug Commands.
!tr help [command] - Give usage info for each command.
Example: !tr help last - will open the help menu for the command last.
!tr invite - Creates an invite link for the bot so other can use it, i would not recommend using this command.
!tr list - Lists all supported languages the bot can use.
!tr version - Shows the current version of the bot.
!tr history - Shows list of previous bot versions.
!tr history [version] - show all the revisions made to the designated version.
** [version]** - Version number.
!tr tasks - Lists all current translation tasks for the channel the command is used in. This command is very useful to check what tasks you have currently set in a channel as well as easily identify if you've created an invalid translation tasks.
!tr donate oc - Donation link for open Collective.
!tr prefix [prefix] - Sets custom bot prefix
** [prefix] - custom prefix**
!tr id - Shows various ID info
Important Note
The bot’s default prefix is !tr (or !translate) - All commands must start with this prefix for the bot to process them. Bot must have proper permissions in all relevant channels for full functionality (read, write, react, mention, attachments, embed).
Users who wish to receive automatic translations in private must enable DMs via server privacy settings.
!tr this: [msg] - Translates to default server language
!tr this to [lang]: [msg] - detects language and translates to your to langugae
to [lang] - Defaults to server default language
to [lang, lang, ...] - Translates to multiple languages
from [lang] - Defaults to automatic detection
!tr this: bonjour
!tr this to spanish: hello world
!tr this to arabic, hebrew: I love you
!tr this to de from en: how are you?
Information about the 1.2.6 Update.
Sharding is now automatic, this should auto scale to the needed amount.
A Major memory leak causing rita to restart every few hours has now been fixed.
!tr announce on/off has been fixed.
!tr settings has been unrestricted.
!tr blacklist {ServerID} has been fixed.
!tr channel from {lang} to {lang} no longer defaults to a DM task.
!tr react on/off now turns on and off flag reactions.
Added in 3 new columns ready for auto-warn and eject management
Servers will be allowed 10 Permission Errors Before a Warning
Server will be given a Maximum of 3 Warning before they are Ejected
If your server should be Ejected a second time it will be blacklisted
Sooooooo Many spelling mistakes corrected that it would be too many to list here.
Help Menu updated with new commands.
Information about the 1.2.3 Update.
Environment changes - MESSAGE_DEBUG - For servers that want to show debug message content to find out what pesky message is causing that error, set this to 1. By Default it is 0. Rita global bot is also 0 and will remain that way.
With the changes to the google-translate-api it dug up a load of new bugs, Lazarus & EDW have been hard at work fixing them, (DM Lazarus to say thank you, he will love it.)
@everyone & @here will now also be conveyed across channels correctly.
Emojis, roles and user pings will now function as intended. With a new system used to manage and correct them
!tr stats global / !tr stats server now show message based stats, take a look.
It working so were not going to touch it. (Well Zycore wont)
Zycore broke something (alot of times) Zycore fixed it again.
All debug messages have been commented out in all files, This make the console log look so much cleaner.
Important Annoucement Shared Via Discord
PLEASE NOTE: This Update was accurate at the time of sharing. Please refer to our Support documentation to ensure accurate and up-to-date information is known, If you have any questions or concerns please join our Discord Server and someone will assist.
The following explains new additions to our newest release of Rita (v.1.4.1) which will be released in the coming days/weeks
Ex. You use 700k characters next month with the "Casual" plan (100 tasks) - 200k of that would use google, and the other 500k characters are translated with ML. Then on renewal date, the character count resets. If you have any questions or concerns, feel free to open-a-ticket As always, thank you for using RitaBot and supporting us, - The RitaBot Team
Version Changes for 1.3.?-?
### 1.3.15-0
Date: 13/11/22
User: Qjuh
> ----------
>>> db.js
* added subscriptions to server_obj
* refactored building of server_obj to do three seperate loops for servers, stats and subscriptions instead of nested loops
* removed global property from server_obj as it's not used anymore
* removed .paused from `server_obj[].servers` as its now accessible from subscriptions directly
* changed `updatePaused()` to only update subscriptions and not servers anymore (see above)
>>> translate.react.js, translate.js, message.js
* Removed mentions of `server_obj.global`
>>> translate.react.js, pause.js, message.js, slashcommand.js
* Moved .paused check from `server_obj[].servers` to `server_obj[].subscriptions`
>>> send.js
* Refined check for empty message error to not apply for stickers/attachments sent in same channel translationsImportant Annoucement Shared Via Discord
PLEASE NOTE: This Update was accurate at the time of sharing. Please refer to our Support documentation to ensure accurate and up-to-date information is known, If you have any questions or concerns please join our Discord Server and someone will assist.
Hey everyone.
So we have been running Ko-Fi and Patreon side by side now for 2 months we wanted to make sure we had a viable fallback if one should fail.
As it stands we have had no issues with Patreon but we have had with Ko-Fi. so we have taken the decision to phase out Ko-Fi.
From the end of this month we are going to disable all new subscriptions from Ko-Fi, this means new users will have to use patreon.
Existing users subscriptions will not change and still be charged as they are at the moment.
We would ask users to move over to patreon if you are able to. In the next week we will release a full blog post describing what this looks like and how to do this.
We know there will be some overlap with subscription dates and this will have the answers how this will work.
For now if you want to change over to patreon you can do so but please note patreon takes all payments on the 1st of each month.
If you have any questions in the mean time please open a sub ticket from open-a-sub-ticket and we will try to answer them WHEN WE HAVE all available information.
For clarification, no subscription will be cancelled if you are using Ko-Fi. It will still work.
Thank you @Zycore - Finance DirectorVersion Changes for 1.3.?-?
### 1.3.11-0
Date: 30/10/22
User: Qjuh
> ----------
>>> check.js (both /commands and /slashcommands)
* Added whitelist status and applications.commands scope to bot/server check
* Implemented `/check channel` and `!tr check channel` command
>>> pause.js
* Fixed display of paused servers
>>> auto.js
* Fixed ForumChannels translating although env var is not set
>>> db.js
* Fixed paused status getting set to false although subscription has a value of true
>>> interaction.reply.js
* Fixed usage of editReply if reply was deferred before
>>> send.js
* Commented logging of empty message errors because they're annoying atm and we know the reason
>>> slashcommands/settings.js
* Fixed usage of servers table from server_obj in `/settings show` commandVersion Changes for 1.3.?-?
### 1.3.21-0
Date: 8/12/22
User: Zycore
> ----------
>>> db.js
* Created case
db.updateTable (action, id, columnName, value, _cb)
action = (server, stats, reset)
db.increaseCount (action, column, id)
action = (server, stats)
db.sumCharUsed (action, _cb)
action = (google, ml)
>>> Core Code Files
* Changed db.updateServerTable > db.updateTable
* Changed db.updateStatsTable > db.updateTable
* Changed db.increaseServerCount > db.increaseCount
* Changed db.increaseStatsCount > db.increaseCount### 1.3.20-0
Date: 8/12/22
User: Zycore
> ----------
>>> commands.js
* Changed sub.removesub to sub.subremove to conform to other functions.
* Added in new commands
>>> misc.js
* Added in test command
>>> choose_server.js, helpers.js
* Removed plan.engine as its used for forced value.
>>> db.js
* subscriptions was lowercase, capitalized to confirm to other functions.
>>> dbSubscriptionsModel.js
* added ml_chars_used.
>>> translate.js
* added in check for overrides, even if .env file is fixed to a engine the forced value will be used. ### 1.3.16-0
Date: 19/11/22
User: Qjuh
> ----------
>>> misc.js
* Added Flag and BITA tier to output of `!tr subcount`
>>> args.js
* Added allowedCommandsWhilePaused to list commands that are allowed to be used with paused subscriptions
>>> message.js
* Allow paused subscriptions to still use commands listed in args.js' allowedCommandsWhilePaused
>>> blacklist.js
* Added reason parameter to `!tr blacklist <serverId> <reason>` and write reason, date and executing user to the database
* Added ´!tr blacklist review <serverId>` to find out who blacklisted the server, when and why
* `!tr unblacklist <serverId>` also removes reason, date and executing user from db
* Added new BotDev permission check to blacklist and unblacklist
### 1.3.16-1
Date: 20/11/22
User: Qjuh
> ----------
>>> events.js, translate.react.js, send.js, translate.js
* Added some optional chaining, catch and default values as bugfixes### 1.3.16-2
Date: 20/11/22
User: Qjuh
> ----------
>>> args.js, settings.js, bot.js
* Moved `cdebug, edebug, mdebug, mm, ownerdb, serverdb, updatedb` from `settings.js` to `bot.js` and by that to `!tr bot ...`
>>> help.js
* Fixed `!tr help dev` to show the new commands### 1.3.18-1
Date: 3/12/22
User: Qjuh
> ----------
>>> commands.js
* Revamped permission checks to allow for multiple needed permissions as well as seperate alternatives, like being BotHelper or being Admin with Casual Tier subscription
>>> permissions.js
* BotHelper permission is assigned by checking for BotHelper role on support server now
* Export RITAPermissions Flags array to be used in other files
>>> auth.js
* Read BotHelper role ID from .env with hardcoded fallback### 1.3.26-0
Date: 12/02/23
User: Qjuh
> ----------
>>> eject.js
* Remove abus reference from eject and warn### 1.3.26-1
Date: 14/02/23
User: Qjuh
> ----------
>>> send.js
* Fixed embed sending with only translated fields### 1.3.26-2
Date: 21/02/23
User: Qjuh
> ----------
>>> translate.stop.js, db.js, send.js
* Refactoring of various variables### 1.3.26-3
Date: 21/02/23
User: Qjuh
> ----------
>>> group.js
* Fixed `/group link` subcommand missing reply column
### 1.3.26-4
Date: 24/02/23
User: Qjuh
> ----------
>>> choose_server.js, helpers.js, events.js
* Added automatic tasklimit increase on role change
>>> events.js
* Bug fixed to `removeTask` No Public Change Log### 1.3.19-1
Date: 3/12/22
User: Qjuh
> ----------
>>> commands.js
* Added some perms in that were missing.
>>> misc.js, stats.js
* Fixed object when no active sub
* now shows bot value
>>> choose_server.js, sub.js
* now saves bot value
>>> check.js
* Fixed error with object missing table
>>> db.js
* Bot value is save in DB with sub
>>> events.js
* client.user.id now stored in config
### 1.3.19-2
Date: 8/12/22
User: Qjuh
> ----------
>>> translate.tasks.js, slashcommands/.../tasks.js
* Added `/tasks [channelId]` as global command needing ManageChannels permission per default
* Added `/tasks {server|channnel|me} [id]` as support guild only dev-commands needing Administrator permission per default (can be changed in server setttings->integration though)
* Added page number in footer of paginated embeds
>>> db.js
* Simplified getTasks() function used by `!tr tasks` and `/tasks` a bit
>>> slashcommands/.../translate.js, slashcommands/.../group.js, slashcommands/.../check.js
* Minor cleanup
>>> commands.js, permissions.js
* Added a dev-only command to list all commands and their needed permissions
* Added a `plaintext()` function in permissions.js to turn BitField into their readable names againAs a result of growing usage and utilization of Rita, we've had to adopt new ways to provide our service to keep her cheap and affordable. For months we've been developing neural machine translation capabilities to offset translation costs.
Each different tier has a max "google" limit, in which once you reach the "max" amount of characters respective to your tier, your translations will no longer use Google but use our ML server.
Don't worry, all subscriptions shall continue to be unlimited.While we have worked and continue to work hard to make the difference between the two seamingless, there will always be issues.
Google will usually be more accurate, but with more utilized language pairs (such as en-ru) the difference shall be less significant.To improve Rita's translation ability, translation data will be collected. This data is completely anonymous and will never be able to be traced back to you. Only authorized admins/developers have access to this data.
Using this data, we will be able to increase our translation accuracy significantly for slang, less-used languages and many other things to make these changes seem even more seamless.
ava
Currently it is not possible to opt-out of this data collection due to it being completely anonymous, but if this is a concern feel free to contact us and we will accommodate you the best we can.You can increase your soft Google character limit by upgrading your tier of subscription on Patreon (suggested that Kofi users switch to Patreon). If you have any queries or requests feel free to open a ticket in our support server.We've had to push these changes in order to keep RITA a reality, so there are some issues she has while handling emoticons, lists, short sentences/phrases, slang, and profanity (in less-used languages) etc; This is being worked on and new systems are being devised to attend to these issues ASAP.Google soft limits are as follows;
* Casual plan: ~200k characters every month
* Tinkerer plan: ~450k characters every month
* Pro plan: ~700k characters every month
Once/if you reach these limits, your translation provider will simply switch from Google to our ML server.
If you require a higher number of Google characters per month, please open a ticket to discuss a custom plan### 1.3.22-0
Date: 10/12/22
User: Zycore
> ----------
>>> db.js
* Created case
db.getCount (action, id, type, _cb)
action = (subChar, subMLChar, task, server)
db.getInfo (action, id, _cb))
action = (sub, server, settings, stats, purge)
>>> debug.js
* Archived debug.js and disbaled command.
>>> misc.js
* Debugvales command has been added due to archiving of debug.js
* Hardcoded role ID's
* Updated Object refrenceses
>>> translate.js
* Added catch for missing ml_chars_used
>>> Core Code Files
* Changed db.getServerInfo > db.getInfo
* Changed db.getSubInfo > db.getInfo
* Changed db.getServerInfo > db.getInfo
* Changed db.getServerSettings > db.getInfo
* Changed db.getPurgeInfo > db.getInfo
* Changed db.getSubCharCount > db.getCount
* Changed db.getTasksCount > db.getCount
* Changed db.getServersCount > db.getCount
* Created db.getCount(subMLChar)
* cb was no a function as missing _, Changed to _cb### 1.3.22-1
Date: 10/12/22
User: Zycore
> ----------
>>> translate.js
* Fixed a bug with missing engine value.### 1.3.22-2
Date: 10/12/22
User: Zycore
> ----------
>>> Core Code Files
* Update Error Tags in DB files are they were all duplicated.
* Added correct Error codes to Error not line number, This way if code shifts the error tag is still valid.### 1.3.28-1
Date: 10/03/23
User: Artanis
> ----------
>>> Core BOT code
* Prettified some methods, moved translation split to after translation to maintain a coherent translation
>>> events.js
* Fixed a bug with message deletion
### 1.3.7-0
Date: 19/10/22
User: Qjuh
> ----------
>>> message.js, misc.js, settings.js, mod.js, sql_execute.js, stats.js, bot2bot.js, announce.js, debug.js, embed.js, prefix.js, purge.js, react.js, sub.js, translate.auto.js, translate.group_auto.js, translate.stop.js, translate.tasks.js, check.js, create.channel.js, help.js, invite.js, pause.js, command.send.js, dev.send.js, send.js
* Attached `isAdmin`, `isChanManager`, `isGlobalChanManager`, `isDev`, `isGuildOwner` and `isBotOwner` to `data` instead of the cached `data.message`
* Removed `data.message.sourceID` as it was only ever used as fallback in cases when `data.message.guild.id` would be defined anyway
* Removed `data.message.roleColor` as it wasn't used anywhere
>>> db.js, dbInit.js, dbModels,js, dbServersModel.js, dbStatsModel.js, dbSubscriptionsModel.js, dbTasksModel.js
* Split Sequelize Models for all tables into seperate files, as well as initialization
>>> db.js
* Fixed a few undefined variables
>>> args.js, translate.last.js, translate.react.js, translate.this.js, auto.js, translate.js
* Added some more `async/await` for even more helpful stacktraces
>> Error's
List error found in console, if any.### 1.3.21-1
Date: 9/12/22
User: Zycore
> ----------
>>> choose_server.js
* Removed mention of Ko-Fi from prompt.### 1.3.27-0
Date: 06/03/23
User: Qjuh
> ----------
>>> events.js
* Bug fixed to `removeTask`
>>> db.js
* Futher fix to taskCount
>>> send.js
* Bug fix for file attachments### 1.3.27-1
Date: 07/03/23
User: Artanis
> ----------
>>> db.js, translate.js, event.sj
* Initial Support added for translation of edited messages
>>> message.js
* Move autoTranslate to message.js and char stat updating for edit translations### 1.3.27-2
Date: 08/03/23
User: Qjuh
> ----------
>>> stats.js
* allow BotHelper to use `!tr stats sub`### 1.3.25-0
Date: 05/02/23
User: Qjuh
> ----------
>>> Core Code Files
* Added JSDoc's
* Implement field embed support
* fix URL regex
* Fix `!tr group unlink`### 1.3.25-1
Date: 07/02/23
User: Qjuh
> ----------
>>> translate.react.js
* Allow crossposted messages to be translated (followed announcement channels)
* Fixed forwarding messages### 1.3.25-2
Date: 10/02/23
User: Qjuh
> ----------
>>> auto.js, message.js
* Fixed multiple embed translations bugs
>>> join.js, translate.group_auto.js, translate.stop.js
* Fixed group null origin bug
>>> helpers.js
* Added JSDoc's
>>> group.js
* Remove obsolete parameters### 1.3.25-3
Date: 11/02/23
User: Qjuh
> ----------
>>> db.js
* Fixed origin null bugInformation about the 1.2.2 Update.
New commands added (embed, bot2bot, settings updatedb)
embed command allows you to change the type of message that is sent to the translation channel, in embed format or standard text. Standard text shows the users avatar and name instead of the bot.
bot2bot allows for messages sent from other bots, in non embedded format to be translated as well. (Due to limitation this has been implimented but is disabled for now)
As the new variables above are stored in the DB, they need new Columns to be added, as such updatedb will complete these actions.
Major code changes, new code implementations will change the DB and produce errors on first build, but this is a safe version to update to. Follow the below instructions.
Step 1: Make a pull request and update from Master branch.
Once you update the bot and it initializes you WILL get a db error, this is normal. (we are working on suppressing these)
Step 2: !t settings updatedb
This will throw another error but it will build the missing columns.
The default value for embed is on and botbot is off.
Running this multiple times will cause error to be posted to webhook chan, this is a "Value exists" error. Preventing you from destroying the DB
Step 3: Completed, and now working.
Once you have completed Step 2, the bot will have come online, but it wont have fully Initialised.
To prevent a never ending loop of errors, the VERY FIRST message or command sent on the server will Initialise the DB fully. Meaning you will have to send that message again.
Added in command triggers and command deletion to clean up command channels.
Custom Emoji's are now supported and will be sent with the translated message correctly, with the exception of a few languages.
DM Translation have been disabled as it has been identified they never worked as intended. they will be re-introduced in a later update.
Various Security vulnerabilities fixed.
Dev Dependencies core to this bot, the google-translate-api & google-translate-token & gulp-watchhave been updated
eslint has been replaced with babel-eslint
!t settings updatebot Has been DISABLED - This is not needed as of yet and with the similarities to the !t settings updatedb command it may cause issues.
Deploy with Heroku Setup and integration.
/quicksetup is a new command as of 2.3.0 - Please report any issue using /feedback
RITA - All-in-One Builder This tool will guide you through creating a category, adding translation channels, creating the required roles, configuring permissions, and optionally creating a reaction role message so users can access the channels.
One of RITA's best practices is to keep all translation channels organised inside a category. To help keep your server tidy, /quicksetup requires you to either create a new category or select an existing one.
Click Create/Select Category. You'll then be asked to either create a new category or choose an existing one. In this example we'll create a category called Instruction Demo, but you can name it whatever you like.
Next we'll create your translation channels. You can create up to 20 channels in a single run.
You'll be asked to:
Enter a name for the channel. In this example we'll use demo.
Select the languages you'd like to use. In this example we'll choose English, French, German and Spanish.
Next we'll create the Discord roles used to access each language channel.
Discord roles control what members can see and do within your server. RITA uses language roles so members only see the channels for the languages they've chosen, helping keep your server organised and easy to navigate.
You'll have two options and one optional setting.
First, choose whether you want your language roles to use full language names or abbreviations.
Next, choose whether you'd like to add a prefix before each role name.
Next you'll choose which permissions members receive when they are assigned a language role.
View Channel – Allows members to see the channel.
Send Messages – Allows members to send messages.
Reaction roles are a simple way for members to choose which language roles they'd like to receive.
If you'd like to create a reaction role message now, click Create Message. You can always create one later if you prefer.
If you don't want to create one now, click Do Not Make Message.
You'll then be asked to choose between two message styles:
Embed – A cleaner, more modern appearance.
Once the setup is complete, RITA will display a summary showing everything that was created, including the category, channels, roles, permissions and reaction role message (if selected).
Important Note
The bot’s default prefix is !tr (or !translate) - All commands must start with this prefix for the bot to process them. Bot must have proper permissions in all relevant channels for full functionality (read, write, react, mention, attachments, embed).
Users who wish to receive automatic translations in private must enable DMs via server privacy settings.
These commands are available only to admins.
This command will display a printout of your current server settings.
!tr settings or /settings
This command will allow you to set a custom prefix for RITA in your server.
!tr prefix [prefix]
!translate prefix [prefix]
This command will turn off messages from the Development team.
!tr announce [on/off]
This command will allow you to use either embed or webhook translation Styles.
!tr embed [on/off]
/settings embed
This command will add a source Language marker to the translated text.
!tr settings langdetect [on/off]
/settings langdetect
This command will allow RITA to translate messages from most bots
!tr bot2bot [on/off]
!tr help bot2bot
This command will allow you to disable RITAs ability to use the everyone, here and user tags when using Webhook translation style.
!tr settings tags [Parameter]
none - RITA won't ignore any mentions
everyone - RITA will ignore everyone and here tags
all - RITA will ignore all mentions
This command will turn off the ability to translate a message with Country flags.
!tr react [on/off]
These commands are to enable/disable various auto delete functions.
!tr settings menupersist [on/off]
!tr settings reactpersist [on/off]
!tr settings flagpersist [on/off]
This command will allow you to turn on debugging for RITA related errors in your server.
!tr debug [on/off]
!tr help debug
This command will reset all Settings to their default setting.
!tr settings reset
Version Changes for 1.3.5-?
### 1.3.5-0
Date: 17/10/22
User: Zycore
> ----------
>>> .env File
* Defined `DISCORD_BOT_DEV_ID` in env file
>>> message.js
* Changed variable `message.isOwner` to `message.isGuildOwner`
>>> events.js
* Added in `process.env.DISCORD_BOT_DEV_ID = process.env.DISCORD_BOT_DEV_ID || "0";` to load variables on boot.
>>> translate.js
* Updated with arts new code
>>> auth.js
* Removed `exports.donation` as it was not used
* Removed `exports.changelog` as it was not used
* Removed `devID` and set variable in `.env` file
* Set fallback for if `DISCORD_BOT_DEV_ID` is missing and will use `DISCORD_BOT_OWNER_ID`
>>> settings.js
* Removed `listservers` command from settings.js
* Removed `listusers` command from settings.js
>>> misc.js
* Removed `costcalc` commands and variables
* Removed Mentions of ko-fi from responces
>>> join.js, invalid.js, choose_server
* Removed Mentions of ko-fi from responces### 1.3.5-1
Date: 17/10/22
User: Zycore
> ----------
>>> translate.js
* New `translate.js` code
>> Error's
TypeError: Cannot read properties of null (reading 'user_id')
at Object.checkSubActive (c:..\GitHub\RitaBotBuild\src\core\helpers.js:79:24)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async Object.subExpired (c:..\GitHub\RitaBotBuild\src\core\helpers.js:39:7)
at async run (c:..\GitHub\RitaBotBuild\src\message.js:265:8)### 1.3.5-2
Date: 18/10/22
User: Qjuh
> ----------
>>> message.js
* Removed `message.server` and `message.stats` being attached to cached messages
>>> profanity.js, send.js, translate.js, translate.last.js
* Changed to use `db.server_obj` instead of the now removed `data.message.server`
>>> helpers.js
* added check `if(!sub)` to account for non-subbed servers and fix the error in console `Cannot read properties of null (reading 'user_id')`Important Annoucement Shared Via Discord
PLEASE NOTE: This Update was accurate at the time of sharing. Please refer to our Support documentation to ensure accurate and up-to-date information is known, If you have any questions or concerns please join our and someone will assist.
As RITA moves into the next phase and new features are implemented we want to be able to test RITA without impacting the wider user base with potential bugs resulting in downtime. This is where you, our users, can help.
What We are looking for in BETA Testers: To start with we are looking for 5 servers willing to be BETA Testers. You must have no more than 100 tasks, a monthly usage limit of no more than 500k characters and more than 20 users. For simplicity of communication, you must be proficient in communicating in English. Open a general ticket in open-a-ticket providing your server ID, and stating you want to be a BETA Tester. One of the admin team will evaluate your server to ensure it meets our requirements. You will be invited to install a separate version of RITA on your server. This version is invite-only and will only work on the servers we approve.No, your tasks will be intact and RITA will start working straight away. The simple answer, use BITA as normal, we will create a separate ticket where you will report any issue you find. While we will continue to try and provide a guaranteed uptime like Global RITA there may be a time when BETA RITA stops working.
New features we add may be removed and you may find random bugs.
Your feedback will help us to fix these and get them ready for global launch.
You won't be able to have more than 1000 Tasks. This is the best bit, we will provide RITA for free.
Through the BETA Platform. So you won't have to pay for a subscription.
There will be rules but we will let you know them before you agree. Some codeUpdates may be made multiple times a day, with reboot times being an average of 5 mins. We can't always guarantee notification of reboots.
But we will let you know of any changes.
BETA RITA is not a permanent bot, and while we will give you as much notice as we can it may be deactivated at any time.Important Annoucement Shared Via Discord
PLEASE NOTE: This Update was accurate at the time of sharing. Please refer to our Support documentation to ensure accurate and up-to-date information is known, If you have any questions or concerns please join our and someone will assist.
This year has seen over 780 new user’s subscribe to RITA! At the start of 2022 RITA was using version 1.3.0, now as we start 2023 RITA is using version 1.3.24.
Thanks to the tireless work the RITA development team.
More than 150 individual updates, fixes, and patches have been made. Resulting in over 32,000 lines of new code being added and nearly 16,000 lines of code being deleted due to refactoring and optimization. * Total characters translated by RITA = 949,434,521
* Total messages translated by RITA = 17,749,158
* Translations sent by RITA in embed off mode = 13,119,780
* Translations sent by RITA in embed mode = 7,267,768
* Pictures sent by RITA = 462,227
* Number of messages translated via flag emoji reactions = 155,512
* Gif’s sent by RITA = 131,845
Numbers like this are what keeps us going, knowing that you truly use RITA to her full potential! As of July of 2022, a part of the RITA development team has been hard at work creating our very own machine learning translation model.
For those who aren’t familiar with a machine learning model or a neural network. Instead of relying on Google to translate the messages.
We are using various data sets to train the machine learning model via different means so that eventually we can offer an even lower cost translation bot.
With the same level of translation quality you’ve come to expect and depend on from RITA. This is still very much in the early stages of development, so far thanks to numerous training iterations we have decent coverage for the following 11 languages:
English, German, Russian, Spanish, French, Romanian, Italian, Portuguese, Japanese, Chinese, and Korean.
Please stay tuned for more information regarding the ML progress RITA is making.
Total character translated with RITA’s ML engine = 9,721,043Introducing Qjuh and Z3US, two very skilled developers.
And introduced a wonderful team of Community Helpers (T•K, Mairin Lilith, KingLion1314, and Slasky) and bot helpers (iconoclast and LOKI)
We have been community verified and have added 2 new bots to the RITA family.
Thank you for an amazing 2022 and here’s to an even better 2023!
The RITA development teamVersion Changes for 1.3.?-?
### 1.3.29-0
Date: 12/03/23
User: Artanis, Qjuh
> ----------
>>> Core BOT code
* Implimented ML Translation Engine Support
> Each uer has a limit to the number of Google Characters they were able to use, Once a user reached this limit the following was performed
If the user only had tasks that were supported and optimised by our ML Engine then their subscription was "Forced" to ML only
Any further usage was utilised via ML and not Google API
> Now once a used hits their Limit set by thier subscription, any translation will be performed via ML if the language is supported and optimised
If the lanauge is not then it will continue to use Google API.
>>> events.js
* Fixed a bug with message deletion
>>> translate.js, message.js
* Errors are now console logged
* Fix edits for auto and embed on
* Fix zh-CN to zh in parsing
>>> FUNDING.yml
* Added Patreon link### 1.3.29-1
Date: 13/03/23
User: Artanis, Qjuh
> ----------
>>> Env Files
* Update dependancies
> discord.js ^14.7.1 → ^14.8.0
>>> Core BOT code
* Fix multiple same-channel translation - typing changes - fixed edit discord parsing### 1.3.29-2
Date: 14/03/23
User: Artanis
> ----------
>>> send.js, message.js
* Fixed errors in webhook property and webhook modeLast updated: June 30, 2026
The words of which the initial letter is capitalized have meanings defined under Interpretations and Definitions, they are located Here.
You are strictly prohibited to use RitaBot against the ToS of discord or for illegal purposes. We are doing our best to prevent these activities, while trying to provide the best user experience as possible. If you find people or communities using RitaBot against the ToS of discord or even for illegal activities, please send us an email to dev@ritabot.gg
We (RitaBot) own and retain all rights for public available data (including but not limited to templates). We grant you the permission to use this available data for your own needs, but strictly disallow any commercial use. You therefore shall not sell, license or otherwise commercialize the data except if the permission was expressly granted to you.
RitaBot is provided as-is. There are no guarantees that it will be available in the future, and its purpose or availability may be changed at any time.
Usage Data including backups may be deleted at any time.
Any "pro" or "premium" Features are not guaranteed. They may change or be revoked at any time.
Access to all or specific Features of RitaBot may be revoked, for all or a specific user, at any time.
To operate RitaBot and in specific the Database we use requieres we save some information about You, your Discord server and the members.
Usernames & Discriminators.
Server Name & ID
Channel ID's, Role ID's and User/Owner ID's
We may also store anonymized Personal Data about you including your username, discriminator and public flags (badges) in line with our . This information is only used for analytics and can not be tracked back to You.
S.A.L.T.S Stands for Subscription, Activation, Limitations, Termination and Suspension Policy. This describes Our policies and procedures on how each of the aformentioned processes are handled.
By using the Service, You agree to the following processes and be subject to enforcment of them. Please refer to for more information.
Version Changes for 1.3.?-?
### 1.3.14-0
Date: 01/11/22
User: Qjuh
> ----------
>>> choose_server.js, logger.js
* Added log for activated subscriptions in activity log### 1.3.14-1
Date: 11/11/22
User: Qjuh
> ----------
>>> helpers.js, events.js
* Fetch members of support server instead of relying on cache
>>> events.js
* Fix messageDelete to also work for deleting translations in Threads### 1.3.14-2
Date: 11/11/22
User: Zycore
> ----------
>>> sub.js, args.js
* Removed global sub code
* Removed sub check code as its redundant, can be found in !tr stats sub
>>> choose_server.js
* If not BITA bot wont assign BITA Variable in DB
* Fetch members of support server instead of relying on cache
* Now refers to plan for tier,task and engine info. Plan is collected from helpers.js > getPlan
>>> helpers.js > getPlan
* Import (data, user) export (plan.tier, plan.taskAmount, plan.engine)
>>> settings.js
* target server code `!tr settings server [ID]` (Check with BitField)
>>> db.js
* Comment text Changed
>>> permissions.js
* You can now validate with BitField by `if (await permissions.check(data, "Permission Name Here"))`, it will return true or falseIn Effect From: July 01, 2026 / Last updated: June 30, 2026
The words of which the initial letter is capitalized have meanings defined under Interpretations and Definitions, they are located Here.
You are strictly prohibited to use RitaBot against the ToS of discord or for illegal purposes. We are doing our best to prevent these activities, while trying to provide the best user experience as possible. If you find people or communities using RitaBot against the ToS of discord or even for illegal activities, please send us an email to dev@ritabot.gg
We (RitaBot) own and retain all rights for public available data (including but not limited to templates). We grant you the permission to use this available data for your own needs, but strictly disallow any commercial use. You therefore shall not sell, license or otherwise commercialize the data except if the permission was expressly granted to you.
RitaBot is provided as-is. There are no guarantees that it will be available in the future, and its purpose or availability may be changed at any time.
Usage Data including backups may be deleted at any time.
Any "pro" or "premium" Features are not guaranteed. They may change or be revoked at any time.
Access to all or specific Features of RitaBot may be revoked, for all or a specific user, at any time.
Promotional programmes, including the RITA Rewards Programme, may be modified, suspended, or withdrawn at any time.
Participation in the RITA Rewards Programme is optional and available only to eligible users.
By earning, holding, or redeeming Reward Points, You agree to be bound by the RITA Rewards Programme Terms & Conditions, which form part of these Terms of Service.
Reward Points have no monetary value, are non-transferable unless expressly authorised by Us, and may only be redeemed in accordance with the RITA Rewards Programme Terms & Conditions.
We reserve the right to modify, suspend, or discontinue the Rewards Programme at any time.
To operate RitaBot and in specific the Database we use requieres we save some information about You, your Discord server and the members.
Usernames & Discriminators.
Server Name & ID
Channel ID's, Role ID's and User/Owner ID's
We may also store anonymized Personal Data about you including your username, discriminator and public flags (badges) in line with our . This information is only used for analytics and can not be tracked back to You.
S.A.L.T.S Stands for Subscription, Activation, Limitations, Termination and Suspension Policy. This describes Our policies and procedures on how each of the aformentioned processes are handled.
By using the Service, You agree to the following processes and be subject to enforcment of them. Please refer to for more information.
We reserve the right to amend or update these Terms of Service at any time.
Where changes materially affect Your rights or obligations, We will make reasonable efforts to notify Users through our Website, Discord server, or other appropriate communication channels.
Your continued use of the Service after the effective date of any changes constitutes acceptance of the updated Terms.
Where applicable, any Right to Exit will be governed by the Right to Exit Policy.
Everything you need to know about RITA Rewards?
PLEASE NOTE: This Update was accurate at the time of sharing. Please refer to our Support documentation to ensure accurate and up-to-date information is known, If you have any questions or concerns please join our and someone will assist.
We're excited to announce the launch of the Rita Rewards Programme, a new way of recognising and rewarding our subscribers for their continued support.
Starting today, every subscription payment earns Reward Points automatically based on your subscription tier:
⭐ Reaction – 3 Points per month ⭐ Casual – 7 Points per month ⭐ Tinkerer – 11 Points per month ⭐ Pro – 16 Points per month ⭐ Ultima – 22 Points per month
As a thank you to our long-term supporters, points have been awarded retrospectively based on your subscription history. That means many existing subscribers will already have points waiting to be redeemed.
Reward Points can be exchanged for discounts on future subscriptions, existing subscriptions or used to generate a gift subscription for a friend:
🎁 25% Discount for one month – 25 Points 🎁 50% Discount for one month – 50 Points 🎁 75% Discount for one month – 75 Points 🎁 100% Discount for one month – 100 Points 🎁 1 Month Gift Subscription – 80 Points
Gift subscriptions can only be redeemed by new subscribers, making them a great way to introduce friends to Rita.
To keep the programme fair and sustainable, the following restrictions apply:
Reward codes expire after 30 days if unused
Gift subscription codes expire after 30 days if unused
Only one reward may be redeemed every 90 days
100% discount rewards may only be redeemed once every 180 days
You can view your Reward Point balance, reward history, available rewards, and redeem points at any time using the /reward command.
This is our way of saying thank you to everyone who has supported Rita, whether you've been with us for a month or for several years. We appreciate every subscriber who helps make the project possible.
Thank you for being part of the Rita community.
Version Changes for 1.3.?-?
Claim a reward discount using your points.
/reward claim
This creates a one-time discount code you can use later or share with someone else.
Discount selector: Choose 25%, 50%, 75%, or 100% (based on available points).
Only discount avaliable to you based on the number of points you have will be shown.
Version Changes for 1.3.?-?
Version Changes for 1.3.?-?
100% Discount Code
One-Month Gift Subscription
Only one active reward code may exist on an account at any time.
Only one active reward code may exist on an account at any time
Reward codes cannot be combined with other promotions or discounts
That's it for now, but we will have some more info for you when we can. and if you want to check out all the changes made, dive into our change logs over in Version History
From all the Development Team at RITA, See you soon.




Here are some of the common questions that have been asked about the process.

Another year of RITA
### 1.3.8-0
Date: 20/10/22
User: Qjuh
> ----------
>>> package.json
* Removed unused dependencies
* Updated to discord.js v14.6.0
>>> bot.js
* Limited Intents to only those we use/take advantage of
* Added `Reaction` and `Message` partial to handle reaction translations through `messageReactionAdd` event
>>> events.js, translate.react.js
* Moved reaction (flag) translation to the propert event, since raw event is not documented and can be changed anytime
>>> colors.js
* Fixed default color value for new EmbedBuilder setColor method
>>> global changes (many files affected)
* `PermissionFlagsBits.Administrator` is the new way for Permissions like "ADMINISTRATOR"
* `GatewayIntentBits`/`IntentsBitField` is the new `Intents`, also with PascalCase instead of SCREAMING_SNAKE_CASE
* Channeltypes are either compared with ChannelType.GuildText enum or use of `.isTextBased()`, `.isThread()` or `.isDMBased()` methods
* `MessageEmbed` renamed to `EmbedBuilder`, same for `MessageAttachment` -> `AttachmentBuilder`
* `<Guild>.me` is now `<Guild>.members.me` and can be fetched by `<Guild>.members.fetchMe()`
* Channel creation now takes the name in the options object instead of as extra parameter
>>> logger.js
* Moved WebhookClient creation to top level to not leak memory### 1.3.8-1
Date: 20/10/22
User: Qjuh
> ----------
>>> choose_server.js
* Added check if server is already subscribed by another user
* Added support for more than one SUBSCRIPTION_ROLE_IDS
>>> db.js
* Added checks and other additional subscriptionAction code from dev branch
>>> translate.auto.js, translate.stop.js, translate.tasks.js,
* Fixed use of FormattingPatterns to parse IDs from User/Channnel mentions
>>> choose_server.js, helpers.js, events.js
* Added support for more than one SUBSCRIPTION_ROLE_IDS
>>> translate.react.js
* Added better cleaning of pings in reaction (flag) translation### 1.3.8-2
Date: 20/10/22
User: Qjuh
> ----------
>>> events.js
* Have RITA join all active Threads on startup and when new ones get created
>>> other
* Small Bugfixes related to discord.js v14 update### 1.3.8-3
Date: 21/10/22
User: Qjuh
> ----------
>>> auto.js, translate.auto.js
* Added check for `process.env.ALLOW_FORUMS`, if it's not present tasks for Forum Posts can't be created and existing tasks aren't processed
>>> send.js
* Added a custom error for empty message sends to finally find out where they come from### 1.3.9-0
Date: 23/10/22
User: Qjuh
> ----------
>>> various files
* Removed unneccessary eslint disables
* Moved some disables to next-line disables to not affect the whole file
>>> args.js
* Changed for..in to for..of and removed the eslint-disable
>>> join.js, event.js
* Removed the unused config parameter for guild join
>>> purge.js
* Commented unused `target` variable, made the function synchronous
>>> sub.js
* Backported the changes to addsub->subadd and removesub from development branch for manual dev-override subscriptions
>>> helpers.js
* Added `awaitMessage` function, was in translate.group_auto.js before, now used by that and sub.js
>>> translate.group_auto.js
* Removed unused `groupName` parameter from `listGroups` function
>> send.js
* Merged redundant webhook.send calls into one call (yes, I touched it again)
>>> translate.js
* Removed unused `guild` parameter from `bufferChains` function
* Changed `bufferChains` to use `translationHandler` too, instead of using Google Translate always
>>> deploy-interactions.js, slashcommand.js, slashcommands/../settings.js, slashcommands/../group.js, slashcommands/../translate.js, slashcommands/../check.js
* Added handler for slashcommands
* Changed deploy script to dynamically deploy commands that exist in slashcommands folder
* Added `/settings`, equivalent to `!tr settings` and its subcommands `reactpersist`, `menupersist`, `flagpersist` and `reset`, as well as `prefix` (ironic, I know), `bot2bot`, `embed`, `react`. Also has `/settings devreset` which accepts a serverId as option, but won`t be deployed globally, only to support server with needing Administrator permission per default to even appear and safeguarded as isDev internally.
* Added `/group`, equivalent to `!tr group` and all its subcommands
* Added `/check`, equivalent to `!tr check` and its subcommands, including a support-server only `/check server` command accepting a serverId as option, needing Administrator permission per default to even appear and safeguarded as isDev internally.
* Added `/translate` command, equivalent to `!tr this`
* These won't show unless deploy-interaction.js is run (which we shouldn't until we want to release them)
>>> message.js
* Fixed small bug not showing serverId of blacklisted server in redundancy check### 1.3.9-1
Date: 24/10/22
User: Qjuh
> ----------
>>> misc.js
* Added response for `!tr taskfix` command
>>> eject.js, command.send.js, send.js, db.js
* Moved increment of server_obj values to `increaseServersCount()` function
>>> country.langs.js
* Removed `rm` from `ch` flag
>>> db.js
* Switched order of some db calls to make sure the values we use still exist when we use them
* Moved another server_obj update to a `updateServerObj()` call
>>> helpers.js
* Fixed `subExpired()` and `checkSubActive()` functions according tp dev branch
>>> send.js
* Merged embed send if/else into one, according to dev branch
>>> args.js
* Fixed usage of `subadd` instead of `addsub`### 1.3.9-2
Date: 25/10/22
User: Qjuh
> ----------
>>> send.js
* use attachments collection directly instead of converting to array
* added some ?. for safety
* simplified servertags check### 1.3.6-0
Date: 19/10/22
User: Qjuh
> ----------
>>> mod.js, announce.js, purge.js, settings.js, translate.last.js, help.js, command.send.js, dev.send.js, send.js, events
* Added/Moved `.catch` to `message.delete()` with `logger("debugerror")` calls
>>> mod.js, announce.js, purge.js,
* Changed message fetching only to delete them to deleting directly through `<MessageManager>.delete()` or `<TextChannel>.bulkDelete()` methods
>>> translate.group_auto.js
* Fixed the `catch` on `awaitMessage`
>>> translate.js
* Fixed the `catch` on `apiInstance.post`
>>> translate.react.js
* Fixed the `catch` on `msg.reactions.resolve(emoji).users.remove(...)`
>>> translate.auto.js, send.js
* Changed all `var` (or even never defined) variables to be `const` or `let`
>>> blacklist.js
* Fixed checking `<Guild>.ownerId` instead of `<Guild>.owner` which might not be present
* Fixed using db table column `blacklist` instead of the wrong `blacklisted`
>>> db.js
* Fixed `catch` on `guild.members.fetch(...)`, `updateServerTable`, `Tasks.findAll(...)` and `updateCharCount`
>>> send.js
* Added some `async/await` to get more complete stack traces on send errors
* Fixed `attachments.size` check in `embedOff -> sendAttachments`### 1.3.6-1
Date: 19/10/22
User: Qjuh
> ----------
>>> events.js
* Added origin to `console.log` in `uncaughtException` handler### 1.3.6-2
Date: 19/10/22
User: Qjuh
> ----------
>>> logger.js
* Fixed `debugerror` casing to match the one it's used with everywhere
>> Errors
* `DiscordAPIError: Cannot send an empty message
at RequestHandler.execute (/node_modules/discord.js/src/rest/RequestHandler.js:350:13)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (/node_modules/discord.js/src/rest/RequestHandler.js:51:14)
at async Webhook.send (/node_modules/discord.js/src/structures/Webhook.js:196:15)
at async sendWebhookMessage (/src/core/send.js:992:13)
at async /src/core/send.js:1182:19
at async sendBox (/src/core/send.js:1157:10)
at async checkPerms (/src/core/send.js:438:4)
at async embedOff (/src/core/send.js:1193:4) {...}`Hey everyone, here we are again — another year of RITA, and honestly, 2025 has been one of the most exciting and meaningful years in her journey so far.
It’s pretty amazing to think about how far we’ve come. RITA started back in 2019, long before we had paid subscriptions, dashboards, or machine-learning engines. When we shifted to a paid model, our goal wasn’t about rapid growth—it was about building something sustainable. And what’s truly impressive is not just that RITA has grown, but how steadily and naturally she’s grown—driven by genuine usage rather than short-term spikes.
2025 really proved that path right. This year alone, RITA translated nearly 4.5 billion characters, with almost 2 billion of those handled by our own AI engine. That’s real traffic, trusted daily by thousands of communities, not just a tests or proof of concept. The message volume followed suit, with nearly 100 million messages translated this year, more than ever before.
What’s most inspiring isn’t just the numbers, but what’s behind them. Investments in infrastructure, dedicated servers, database upgrades, and those small technical choices we keep making, these have lowered downtime and boosted resilience in ways you might not always see, but definitely feel.
None of this would be possible without our incredible team. A huge thank you to our developers, helpers, and of course, you the users, the folks who maintain, support, test, document, and quietly fix things behind the scenes, often before most users even notice. Their consistency and care are what keep RITA reliable as she scales. @BroZer - Database Developer our Database Wizards
@Quartermaster - Developer King our Discord King
@Artanis - Dev Director the one who truly keeps us going
@Jshep - HR Director for keeping everyone in check and sane
And of course our amazing Helpers
@Slasky - Special Bot Helper
@QUEENI3 - Bot Helper
@Inspirational - Senior Helper
@KingLion - Bot Helper
While i have not said everyone's name here, all the other people who have made a contribution, thank you.Throughout RITA’s journey, we’ve now translated over 11 billion characters and nearly a quarter of a billion messages. Those numbers weren’t promised or predicted—they’re a testament to patience, discipline, and a community that keeps finding new reasons every day to rely on RITA.
Thank you all for being part of the journey — the best years are still ahead.
And for those of you who enjoy seeing the numbers behind the story, here’s what 2025 actually looked like under the hood.11.36 billion characters translated over four years — scaling from 949 million in 2022 to 4.49 billion in 2025, a 4.7× increase overall.
Year-on-year character growth:
2022 → 2023: +1.01B (+107%)
2023 → 2024: +1.99B (+102%)
2024 → 2025: +542M (+14%, on an already massive base)
This isn’t linear growth — it’s infrastructure scaling under sustained demand.239.8 million messages translated across four years.
2022: 17.7M
2023: 36.7M (+107% YoY)
2024: 85.5M (+133% YoY)
2025: 99.9M (+17% YoY)
From 2022 to 2025, daily message throughput increased by over 5×, reflecting both wider adoption and heavier per-server usage.3.91 billion ML-powered characters translated to date — growing from just 9.7M in 2022 to 1.91B in 2025.
ML usage grew ~196× from 2022 → 2025
ML share of total translations:
2022: ~1%
2023: ~38%
2024: ~31%
2025: ~42%195.3 million translations delivered via Off/Webhook, compared to 70.1 million via Embed Mode.
5.47 million images and 1.42 million GIFs processed since 2022.
1.44 million reactions translations overall.
4.49 billion characters and 99.9 million messages in a single year — more than all of 2022, 2023, and half of 2024 combined.THANK YOU,
Here's to 2026 🥂 , may we do it all over again.Full NameDemoRead Message History – Allows members to read previous messages.
Add Reactions – Allows members to react with emojis.
Attach Files – Allows members to upload files and images.
Embed Links – Allows members to send links that display as embeds.
Plain Text – A simpler text-only message.











This tries to apply a one-time discount directly to your active subscription. The discount is applied on the next generated bill.
Subscription selector: Choose which active subscription gets the discount.
Discount selector: Choose 25%, 50%, 75%, or 100% (based on available points).
Only discount avaliable to you based on the number of points you have will be shown.
Email input: Security check to confirm account ownership before applying.
User ID display: Confirm the request is tied to the correct Discord account.
The above output will be shown if you apply a discount to a active subscription, This will confirm the following details.
Discount % used
Subscription ID
Points spent
Remaining points
Tracking code
Record/expiry date
If you are given an error then please reach out to support, however here are some of them
Not enough points for selected discount
No discount options will be shown.
No eligible active subscription found
No subscription will be shown on the section screen.
90-day reward cooldown not passed & Active reward code already exists
100% reward 180-day cooldown not passed
Subscription already has a discount
Account/email validation failed
Other Error's


Information about subscribing to RitaBot services. Please make sure to read the entire page before proceeding with buying a subscription to clear up any possible future confusion.
There may be times RitaBot ceases to function, in which the procedure for us will be to verify the problem and fix it as soon as possible. We are not responsible for any issues this may cause.
Furthermore, there may be times of maintenance in order to improve and exceed Rita's capabilities. In line with our Refund Policy, We aim for a service uptime of >80% (24 Days in a rolling 30-day period) of core functionality.
Currently, only the server owner or admin can buy a subscription for a server.
In order to activate your subscription with the dashboard, you can just click on the subscription and choose the server you want to link it to
In order to provide a virtually "unlimited" pricing model, we've incorporated soft limits into Rita. Essentially, each tier has X amount of chars per month that will be translated with Google. Meanwhile, all other translations will use our own Neural Machine Translation server.
While we are working hard to make our own translations as seemingless as ever, Google translations will be similar/better than ML translations simply due to Google's resources
We are working to provide clarifying examples of quality for language pairs to be as clear as possible
To clarify; all tiers are still unlimited character wise.
The only difference shall be if you've used more than the soft limit for your tier in a month, then all other translations will use our ML until month is reset.
The only difference between our plans at the moment, and for the foreseeable future is the task limit that you are restricted to. If this changes however we will let you know, You won't lose access to anything you don't already have.
A task is a singular channel setup for automatic channel translation. Tasks are simply the setup, not the usage. For example; 1 channel translating from English to French counts as a task. As you add more languages to an interconnected language setup, the task utilization increases exponentially.
You can calculate how many tasks you use for each channel by using the amount of languages (including source) you want to have for that channel in the equation x * (x-1)
Reaction translation, utilisation of tasks, or anything else do not count towards task count
Only the group , auto , and channel commands contribute to task count
Information about the 2.0.0 Update.
Over the last year, we have been hard at work integrating Stripe subscription and payment process, With a dedicated DASHBOARD to allow you to manage your subscription,
Manage every aspect of your RITA subscription past, present, and future,
We now offer Bi-monthly subscriptions, allowing you to pay for 2 months in advance,
Role-based subscriptions are so RITA 1.0.
Thanks to our dashboard integration we know who you are and which discord account to link with at the point of sale. Click, Pay, Go,
Modify server settings such as embed style, reaction translation etc.,
Select the translation engine you want
100% Machine Learning
Optimized
Normal
Built with Stripe in mind. (More about Stripe below),
Contact Support directly from the Dashboard,
These are just some of the current features. Expect increased functionality in the Dashboard as we continue development!,
Just login and get started! Current subscriptions with Patreon will appear, but you can buy new Dashboard subscriptions
We will be expanding the features available to users in the dashboard as we continue development, For now, the core functions and most important ones are available to use.
You can choose to pay on the 1st of each month like we currently offer, or the same day you subscribe, free to choose.
You will be able to see all your subscriptions in one place.
You can modify server settings such as embed style, reaction translation etc.
What is a Dashboard?
The RITA Dashboard is a website in which you login with your Discord account and can oversee all your RITA servers, access the billing portal, and buy new plans,
Will 'I' need to do anything to keep using my current paid version of RITA?:
Great news for any RITA users who speaks Spanish, Italian, Portuguese, Russian, Simplified Chinese, or Turkish
Once you've set the server's language to one of the above,
Or after checking that your Discord client's location is set to one of those above locals,
RITA's slash commands will now be in those languages,
Reply function: These are now translated across channels just like the original message.
Style: you can now prefix the message with the source language Emoji
Slash commands: Most of the core function commands are now available as slash commands.
Our Dedicated ML server got some upgrades, increasing performance and resulting in reduced downtime (if you ever felt it),
Improved redundancy and fall over protection for RITA.
Database Changes, are not important for you, but important for us.
We made several changes to the way we store and manage data.
A HUGE Thank you to the entire RITA Team. Without each of you RITA wouldn't be what it is today!
Thanks to you all the RITA users! It's our pleasure to keep making RITA better and better. I can't wait to see what RITA 3.0 will look like!
As always we are available to answer any questions you have or assist with troubleshooting any issues.
CHECK BACK LATER FOR MORE INFO.
Version Changes for 1.3.?-?
### 1.3.13-0
Date: 30/10/22
User: Zycore
> ----------
>>> migrate.js
* Migration code for when users swap to BLUE from YELLOW. Needs to be reviewed and debugged for errors i have not though of.
>>> bot.js,
* Increased cache values
>>> args.js
* Added migrate command as argument
>>> events.js
* Removed global saving of client.supportGuild
>>> message.js
* Added a command trigger for migration function.
>>> misc.js
* Bug fix.### 1.3.13-1
Date: 30/10/22
User: Zycore
> ----------
>>> events.js
* Now has all 5 Tiers, With role ID and Tasks Allowance as array
>>> stats.js
* added engine and tier to stats sub command
>>> choose_server.js,
* Tier and Engine are now collected from event.js index
>>> sub.js
* Added Engine question to subadd command
>>> dbSubscriptionsModel.js
* Added "engine": Sequelize.STRING(16)
>>> db.js
* Change to now account for engine and tier
>>> helpers.js
* Change to now account for engine and tier
* Also added a check, so highest index value will be used when updating task allowance, so if a user upgrade a tier and the lower tier is not removed then it will only user the value of the highest tier. Thus removing need for intervention.
>>> permissions.js
* now includes tier values.No Public Change LogNo Public Change LogNo Public Change Log### 1.3.13-5
Date: 01/11/22
User: Qjuh
> ----------
>>> send.js
* put stickers into embeds instead of attachments### 1.3.13-6
Date: 01/11/22
User: Qjuh
> ----------
>>> send.js, auto.js, translate.js
* moved language and backupLang from `data.message` to `data`Information about the 1.2.2 Update.
Rita now uses Discord.js V12.
Same channel translation is now working. You no longer need to have multiple channels set up, you can do it all in one channel.
Example !tr channel from english to spanish for #SameChannelMention Will translate any English messages to Spanish in your current channel
AUTO Translate is now working, you can define the "from" language as "AUTO" and it will detect the language for you.
Example !tr auto to lang for #channel So running !tr auto to en for #channel will auto translate anything not in English to English for that channel.
DM Translations have been fixed and enabled, thanks to Artanis and Brozer.
You can enable this by running the following command !tr channel to de from en for @user That will translate English messages to German for the user. Which they will receive in a DM.
Duplicate language translation bug is now fixed, meaning you can not translate English to English or French to French etc.
Various fixes to Nickname Bugs, this should now be working.
Desktop Client Gif keyboard caused error due to exclusive embed style.
google-translate-api has been changed to RCP to reduce and mitigate the load limiter.
We have found a way to speed up the translation process, so it should be a little snappier in future.
New commands added (debug, donate, prefix, help commands, create)
debugIs for debug options. Examples below:
As the new variables above are stored in the DB, we have made a few changes to how these are handled and they are auto-created upon load. Meaning you no longer need to worry about them again. (If you get any error's please let us know)
Various Security vulnerabilities fixed.
Fixed various issues.
Major code changes
Dev Dependencies core to this bot, the google-translate-api
Version Changes for 1.3.?-?
### 1.3.24-0
Date: 26/01/23
User: Qjuh
> ----------
>>> Core Code Files
* Full rew-write to support ESM
* Move launch.js to deleted
* Changed last few properties to new system
* Converted to ESM
* Fixed bugs found when starting on pebble
* Multiple bug fixes
* Remove unused export
* Turned dashboard into ESM too (untested)
* Fixed bugs if missing permissions
* Fixed intents checks
* Eslint corrections
* Fixed permission check, resolves #89
* Fixed `!tr group link` bug
* Linted and fixed `!tr select` command
* Fixed codeblock translation
* Make yellow leave when blue joins
* Fixes gulpfile
* Updated Blue role BotID
* Added multiple Slash commands### 1.3.24-1
Date: 27/01/23
User: Qjuh
> ----------
>>> db.js, events.js, send.js
* Added JSDoc's
>>> send.js
* Fixed stickers Bug### 1.3.24-2
Date: 28/01/23
User: Qjuh
> ----------
>>> commands.js, misc.js, translate.react.js, db.js, translate.js, events.js, message.js
* Replaced `server_obj[id].servers.subscription` with `server_obj[id].subscriptions`
>>> Core Code Files
* Change to permission structures, These are checked in BitField and not each command
>>> choose_server.js
* Fixed !tr sub select menu
>>> send.js
* Fixed image sending in threads### 1.3.24-3
Date: 02/02/23
User: Qjuh
> ----------
>>> db.js
* Fixed !tr stop for #channel taskCount calculation
* Fixed a `taskCount` bug
>>> eject.js
* turn `/eject` into `/warn eject`, add `/warn dm`### 1.3.24-4
Date: 03/02/23
User: Qjuh
> ----------
>>> db.js
* Multiple Fixes of `taskCount` bugVersion Changes for 1.3.?-?
### 1.4.0-0
Date: 17/03/23
User: Qjuh
> ----------
>>> Bug Fixes
* args.js
> Removal of Default Server Language output (Unused)
* command.js
> Fixed URL Parsing
* translate.react.js
> Fixed variable on error for `Raction Failed`
* auth.js
> Type correction for botOwner constant
* db.js
> Refactoring of return statments
* message.js, events.js
> Fix for thread support
* slashcommands.js
> subCommand correction
* All files
> Corerction of `msg:` to `description:` for logger messages
> Removal of all `function error (err)` calls to logger.js
* eslint Corrections### 1.4.0-1
Date: 19/03/23
User: Qjuh
> ----------
>>> choose_server.js
* Fixed taskcount being "0" instead of 0, logger fix
>>> join.js, settings.js
* Removal of all `function error (err)` calls to logger.js### 1.4.0-2
Date: 30/03/23
User: Qjuh
> ----------
>>> translate.auto.js
* Fixed Auto task count bug### 1.4.0-3
Date: 31/03/23
User: Qjuh
> ----------
>>> send.js
* Improve DM error logs### 1.4.0-4
Date: 04/04/23
User: Qjuh
> ----------
>>> send.js
* Fixed sendembeds in embedOn mode### 1.4.0-5
Date: 05/04/23
User: Zycore
> ----------
>>> settings.js
* Removing Protected Code
>>> helpers.js, events.js
* Added varaibles for `REDCATED` plan and `REDCATED` plan to `getMaxChars`
>>> lang.check.js
* New languages added
> LANGUAGE CODE
> Assamese as
> Aymara ay
> Bambara bm
> Dhivehi dv
> Ewe ee
> Guarani gn
> Javanese jv
> Kinyarwanda rw
> Lingala ln
> Oriya or
> Oromo om
> Quechua qu
> Sanskrit sa
> Tatar tt
> Tigrinya ti
> Tsonga ts
> Turkmen tk
> Twi (Akan) ak
> Uyghur ugGroups channels using Automatic Channel Translation in a simple, easy-to-manage manner.
You can use slash commands like /group create in order to create groups or use the commands listed bellow.
You can also use :
/group link to add a new channel with a new language on an existing group
/group unlink to remove a language from the group automatic translation
/group list to list all the group you have created
/group delete to delete a group
!tr group ⬅ create new channel group
Respond with new group name, number of channels that should be in group, and for each channel prompt respond with channel language and ping which channel to assign
!tr group link [GROUPNAME]
[GROUPNAME] refers to the group name you give to the group (can check groups with !tr group list)
There is a max of 15 channels/languages per group
Groups cannot have repeats of languages or channels. All added channels and langs must be unique and not already in the group
Languages should be in their ISO-639-1 format, list can be found
Upcoming Changes to RITA and what we have been doing in Version 2.3.0
Automatically translates any new messages in the current channel and forwards them to the target channel. Admins/mods can set forwarding to the same channel(not recommended) or other channels(recommended).
Please note that when you setup an auto command the target channel will not send back to main channel unless you tell it to
/auto to create a task to translate from one channel to the other, from one lang to a target language
/stop task to delete an existing tasks (they will be listed, just pickup the one you want to remove)
Version Changes for 1.3.?-?
Cancelling your Patreon subscriptions gives you access until the first day of the next month, so you should cancel and resubscribe via the Dashboard on that renewal date.,
Will 'I' need to pay more for the Dashboard?:
Nope! If anything, you’ll pay less with an assortment of promotion codes we will be handing out to encourage people to move over.,
Is it free to upgrade/switch to RITA v2?
Of course, RITA updates will always benefit all subscribers and not paywall optimizations
More language support in the Slash Commands to follow!
Improve efficiency in our Database code allowing for more agile adding in new functionality.
Improved testing to development behavior before pushing changes to our production environment, making sure every change made in our code won't lead to downtime.
Code refactoring: to answer your queries quicker.
As a result of our downtime in April, we have new private servers.
Our new private server also hosts our backend code, dashboard code and ML Engine,
Over 300 commits to our code base
This is the first release of our dashboard, we expect bugs, we know we can add more and we are ready for the work. Please make sure you let us know of any issues you have, and any suggestions and give honest feedback.
!tr debug on - turns on debugging, creates debugging channel and webhook
!tr debug off - turns off debugging
!tr stats debug - prints webhook "ID" and "Token" in channel
donate- If you would like to donate to RITA you can find the info with this command. Since RITA bot is 100% free donations are greatly appreciated to help with server costs. Examples below:
!tr donate- Will return donation options
!tr donate github- You can Donate at Github Sponsors
!tr donate oc- You can Donate at Open Collective
prefix- You can now change the prefix of your bot, you can make it whatever you want. Examples below:
!tr prefix- Will list your current prefix. Default prefix is!tr
!tr prefix $tr- your prefix would now be$trinstead of!tr
!tr prefix reset- resets your prefix back to!trSo if you changed the prefix to$tryou would run$tr prefix reset
help commands- Shows a list of all available commands. Example below:
!tr help
create- Allows you to use RITA to create a new channel. Example below:
!tr create bob- will create a new channel named bob
Command Changed (stats global, stats server)
stats global- Stat tracking of messages sent in global servers.stats server- Stat tracking of messages sent in local server.
Command Removed (settings dbfix, cpu)
settings dbfix- This is no longer needed as DB is repaired (If needed) on each startup.cpu- It was broken and I have no idea how to fix it.
google-translate-tokengulp-watch















Soft Limit (characters)
~100k Google
~200k Google
~450k Google
Character Limit (backed by ML)
unlimited
Unlimited
Unlimited
~800k google
Character Limit (backed by ML)
Unlimited
Unlimited
Task Limit
No tasks (0)
100
200
Task Limit
350
550
Soft Limit (characters)
With RITA subscriptions, whatever is your tier, you have unlimited number of chars translated. Only the underlying translation engine will change depending of your usage and your tier.

~700k Google
PLEASE NOTE: This Update was accurate at the time of sharing. Please refer to our Support documentation to ensure accurate and up-to-date information is known, If you have any questions or concerns please join our Discord Server and someone will assist.
That's it for now, but we will have some more info for you when we can. and if you want to check out all the changes made, dive into our change logs over in Version History
From all the Development Team at RITA, See you soon.
It has been a little while since the last update, and we have been working on a range of backend improvements, diagnostics, reporting changes, and support for a new translation provider. So here are some updates for you.
* DeepL integration
* Message counter support added back in, your stats will now show a full message counter
* DeepL added to dashboard for users to select from
* A new `!tr diag` diagnostic command
* Stats updates for DeepL
* Locale updates for new stats output
* DeepL support in the slash command
* Early work on a new Balance command (More info to come soon)Yes, Yes, thats correct.
We have now added support for DeepL as a translation engine within RITA.
This allows DeepL to be used alongside our existing supported translation systems and gives us more flexibility in how translations are handled across the platform.
This also lays the groundwork for future improvements in engine handling, reporting, and usage balancing.DeepL characters cost more per million than Google characters, so this multiplier allows usage to be balanced more fairly when DeepL is being used.
The Multiplier is set at 1.0432, so for every 100 characters used normally, it would use 104 with DeepL, Full information can be found in out S.A.L.T.S policy.
https://docs.ritabot.gg/ritabot-docs/policys/s.a.l.t.s-policy#deepl-api-usage-updated-limitsA few years ago we remove the total message count from our stats, this was for a few reason but maininly to reduce the calls on our Database and improve stability, RITA will once again track message count data as part of her normal stats tracking.
For now on you will see total message count in your stats - check `!tr stats` or `/stats`We understand that not everyone wants to reach out to support. As such, we have created a new diagnostic command for you to use. !tr diag and /diag will run a diagnostic check of RITA on your server.
At present, it can:
* fix object issues where the object and database do not match
* fix Server table issues where OwnerID, Owner, or ServerName are incorrect in the database
* fix task count values in the database where they are incorrect
* revalidate after a fix has been performed
This will be expanded upon to create more ways for us to automate and resolve any issues you may have. Setting up language roles just got a whole lot easier. The new /reactionroles command lets you create and manage reaction role messages directly from Discord.
At present, it can:
* `add` emoji/role pairs to any existing message — users react to get the role
* `remove` a single reaction role from a message
* `edit` which role is assigned to an emoji
* `delete` all reaction roles from a message in one go
* `list` all active reaction role messages on your server with status indicators
* `toggle` individual or all reaction roles on a message (enable/disable)
* `build` a brand new reaction role message with up to 11 emoji/role pairs and optional styling
* `group` automatically build a reaction role message from an existing translation group — RITA detects your language channels and matches roles for you
Reactions are automatically cleaned up after a user selects a role, keeping the message tidy.We know that setting up RITA for the first time can involve a lot of steps. /quicksetup is a guided wizard that walks you through the entire process in one go.
It will:
* Create or select a category for your translation channels
* Create up to 20 language channels with a naming prefix of your choice
* Create matching roles for each language — or reuse roles from an existing translation group
* Set channel permissions so only users with the right role can see each channel
* Post a reaction role message so users can self-assign their language
If you cancel at any point or the wizard times out, RITA will automatically clean up anything it created. You can skip permissions and the reaction message if you'd prefer to configure those yourself.RITA is not responsible for any errors in permission levels or incompatible permission structures. This tool is designed to assist with quick setup — please review all permissions and channel settings to ensure they are configured to your requirements.We want to hear from you — whether it is a bug, a suggestion, or just general feedback. The new /feedback command opens a form right inside Discord where you can:
Select a feedback type (Bug, Issue, Suggestion, General Feedback, or Other)
Describe the issue or idea in detail
Optionally attach a screenshot or file
Your submission is sent directly to the RITA team along with your server context so we can follow up quickly. No need to join a support server — just type /feedback and let us know.We've completely rebuilt the /help command from the ground up using Discord's latest Components V2 system — no more static embeds or dropdowns.
It will:
* Show a clean home screen with every command category and a live count of available commands
* Filter categories based on your permissions — you'll only see what you can actually use
* Let you browse commands page by page within each category, with Previous/Next navigation
* Show a detailed view for any command including its type, required permissions, usage examples, parameters, and subcommands
* Let you jump directly to a category with the topic option — no need to click through
* Every screen is fully interactive with buttons, and the menu automatically cleans up after 5 minutes of inactivity.
All text is localised, so it appears in your server's configured language.One of the promises we made when RITA was first created was that we would always do what we could for our users. That meant not raising costs unless absolutely necessary, always providing the best support we can, and never hiding functions or commands behind a paywall.
As part of that commitment, we are working on a rewards programme for our users.
This may change over time, but for now the details we can share are limited:
* For each month you are a member of RITA and hold an active subscription, you will accumulate points
* These points can be used to redeem free months of RITA usage
* You can gift a one-month subscription to someone else or use it yourselfThere are still a few more bits we want to do, for now here are a few of them
DeepL support in all Object and Context commands
Stripe integration work for the balance command
User ability to decide if they want Deepl or Google to be used by defaultThis update brings a mix of user-facing improvements, backend clean-up, database additions, and some early groundwork for future billing and engine support.
while DeepL support is the biggest change you will notice, a lot of the work here has also been focused on making RITA easier to debug, easier to support, and easier for us to keep improving over time.
that is all for now, but more is on the way, and we will share further updates as the remaining work is completed.### 1.3.23-0
Date: 10/12/22
User: Zycore
> ----------
>>> Env Files
* Update backup env files
* Update dependancies
> body-parser ^1.19.0 → ^1.20.1
> canvas ^2.9.1 → ^2.10.2
> common-tags ^1.8.0 → ^1.8.2
> discord.js ^14.6.0 → ^14.7.1
> ejs ^3.1.6 → ^3.1.8
> express ^4.17.1 → ^4.18.2
> express-session ^1.17.2 → ^1.17.3
> iso-639-1 ^2.1.13 → ^2.1.15
> memorystore ^1.6.6 → ^1.6.7
> pg ^8.7.3 → ^8.8.0
> sqlite3 ^5.0.2 → ^5.1.2
> @babel/core ^7.17.10 → ^7.20.5
> @babel/eslint-parser ^7.17.0 → ^7.19.1
> eslint ^8.15.0 → ^8.29.0
> nodemon ^2.0.12 → ^2.0.20### 1.3.23-1
Date: 10/12/22
User: Zycore
> ----------
>>> commands.js
* Change Last command pointer from .old to .run
the code in .old cause all data to be deleted from the object, Major bug.
>>> translate.last.js
* Commented out the .old method so it can be called by accident.### 1.3.23-2
Date: 13/12/22
User: Qjuh
> ----------
>>> deploy-interactions.js, events.js
* added possibility for slashcommand files to have only dev-commands
>>> slashcommands/../announce.js
* Added `/announce [role:]` to send an announcement message to all servers, optionally only those whose subscription owners have the mentioned role in RMS
>>> slashcommands/../translate.js, core/translate.js
* Fixed import/export of discordPatch and translateFix methods used for `/translate {text} [from] [to]`### 1.3.23-3
Date: 14/12/22
User: Zycore
> ----------
>>> bot.js
* Added auto deploy code of slash commands on each boot.### 1.3.23-4
Date: 27/12/22
User: Qjuh, Zycore
> ----------
>>> translate.react.js
* Added exclusion/catch for await statment of emojio remove
>>> db.js
* Fixed task count for removal of tasks
* Values for chars_used and ml_chars_used are now set to 0 not 1.
>>> send.js
* Corrected a error catch to not log to console
* Added printout for 40005 error to source channel
>>> bot.js
* Removed auto deploy code of slash commands on each boot
>>> misc.js
* fix a object error with selection of counters.### 1.3.23-5
Date: 10/01/23
User: Qjuh
> ----------
>>> translate.js
* Fix bug timestamps and slash commands
* eslint corrections
* regex Fix for code block detectionRespond to prompts by pinging which channel to add and what language to assign to that channel
!tr group unlink [GROUPNAME] ⬅ delete a channel from group, opposite of group link
!tr group delete [GROUPNAME] ⬅ delete entirety of group
!tr group list ⬅ list all groups present in guild





/stop server will remove all tasks of the server : be carefull and check that it's really what you want
/stop channel will stop all tasks for the channel choosen
!tr channel from [lang] to [lang] for #[dest]
!tr auto to [lang] for #[same channel dest]
!tr channel from [lang] to [lang] for #[dest] filter @[role]
for [dest] The target channel you want the translation of the from [lang] to go to.
to [lang] (optional)
The language to translate to, defaults to server default language if none provided.
from [lang]
The language to translate from.
filter [role] can be used to restriction translation to a specific role.
NOTE : Auto is for a single ( same channel ) translations, as photos, and Gifs, will not be duplicated or sent.
Using full language names
!tr channel from english to spanish for #target-channel
!tr auto to spanish for #current-channel
Using language short codes
!tr channel from en to es for #target-channel
!tr auto to es for #current-channel
Using Auto detection
!tr auto to ru for #current-channel
Send translations to same channel ( Not recommended for more than 3 languages )
!tr channel from english to spanish for #current-channel
!tr auto to spanish for #current-channel
Send translations to another channel in server ( Recommended )
!tr channel from english to spanish for #target-channel
!tr channel from english to spanish for #target-channel
!tr auto to spanish for #current-channel
Send translations to multiple channels in the server at once
!tr channel from english to spanish for #target-channel-es1, #target-channel-es2, #target-channel-es3, #target-channel-es4
!tr channel from english to spanish for #target-channel-es1, #target-channel-es2, #target-channel-es3, #target-channel-es4
To stop an automatic translation task, simply go the origin channel of the task and use the stop command:
!tr stop
!tr stop task [id!tr stop for [me]
!tr for [@user]
!tr stop for [#channel]
!tr stop for [all]
!tr stop for [server]
[id], ID number for the task you want to stop, run !tr tasks to get id.
for [me] - Stops translations via DM to yourself.
for [@user] - Stops the task for user.
for [channel] - Stops the task from the channel posted to the channel destination.
for [all] - Stops all translations in the channel its posted in.
for [server] - Stops all translations being done in your server.
Stop all automatic translations
!tr stop task [ID]
Stop a single task by running !tr task, and taking note of the ID of the item to remove.
!tr stop for [@UserID]
Stop a translation being sent to a user.
!tr stop for #target-channel
Stop all automatic translations for specific channel in server
!tr stop for all
Stop all automatic translations for the channel.
!tr stop for server
Stop all tasks in the server.
Help command for stop: !translate help stop
Help command for automatic translation: !translate help auto.
Values wrapped in brackets [ ] are solely for illustrative purposes to demonstrate the use of the command. Brackets are not in any command.
[lang] values can be language names in English, native language names or ISO 639-1 codes. For example, german de and deutsch will all work the same.
Messages by all bots are currently ignored to avoid loops, but we are working on different bot modes to enable bot translation.
Any message that begins with !tr or !translate will be determined to be a bot command and thus shall not be allowed to be translated.
We do suggest you to use Group Translations instead of Channel Translation as it's easier to create and to maintain
Version History for 1.3.?
Dependancy Updates
Node and NPM Updated
node is now V17.1.0
node version can be changed in package.json to any version above 16.2.0
npm is now V8.1.3
npm version can be any version above 7.20.3
DJS is version
CS same language now works
Join and leave logs can now be seperated from error logs with env variables DISCORD_ACTIVITY_WEBHOOK_ID & DISCORD_ACTIVITY_WEBHOOK_TOKEN
Task ID added to tasks Printout
Ignore same chan translation of GIF and images
Admin, Owner, Dev and Channel Manager variables are now stored in message object
Shard command has been updated to show each shard and its stat
Add top,gg stat tracker to RITA
Profanity filter has been added - BETA MODE
Reduced DB Calls by over 50% by using db.server_obj more
db.server_obj now stores
db.server_obj[GuildId].servers[Values] - All values in the DB Servers Table at time of load are saved in the object db.server_obj[GuildId].stats[Values] - All values in the DB Stats Table at time of load are saved in the object
Local hosted users persist and react command fixed
Fixed invalid channel message
Various Permission Errors
Admin
!tr updatelink has been added
!tr reactpersist has been added - Reaction will auto delete after 60 seconds
!tr flagpersist has been added - Flag emoji will be removed after 15 seconds
data.message.server is built on every message event, Reducing the calls needed in send.js to db
db changes, the following columns have been added
reactpersist- manages the react persist variable
Help menu updated
Owner variable is now more reliable on messages
Language marker has been added to embed off and and on messages, this is controlled with !tr settings langdetect [on/off]
Goodbye Patreon, Hello Stripe! Over the last year, we’ve rebuilt our subscription engine on Stripe and wrapped it all up in a sleek, self-service Dashboard. From here you can:
Manage every aspect of your RITA subscription: past, present, and future
Choose Bi-monthly billing (pay for 2 months at a time), as well as select being billed on the 1st (prorated) or same day as your signup date.
Upcoming Changes to RITA and what we have been doing.
OwnerDevChannel ManagerFixed translate for me command
Fix the UID of the emoji reaction error
Fix Kick Command Response
Fix top.gg code in bot.js, so that if there is no token it ignores the code
Stop emoji's from translating for auto same channel translations
Strip mentions from same channel translations
!tr auto to lang for me causes error
Task command updated, !tr tasks [#chan/me]
mewill show any tasks for the user in any channel
#chanwill target a single channel
!tr checkperms has ben replaced with !tr check
!tr stop task [id] has been added - Remove by ID is now possiable
!tr settings tags [all/everyone/none] has been added, this falls in line with discord.js (This setting only applies to embed off mode)
none- No tags are disabled, meaning@user,@everyoneand@herewill work
everyone- Attention tags are, meaning only@userwill work
all- All tags are disabled, meaning@user,@everyoneand@herewill NOT work
!tr settings reset Will reset all settings to the default value.
!tr settings langDetect [on/off] Turns language detection footer on for translated messages
!tr settings updatedb [serverID] will update the database and object if the data is incorrect
!tr stop for server Will stop all translation task serverwide
!tr stop for server [serverID] Will stop all translation task of target Server serverwide
!tr settings profanity [off/replace/delete] has been added
off- profanity words are allowed. No actions taken
replace- Profanity words are replaced with random special characters
delete- message is deleted and not translated
!tr tasks [user/server/channel] {ID} has been added (Dev Only)
user- Will get all tasks for a targeted user from the DB
server- Will get all tasks for a targeted server from the DB
channel- Will get all tasks for a targeted channel from the DB
!tr cache - Will show the amount of data currently cached
flagpersist - manages the flag persist variable
servername - stores a local copy of the server name
servertags - manages the server tags variable
badwords - profanity filter
menupersist - manages the menu persist variable
whitelisted - NOT IN USE, Yet!
langdetect - manages language detection footer variable
profanity - manages profanity filter variable
ownerid - Store the owner ID
char - Stores the Character ammount of Total Messages
messagecount - Counts number of messages sent
subscription - Stores the subscription boolean variable
subscriptionlevel - Stores the subscription level variable
subscriptiondate - Stores the subscription date variable
subscriptionlength - Stores the subscription length variable
subscriptionuser - Stores the subscription user
tasklimit - Stores the tasks limit fo the server
servertags and langdetect status added to the settings and check commands
Append Dev name to "Developer identity confirmed"
Dev Dependencies core to this bot, gulp-watch have been updated
Certain statement has been converted to try statements to allow for better error handling
PLEASE NOTE: This Update was accurate at the time of sharing. Please refer to our Support documentation to ensure accurate and up-to-date information is known, If you have any questions or concerns please join our Discord Server and someone will assist.
That's it for now, but we will have some more info for you when we can. and if you want to check out all the changes made, dive into our change logs over in Version History
From all the Development Team at RITA, See you soon.




It has been a while since the last update, and we have been working in the background on a lot of little things, So here are some updates for you.
* We have automated and streamlined our build pushes, now when we commit a build and it passes CI, a Restart will pull the update and the bot will load this new version.
* We have introduced a TRIAL Function, See below for more info.
* We have added 2 New Tiers for you to take advantage of, See below for more info.
* Our Debug and console messages have been cleaned up to allow for the identification of errors and contain more detail we need to source the issue and resolve it.
* We have greatly improved our Machine Learning Language Detection Algorithm, See below for more info.
* A Change was made to better support Custom Emoji and Server Emoji across RITA. A message should now show these in Translations.
* Fixed an issue with attachments embedding in auto tasks.COMING SOON - THIS IS NOT YET ACTIVE - COMING SOON
Yes, Yes, thats correct. We will soon have a trial Function.
* We will be introduceding a TRIAL Function allowing user to Try-Before-They-Buy.
* User do not need to be in RMS (RITA Managment Server) or patreon Account for it to work.
* If a user has an active sub already then the TRIAL wont Work.
* The TRIAL is Limited to 1 Trial Per Server Per User.
* TRIAL Users can create a maximum of 25 tasks and use 10k Characters across our ML Engine and Google API.
To Activate a user just needs to invite RITA and run the TRIAL Command. !tr trial
COMING SOON - THIS IS NOT YET ACTIVE - COMING SOON
We heard you when you said that 350 tasks are not enough on our PRO Plan, and when you said that you don't need Channel Translation and only use Reactions, so we have a solution.
Reaction TIER - Do you just need the odd sentence or post translated here and there, You can translate as much as you want but flag reaction only, meaning you need to add a flag emoji to each message to translate it.
* Unlimited Flag Translations
* 0 Channel to Channel Translations
* 100k Characters Google API Limit
Ultima TIER - Our "Ultima" Plan is the highest plan we offer, with 550 tasks, and BITA Access for 1 Additional server, Allowing you to coordinate and translate even the largest servers going.
* 550 Channel to Channel Translations
* 800k Characters Google API Limit
* Early Access to Development Features
* 1 Additional Server Support for our BITA Bot (See Below)OUR BITA Bot is a Testing and Development Platform, As such we test new functions and features on this BOT before launching on RITA. BITA only supports a handful of Languages so please reach out for information and to check if it will be suitable for you.We understand that not everyone that uses RITA understands English, so were trying to make it easier for you and your users. Starting now we are building, testing and trialing a Language Localisation System within RITA. Meaning all of her commands, Repsonces and prompts will be in the default language of your server.
Here is a Examplpe:Now this function is extremely Experimental, and in the early stages of development. But we wanted to share this with exciting step we are taking with you.
In the coming week's we will be allowing community to support in translation efforts, with those who help us in our desired language receiving free RITA subscriptions from us as a thank you. We need to work out the fine details, but we will be utilising the crowdsource translation platform "Crowdin" to complete this work in. Along with these changes, we have also introduced a "Filter" of sorts to the !tr channel command.
You can now do the following
!tr channel from [lang] to [lang] for #[dest] filter @[role]
This will cause a task to only translate when someone with @role speaks in that channle and RITA will ignore all otehr messages, However she will still translate by Flag Reactions.
At the moment this is only limited to "!tr channel" single command and does not work in the group command, however we are working on adding it soon. While RITA core function is Translation, She needs to be able to identify what language you are providing as the input from the message you send to ensure it translates from the correct language to the correct language you want it too.
Below are some of the numbers.
Average Word Accuracy: 61.387% > 69.009%
Average Pair Accuracy: 76.083% > 86.902%
Average Sentence Accuracy: 93.128% > 97.031%As we have talked about before, in 2022 we created our very own machine-learning translation model.
For those who aren’t familiar with this take a look at our Update from 06/04/22.
As part of our ongoing development of this API we have improved our Language Detection algorithm, This means that we correctly identify the source language you are trying to translate and the quality of our translation.
The total character translated with RITA’s ML engine as of 01/01/2023 was 9,721,043
The total character translated with RITA’s ML engine as of 10/03/2023 was 103,624,447
The total character translated with RITA’s ML engine as of 14/08/2023 was 421,666,812
As you can see, We have Dramatically increased the Capacity of our ML Engine, in turn Increasing the Accuracy and Reliability of these translations.As a way to see all the changes we have made directly from RITA you can use the version command. The same as before but with a added twist.
!tr version
!tr version [version number]
eg: !tr version 1.4.3
The original command will still show you what version RITA is running, and the version number specific command will show you what changes have been made.
Just a little way to keep you updated without constant posts about minor version changes. (Or fixes to bugs I have cause, although Qjuh is quickly catching up on me for breaking changes)Modify subscription server's settings (embed style, reaction translation, bot2bot mode) as well as select which server your subscription(s) are assigned to
Pick your translation engine:
100% Machine Learning
Optimized
Normal
…and many more exciting features to come!
Log in and configure your session
Visit the RITA Dashboard in your browser
Click the "Login with Discord" button and authorize the application with your Discord account.
Upon logging in, you will be taken to the "Manage RITA" page. Please note that the side menu includes a dropdown to select the language that is most comfortable for you.
Manage RITA
Upon successful login, you're taken to a Management page
This page gives you an overview of your current subscriptions and where they're assigned. If you do not have any subscriptions, a general promotion page will be shown instead.
To modify a specific subscription, you must select it by clicking and successfully highlighting the relevant subscription row.
Example page
A general overview of some character stats, and settings relating to the subscription and the assigned server are displayed when selecting each subscription.
This will be important later when you want to assign your new subscription to your server.
Purchase a New Plan
Click the "Subscribe" menu item to take you to the checkout page.
This checkout page is where you will configure your new subscription(s)
You can configure if you want to pay on a Bimonthly (2 months) or monthly interval
Subscription Overview See all subscriptions (active, past, upcoming) in one place
Billing Controls (via Portal button or /billing )
Upgrade/downgrade plan
Change billing interval
Cancel plan
Server Settings
Embed style (light/dark)
Reaction translation toggle
Bot2bot mode toggle
Support & Feedback
We encourage any feedback, bug reports, or suggestions that could improve the process
For bug reports, please open a ticket
For suggestions, please submit a message in our suggestions channel.
The RITA Dashboard is your one-stop website for managing servers, billing, and support—powered by Stripe and tied to your Discord account.
You don’t have to immediately, but we recommend switching over on your next renewal date to take advantage of:
Lower subscription rates (especially for non-USD subscriptions)
Promo codes & discounts
Better self-service controls (via the /billing cmd, a.k.a the Stripe Billing Portal)
Cancelling Patreon gives you access until the end of your current paid period. Then simply re-subscribe via the Dashboard and assign your new subscription to your old server with /sub.
Nope! In fact, we’ll roll out exclusive promo codes for early movers. You may even pay less than you do on Patreon today.
Absolutely. All existing RITA optimizations, bugfixes, and new updates (v2, v3…) won't be limited ever based on tier.
Join our Support Server and open a ticket, we'll get on it ASAP.
This is our first Dashboard release, expect a lot of tweaks and new features soon
Welcome aboard, and thank you for being part of the RITA journey!
Assigning servers to a subscription via the Dashboard has been reported to be buggy. Upon returning to Discord, you should run /sub as a precaution to ensure RITA is correctly assigned to your server.
RITA only requests necessary permissions upon login, which include your Discord email (for billing and notification purposes) and the guilds you are in (to filter which guilds you can assign your subscription to)
From the 10th of June to the 15th of June, we will refund any June payments for Patreon subscribers who transition to the dashboard.
You can also configure the renewal date to be the day you subscribe, or the first of every month
Note: Your first payment only pays for the days left in your first billing cycle, not simply the sticker price (only relevant if you anchor renewal to the 1st)
These buttons are what you use to change your renewal/interval options, and they are reflected in the prices and renewal dates in each tier box.
Once you have configured the quantity, the interval of the subscription, and the renewal date (if that is relevant to you), click "Subscribe" on the tier that you want
Example: If I want 1 Tinkerer subscription
You will be taken to a checkout page, where you will enter your billing details. Upon successful payment and verification, you will be routed back to the dashboard.
In the checkout page you can apply various coupons, such as our new Dashboard promotion code: 3MONTHS10 for 3 months at 10% off.
Upon successful payment, a new subscription will appear in the Dashboard. If it hasn't, refresh the page until it does.
If a new subscription does not appear, it is possible that something went wrong. Please check your email, and if you are unable to resolve it, open a ticket in the .
From here, you can click on the new subscription and assign it to any available server that is not subscribed. If you want to assign it to a server that is subscribed, you will have to run /sub in your server and select the new subscription from the dropdown.
You’re done! Your plan will activate immediately upon being assigned to a new server that RITA is in.




Update on the state of RITA 1.3.0 Public Release.






Since the beginning of February RITA’s public version has been offline, this was due to a series of events outside of our control. Starting with a DDOS attack and then a series of direct Takedown requests targeted at RITA because of a petty feud.
For the most part, this has been resolved.
The RITA Dev team at this point knew that we had to make some changes, so we started to look at viable and feasible options for RITA to continue to run.
We looked at Free APIs, sourcing the cost from somewhere else, limiting usage and a few other wacky ideas. Unfortunately, these all fell by the wayside and the only viable option we identified was a paid model for the official Google API. More about this later.
Since then we have been working on how this would work and what it will look like, and I will be honest, we don’t have all the answers yet, but we want to let you know what is happening.As most of you are already aware, the DEV team consists of 4 to 8 Main members of staff, each of these members of staff also have real-world jobs and families.
Unfortunately one of the core coding team has recently changed jobs and it has taken 3-ish weeks to settle into a new work pattern, while others have faced personal family matters limiting their availability.
Others are students and the rest have families, with needy husbands, wives and kids. (Why would you even have kids?).
This has meant that there have only been 3 weeks when all the staff had some free time, and decisions needed to be made that can't be done unilaterally.
We have been slow at progression.
Some LEGALITIES need to be taken into account, deciding where RITA will be hosted, what country to register a company in if we do.
Who is responsible for taxes and so much more. Luckily we have a member of the team able to do some of these but we still need legal consultation.As of now, we have an agreed way forward. However, the finer details still need to be worked out. RITA will be going to a paid model, this is set in stone.
This is the only way we can keep RITA running and legal. At this time we don't have a solid answer, but we are in the ballpark of $3-7 a month.
We are aiming for $5 as long as there are no unexpected costs or restrictions to contend with. No Lifetime subscriptions are not offered as the API that we have to pay for requires monthly payments.
The likelihood of running into financial instability if everyone had a lifetime sub would be very high.
Continuing with a monthly plan has the greatest chance for operational longevity.Due to the impending shutdown of all V11 and V12 API, the self-hosting option has reached end-of-life.
Once the support goes down, the self-hosting bots will immediately cease to function and there will be nothing we can do. At this time, we cannot offer that option as the self-hosting option will require a full rewrite to be V13 compatible.
As such, ALL self-hosting will be unavailable and unsupported. This may change in the future but not till 2023 at the earliest. The subscription will be a mix of per-user/per-server. Each server you wish to have RITA active in will require you to be the owner of the server (Yes owner not admin) to purchase the subscription.
This owner could theoretically use this single license in any server they are the owner of, however, it will only work on 1 server at a time.The reason for the owner limitation is simple: For you to activate RITA in your server, you will need to do this in the Rita Support Server.
By having the owners on the server we can easily identify them, help resolve issues and contact them if there is an issue.
In time this will be changed to allow admins but means we need to change the permission structures in the code.
It's on the list to do, but to start it will be OWNERS only. Currently, users are limited to 1 server at this time. More servers will be allowed in the future. Criteria: User must be the SERVER_OWNER or ADMIN1ADMIN
Tasks - There will be a global tasks limit for each server, 100 is the current target but this may change. DUser must pay for the subscription themselves as the sub is mapped to their USER ID.RITA as it stands is using the Google Cloud API, and is charged, as such we are charged for usage, thus the need for a subscription fee. However, there are other APIs available for use.
The long term goal is to have a paid-for, all features version. All our changes, new features and work will continue on this version.
Like a lot of other discord bots, we want to try and introduce a free limited version, and we are looking at how this can be done, with some of the other APIs that are free, with limited languages and support, reduced accuracy and higher delaying in responses. This is not saying we will reduce the accuracy or reliablilty of these API, its just the nature of API data we will have access too.
We are looking at ways we can implement these into a free version. It will be limited and would have limits such as 10 tasks, flags only, etc etc.
This means we can continue to draw in users, while offering all our support and time to paid users, ensuring that we continue development and can keep RITA running for years to come. We would like to give you a date, and we wanted it to be live for a soft launch on the 1st of April, but due to the aforementioned issues and limited time, we don’t have a date. We aim to have as much done and have the bot as stable as possible before launch.
With a whole bunch of new features added in before February that we were testing for the v1.3.0 release, we did not have the chance to finish this testing and ensure she was working.
The current goal is before the end of April. This is for a few reasons but mainly we want to get her online again. The level of support you get at the moment will inevitably change, And we will not turn into a “you don’t pay so you don't matter” support server. All our users are important. Without all of you, we would not be where we are today.
There will be things however that will be managed by a single or maybe two members of staff, such as payment-related issues.
This will not be able to be managed by general support staff and will require an Admin.
This means there may be an SLA of 24 hours to allow for time zones and real life.
More details will be provided on responsibilities and roles close to launch.Currently, we are looking at a subscription platform, such as Patreon, to manage our payments and subscriptions.
We are looking at all available options and will have the info ready to share before launch. Currently, we are looking at keeping it simple, with 1 monthly cost.
We recognise this may not work for everyone, and as such are looking at the possibilities of a tiered system.
What will be included in these is not finalized, and we are keeping all options open.Short answer, YES.
We have already talked about the limitation of usage, 1 server per owner. (this will change in the future)
The next limits we have to talk about are:
If you have more than 100 tasks at launch, ALL tasks will be deleted as we cannot know what ones you want to keep. This only affects about <1% servers)
Characters - Unlike other services, we won’t be initially offering a character-based subscription, as our testing indicates this is not needed. BUT it may be an option in the future.
DM - Translation to DM will be disabled globally, however, in the future, this will be able to be requested to be enabled for your server, with a valid use case as to why it is needed.
Auto - The current implementation of auto-translation works, and we are not removing it. However, it is being used incorrectly, and as such, the command will be changing a little. But it won't impact any existing tasks set up.Again this is simple, if each server had 1000 tasks, and we have 10k servers, that's 10,000,000 (Million) Tasks. Not only is this too many for us to think about but, it would also have a massive impact on reliability and speed.
100 is a fair limit, and since 98% of our current user base has less than 100 it is easy to launch with most of the work done.There are a few reason why self hosting support is ending.
Currently the self hosting version operates an older version of the RITA Code, as such it constantly needs to be managed, updated and maintained.
This means we need to update the code and ensure it works. This takes time. At the moment we want to dedicate this time to ensuring the paid version is working and online.
When we split our attention it has an impact on our ability to help everyone.
This does not mean a member of the community, if they want to, cant offer support to another member of the community. There won't be official Dev/Admin/helper support for self hosting issues.
In the future this may change, but at the moment we can not dedicate our time to supporting self hosting users.Our Aim, The RITA Dev team, is to continue to keep RITA running. We aim to be transparent with everything we do and want to keep the community we have built alive.
We understand that this may be a shock to some of you, and may not be something you will understand.
We will endeavour to answer any questions and try and alleviate any concerns you may have.
If you have a question we have not answered, please reach out and ask it.
These decisions have been agreed upon by the Core RITA Dev Team. If you have any issues please raise them privately or open a ticket for us to respond. PLEASE NOTE: These Updates was accurate at the time of sharing. Please refer to our Support documentation to ensure accurate and up-to-date information is known, If you have any questions or concerns please join our and someone will assist.
If you have any other Questions join our and we will try and answer them.
Upcoming Changes to RITA and what we have been doing.
PLEASE NOTE: This Update was accurate at the time of sharing. Please refer to our Support documentation to ensure accurate and up-to-date information is known, If you have any questions or concerns please join our and someone will assist.
Over the last 3 months, There have been a lot of changes to RITA, some you can see yourself, Other are systems, Services and Equipment changes. so I'm going to quick-fire some here.
* We have a new Permanent Member of the Development Team, Qjuh.
* They have been instrumental in full re-write to support ESM seen in V1.3.24
* Has pushed over 55 Updates to V1.3 Lifecycle
* Fixed countless bugs i have caused :)
* We have a New Junior Developer who joined the team, Z3US
* We are in the process of developing a [REDCATED], more to come soon.
* We have implemented our own Machine Learning API (More Below)
* We have Added 19 New Languages for Google API, These can be found V1.4.0
* We took the leap and purchased a dedicated server.
* We remove Ko-Fi as a payment and subscription method as it was too unreliable for our needs.
* We introduced slash commands (All down to Qjuh)
* We updated to ESM code standard (Still confuses me to this day)
* And many many more changes. * RITA was Born - 12/07/2019
* Unified RITA Launched - 01/04/2021
* Unified RITA Support was ended - 01/02/2022
* RITA went in to Beta Testing - 01/04/2022
* RITA was Re-launched - 01/05/20222022 saw over 780 new users subscribe to RITA! At the start of 2022 RITA was using version 1.3.0, now as we start 2023 RITA is using version 1.3.24.
Thanks to the tireless work of the RITA development team.
More than 150 individual updates, fixes, and patches have been made.
Resulting in over 32,000 lines of new code being added and nearly 16,000 lines of code being deleted due to refactoring and optimization. * Total characters translated by RITA = 949,434,521
* Total messages translated by RITA = 17,749,158
* Translations sent by RITA in embed off mode = 13,119,780
* Translations sent by RITA in embed mode = 7,267,768
* Pictures sent by RITA = 462,227
* Number of messages translated via flag emoji reactions = 155,512
* Gif’s sent by RITA = 131,845
Numbers like this are what keeps us going, knowing that you truly use RITA to her full potential! As of July 2022, and as part of the RITA development process, We have been working to create our very own machine-learning translation model.
For those who aren’t familiar with a machine learning model or a neural network. Instead of relying on Google to translate the messages. We are using various data sets to train the machine learning model via different means so that eventually we can offer an even lower-cost translation bot. With the same level of translation quality you’ve come to expect and depend on from RITA. This is a long process and we don't expect to be seeing immediate returns on this investment for a while yet, but the aim has always been to provide a service that is affordable and reliable for all of our users.
The total character translated with RITA’s ML engine as of 01/01/2023 was 9,721,043As first shown in our old "v1.4.1" version - which was never fully released - soft limits have been enabled in all RitaBot's BITA (RED) and RITA (BLUE, YELLOW). In order to make sure some don't suffer from translation to/from languages that are not yet fully optimized in our ML engine we have created Softer Soft Limits.
Plans have already had "Soft limits" in place since launch,These values were 200k, 450k, and 700k for Casual, Tinkerer and Pro Plans respectively.These "softer" version of our soft limits go into effect when your server reaches or exceeds the soft limit for the month for their respective plan, in which only languages that have been optimized to a respectable quality will use our ML engine. Otherwise they continue using Google.We're continuing our work on RitaBot to optimize as many languages as possible.
If you find any strange translations while using ML translation for that language then please open a ticket in our Support Server and mention @Artanis - Dev Director.We have update our list of support languages, These will now work in all commands. Note: note all have suported Language Flags.Assamese
as
:flag_as:
Aymara
ay
Bambara
bm
:flag_bm:
Dhivehi
dv
Ewe
ee
:flag_ee:
Guarani
gn
:flag_gn:
Javanese
jv or jw
Kinyarwanda
rw
:flag_rw:
Lingala
ln
Oriya
or
Oromo
om
:flag_om:
Quechua
qu
Sanskrit
sa
Tatar
tt
:flag_tt:
Tigrinya
ti
Tsonga
ts
Turkmen
tk
:flag_tk:
Twi (Akan)
ak
Uyghur
ug
RITA Message Statistics for 2023 So Far:
* Total characters translated by RITA = 325,017,612 - (949,434,521 Last Year)
* Total messages translated by RITA = 12,151,259 - (17,749,158 Last Year)
* Translations sent by RITA in embed off mode = 8,145,058 - (13,119,780 Last Year)
* Translations sent by RITA in embed mode = 3,928,184 - (7,267,768 Last Year)
* Pictures sent by RITA = 231,307 - (462,227 Last Year)
* Number of messages translated via flag emoji reactions = 78,017 - (155,512 Last Year)
* Gif’s sent by RITA = 60,490 - (131,845 Last Year)
As you can see, We are holding strong, and expect to see the number exceeding previous usage by the same point this year.See what I did there, I edited the Title, and now you can do the same in RITA.
With 1.4.0 we have introduced Message editing, At the moment it will always use our ML Engine until we can work out how much of an impact it will have on usage, and how we quantify that usage.
So the supported languages for message editing are the same as the support languages for translation. If the language is not supported the edited message won't be translated. As a way to see all the changes we have made directly from RITA you can use the version command. The same as before but with a added twist.
!tr version
!tr version [version number]
eg: !tr version 1.4.0
The original command will still show you what version RITA is running, and the version number specific command will show you what changes have been made.
Just a little way to keep you updated without constant posts about minor version changes. (Or fixes to bugs I have cause, although Qjuh is quickly catching up on me for breaking changes)As many of you have seen, there are a few versions of RITA. So I wanted to quickly tell you what they are, why they exist and what it means for you.
When we wanted to make a change to RITA, we had to take her offline, upload the new changes then reboot her, test and see if it impacts anything, if it did then we had to revert and try the process all over again.
Not very efficient. So just like BITA, (our testing bot - not the same as global changes) we wanted to come up with a way to ensure reliability, allow us to continue to develop with minimal interference and provide a stable service to meet our uptime guarantees, thus the new family member.
You can distinguish the difference by the Bot Icon, BLUE, YELLOW, RED and PURPLE.This bot is no different from YELLOW in terms of core functionality. Updates may be a day or so behind YELLOW but this is because we will not interrupt service to BLUE users to reboot and install fixed (unless necessary). Automatic reboots take 17 seconds on average and they happen each night at midnight GMT.Our public bot, which is still in all 18k servers from before had to charge for our services. As such boot time is around 60 seconds on average and service can be disrupted throughout the day when we push bug fixes. With its large server base (although they are inactive) it generates a large amount of diagnostic data, allowing us to track down bugs and start to fix them.Our BITA bot, this BOT runs an experimental build, may have bugs and uptime is not guaranteed, you can not request access at this time to use BITA and access is invite only. All new features are tested on BITA first to make sure they work and features, functions, commands and slash commands can be added and removed at any time.Developmental features, Future projects and local testing bot. This is only used by developers to test locally on test machines and servers, you may see it from time to time but it won’t respond to commands given by non-developers.Any user that pays for RITA can swap to use RITA BLUE at any time, and we encourage and request you do so, this means we provide you the best service we can. So, in simple and short terms, we have a new member of the family. But nothing is lost in the service we provide, only improving it. So now on to a boring topic for most, (Is it sad I really enjoy this part), we have had to make some changes to our policy documents. Please see the respective documents for the changes. Thats it for now, but we will have some more info for you when we can. and if you want to check out all the changes made, dive into our change logs over in Version History
From all the Development Team at RITA, See you soon.
In Effect From: May 18, 2026 / Last updated: April 08, 2026
S.A.L.T.S Stands for Subscription, Activation, Limitations, Termination and Suspension Policy. This describes Our policies and procedures on how each of the aforementioned processes are handled.
By using the Service, You agree to the following processes and be subject to enforcement of them.
The words of which the initial letter is capitalized have meanings defined under Interpretations and Definitions, they are located Here.
A User subscription follows the below flows. These are different for each subscription platform.
Refer to activation steps below in Activation Section.
Subscriptions are renewed on different days depending on the platform.
Patreon
Renews monthly on the 1st of each month regardless of subscription date. E.g., subscription is purchased and payment is taken on the 09th of May. On the 1st of June payment is taken, then again on the 1st July. This continues monthly until cancelation.
Stripe
Renews monthly on the 1st of each month regardless of subscription date. E.g., subscription is purchased and payment is taken on the 09th of May. On the 1st of June payment is taken, then again on the 1st July. This continues monthly until cancelation.
Renews monthly on the day of subscription. E.g., subscription is purchased and payment is taken on the 9th of May. On the 9th of June payment is taken, then again on the 9th of July. This continues monthly until cancelation.
These plans are the base subscription plans on offer. Costs are fixed and can not be changed. Once a user has subscribed to the plan they will remain on the plan until the subscription is cancelled. See for More information.
TRIAL USER - The TRIAL will allow a user to try RITA for a period of one (1) month, or until limits have been reached, whichever comes first. Servers are limited to 1 TRIAL Per Server - Per Users.
These plans are subject to availability and are time-limited. Costs are fixed and can not be changed. Once a user has subscribed to the plan they will remain on the plan until the subscription is cancelled. Once an offer window has passed there is not guarantee it will be available again. See for More information.
These plans are retired and no longer available. Costs are fixed and can not be changed. Once a user has subscribed to the plan they will remain on the plan until the subscription is cancelled. Once an is retired it will be available again. See for More information.
Once a User has purchased a subscription, the cost they pay will not change, unless they cancel the subscription and then re-subscribe.
Cancellation due to failed payment resulting in the cancellation of an archived or expired plan cannot be re-activated, regardless of the reason.
No notice will be given on archiving or retiring a plan or removing availability; however, We believe in an open dialect with our customers. That said, business reason depends, We will provide information in the form of an announcement when possible.
All Plans/Tiers are subject to other limitations, detailed below.
User Invites RITA to server >
User Joins RMS Server >
User selects relevant plan provided by Patreon >
User completes payment via platform
User Invites RITA to server >
User types `!tr trial` in their own server.
RITA is activated and the TRIAL Activation process is completed.
Each plan has the following limitation applied.
Due to the rising cost of our Hosting, Charges to Google and Payment Processing Services, we have made changes to the character limitations applied to each plan, this will take effect on the 1st of May 2023
If DeepL is used for translation, character usage is adjusted by a multiplier of 1.0432 to account for the higher cost of that service. This adjustment is applied automatically at API level when the translation request is processed.
Plan limits shown in the application remain displayed as the standard character allowance. However, where DeepL is used, usage is calculated in real time using the applicable multiplier rather than by showing a separate DeepL-specific limit in the interface.
For example, a plan with a displayed allowance of 100,000 characters equates to approximately 95,858 characters of DeepL usage.
For usage tracking and billing purposes, adjusted DeepL character usage may be rounded up to the nearest whole character.
TRIAL USER - The TRIAL will allow a user to try RITA for a period of one (1) month, or until limits have been reached, whichever comes first. Servers are limited to 1 TRIAL Per Server - Per Users. Once Limit has been reached RITA will stop functioning for translations. Users do not need to be a Member of the RMS (RITA Management Server) to use the TRIAL.
Hard Cap = not enforced to the digit but close. This is calculated by
Example from English to French: Hello -> Bonjour
(5 Characters * 1 language translation) + 5 original chars = 10 Total Chars
Exceeding Character Limit will result in bot ceasing to respond to translation requests.
Soft Cap = not enforced to the digit but close. This is calculated by
(Number of Characters in message * Number of languages translated to) + Original Char Count = Total Char Count.
Example from English to French: Hello -> Bonjour
(5 Characters * 1 language translation) + 5 original chars = 10 Total Chars
Exceeding Character Limit. Either of the following Scenarios are taken, via automation by RITA or manual intervention by a member of RMS Staff
A server exceeds the soft caps assigned to their plan
Translation Services are swapped from Implicit Google API Translation to Implicit Machine Learning API Translation for Languages we have trained and that are optimized to a high standard. See for more information.
ML API currently has an upper bound limit of 10 million characters translated per month. This upper bond if not hard coded in to RITA, however it is checked periodically throughout the month. If a User exceeds this a custom tier cost or solution may be required, however no suspension will happen as a result of this limit.
The Termination Process is used in conjunction with the Suspension Process and follows a pre-defined path.
The Termination flow can only executed/started by the following RMS staff levels and is governed by a strict time frame.
Owners
Admins
Developers
A Suspension of Service can be implemented for a varying number of reasons. This is referred to as Pausing.
Pausing and resuming of service can only be conducted by the following RMS staff levels
RITA
20/08/23 - Current
The "Casual" Plan
$6.99
01/06/22 - Current
The "Tinkerer" Plan
$10.99
01/06/22 - Current
The "Pro" Plan
$15.99
01/06/22 - Current
The "Ultima" Plan
$21.99
20/08/23 - Current
01/06/22 - Current
The "Pro" Plan - Offer
$11.19
01/06/22 - Current
01/05/22 - 31/05/22
The OG "Pro" Plan
$14.99
01/05/22 - 31/05/22
Patreon > Payment is handled by Patreon
Upon Confirmation of payment User activates Discord integration through account linking.
Guide for
Integration uses the Patreon Bot to apply relevant roles to User, a Role from Payment, Tier, and the Subscription section below are needed for RITA to work.
RITA detects role additions and adds relevant and required data to our Subscription Database
Once User has all identifying Roles they are able to see the channel #activate-rita-here.
If role addition fails or is incomplete, then it is investigated by the ADMIN team. The ADMIN team will manually validate payment completion and then apply correct roles, if necessary.
User types `!tr sub` in the above noted channel or in their own server. If they own more than one server or are admin in more than one server, then they are prompted to select the server they want to use RITA in.
RITA must be in the server before the command is run, else an error will be provided.
RITA is activated and the subscription process is completed.
The "Reaction" Plan
0
100,000 Soft Cap
Google API / ML
The OG "Casual" Plan
100
200,000 Soft Cap
Google API / ML
The "Casual" Plan - Offer
100
200,000 Soft Cap
Google API / ML
The "Casual" Plan
100
200,000 Soft Cap
Google API / ML
The OG "Tinkerer" Plan
200
400,000 Soft Cap
Google API / ML
The "Tinkerer" Plan - Offer
200
400,000 Soft Cap
Google API / ML
The "Tinkerer" Plan
200
400,000 Soft Cap
Google API / ML
The OG "Pro" Plan
350
600,000 Soft Cap
Google API / ML
The "Pro" Plan - Offer
350
600,000 Soft Cap
Google API / ML
The "Pro" Plan
350
600,000 Soft Cap
Google API / ML
The "Ultima" Plan
550
800,000 Soft Cap
Google API / ML
100,000 Soft Cap
95,858 Soft Cap +/- 1
The OG "Casual" Plan
200,000 Soft Cap
191,717 Soft Cap +/- 1
The "Casual" Plan - Offer
200,000 Soft Cap
191,717 Soft Cap +/- 1
The "Casual" Plan
200,000 Soft Cap
191,717 Soft Cap +/- 1
The OG "Tinkerer" Plan
400,000 Soft Cap
383,435 Soft Cap +/- 1
The "Tinkerer" Plan - Offer
400,000 Soft Cap
383,435 Soft Cap +/- 1
The "Tinkerer" Plan
400,000 Soft Cap
383,435 Soft Cap +/- 1
The OG "Pro" Plan
600,000 Soft Cap
575,153 Soft Cap +/- 1
The "Pro" Plan - Offer
600,000 Soft Cap
575,153 Soft Cap +/- 1
The "Pro" Plan
600,000 Soft Cap
575,153 Soft Cap +/- 1
The "Ultima" Plan
800,000 Soft Cap
766,871 Soft Cap +/- 1
At the start of the next calendar month Implicit Google API Translation is reactivated until breach of soft cap
Chinese (Simplified)
zh-CN
1.4.0
Chinese (Traditional)
zh-TW
1.4.0
Czech
cs
1.4.0
English
en
1.4.0
French
fr
1.4.0
German
de
Remove as of 2.2.0
Indonesian
id
1.4.0
Italian
it
1.4.0
Japanese
ja
1.4.0
Korean
ko
1.4.0
Portuguese
pt
1.4.0
Romanian
ro
1.4.0
Russian
ru
1.4.0
Serbian
sr
1.4.0
Ukrainian
uk
1.4.0
Vietnamese
vi
1.4.0
Admins
Developers
Senior Staff
Service can be Paused under the following conditions
Detection of suspicious activity.
We cannot share what this look like to prevent anti-detection methods
Exceeding Character Limits of Tier (*When Implemented)
This could be Google API Limits or ML Limits
Suspicion that RITA is being used for SPAM or JUNK flooding
Request to Terminate by third party agencies or companies in line with our Privacy Policy and ToS.
Identification that RITA is being used for Commercial use exceeding fair and reasonable use. This is not defined and will be reviewed on a case by case basis. This does not exclude the use of RITA from commercial use.
TRIAL USER
FREE* 1 Month
23/10/23 - Current
The "Reaction" Plan
The "Casual" Plan - Offer
$4.83
01/06/22 - Current
The "Tinkerer" Plan - Offer
The OG "Casual" Plan
$5.99
01/05/22 - 31/05/22
The OG "Tinkerer" Plan
TRIAL USER
25
10,000 Hard Cap
TRIAL USER
10,000 Hard Cap
9,585 Hard Cap +/- 1
Bulgarian
bg
1.4.0
AT NO POINT IN THIS PROCESS IS THE END USER ELIGIBLE FOR A REFUND. THIS PROCESS IS ONLY EXECUTED IN THE MOST SERIOUS OF CIRCUMSTANCES.
$2.99
$8.24
$9.99
Google API / ML
The "Reaction" Plan
Flag reactions work right after installing Rita, no commands are needed as long as Rita has been given the Recommend permission of Admin.
!tr react [on/off]
!tr settings reactpersist [on/off]
!tr settings flagpersist [on/off]
react - [on/off] disabes the ablity to use flag reactions to translate.
reactpersist - [on/off] removes the translation after 60 seconds
flagpersist - [on/off] removes the flag.
Recommended to use reactpersist and flagpersist together.
The full Supported list can be found below
:flag_af:
🇦🇫
Afghanistan
Pashto
ps
:flag_ax:
🇦🇽
Aland Islands
Swedish
sv
:flag_al:
🇦🇱
Albania
Albanian
sq
:flag_dz:
🇩🇿
Algeria
Arabic, French
ar, fr
:flag_as:
🇦🇸
American Samoa
English, Samoan
en, sm
:flag_ad:
🇦🇩
Andorra
Valencian
ca
:flag_ao:
🇦🇴
Angola
Portuguese
pt
:flag_ai:
🇦🇮
Anguilla
English
en
:flag_aq:
🇦🇶
Antarctica
null
null
:flag_ag:
🇦🇬
Antigua And Barbuda
English
en
:flag_ar:
🇦🇷
Argentina
Spanish
es
:flag_am:
🇦🇲
Armenia
Armenian
hy
:flag_aw:
🇦🇼
Aruba
Dutch
nl
:flag_au:
🇦🇺
Australia
English
en
:flag_at:
🇦🇹
Austria
German
de
:flag_az:
🇦🇿
Azerbaijan
Azerbaijani
az
:flag_bs:
🇧🇸
Bahamas
English
en
:flag_bh:
🇧🇭
Bahrain
Arabic
ar
:flag_bd:
🇧🇩
Bangladesh
Bengali
bn
:flag_bb:
🇧🇧
Barbados
English
en
:flag_by:
🇧🇾
Belarus
Belarusian, Russian
be, ru
:flag_be:
🇧🇪
Belgium
Dutch, French, German
nl, fr, de
:flag_bz:
🇧🇿
Belize
English, Spanish
en, es
:flag_bj:
🇧🇯
Benin
French
fr
:fag_bm:
🇧🇲
Bermuda
English
en
:flag_bt:
🇧🇹
Bhutan
Dzongkha
dz
:flag_bo:
🇧🇴
Bolivia
Spanish
es
:flag_ba:
🇧🇦
Bosnia And Herzegovina
Bosnian, Croatian, Serbian
bs, hr, sr
:flag_bw:
🇧🇼
Botswana
English
en
:flag_bv:
🇧🇻
Bouvet Island
Norwegian
no
:flag_br:
🇧🇷
Brazil
Portuguese
pt
:flag_io:
🇮🇴
British Indian Ocean Territory
English
en
:flag_bn:
🇧🇳
Brunei Darussalam
Malay, English
ms, en
:flag_bg:
🇧🇬
Bulgaria
Bulgarian
bg
:flag_bf:
🇧🇫
Burkina Faso
French
fr
:flag_bi:
🇧🇮
Burundi
French, Rundi
fr, rn
:flag_kh:
🇰🇭
Cambodia
Central Khmer
km
:flag_cm:
🇨🇲
Cameroon
French, English
fr, en
:flag_ca:
🇨🇦
Canada
English, French
en, fr
:flag_cv:
🇨🇻
Cape Verde
Portuguese
pt
:flag_ky:
🇰🇾
Cayman Islands
English
en
:flag_cf:
🇨🇫
Central African Republic
French, Sango
fr, sg
:flag_td:
🇹🇩
Chad
Arabic, French
ar, fr
:flag_cl:
🇨🇱
Chile
Spanish
es
:flag_cn:
🇨🇳
China
Chinese
zh-cn
:flag_cx:
🇨🇽
Christmas Island
Chinese, English, Malay
zh-cn, en, ms
:flag_cc:
🇨🇨
Cocos (Keeling) Islands
Malay, English
ms, en
:flag_co:
🇨🇴
Colombia
Spanish
es
:flag_km:
🇰🇲
Comoros
Arabic, French
ar, fr
:flag_cg:
🇨🇬
Republic of the Congo
French, Lingala
fr, ln
:flag_cd:
🇨🇩
Democratic Republic of the Congo
French, Swahili
fr, sw
:flag_ck:
🇨🇰
Cook Islands
English
en
:flag_cr:
🇨🇷
Costa Rica
Spanish
es
:flag_ci:
🇨🇮
Cote D’Ivoire
French
fr
:flag_hr:
🇭🇷
Croatia
Croatian
hr
:flag_cu:
🇨🇺
Cuba
Spanish
es
:flag_cy:
🇨🇾
Cyprus
Greek, Turkish
el, tr
:flag_cz:
🇨🇿
Czech Republic
Czech
cs
:flag_dk:
🇩🇰
Denmark
Danish
da
:flag_dj:
🇩🇯
Djibouti
Arabic, French
ar, fr
:flag_dm:
🇩🇲
Dominica
English
en
:flag_do:
🇩🇴
Dominican Republic
Spanish
es
:flag_ec:
🇪🇨
Ecuador
Spanish
es
:flag_eg:
🇪🇬
Egypt
Arabic
ar
:flag_sv:
🇸🇻
El Salvador
Spanish
es
:flag_gq;
🇬🇶
Equatorial Guinea
Spanish, French, Portuguese
es, fr, pt
:flag_er:
🇪🇷
Eritrea
Arabic, English, Tigrinya
ar, en, ti
:flag_ee:
🇪🇪
Estonia
Estonian
et
:flag_et:
🇪🇹
Ethiopia
Oriya, Amharic, Somali, Tigrinya
or, am, so, ti
:flag_fk:
🇫🇰
Falkland Islands (Malvinas)
English
en
:flag_fo:
🇫🇴
Faroe Islands
Danish, Faroese
da, fo
:flag_fj:
🇫🇯
Fiji
Fijian, English
fj, en
:flag_fi:
🇫🇮
Finland
Finnish, Swedish
fi, sv
:flag_fr:
🇫🇷
France
French
fr
:flag_gf:
🇬🇫
French Guiana
French
fr
:flag_pf:
🇵🇫
French Polynesia
French
fr
:flag_tf:
🇹🇫
French Southern Territories
French
fr
:flag_ga:
🇬🇦
Gabon
French
fr
:flag_gm:
🇬🇲
Gambia
English
en
:flag_ge:
🇬🇪
Georgia
Georgian
ka
:flag_de:
🇩🇪
Germany
German
de
:flag_gh:
🇬🇭
Ghana
English
en
:flag_gi:
🇬🇮
Gibraltar
English, Spanish
en, es
:flag_gr:
🇬🇷
Greece
Greek
el
:flag_gl:
🇬🇱
Greenland
Kalaallisut, Danish
kl, da
:flag_gd:
🇬🇩
Grenada
English
en
:flag_gp:
🇬🇵
Guadeloupe
French
fr
:flag_gu:
🇬🇺
Guam
English, Chamorro
en, ch
:flag_gt:
🇬🇹
Guatemala
Spanish
es
:flag_gg:
🇬🇬
Guernsey
English
en
:flag_gn:
🇬🇳
Guinea
French
fr
:flag_gw:
🇬🇼
Guinea-Bissau
Portuguese
pt
:flag_gy:
🇬🇾
Guyana
English
en
:flag_ht:
🇭🇹
Haiti
French
fr
:flag_hm:
🇭🇲
Heard Island & Mcdonald Islands
null
null
:flag_va:
🇻🇦
Holy See (Vatican City State)
Latin, Italian
la, it
:flag_hn:
🇭🇳
Honduras
Spanish
es
:flag_hk:
🇭🇰
Hong Kong
Chinese, English
zh-tw, en
:flag_hu:
🇭🇺
Hungary
Hungarian
hu
:flag_is:
🇮🇸
Iceland
Icelandic
is
:flag_in:
🇮🇳
India
Hindi
hi
:flag_id:
🇮🇩
Indonesia
Indonesian
id
:flag_ir:
🇮🇷
Iran
Persian
fa
:flag_iq:
🇮🇶
Iraq
Arabic, Kurdish
ar, ku
:flag_ie:
🇮🇪
Ireland
English, Irish
en, ga
:flag_im:
🇮🇲
Isle Of Man
English, Manx
en, gv
:flag_il:
🇮🇱
Israel
Hebrew, Arabic
he, ar
:flag_it:
🇮🇹
Italy
Italian
it
:flag_jm:
🇯🇲
Jamaica
English
en
:flag_jp:
🇯🇵
Japan
Japanese
ja
:flag_je:
🇯🇪
Jersey
English
en
:flag_jo:
🇯🇴
Jordan
Arabic
ar
:flag_kz:
🇰🇿
Kazakhstan
Kazakh, Russian
kk, ru
:flag_ke:
🇰🇪
Kenya
English, Swahili
en, sw
:flag_ki:
🇰🇮
Kiribati
English
en
:flag_kr:
🇰🇷
South Korea
Korean
ko
:flag_kw:
🇰🇼
Kuwait
Arabic
ar
:flag_kg:
🇰🇬
Kyrgyzstan
Kirghiz, Russian
ky, ru
:flag_la:
🇱🇦
Lao People’s Democratic Republic
Lao
lo
:flag_lv:
🇱🇻
Latvia
Latvian
lv
:flag_lb:
🇱🇧
Lebanon
Arabic
ar
:flag_ls:
🇱🇸
Lesotho
Southern Sotho, English
st, en
:flag_lr:
🇱🇷
Liberia
English
en
:flag_ly:
🇱🇾
Libya
Arabic
ar
:flag_li:
🇱🇮
Liechtenstein
German
de
:flag_lt:
🇱🇹
Lithuania
Lithuanian
lt
:flag_lu:
🇱🇺
Luxembourg
Letzeburgesch, French, German
lb, fr, de
:flag_mo:
🇲🇴
Macao
Chinese, Portuguese
zh-tw, pt
:flag_mk:
🇲🇰
Macedonia
Macedonian
mk
:flag_mg:
🇲🇬
Madagascar
Malagasy, French
mg, fr
:flag_mw:
🇲🇼
Malawi
English
en
:flag_my:
🇲🇾
Malaysia
Malay
ms
:flag_mv:
🇲🇻
Maldives
Maldivian
dv
:flag_ml:
🇲🇱
Mali
French
fr
:flag_mt:
🇲🇹
Malta
Maltese
mt
:flag_mh:
🇲🇭
Marshall Islands
Marshallese, English
mh, en
:flag_mq:
🇲🇶
Martinique
French
fr
:flag_mr:
🇲🇷
Mauritania
Arabic
ar
:flag_mu:
🇲🇺
Mauritius
English, French
en, fr
:flag_yt:
🇾🇹
Mayotte
French
fr
:flag_mx:
🇲🇽
Mexico
Spanish
es
:flag_fm:
🇫🇲
Micronesia
English
en
:flag_md:
🇲🇩
Moldova
Romanian
ro
:flag_mc:
🇲🇨
Monaco
French
fr
:flag_mn:
🇲🇳
Mongolia
Mongolian
mn
:flag_me:
🇲🇪
Montenegro
Montenegrin
cnr
:flag_ms:
🇲🇸
Montserrat
English
en
:flag_ma:
🇲🇦
Morocco
Arabic
ar
:flag_mz:
🇲🇿
Mozambique
Portuguese
pt
:flag_mm:
🇲🇲
Myanmar
Burmese
my
:flag_na:
🇳🇦
Namibia
English
en
:flag_nr:
🇳🇷
Nauru
Nauru
na
:flag_np:
🇳🇵
Nepal
Nepali
ne
:flag_nl:
🇳🇱
Netherlands
Dutch
nl
:flag_bq:
🇧🇶
Netherlands Antilles
Dutch
nl
:flag_nc:
🇳🇨
New Caledonia
French
fr
:flag_nz:
🇳🇿
New Zealand
English
en
:flag_ni:
🇳🇮
Nicaragua
Spanish
es
:flag_ne:
🇳🇪
Niger
French
fr
:flag_ng:
🇳🇬
Nigeria
English
en
:flag_nu:
🇳🇺
Niue
English, Niuean
en, niu
:flag_nf:
🇳🇫
Norfolk Island
English
en
:flag_mp:
🇲🇵
Northern Mariana Islands
English, Chamorro, Carolinian
en, ch, cal
:flag_no:
🇳🇴
Norway
Norwegian
no
:flag_om:
🇴🇲
Oman
Arabic
ar
:flag_pk:
🇵🇰
Pakistan
Urdu
ur
:flag_pw:
🇵🇼
Palau
English, Palauan
en, pau
:flag_ps:
🇵🇸
Palestinian Territory
Arabic
ar
:flag_pa:
🇵🇦
Panama
Spanish
es
:flag_pg:
🇵🇬
Papua New Guinea
English, Hiri Motu, Tok Pisin
en, ho, tpi
:flag_py:
🇵🇾
Paraguay
Spanish, Paraguayan Guaraní
es, gug
:flag_pe:
🇵🇪
Peru
Spanish
es
:flag_ph:
🇵🇭
Philippines
Tagalog
tl
:flag_pn:
🇵🇳
Pitcairn
English
en
:flag_pl:
🇵🇱
Poland
Polish
pl
:flag_pt:
🇵🇹
Portugal
Portuguese
pt
:flag_pr:
🇵🇷
Puerto Rico
Spanish
es
:flag_qa:
🇶🇦
Qatar
Arabic
ar
:flag_re:
🇷🇪
Reunion
French
fr
:flag_ro:
🇷🇴
Romania
Romanian
ro
:flag_ru:
🇷🇺
Russian Federation
Russian
ru
:flag_rw:
🇷🇼
Rwanda
Kinyarwanda, English, French, Swahili
rw, en, fr, sw
:flag_bl:
🇧🇱
Saint Barthelemy
French
fr
:flag_sh:
🇸🇭
Saint Helena
English
en
:flag_kn:
🇰🇳
Saint Kitts And Nevis
English
en
:flag_lc:
🇱🇨
Saint Lucia
English
en
:flag_sx:
🇲🇫
Saint Martin
Dutch, French, German
nl, fr
:flag_pm:
🇵🇲
Saint Pierre And Miquelon
French
fr
:flag_vc:
🇻🇨
Saint Vincent And Grenadines
English
en
:flag_ws:
🇼🇸
Samoa
Samoan, English
sm, en
:flag_sm:
🇸🇲
San Marino
Italian
it
:flag_st:
🇸🇹
Sao Tome and Principe
Portuguese
pt
:flag_sa:
🇸🇦
Saudi Arabia
Arabic
ar
:flag_sn:
🇸🇳
Senegal
French
fr
:flag_rs:
🇷🇸
Serbia
Serbian
sr
:flag_sc:
🇸🇨
Seychelles
English, French
en, fr
:flag_sl:
🇸🇱
Sierra Leone
English
en
:flag_sg:
🇸🇬
Singapore
English, Tamil, Chinese, Malay
en, ta, zh-tw, ms
:flag_sk:
🇸🇰
Slovakia
Slovak
sk
:flag_si:
🇸🇮
Slovenia
Slovenian
sl
:flag_sb:
🇸🇧
Solomon Islands
English
en
:flag_so:
🇸🇴
Somalia
Somali, Arabic
so, ar
:flag_za:
🇿🇦
South Africa
English, Afrikaans, Southern Sotho, Xhosa, Zulu
en, af, st, xh, zu
:flag_gs:
🇬🇸
South Georgia And Sandwich Islands
English
en
:flag_es:
🇪🇸
Spain
Spanish
es
:flag_lk:
🇱🇰
Sri Lanka
Sinhalese, Tamil
si, ta
:flag_sd:
🇸🇩
Sudan
Arabic
ar
:flag_sr:
🇸🇷
Suriname
Dutch
nl
:flag_sj:
🇸🇯
Svalbard And Jan Mayen
Norwegian
no
:flag_sz:
🇸🇿
Swaziland
Swati, English
ss, en
:flag_se:
🇸🇪
Sweden
Swedish
sv
:flag_ch:
🇨🇭
Switzerland
German, French, Italian
de, fr, it
:flag_sy:
🇸🇾
Syrian Arab Republic
Arabic
ar
:flag_tw:
🇹🇼
Taiwan
Chinese
zh-tw
:flag_tj:
🇹🇯
Tajikistan
Tajik
tg
:flag_tz:
🇹🇿
Tanzania
Swahili
sw
:flag_th:
🇹🇭
Thailand
Thai
th
:flag_tl:
🇹🇱
Timor-Leste
Tetum, Portuguese
tet, pt
:flag_tg:
🇹🇬
Togo
French
fr
:flag_tk:
🇹🇰
Tokelau
Tokelau, English
tkl, en
:flag_to:
🇹🇴
Tonga
Tonga, English
to, en
:flag_tt:
🇹🇹
Trinidad and Tobago
English
en
:flag_tn:
🇹🇳
Tunisia
Arabic
ar
:flag_tr:
🇹🇷
Turkey
Turkish
tr
:flag_tm:
🇹🇲
Turkmenistan
Turkmen
tk
:flag_tc:
🇹🇨
Turks and Caicos Islands
English
en
:flag_tv:
🇹🇻
Tuvalu
Tuvalu, English
tvl, en
:flag_ug:
🇺🇬
Uganda
English, Swahili
en, sw
:flag_ua:
🇺🇦
Ukraine
Ukrainian
uk
:flag_ae:
🇦🇪
United Arab Emirates
Arabic
ar
:flag_gb:
🇬🇧
United Kingdom
English
en
:flag_us:
🇺🇸
United States
English
en
:flag_um:
🇺🇲
United States Outlying Islands
English
en
:flag_uy:
🇺🇾
Uruguay
Spanish, Portuguese
es, pt
:flag_uz:
🇺🇿
Uzbekistan
Uzbek
uz
:flag_vu:
🇻🇺
Vanuatu
Bislama, English, French
bi, en, fr
:flag_ve:
🇻🇪
Venezuela
Spanish
es
:flag_vn:
🇻🇳
Vietnam
Vietnamese
vi
:flag_vg:
🇻🇬
British Virgin Islands
English
en
:flag_vi:
🇻🇮
Us Virgin Islands
English
en
:flag_wf:
🇼🇫
Wallis and Futuna
French
fr
:flag_eh:
🇪🇭
Western Sahara
Arabic
ar
:flag_ye:
🇾🇪
Yemen
Arabic
ar
:flag_zm:
🇿🇲
Zambia
English
en
:flag_zw:
🇿🇼
Zimbabwe
Chichewa, English, Xhosa, Southern Sotho, Shona
ny, en, xh, st, sn