How the bot reads
The bot doesn't read chat messages exactly as they're written. It first filters out messages it won't read, then tidies up the rest so they're easier to read aloud. This page shows with examples what's read, what's skipped, and what your message turns into.
Many of the rules here are turned on and off by server admins on the dashboard's Reading tab. If your server reads things differently, an admin has changed that setting.
Some notices the bot adds, such as '사진을 보냈어요', are always read in Korean. On this page they're shown in Korean with the meaning in parentheses. → Language of the notices
Examples at a glance
On a server with default settings, messages are read like this.
| If you write | It's read as |
|---|---|
Hello | Hello |
// don't read this | (skipped, not read) |
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ | ㅋㅋㅋㅋㅋ |
???!! | 물음표 ("question mark") |
@friend look at this | ○○님을 언급했어요. ("mentioned ○○") look at this |
**Important** notice | Important notice |
went here today + 1 photo | went here today. 사진을 보냈어요 ("sent a photo") |
look at this https://example.com what do you think | look at this what do you think. 링크를 보냈어요 ("sent a link") |
check the [notice](https://example.com) | check the notice. 링크를 보냈어요 ("sent a link") |
Timestamp <t:…:R> | 5시간 후 ("in 5 hours") |
6개월 뒤 10000000원 (Korean: "10,000,000 won in 6 months") | 육개월 뒤 천만원 |
| A very long message | The message is too long to read. |
Each one is explained below.
Messages that aren't read
If any one of these applies, the message is quietly skipped. No notice like "not read" appears in the chat. Server admins can see the reason under 'Reading issues' on the dashboard's Bots tab.
| Condition | Details |
|---|---|
Starts with // | Checked first of all. Use it for messages you don't want read |
| Written by a bot | Only bots that the server added to 'Bots to Read', with 'Read bot messages' on, are read |
| No bot in the voice channel | If 'Auto-join' is off, that's the end of it |
| People not to read | When an admin has added you to 'People not to read' |
| Not a channel to read | When an admin has set 'Channels to read' |
| Missing a role to read | When an admin has set 'Roles to read' and you don't have one of those roles |
| No message prefix | When an admin has set a 'Message prefix' and your message doesn't start with it |
| Not the chat the bot is assigned to | See "The bot only reads its assigned chat" below |
| Written outside the voice channel | On a server with 'Read outside the voice channel' off, messages from people who aren't in the same voice channel as the bot |
| Contains a soundboard word | Only the sound plays, and the message isn't read |
| Under maintenance | Nothing is read during maintenance |
| Nothing left to read after tidying up | For example, you sent only emoji and 'Attachment notice' is off |
| Deleted before it was read | See "Deleted or edited messages" below |
Messages that start with // aren't read
This is the rule you'll probably use most.
| If you write | It's read as |
|---|---|
// don't read this | (not read) |
//don't read this | (not read. You can write it without a space) |
oh // don't read this | oh // don't read this |
// has to be at the very start of the message. This rule is checked before anything else, so a message that starts with // doesn't trigger the soundboard either.
The bot only reads its assigned chat
When the bot joins a voice channel, it picks one chat to read, and only reads messages in that chat.
- If it joined automatically → the chat where the message that brought it in was posted
- If you called it with
/join→ the chat where you used the command
When several bots such as Yeonhong and Yeonha are together, each bot is assigned its own chat. Each message is read by only one bot. The detailed rules are in Several bots read together.
To change the chat it reads, remove the bot with /leave, then use /join again in the chat you want.
Things that are read differently
Discord formatting
Formatting such as bold and italics is removed and only the text is read.
| If you write | It's read as |
|---|---|
**bold** · *italic* · __underline__ · ~~strikethrough~~ | bold · italic · underline · strikethrough |
# Heading · -# small text | Heading · small text |
> quote | quote |
- list | list |
`code` | code |
Asterisks between numbers (2*3*4) and symbols escaped with a backslash aren't treated as formatting and are left as they are.
Code blocks
| What you send | What's read |
|---|---|
| A short one-line code block (40 characters or fewer) | The text inside is read as is |
| A code block with several lines, or a long one | 코드를 보냈어요 ("sent code") |
Links and emoji inside a long code block aren't counted.
Links
Link addresses aren't read. They're removed from the message, and 링크를 보냈어요 ("sent a link") is added at the end.
| If you write | It's read as |
|---|---|
look at this https://example.com what do you think | look at this what do you think. 링크를 보냈어요 |
check the [notice](https://example.com) | check the notice. 링크를 보냈어요 |
<https://example.com> | 링크를 보냈어요 |
For masked links ([text](address)), only the visible text is read, and the brackets and address are dropped.
If the server has 'Read site titles' on, the page title is read for a message with only one link.
| If you write | It's read as |
|---|---|
https://example.com | Example Domain 링크를 보냈어요 ("sent an Example Domain link") |
- If the title can't be fetched within 2 seconds, it's read as 링크를 보냈어요.
- Titles aren't fetched for internal network addresses.
- If there are two or more links, no title is read, and it's read as 여러 개의 링크를 보냈어요 ("sent several links").
Spoilers
they say tomorrow's episode shows ||the butler did it||| Server setting | It's read as |
|---|---|
| 'Read spoilers' off (default) | they say tomorrow's episode shows |
| 'Read spoilers' on | they say tomorrow's episode shows the butler did it |
If the whole message is hidden, a server with the setting off reads it as 스포일러를 보냈어요 ("sent a spoiler"). Links and emoji inside the hidden part aren't announced. This keeps a site title from giving away the hidden content.
Timestamps
Discord timestamps are read as dates and times in words instead of numbers. The examples below are what's read for Korean text.
| Timestamp style | What's read |
|---|---|
Relative time (:R) | 5시간 후 · 3분 전 · 방금 · 곧 ("in 5 hours · 3 minutes ago · just now · soon") |
Date (:d · :D) | 10월 6일 ("October 6") |
Time (:t · :T) | 오후 3시 30분 ("3:30 PM") |
Date and time (default · :f) | 10월 6일 오후 3시 30분 ("October 6, 3:30 PM") |
With the day of the week (:F) | 10월 6일 화요일 오후 3시 30분 ("Tuesday, October 6, 3:30 PM") |
- Dates and times are read in Korea time.
- If it isn't this year, the year is read too.
- It's read in the language of the surrounding text. If there's only a timestamp with no text, it's read in the channel language.
Command mentions
Clickable command mentions (</들어와:…>) are read as the command name instead of numbers.
| If you write | It's read as |
|---|---|
A mention of the /들어와 (/join) command | 들어와 |
Mentions, roles and channels
A mention is replaced with a notice sentence where it appears.
| If you write | It's read as |
|---|---|
| A mention of someone in the same voice channel as the bot | ○○님을 언급했어요. ("mentioned ○○") |
| A mention of someone not in the voice channel | 유저를 언급했어요. ("mentioned a user") |
| A role mention | 역할을 언급했어요. ("mentioned a role") |
| A channel mention | 채널을 언급했어요. ("mentioned a channel") |
@everyone · @here | 모두를 언급했어요. ("mentioned everyone") |
○○ is the nickname that person set in My settings. If they have no nickname, or the server has 'Lock nicknames' on, their Discord name is used.
The name is read only when that person is in the same voice channel as the bot right now.
Repeated characters
If the server has 'Reduce spam' on (it's on by default), long runs of the same character are shortened when read. The server sets how many to read with 'Spam threshold', from 3 to 10. The default is 5. The examples below are Korean laughter (ㅋ, ㅎ) and a long scream.
| If you write | It's read as (threshold 5) |
|---|---|
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ | ㅋㅋㅋㅋㅋ |
아아아아아아아아악 | 아아아아아악 |
ㅋㅎㅋㅎㅋㅎㅋㅎㅋㅎㅋㅎㅋㅎ | ㅋㅎㅋㅎㅋㅎㅋㅎㅋㅎ |
ㅋㅋㅋ | ㅋㅋㅋ (fewer than the threshold, so it stays) |
10000000원 | 천만원 ("ten million won". Numbers aren't shortened) |
Repeated groups of two or three characters are shortened too. Numbers, links and mentions aren't shortened. A big number won't get cut and read as a different amount.
Messages with only symbols
If a message is made up of only symbols from start to finish, the bot doesn't read every symbol. It reads only the name of the first symbol. Spaces are ignored.
| If you write | It's read as |
|---|---|
? | 물음표 |
???!! | 물음표 (the first one is ?) |
!!! | 느낌표 |
! ? ? | 느낌표 |
hi? | hi? (it has letters in it, so it isn't changed) |
| Symbol | What's read | Symbol | What's read |
|---|---|---|---|
? | 물음표 (question mark) | % | 퍼센트 (percent) |
! | 느낌표 (exclamation mark) | * | 별표 (asterisk) |
~ | 물결 (tilde) | & | 앤드 (and) |
# | 샵 (sharp) | + | 플러스 (plus) |
@ | 골뱅이 (at sign) | = | 이퀄 (equals) |
Symbols in the middle of a message don't follow this rule.
Abbreviation reading
If the server has 'Abbreviation reading' on, Korean initial-consonant abbreviations like 'ㅋㅋ' are read as words like '크크'. Two sets of rules are used, in this order.
- The 'Word Replacement' list a server admin added
- The ready-made 'Built-in abbreviations' — only if the server turned it on
Which rules exist differs from server to server. The admin settings are on the Words & sounds tab.
Numbers
Numbers in Korean text are read to fit their meaning. These rules only apply to Korean text, so the examples stay in Korean.
| If you write | It's read as |
|---|---|
6개월 (6 months) | 육개월 |
2개국 · 5개년 · 1채널 · 3시즌 · 3달러 (2 countries · 5 years · 1 channel · 3 seasons · 3 dollars) | 이개국 · 오개년 · 일채널 · 삼시즌 · 삼달러 |
6월 · 10월 (June · October) | 유월 · 시월 |
1만원 · 1천원 (10,000 won · 1,000 won) | 만원 · 천원 |
101명 (101 people) | 백한명 |
1번째 · 1째 · 2째 (1st · first · second) | 첫번째 · 첫째 · 둘째 |
20대 (in their 20s) | 이십대 |
3~5개 (3 to 5 items) | 세개에서 다섯개 |
5km · 64GB · 30℃ | 오킬로미터 · 육십사기가바이트 · 삼십도 |
$5 · ¥500 | 오달러 · 오백엔 |
01012345678 (a phone number) | 공일공 일이삼사 오육칠팔 |
- Units like km, kg, ml, GB and ℃ and currency symbols like ₩, $, ¥ and € are also read in Korean.
- Mobile phone numbers are read one digit at a time, even without hyphens.
- Numbers in English-only text are read as they are.
Notices added after a message
When you send things like files, stickers or links, a sentence is added after your message.
| What you send | What's read |
|---|---|
| png · jpg · gif · webp, etc. | 사진을 보냈어요 ("sent a photo") |
| mp4 · mov · mkv, etc. | 영상을 보냈어요 ("sent a video") |
| mp3 · wav · flac, etc. | 음성을 보냈어요 ("sent audio") |
| pdf · docx · hwp · xlsx, etc. | 문서를 보냈어요 ("sent a document") |
| Any other file | 파일을 보냈어요 ("sent a file") |
| Link | 링크를 보냈어요 ("sent a link") |
| Long code block | 코드를 보냈어요 ("sent code") |
| Fully hidden spoiler | 스포일러를 보냈어요 ("sent a spoiler") |
| Sticker | 스티커를 보냈어요 ("sent a sticker") |
| Emoji (server emoji and regular emoji) | 이모지를 보냈어요 ("sent an emoji") |
| If you send | It's read as |
|---|---|
| Only 5 photos | 여러 장의 사진을 보냈어요 ("sent several photos") |
look at this + 1 photo + a link | look at this. 사진과 링크를 보냈어요 ("sent a photo and a link") |
| Photo + sticker + emoji | 사진과 스티커, 이모지를 보냈어요 ("sent a photo, a sticker and an emoji") |
hi + emoji | hi |
| Only emoji | 이모지를 보냈어요 |
- Items aren't counted. It only says "several".
- Stickers and emoji sent with text aren't announced. They're announced only when you send just a sticker or emoji.
- A period is placed between your message and the notice. This keeps the two sentences from running together into one.
- Turning off 'Attachment notice' keeps the link, code and spoiler notices. Only the photo, file, sticker and emoji notices go away.
Notices added before a message
| Situation | What's added in front | Server setting |
|---|---|---|
| A message was forwarded | ○○님이 메시지를 전달했어요. ("○○ forwarded a message") | Forward notice |
| Someone replied to another person's message | ○○님이 △△님에게 답장을 보냈어요. ("○○ replied to △△") | Reply notice |
| The writer changed | ○○, | Read the writer's name |
- If a message is both forwarded and a reply, only the forward notice is added. Replying to your own message adds no notice.
- 'Read the writer's name' adds the name when the writer is different from the previous message, or, for the same person, when 1 minute has passed since their name was last read. Messages with a forward or reply notice don't get a separate name.
○○and△△are filled with a nickname or Discord name, following the same rules as mentions.
Which language it's read in
If the bot reading is using 'Translate when reading', the message is translated first, and the translation is read. Translation only happens between the two languages picked (with →, only messages in the language before the arrow). Messages in other languages are read as written. Attachment notices aren't translated. Translation settings are on the Language tab.
The reading language is decided from the tidied-up message in this order.
| If the message has these characters | It's read in |
|---|---|
| Hiragana or katakana | Japanese |
| Hangul | Korean |
| Latin letters | English |
| Only numbers and symbols | The channel language |
Because they're checked from the top down, a message with both Hangul and kana is read in Japanese. On this page, the 'channel language' is the language of the channel where the message was posted. If no language is set for each channel, it's the main language. It's read with the voice you picked for that language.
Messages that are too long
A message longer than the server's message length limit isn't read; it's replaced with a notice.
- The limit starts at 200 characters. The server can change it to a number of characters (10–200) or a reading time (5–30 seconds).
- On servers that chose a reading time, the bot works out ahead of time how many seconds the message will take with that voice and speed.
- Either way, up to 200 characters are read at once.
- Messages over the limit don't generate any audio, so they don't use credits.
- What's measured is the tidied-up message, including attachment notices. If a forward or reply notice is what pushes it over, the notice is left out and only the message is read.
| Channel language | What's read instead |
|---|---|
| Korean | 너무 긴 글은 읽을 수 없어요 |
| English | The message is too long to read. |
| Japanese | テキストが長すぎて読み上げられません |
Messages written by bots aren't replaced with the notice. Only the beginning is cut off and read.
TIP
If you really want a long message read, send it in two or three parts. If you don't want a long message read, just start it with //.
Deleted or edited messages
| How far the message got | If you delete it | If you edit it |
|---|---|---|
| Still waiting its turn | It isn't read | The edited message is read |
| Being read | It stops right away | The original message is read to the end |
| Finished reading | Nothing happens | Nothing happens |
Messages deleted before they're read don't use credits.
Join and leave alerts
If the server turns these on on the Join & alerts tab, the bot also reads what happens in the voice channel it's in.
| Event | What's read | Server setting |
|---|---|---|
| Someone joins · leaves | ○○ has joined! · ○○ has left. | Join alert · Leave alert |
| Screen sharing starts · ends | ○○ started sharing their screen · ○○ stopped sharing their screen | Screen share notices |
| Camera on · off | ○○ turned on their camera · ○○ turned off their camera | Camera notices |
| Another bot joins · leaves | The ○○ bot has joined · The ○○ bot has left | Bot join notices · Bot leave notices |
- Only events in the voice channel the bot is in are read.
- When the last person leaves, the leave alert isn't read. That's because the bot leaves soon after too.
- Our own bots, such as Yeonhong and Yeonha, don't announce each other joining or leaving.
- These alerts are read with the server's default voice.
Good to know
Language of the notices
| Notice | Follows the channel language? |
|---|---|
| Attachment notices such as '사진을 보냈어요' ("sent a photo") | No, always Korean |
| Mention notices such as '유저를 언급했어요.' ("mentioned a user") | No, always Korean |
| Forward and reply notices | No, always Korean |
| Join and leave alerts | Yes |
| 'The message is too long to read.' | Yes |
| Timestamps | The language of the surrounding text |
On an English server, if you send a photo, an English voice ends up reading a Korean notice. If that bothers you, an admin can turn off 'Attachment notice' to remove the photo and file notices. Mention notices can't be turned off.
Some messages may be dropped if lots are sent at once
Messages to read wait their turn per server. Up to 20 can wait at once, and if it overflows, new messages are dropped. No notice appears in this case either.
If several people write quickly at the same time, some messages may go by without being read. Send anything important again after the conversation calms down.