Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
ArabicChatFix
Type Arabic in chat and everyone sees it connected and right-to-left, even players without the mod.
By AlCool
| Date uploaded | a month ago |
| Version | 1.0.3 |
| Download link | AlCool-ArabicChatFix-1.0.3.zip |
| Downloads | 28 |
| Dependency string | AlCool-ArabicChatFix-1.0.3 |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100Lavighju-espeakTTS
Changes the TTS to support multiple languages and adds voice customization
Preferred version: 0.2.3README
Arabic Chat Fix
Type Arabic in R.E.P.O.'s chat and have it show up connected (proper joined letters) and in the correct right-to-left order — instead of the broken, disconnected, reversed text you normally get.
Best part: it works for everyone in the lobby, even players who don't have the mod.

Why it works for people without the mod
Normally Arabic needs a "shaping" step to join letters and a "bidi" step to lay them right-to-left. R.E.P.O.'s chat doesn't do either, so you get isolated, reversed letters.
When you send a message, this mod converts your Arabic into its final presentation-form glyphs (the already-joined shapes) and puts them in visual order before the message goes out over the network. The text that travels to everyone else is already "baked," so even a player with no mod — whose game does no shaping at all — draws it correctly. There's nothing left to shape.
So:
- You type normally. While typing you'll still see the raw letters (that's just the live input box). On send, it's fixed for everyone.
- People without the mod see your Arabic correctly. ✅
- People with the mod also see correct Arabic, and can additionally read raw Arabic typed by non-modded players (local display fix).
Install
Use a mod manager (Thunderstore / r2modman / Gale): just click install. It pulls in BepInEx automatically.
Manual install:
- Install BepInExPack into your game folder.
- Drop
ArabicRepo.dllintoR.E.P.O./BepInEx/plugins/. - Launch once to generate the config.
Configuration
Config file: BepInEx/config/bandar.arabicrepo.cfg
- FixOutgoing (default true) — bake your typed Arabic on send so everyone sees it.
- FixIncomingDisplay (default true) — locally reshape raw Arabic typed by players without the mod, so you can read them.
- CombineAllahLigature (default true) — render the standalone word الله as the single ﷲ glyph.
- KeepLatinAndNumbersInOrder (default true) — keep Latin words, numbers, emails and URLs in normal reading order inside Arabic text.
Advanced (only needed if a game update moves things around):
- ChatTypeName, SendMethodOverride, MessageFieldOverride, AggressiveAutoHook, DumpChatClassToLog.
Because R.E.P.O. updates often and renames internals, the chat hook is found at runtime instead of hard-coded. If a future update breaks sending, set DumpChatClassToLog = true, open BepInEx/LogOutput.log, find the method that runs when you press Enter, and put its name in SendMethodOverride. That's the whole fix.
Known limitations
- The live input box still shows unshaped letters while you type — only the sent message is converted. This is expected.
- Full Unicode bidi for deeply mixed/nested text isn't implemented; everyday chat (Arabic, numbers, Latin words, emails, URLs, times) is handled correctly.
- Harakat/tashkeel are preserved but some renderers position them loosely.
Credits
Made by AlCool. Arabic shaping + bidi engine validated against the arabic_reshaper + python-bidi reference pipeline.
Parts of this mod were created with AI assistance. When uploading to Thunderstore, please tick the "AI Generated" category as required by Thunderstore's guidelines.
CHANGELOG
Changelog
1.1.0
- Arabic chat is now spoken aloud in Arabic automatically: espeakTTS is included as a dependency, the message is un-baked right before it's spoken, and espeak's language is forced to Arabic for Arabic messages (no espeak configuration needed). The on-screen text stays readable for everyone.
- Adds text-to-speech to all chat for everyone with the mod; set UnbakeForEspeak = false to disable. espeak's Arabic voice is Modern Standard Arabic (no dialects exist in espeak).
- This replaces the separate Arabic TTS Bridge mod.
1.0.7
- Fixed the Arabic section of the mod page to display right-to-left (correct direction and alignment). No gameplay changes.
1.0.6
- Added a full Arabic translation of the mod page and the short description (bilingual). No gameplay changes from 1.0.5.
1.0.5
- Added optional font smoothing: renders Arabic from a clean system font (default Tahoma) so letters look genuine. Local view only (you and modded friends); others still use the game font. Configurable via SmoothFont / SmoothFontName.
1.0.4
- Added true right-to-left multi-line support. Long messages are wrapped by the mod so the first words stay on the TOP line and every line reads right-to-left (fixes the start ending up on the bottom line when the game wrapped long sentences).
- New MaxLineChars setting (default 18) controls the wrap width; tune it to your overhead chat width.
1.0.3
- Fixed multi-word messages showing only the first word. R.E.P.O. reads chat word-by-word and stopped at the space before an Arabic word; words are now joined with a non-breaking space so the game shows the whole phrase.
- New WordSeparator option (nbsp / narrow / thin / none / space) to tune spacing if a separator renders oddly in the game font.
1.0.2
- Fixed multi-word messages stalling on the first word: trailing spaces no longer become a leading empty word in R.E.P.O.'s word-by-word chat reader.
- Added ReverseWordOrder option. true = full right-to-left order (default). false = shape each word but keep words in typed order (use if multi-word still stalls).
1.0.1
- Fixed a startup crash (AmbiguousMatchException) when probing for the chat send method.
- Hard-targets R.E.P.O.'s real chat methods: MessageSend + ForceSendMessage (works without config edits).
- Added optional DebugLogging that prints the raw and converted text on each send, for troubleshooting.
1.0.0
- Initial release.
- Outgoing Arabic is shaped to presentation forms + reordered (visual RTL) on send, so all players — including those without the mod — see it correctly.
- Optional local display reshaping for reading raw Arabic from non-modded players.
- Lam-Alef ligatures, optional Allah (ﷲ) ligature, and Latin/number/email/URL run preservation.
- Runtime reflection-based chat hook with config overrides and diagnostic logging to survive game updates.