GTFOAutoTranslator
Client-side GTFO mod that automatically translates TextMeshPro UI from other mods using a LibreTranslate-compatible translation server.GTFO Auto Translator
Automatically translates TextMeshPro UI text from GTFO mods at runtime.
Features
- Translates non-English mod UI into English by default.
- Persistent translation cache across game launches.
- F8 enable/disable toggle by default.
- Small in-game status indicator.
- Include/exclude filters based on Unity hierarchy names.
- Safer optional handling for ASCII-only languages such as French, Spanish, and German.
- Preserves common TextMeshPro rich-text tags.
- Request deduplication and rate limiting.
Requirements
- GTFO
- BepInExPack_GTFO 3.2.3 or newer compatible release
- A LibreTranslate-compatible
/translateendpoint
The default endpoint is:
http://localhost:5000/translate
A local/self-hosted translation server is recommended.
Installation
Mod manager
Install through Thunderstore Mod Manager or r2modman after this package is published.
Manual
Copy GTFOAutoTranslator.dll into:
GTFO/BepInEx/plugins/GTFOAutoTranslator/
Start GTFO once. The configuration file will be generated under:
GTFO/BepInEx/config/kai.gtfo.autotranslator.cfg
Default controls
F8 - toggle translation on/off
Recommended configuration
[General]
Enabled = true
ToggleKey = F8
ShowStatusIndicator = true
StatusIndicatorSeconds = 3
TargetLanguage = en
ScanIntervalSeconds = 0.4
MinimumTextLength = 2
[Detection]
TranslateAsciiOnlyText = false
PreserveRichTextTags = true
[Filtering]
OnlyTranslateMatchingHierarchy = false
RequireHierarchyMatchForAsciiOnly = true
HierarchyIncludePatterns =
HierarchyExcludePatterns =
[Cache]
PersistentCache = true
CacheSaveIntervalSeconds = 5
[LibreTranslate]
Endpoint = http://localhost:5000/translate
ApiKey =
MaxRequestsPerMinute = 60
[Debug]
LogTranslations = false
Translating ASCII-only languages
For languages whose text may use only A-Z characters, enable ASCII translation and restrict it to the target mod UI:
TranslateAsciiOnlyText = true
RequireHierarchyMatchForAsciiOnly = true
HierarchyIncludePatterns = NameOfTheMod;NameOfItsMenu
This helps avoid sending normal GTFO English UI to the translation server.
Persistent cache
Successful translations are stored in the BepInEx config folder, for example:
BepInEx/config/GTFOAutoTranslator.cache.en.json
Limitations
- Unity does not expose a universal flag identifying which mod owns a TextMeshPro label, so optional filtering uses hierarchy names.
- Text baked into images or textures cannot be translated.
- The active font must contain glyphs for the target language.
- Translation quality depends on the configured translation backend.
