BetterChat translates player chat into each listener's chosen language and shows a country flag beside player names. Players who speak different languages can share one chat, and everyone reads it in their own.
Switch language at any time and the same conversation follows you. Here: romanized Bengali, then Russian.
Each player reads the chat in their own language, with the sender's flag beside the name.
/bc menu opens one screen for your language, your flag and automatic country detection.
A paged, searchable list. Your current choice is highlighted with a check mark.
Type a name or code to filter the list, for example japanese.
249 country flags plus the global Earth flag, in paged lists.
Type part of a country name to narrow the list.
The console logs the original message and the translated line for each language.
Ekhane Asho)./bc menu opens a settings screen with searchable, paged language and flag pickers and an automatic-country toggle./translate <language> <text>: one-off translations through the same queue and cache./translation off to always see the original.ChatRenderer.BetterChat-Paper-*.jar in plugins/ and start the server once.plugins/BetterChat/ai.yml, add a provider key under translation.providers, and set chat.translation-enabled: true./bc menu to choose a language and flag.Proxy networks: install the Velocity or BungeeCord jar on the proxy and the Paper jar on every backend. Use the same MariaDB database and the same 32+ character secret everywhere.
Flags look best with the included resource pack: 249 country flags and a rectangular Earth flag, drawn as crisp glyphs in the betterchat:flags font from Twemoji artwork. The pack is optional. Without it, BetterChat falls back to Unicode flag emoji, and the flag buttons in the menus show emoji instead of glyphs.
BetterChat-Flags-*.zip from the release assets. Its SHA-1 is in RESOURCE-PACK-SHA1.txt in the same bundle.Option A: send it with Paper (simplest)
resource-pack=https://example.com/BetterChat-Flags.zip
resource-pack-sha1=YOUR_40_CHARACTER_SHA1
resource-pack-prompt=Install BetterChat Flags to see country flags.
require-resource-pack=false
Then set flags.resource-pack.use-glyphs: true in plugins/BetterChat/config.yml and leave flags.resource-pack.enabled: false so the pack isn't sent twice.
Option B: let BetterChat send it
flags:
resource-pack:
enabled: true
url: 'https://example.com/BetterChat-Flags.zip'
sha1: 'YOUR_40_CHARACTER_SHA1'
prompt: 'Install BetterChat Flags to see country flags.'
required: false
use-glyphs: true
Good to know
required: false unless you want to block players who don't accept the pack.use-glyphs is off. The emoji fallback works until the pack is hosted and accepted.%betterchat_flag_glyph% only renders correctly if that plugin applies the betterchat:flags font. Otherwise use %betterchat_flag% (emoji).| Command | Description |
|---|---|
/bc or /bc menu |
Open the settings menu (language, flag, auto country) |
/bc language <language> |
Set your language by code or name (en_us, bn, Toki Pona) |
/bc flag <country|earth> |
Set your flag by code or name, or earth / global |
/translation <on|off> |
Receive translated chat, or always the original |
/translate <language> <text> |
Translate one message |
/bc auto [on|off] |
Toggle IP-based country detection |
/bc set <player> <language|flag> <value> |
Admin: change a player's preference |
/bc reload |
Admin: reload configuration |
betterchat.use and betterchat.translate are granted to everyone by default. betterchat.admin (op) covers /bc set and /bc reload.
When translation is on, chat text is sent to the provider you configure, so review that provider's data terms. The optional IP lookup sends the player's IP to the configured endpoint (default ipapi.co) and does not store it. bStats is anonymous and can be disabled in the config.
Source and documentation | Report an issue
Flag artwork: Twemoji, CC BY 4.0. BetterChat is not affiliated with Twemoji or VentureChat.