BabelBot
  • Features
  • Setup
  • Reviews
  • Docs
Log inAdd to Discord
Docs
Docs
WebsiteDashboardDiscordOverview

Learn

Quick StartHow It Works

Operate

Dashboard GuideAI assistant integrationsVoice Chat TranslationCommand ReferenceTroubleshootingPlaybooksBilling and Limits

Reference

FAQ

How BabelBot translates Discord messages

Learn when BabelBot translates Discord messages automatically, when it skips, and how quotas and bridges behave.

This page explains how BabelBot behaves. Use it when a translation is missing, when the channel feels noisy, or when you want to know what counts toward your plan. For step-by-step fixes, see Troubleshooting. For plan numbers, see Billing and Limits.

What happens when someone posts

With Conversation mode on Pro and above, BabelBot waits 1 to 10 seconds and combines text messages from the same member in the same channel. The first message starts a fixed timer. Messages with embeds or attachments translate immediately. Each original still counts toward usage.

When someone posts in a server text channel where BabelBot is on, BabelBot checks the message in this order:

  1. Can it translate here? The server must be on, the channel must be allowed, and the message must be worth translating.
  2. What text is included? BabelBot collects plain message text and text inside rich embeds (titles, descriptions, fields, and footers). That covers embeds from bots, such as a rules or announcement card. It does not cover the automatic preview Discord adds under a plain link. Embed translation works on every plan and counts the same as a normal translation.
  3. Is this channel in a bridge? If yes, BabelBot may send the result to a linked channel instead of (or as well as) the local target languages.
  4. Do attachments need special handling? Supported PDFs, images, videos, and audio follow different rules than plain text. Media translation is a paid feature on Pro and above. If a message has several supported images, BabelBot translates each image in order. Unsupported file types are not sent for media translation. For regular automatic messages, BabelBot can still post the text translation with a short partial notice when the media cannot be translated.
  5. Is the source language blocked? For normal automatic messages, BabelBot can skip before using quota when the detected source language is on Don't translate from.
  6. Is AI quota available? Features that need AI check your plan's remaining AI translations.
  7. Which method applies? Plain text uses AI translation when quota is available. On Free, Pro, and Ultra, plain text in supported target languages can use BabelBot's in-house translator after AI quota is used. Languages marked AI only in the dashboard need AI quota. Plain text bridge messages in supported languages can also use the in-house translator if AI fails with a technical error before returning a usable translation.
  8. Translate once per target. BabelBot runs one translation per target language (or per bridge destination language).
  9. Drop unusable results. BabelBot drops results that are empty or already in the target language.
  10. Deliver the translation. BabelBot posts as a channel reply, in a translation thread, or as a replacement based on your delivery setting. Replacement reposts an automatic text translation with the member's name and avatar, then deletes the original after confirming delivery. With multiple target languages, the repost includes the original text first. Reply style applies when channel replies are selected.
  11. Record usage. BabelBot records quota only when a translation is actually posted.

Usage does not increase when BabelBot skips a message or drops output after translation.

Recent context for AI translation

Automatic AI translation can use up to five previous human text messages from the same channel or thread. That context helps with pronouns, slang, polite refusals, and unclear wording. BabelBot caps each of those messages at 200 grapheme clusters. It keeps this recent context for up to 15 minutes. BabelBot does not pull older Discord history.

Recent message context applies only to normal automatic AI translations. Bridge translations and the in-house translator do not use it. BabelBot asks AI to translate only the current message or Conversation mode group. If the result appears to repeat recent context, BabelBot blocks that result and retries the current message once without recent context.

When messages are skipped

BabelBot does not call a translator when:

  • The server master switch is off
  • The channel is on the server's disabled-channel list (see Dashboard Guide)
  • The author is a bot, except for native Discord followed-announcement crossposts (see below). BabelBot always ignores its own messages.
  • The author is on the server's ignored-users list
  • The message is not in a server channel (automatic translation only runs in servers)
  • A normal automatic message contains no translatable text, such as whitespace only, a message containing only a link without attachments, a raw ID, or a message made only of custom or animated Discord emoji. Bridges still copy non-empty content unchanged.
  • A normal automatic message contains only attachments, but media translation is off or the plan does not allow it. Bridge attachment mirroring is exempt.
  • A normal automatic message is confidently detected as a language in Don't translate from
  • AI quota is exhausted and BabelBot's in-house translator cannot cover the work (for example, the target language has an AI only label or the message includes attachment content). Mirroring bridge attachments does not use AI.

"Missing" translations are often correct skips. Compare the message to the lists above before assuming a bug.

Translation delivery

Translation delivery by scenario
ScenarioReply in channelReply in threadsReplace the original
One target languageOne reply under the messageOne thread with the translationA translation posted as the speaker replaces the original when its language differs
Multiple target languagesOne reply containing all translationsOne thread containing all translationsA repost with the original text first, then translations
Messages inside an existing threadReplies inside the threadReplies inside the threadReplies inside the thread, with the original kept

If Discord rejects a reply because the original message was deleted or does not support replies, BabelBot posts the translation as a normal channel message instead. In thread mode, BabelBot also replies in the channel when Discord permissions prevent it from creating or posting in the translation thread.

When Reply in channel is selected, Reply style controls the format. Embed is the default and uses a styled BabelBot message. Plain text shows only the translated text for one target language. With multiple target languages, each translation starts with a bold language label. If a plain-text reply is too long for Discord, BabelBot creates a translation thread or reuses the current thread, then splits the output into separate messages that stay below Discord's message limit.

Controlling noise

Multiple target languages add more translated sections to each result. In reply mode, long translations can move into a translation thread and split into more than one message so Discord accepts them. Thread mode groups translations so the main channel stays readable.

In thread mode you can set thread retention (days until BabelBot deletes its translation threads). That control lives on the Reply mode page in the dashboard.

In a voice channel's text chat, BabelBot replies in the channel even when Reply in threads is selected.

When a message is already inside a Discord thread, BabelBot replies inside that thread. It does not create another translation thread. This applies to automatic and flag-reaction translations. Forum and media posts follow the same rule because Discord treats each post as a thread.

When BabelBot posts a translation embed inside a Discord thread, the embed can include Bad response. Select it to open a private Discord form with a required problem description and an optional suggested correction. The form does not appear on channel fallbacks. Feedback records are scheduled for deletion 90 days after submission. See the Translation feedback section of the Privacy Policy for what BabelBot stores and how it is used.

AI translation vs custom text translation

AI translation versus custom text translation
KindWhat it usesQuota
AI translationBabelBot's managed AI modelsCounts toward your plan's AI translation allowance
In-house text translationBabelBot's in-house translatorNo monthly limit on Free, Pro, and Ultra for supported plain text after AI quota is used; also used for supported plain text bridge recovery when AI has a technical error

On Free, Pro, and Ultra, when AI quota for the period is exhausted, plain text without attachments can still translate via BabelBot's in-house translator if the target language does not have an AI only label. Plain text bridge messages in supported languages can also use that translator when AI has a technical error before returning a usable translation. Flag reactions, context menus, custom words, AI-only languages, and media translation still require AI.

Legacy Ultra and Founder Access tiers treat AI translations as unlimited.

Details and exact limits: Billing and Limits.

Custom words (AI translation only)

On every plan, you can set custom words: pick a word and tell BabelBot how to translate it into one language or All Languages. Free servers can add 5, Pro can add 25, and Ultra, Legacy Ultra, and Founder Access can add 100. Use them for server names, game vocabulary, brand and product names, community slang, or terms that should stay untranslated. Custom words only work with AI. When a message uses one of your custom words, BabelBot always translates it with AI. It does not fall back to the in-house translator for that message. If your AI quota runs out, the normal quota behavior applies.

Custom words work in automatic translation, bridges, flag reactions, the Translate Text context menu, and voice chat translation. Custom words apply to reply text, media captions, and speech transcribed from voice notes or audio files. Notes are just reminders for your team. The bot never follows them. See the Dashboard Guide to set them up.

Bridges

Bridges connect channels so messages in one language channel appear in another:

  • Pair bridge: Two channels, two languages, traffic both ways
  • Hub bridge: One hub channel plus multiple spoke channels (same bridge UI in the dashboard)
  • Cross-server connection: One channel in each of two servers, with traffic both ways

Cross-server connections need BabelBot installed in both servers and one manager who can manage both when the connection is created. The server used to create it is the sponsor and needs Ultra or Founder Access. Translation usage belongs to that sponsor server. If both channels use the same language, BabelBot relays the message without translation or translation quota. If the sponsor loses its eligible plan, the connection pauses and resumes when the plan returns. Either server's managers can disconnect it.

A channel cannot belong to more than one local bridge or cross-server connection. Cross-server relays identify the source server with the member context so members know where the message came from.

When a bridge matches, BabelBot treats the source language as the language of the channel where the message was sent. It delivers content to the linked channels. Text posted with supported media is translated alongside the media result. If BabelBot cannot produce usable translated text, it does not post a generic failure notice in the source channel or count the failed translation toward usage. Existing service outage notices may still appear. If BabelBot cannot send translated text to any linked destination, it still replies in the source channel. That reply names the affected channels and asks an admin to check permissions.

The reply, edit, delete, reaction, attachment, sticker, and forwarded-message behavior below applies to pair bridges, hub bridges, and cross-server connections.

Replies carried across linked channels show a compact preview and link to the matching Discord message. Text replies use the wording already posted in that channel. Replies to images, videos, and other files show the attachment filename or a simple attachment label instead of a temporary Discord URL. Replies to ordinary links keep the original URL. Older quotes from the reply chain are left out.

If a member edits the source message, BabelBot updates the copies it posted in linked channels. Messages that contain text run through translation again and follow the same quota rules as a new bridge message. Adding, replacing, or removing attachments or stickers also updates the existing copies without posting duplicates. Edits to messages without text do not use AI quota.

If a member deletes an ungrouped source message, BabelBot removes the copies it posted in linked channels. For a Conversation mode group, editing or deleting any original rebuilds the combined copies from the remaining originals. BabelBot removes those copies when no originals remain. Deleting the source while BabelBot is translating also stops copies from appearing after the source is gone.

Reactions stay in sync while the bridge message links exist. React to any linked copy and BabelBot applies the same emoji to the copies in the other channels. Custom and animated emoji keep their image even when they belong to another server. Discord shows BabelBot as the reacting account on those copies. When members remove the last matching reaction, BabelBot removes its copied reactions.

New bridge message links have no time limit. Links created before this update keep their original expiry, normally 30 days after creation. Editing a message does not extend that period. Expired links cannot be recovered. Edits and source deletions need an available link to the copies. If someone deletes only a linked copy, BabelBot leaves the source and other copies in place and does not recreate the deleted copy. Removing the bridge also stops later edits from crossing to those channels.

Messages that need no translation, such as numbers, emoji, timestamps, or punctuation, are mirrored unchanged. This does not use translation quota.

Images and supported videos are mirrored with their original Discord attachment URLs, so Discord shows its normal preview in the destination channel. BabelBot re-uploads spoilered images and supported videos with the spoiler setting intact, keeping them hidden until a member opens them. Other files use labeled cards that link to the original attachment. This works for pair bridges, hub bridges, and cross-server connections even when Media translation is off. Mirroring does not use AI quota or add an AI description. When Media translation is on, supported attachments keep their normal translation behavior.

Custom server stickers cross linked channels too. PNG, APNG, and GIF stickers keep their Discord preview. Lottie stickers and formats Discord cannot preview stay available through a link to the original sticker. Sticker-only messages and edits do not use AI quota.

You can also forward a Discord message into a bridged channel. BabelBot labels it as a forwarded message, translates its text and rich cards, and copies its attachments and stickers. Discord does not send the original author with forwarded messages, so the bridge shows the member who forwarded it as the sender. Buttons and menus from the forwarded message are not copied.

Don't translate from does not apply to bridge routes. Bridges already define their source and target language behavior.

Channel rules with Translation status off stop normal automatic translations, but configured bridges in those channels keep relaying. Remove a local bridge or disconnect a cross-server connection when you want bridge traffic to stop.

Followed announcements

Some servers Follow announcement channels from other servers. Discord marks those crossposts in ways BabelBot recognizes.

When a message qualifies as a followed announcement, BabelBot may translate it even though the author is a bot or webhook. BabelBot only does this for Discord's normal Follow crossposts, so random bot traffic is not translated.

There is no separate dashboard toggle. Output uses the same delivery mode as the rest of the server.

Flag reaction translations

When Allow flag reactions is on (Settings), reacting with a supported country-flag emoji translates that message to the associated language.

Server managers can choose Public delivery in the channel or Private DM delivery to the member who reacted. A blocked DM does not fall back to a public channel message.

  • Uses AI translation only
  • Counts toward AI quota
  • Includes supported PDFs, images, video attachments, and audio files when media translation is available for the server
  • Respects disabled channels and ignored users
  • Can stay on in a channel rule even when automatic translation is off
  • Supports PDF-only, image-only, video-only, audio-only, and media+caption posts when media translation is available for the server. Text posted with the media stays with the translated media result.
  • Honors reply or thread delivery for public translations. When Replace the original is selected, flag translations use replies and keep the original. Reply style still applies.
  • Ignores Don't translate from because the reaction is an explicit translation request

Context menus and DMs

Translate Text uses AI. Detect Language uses Azure language detection and reports Unknown when it cannot identify a language confidently. Both commands are available when you right-click a message. They work in server channels and, with user install, in DMs and private channels. They do not replace server-wide automatic translation settings.

Voice chat translation

For live voice calls, BabelBot can join a voice channel, listen to speech, and post translated text in that channel's text chat. This is separate from audio attachments (voice notes and audio clips posted in text channels).

  • One active voice translation per server
  • Members start it with /voice start after an admin enables it on Ultra or Founder Access
  • Does not count toward your normal message translation quota

Full guide with admin and member steps: Voice chat translation.

Summary

  • Skips are usually settings or message type, not outages. Bots, non-text content, disabled channels, and quota limits are the common causes.
  • Reply mode supports styled embeds or plain text. Long replies can move into a translation thread when Discord's message limit requires it.
  • Thread mode and fewer target languages reduce noise.
  • Automatic translation can be enabled separately for text channels, voice channel chats, and forum or media posts. A matching channel rule overrides that channel-type default.
  • Bridges define their own channel route. A channel rule can stop normal automatic translations without stopping a configured bridge.
  • Only posted message translations consume AI quota (voice chat translation is separate).
  • Voice chat translation is live call transcription plus translation in voice channel text chat. Voice notes and audio files are attachment-based in text channels.

Next: Dashboard Guide for how to change settings, or Troubleshooting if behavior still does not match this page.

Quick Start

Set up automatic Discord translation with BabelBot's guided setup in about two minutes.

Dashboard Guide

Manage Discord translation settings, channels, bridges, and billing from the BabelBot dashboard.

On this page

What happens when someone postsRecent context for AI translationWhen messages are skippedTranslation deliveryAI translation vs custom text translationCustom words (AI translation only)BridgesFollowed announcementsFlag reaction translationsContext menus and DMsVoice chat translationSummary