You are viewing a potentially older version of this package. View all versions.
AlCool-ArabicChatFix-1.0.3 icon

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-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100
Lavighju-espeakTTS-0.2.3 icon
Lavighju-espeakTTS

Changes the TTS to support multiple languages and adds voice customization

Preferred version: 0.2.3

README

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.

before and after

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:

  1. Install BepInExPack into your game folder.
  2. Drop ArabicRepo.dll into R.E.P.O./BepInEx/plugins/.
  3. 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.