: Mafkers Docs

Godot Engine Support

Guide to translating Godot 3.x and 4.x games with Mafkers.

Supported Versions

VersionStatusNotes
Godot 3.0-3.6⚠️ ConditionalOnly if source CSV is shipped in .pck
Godot 4.0✅ SupportedGettext .po/.pot native support
Godot 4.1✅ Supported
Godot 4.2✅ Supported
Godot 4.3✅ Supported
Godot 4.4✅ Supported
Godot 4.5✅ Supported
Godot 4.6✅ SupportedLatest

How Mafkers Detects Godot

  1. .pck file with magic GDPC in header
  2. Executable contains “Godot Engine” string

Where Strings Are Stored

Godot 4.x supports native gettext format:

  • .po / .pot - translation source (text, AI-friendly)
  • .mo - compiled gettext (binary)

Mafkers parses .po files directly - very reliable.

translations/game.po po
# Example .po file
msgid "Hello, world!"
msgstr "Halo, dunia!"

msgid "Press any key to continue"
msgstr "Tekan tombol apa saja untuk melanjutkan"

Godot 3.x (CSV → OptimizedTranslation - PROBLEMATIC)

Godot 3.x compiles CSV to binary .translation (OptimizedTranslation):

“This class does not store the untranslated strings for optimization purposes.”

Key is NOT recoverable from binary .translation.

Mafkers supports Godot 3.x ONLY IF source CSV is shipped in .pck.

Key not recoverable

If game only ships .translation (binary OptimizedTranslation) without source CSV, Mafkers CANNOT translate this game. Workaround: Use gdsdecomp to decompile the .pck and look for source CSV.

Inline Strings (.tscn/.tres/.gd)

Both Godot 3.x and 4.x store inline strings in text-based scene/resource files:

  • .tscn - Text SCeNe (human-readable)
  • .tres - Text RESource (human-readable)
  • .gd - GDScript (Python-like)

Mafkers extracts text = "..." patterns from these files.

Tools Used

  • godotpcktool (MIT) - pack/unpack .pck files
  • godot_parser (MIT, Python) - parse .tscn/.tres
  • gdsdecomp (MIT) - full project recovery (on-demand install)

Common Issues

“Key not recoverable” (Godot 3.x)

If game only ships .translation (binary OptimizedTranslation) without source CSV:

  • Mafkers CANNOT translate this game
  • Workaround: Use gdsdecomp to decompile the .pck and look for source CSV

.pck Encrypted

Some Godot games encrypt .pck with --encrypt flag. Mafkers can recover the encryption key from the executable using gdsdecomp.

tools/gdsdecomp.sh bash
# gdsdecomp usage
gdsdecomp --extract-pck game.pck --output extracted/

Was this page helpful?