BF1 Localization Tool

A WPF localization editor for Star Wars: Battlefront (Classic 2004) and Battlefront II (2005). Reads and writes core.lvl directly in memory via a custom ucfb engine, no third-party utilities. Marker validation, technical-string detection, Cyrillic glyph injection into the BF1 font atlas.

Features

BF1LocalizationTool.GUI — a WPF editor for creating and editing localizations of both games. Reads and writes core.lvl directly in memory via a custom UcfbReader/UcfbWriter — no third-party utilities (no QuickBMS, no munge/unmunge). Game version is auto-detected from the file path, and the string format (plain-text .txt or binary Locl) from the actual chunk content. Filters rows by language, translation status, and technicality (Technical / Translated / Untranslated — mutually exclusive); a validator checks that technical markers survive translation (%s %d %i %f %c %u, {btn...}, [X], newlines) and hard-rejects stray Cyrillic-adjacent Russian letters that end up in the translation; a configurable “too long” translation threshold (default 1.3× the original plus a margin), calibrated against real in-game text truncation cases; auto-detection of technical strings that don’t need translation (URLs, numbers, identifiers, key names, cheat codes, copyright text); autosave, file logging; CSV export/import for batch translation via external services. Dark/light theme.

BF1LocalizationTool.Diagnostic (console, distributed as source only) solves BF1’s main limitation: the .txt text channel (Latin1) doesn’t support Cyrillic on its own. The tool injects new Cyrillic glyphs (real Unicode code points, no mapping table) directly into the core.lvl font atlas, without overwriting a single English glyph. Glyph rasterization and metric models live in a separate BF1LocalizationTool.FontGenerator module.

File Format

The game stores resources in hierarchical .lvl containers (ucfb, Pandemic Studios). Localization strings live under core.lvl → localization → [language] in one of two formats: plain-text .txt (0xHASH text, Latin1, both games — no Cyrillic support) or binary Locl (hash + text, UTF-16LE, BF2 only — full Cyrillic support out of the box). All of BF1’s text is confirmed to live in exactly two files (Data\_LVL_PC\core.lvl and the Tat3 add-on’s core.lvl), fonts only in the first; the Tat3 add-on has no fonts of its own and uses the base game’s atlas.

Requirements

Windows 10/11, Star Wars: Battlefront (Classic 2004) and/or Battlefront II on Steam. Prebuilt binaries (win-x64/win-x86) require no .NET installation; the generic build requires .NET 10 Desktop Runtime. Generating a Cyrillic core.lvl via BF1LocalizationTool.Diagnostic (source only) additionally requires the .NET 10 SDK.

Download

The latest releases (a ready-to-run .zip with the GUI editor) are available on GitHub Releases. The release contains the GUI only; BF1LocalizationTool.Diagnostic is built from source separately.

Security and Transparency

The source code for every component is completely open, and all .lvl file transformation logic is transparent — allowing the mod to be verified on Nexus Mods. The repository contains no extracted game files and no font .ttf files (they’re public on Google Fonts, linked in Credits below).

Developed for Star Wars: Battlefront (Classic 2004) — Ukrainian Localization.

Credits

  • The Gametoast community — game format documentation
  • swbf-unmunge — initial analysis of the ucfb structure
  • Sofia Sans Extra Condensed (Lettersoup — Botio Nikoltchev, Ani Petrova, SIL OFL) — the font used to render BF1’s Cyrillic glyphs
  • Unbounded (Web3 Foundation / Studio Koto / NaN / Parity Technologies, SIL OFL) and Exo 2 (Natanael Gama, SIL OFL) — the fonts used to render BF2’s Cyrillic glyphs