Download Latest Version UnityGameTranslator-BepInEx6-IL2CPP-v0.11.0.zip (3.4 MB)
Email in envelope

Get an email when there's a new version of UnityGameTranslator

Home / v0.9.64
Name Modified Size InfoDownloads / Week
Parent folder
UnityGameTranslator-BepInEx5-v0.9.64.zip 2026-06-03 3.3 MB
UnityGameTranslator-BepInEx6-IL2CPP-v0.9.64.zip 2026-06-03 3.3 MB
UnityGameTranslator-BepInEx6-Mono-v0.9.64.zip 2026-06-03 3.3 MB
UnityGameTranslator-MelonLoader-IL2CPP-v0.9.64.zip 2026-06-03 3.3 MB
UnityGameTranslator-MelonLoader-Mono-v0.9.64.zip 2026-06-03 3.3 MB
README.md 2026-06-03 3.1 kB
v0.9.64 source code.tar.gz 2026-06-03 417.9 kB
v0.9.64 source code.zip 2026-06-03 467.4 kB
Totals: 8 Items   17.3 MB 0

Fixes

  • Custom CJK / Devanagari fonts now render the correct glyphs (a y-flip inversion in the modern glyph path was previously sampling mirrored UV positions, producing the wrong characters).
  • Custom font no longer becomes invalid after a game restart, and modifying it after restart no longer crashes (atlas texture, material and clone are now flagged DontDestroyOnLoad).
  • Custom fonts initialised before the splash scene no longer produce a broken bare ScriptableObject — the loader now defers and retries automatically once a game TMP_FontAsset becomes cloneable.
  • Font dropdown no longer shows "(incompatible)" on TTF fonts whose first PNG write failed; the in-memory texture is reused on retry instead of pointing at a phantom file path.

Performance & memory

  • Atlas texture is now Alpha8 instead of RGBA32: 4× less VRAM per atlas and 4× less RAM during creation.
  • LoadRawTextureData on a single byte[] replaces SetPixels32 on a Color32[], removing a ~1 GB Mono LOH allocation per 16384² atlas (transparent fallback to SetPixels32 if the IL2CPP runtime rejects the raw path).
  • Apply(false, true) after every atlas load drops the CPU mirror; GC.Collect + Resources.UnloadUnusedAssets after each font load releases the rasterizer's transient buffers immediately.
  • Disk cache per CJK font dropped from ~1 GB raw RGBA dump to ~10–30 MB PNG-compressed Alpha8 atlas. Legacy .cache.* files are auto-deleted on startup.
  • AtlasPacker now uses SystemInfo.maxTextureSize and supports multi-atlas spill (dormant for current targets but wired in).

Unity 6 compatibility

  • New pure-C# PNG encoder replaces Texture2D.EncodeToPNG on the rasterizer path. Required because Unity 6 + Il2CppInterop throws Instances of abstract classes cannot be created in BlittableArrayWrapper.Unmarshal — the marshalled byte[] return wrapper can't be instantiated on that runtime.
  • PNG output uses ColorType 4 (grayscale + alpha) so Unity's LoadImage routes the SDF byte into the texture's alpha channel, avoiding the "white squares" artefact that ColorType 0 PNGs produced.
  • Streaming row-by-row encode keeps peak transient RAM under 50 MB during the encode itself.

Diagnostics & privacy

  • Always-on environment snapshot at startup logs Unity / OS / GPU / RAM / maxTextureSize / Alpha8 support / culture in a single block.
  • Logs now strip the Windows username from paths, hide custom AI / API hosts (stock hosts kept in clear), and mask the API username — making bug-report logs safe to share publicly.
  • EncodeToPNG and WriteAllBytes failures now surface the inner exception, drive free space and texture state.

Downloads

Pick the zip matching your mod loader:

File Mod loader
UnityGameTranslator-BepInEx5-v0.9.64.zip BepInEx 5 (Mono)
UnityGameTranslator-BepInEx6-Mono-v0.9.64.zip BepInEx 6 (Mono)
UnityGameTranslator-BepInEx6-IL2CPP-v0.9.64.zip BepInEx 6 (IL2CPP)
UnityGameTranslator-MelonLoader-Mono-v0.9.64.zip MelonLoader (Mono)
UnityGameTranslator-MelonLoader-IL2CPP-v0.9.64.zip MelonLoader (IL2CPP)
Source: README.md, updated 2026-06-03