SkillAgentSearch skills...

UnityGameTranslator

Universal Unity games automatic local AI translation and communtity sharing and improvments

Install / Use

/learn @djethino/UnityGameTranslator

README

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.dll in game folder → IL2CPP
  • <Game>_Data/Managed/Assembly-CSharp.dllMono

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 plugin
  • UnityGameTranslator.Core.dll - translation engine
  • UniverseLib.*.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:

  1. Welcome screen - introduction to the mod
  2. Online mode - choose to enable community features or stay offline
  3. Settings hotkey - pick a key to open settings (default: F10)
  4. Translation search - if online, search for existing translations
  5. 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:

  1. Open settings (F10) → AI Translation tab
  2. Enter the server URL (e.g., http://localhost:11434 for Ollama)
  3. Add an API key if required (cloud providers)
  4. Click Test to verify the connection
  5. Select a model from the dropdown
  6. Enable AI translation

Recommended local model: qwen3:8b provides 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

  1. Press F10 to open settings
  2. Click "Search translations" or enable "Check updates on start"
  3. The mod searches for translations matching your game and language
  4. Select a translation to download

Uploading Translations

  1. Press F10 to open settings
  2. Click "Login" to authenticate via the website
  3. Enter the displayed code at the website
  4. 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

  1. First upload → Your translation becomes the Main for that UUID
  2. Download + modify + upload → You fork the translation, creating your Branch
  3. Main owner can view all Branches on the website and merge contributions
  4. Languages are locked after first upload - source/target cannot be changed

Upload behavior

| Situation | Result | |-----------|--------| | UUID doesn't exist on server

Related Skills

View on GitHub
GitHub Stars5
CategoryDevelopment
Updated3d ago
Forks1

Languages

C#

Security Score

90/100

Audited on Mar 26, 2026

No findings