UnityGameTranslator
Universal Unity games automatic local AI translation and communtity sharing and improvments
Install / Use
/learn @djethino/UnityGameTranslatorREADME
Universal Unity Game Translator (Beta)
Website: unitygametranslator.asymptomatikgames.com
A universal translation mod for Unity games with AI translation (any OpenAI-compatible server — local or cloud) and online community translations. Works fully offline with a local AI server like Ollama or LM Studio — no API key, no internet, no cost.
Features
Translation Engine
- Runtime translation - text is translated as you encounter it in-game
- AI translation via any OpenAI-compatible server — run locally (Ollama, LM Studio) for free, offline translation or use cloud providers (Groq, OpenRouter, OpenAI)
- Instant cache hits - cached translations apply synchronously
- Number normalization - "Kill 5 enemies" and "Kill 10 enemies" share the same translation
- Auto language detection - detects system language as target
- Cross-platform - works on Windows, macOS, Linux
Online Sync
- Community translations - download translations from the community website
- Automatic game detection - detects game via Steam ID or product name
- Update notifications - get notified when translations are updated
- Mod update checker - get notified when a new mod version is available on GitHub
- Upload your work - share translations with the community
- 3-way merge - intelligently merge updates while keeping your local changes
- Device Flow login - secure authentication without entering passwords in-game
In-Game Overlay
- Settings hotkey - press F10 (configurable) to open settings
- First-run wizard - guided setup on first launch
- AI configuration - test connection, select model, set game context, optional API key
- Sync options - configure update checking and merge behavior
- Translation info - view current translation source and local changes
- Login/Upload - authenticate and upload translations without leaving the game
Note: Only text displayed during gameplay is translated. Play through the game to build the translation cache.
Installation
1. Install a mod loader
| Mod Loader | Unity Type | Download | |------------|------------|----------| | BepInEx 5 | Mono | GitHub | | BepInEx 6 | Mono or IL2CPP | Bleeding Edge | | MelonLoader | Mono or IL2CPP | GitHub |
BepInEx 6 is in beta but supports both Mono and IL2CPP games. Use the version matching your game type.
Cross-platform: UnityGameTranslator DLLs are .NET assemblies that work on Windows, macOS, and Linux. The same release package works on all platforms. Install the mod loader version matching your OS and architecture, then use the same UnityGameTranslator plugin.
How to know your game type:
GameAssembly.dllin game folder → IL2CPP<Game>_Data/Managed/Assembly-CSharp.dll→ Mono
2. Install UnityGameTranslator
First run: Launch the game once with the mod loader installed, then quit. This creates the required folder structure for plugins.
Download the release matching your mod loader and extract to:
| Mod Loader | Extract to |
|------------|------------|
| BepInEx | <Game>/BepInEx/plugins/UnityGameTranslator/ |
| MelonLoader | <Game>/Mods/ |
The zip contains:
UnityGameTranslator.dll- main pluginUnityGameTranslator.Core.dll- translation engineUniverseLib.*.dll- UI framework (variant depends on mod loader)Newtonsoft.Json.dll- JSON library- (BepInEx 5 only)
System.Buffers.dll,System.Memory.dll, etc. - .NET Standard polyfills
3. First Launch
On first launch, the mod displays a setup wizard:
- Welcome screen - introduction to the mod
- Online mode - choose to enable community features or stay offline
- Settings hotkey - pick a key to open settings (default: F10)
- Translation search - if online, search for existing translations
- AI setup - configure AI translation server and model (optional)
After setup, press the hotkey anytime to open settings.
4. Enable AI translation (optional)
By default, the plugin only uses cached/downloaded translations. To enable live AI translation, you need any server that exposes the OpenAI-compatible API (/v1/chat/completions, /v1/models).
Local servers (free, offline)
| Server | Description |
|--------|-------------|
| Ollama | Easy to install, run ollama pull qwen3:8b to get started |
| LM Studio | Desktop app with model browser |
Cloud providers (requires API key)
| Provider | Description | |----------|-------------| | Groq | Free tier available, very fast inference | | OpenRouter | Aggregator with many models, free tier available | | OpenAI | GPT models |
Setup:
- Open settings (F10) → AI Translation tab
- Enter the server URL (e.g.,
http://localhost:11434for Ollama) - Add an API key if required (cloud providers)
- Click Test to verify the connection
- Select a model from the dropdown
- Enable AI translation
Recommended local model:
qwen3:8bprovides the best balance of speed, quality, and multilingual support (requires ~6-8 GB VRAM).
Configuration
Config file location:
- BepInEx:
<Game>/BepInEx/plugins/UnityGameTranslator/config.json - MelonLoader:
<Game>/UserData/UnityGameTranslator/config.json
{
"ai_url": "http://localhost:11434",
"ai_model": "",
"ai_api_key": null,
"target_language": "auto",
"source_language": "auto",
"game_context": "",
"enable_ai": false,
"normalize_numbers": true,
"preload_model": true,
"debug_ai": false,
"settings_hotkey": "F10",
"first_run_completed": true,
"online_mode": true,
"api_token": null,
"api_user": null,
"sync": {
"check_update_on_start": true,
"auto_download": false,
"notify_updates": true,
"check_mod_updates": true,
"merge_strategy": "ask",
"ignored_uuids": []
}
}
Upgrading from v0.9.53 or earlier: Old config fields (
ollama_url,enable_ollama,model,debug_ollama) are automatically migrated on first load.
Translation Options
| Option | Description |
|--------|-------------|
| target_language | Target language ("auto" = system language, or "French", "German", etc.) |
| source_language | Source language ("auto" = let AI detect) |
| game_context | Game description for better translations (e.g., "Medieval fantasy RPG") |
| enable_ai | true to enable live AI translation |
| ai_url | URL of your OpenAI-compatible server (e.g., "http://localhost:11434") |
| ai_model | Model name (selected from server's /v1/models endpoint) |
| ai_api_key | API key for cloud providers (encrypted at rest, optional for local servers) |
| normalize_numbers | true to replace numbers with placeholders for better cache reuse |
| debug_ai | true to log detailed AI requests/responses |
UI Options
| Option | Description |
|--------|-------------|
| settings_hotkey | Key to open settings overlay (default: F10) |
| first_run_completed | true after completing the setup wizard |
| online_mode | true to enable community features (sync, upload) |
Sync Options
| Option | Description |
|--------|-------------|
| check_update_on_start | Check for translation updates when game starts |
| auto_download | Automatically download updates (if no conflicts) |
| notify_updates | Show notification when updates are available |
| check_mod_updates | Check for new mod versions on GitHub at startup |
| merge_strategy | How to handle updates: "ask", "merge", or "replace" |
| ignored_uuids | List of translation UUIDs to ignore updates for |
Authentication
| Option | Description |
|--------|-------------|
| api_token | API token for authenticated actions (set via login flow) |
| api_user | Username of logged-in user |
Community Features
Downloading Translations
- Press F10 to open settings
- Click "Search translations" or enable "Check updates on start"
- The mod searches for translations matching your game and language
- Select a translation to download
Uploading Translations
- Press F10 to open settings
- Click "Login" to authenticate via the website
- Enter the displayed code at the website
- Once logged in, click "Upload" to share your translation
Collaboration System (Main/Branch/Fork)
UnityGameTranslator uses a Main/Branch model for collaborative translation:
Terminology
| Term | Description | |------|-------------| | Main | The original translation. First uploader becomes the Main owner. | | Branch | A contributor's version, linked to the Main. Each contributor has one Branch per UUID. | | Fork | The action of copying a translation to create your own Branch. |
Roles
| Role | Description | |------|-------------| | Main owner | You created this translation. You can update it and merge contributions from Branches. | | Branch contributor | You downloaded a translation, improved it, and uploaded your changes as a Branch. | | None | You haven't uploaded yet. Your first upload will create a Main or Branch. |
How it works
- First upload → Your translation becomes the Main for that UUID
- Download + modify + upload → You fork the translation, creating your Branch
- Main owner can view all Branches on the website and merge contributions
- Languages are locked after first upload - source/target cannot be changed
Upload behavior
| Situation | Result | |-----------|--------| | UUID doesn't exist on server
Related Skills
node-connect
340.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
340.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.1kCommit, push, and open a PR
