FEZTXT Format

FEZTXT files contain localized game text. FEZRepacker stores them as UTF-8-encoded JSON files with the .feztxt.json extension.

JSON Structure

The root object maps language codes to language resources. Each language resource maps text IDs to strings:

Dictionary<string, Dictionary<string, string>>
{
  "": {
    "ExampleGreeting": "HELLO!",
    "ExampleStatus": "CUBES: {0}"
  },
  "fr": {
    "ExampleGreeting": "BONJOUR !",
    "ExampleStatus": "CUBES : {0}"
  }
}

The empty language code ("") contains the default English text. When the selected language or requested text ID is unavailable, the game falls back to the corresponding entry in this default language resource.

Language Codes

The resource files contain the following language keys:

Key Language
"" English
fr French
it Italian
de German
es Spanish
pt Portuguese
ja Japanese
ko Korean
zh Chinese

Non-default language resources may omit entries.

Text Entries

Each entry consists of a text ID and its displayed string:

Part Type Description
Text ID String Text identifier (ID)
Text String Text displayed for that ID in the containing language

Text IDs should match across language resources so each translation corresponds to the same game text. Preserve IDs exactly when editing them because references in other assets are not updated automatically.

Text strings may contain:

  • Escaped line breaks such as \r\n.
  • Composite-format placeholders such as {0}.

Translations must preserve any placeholders expected by the game.