Godot RE Tools
Introduction

This module includes following features:
- Full project recovery
- PCK archive extractor / creator.
- GDScript batch decompiler.
- Resource text <-> binary batch converter.
Full project recovery performs the following:
- Loads project resources from an APK, PCK, or embedded EXE file
- Decompiles all GDScript scripts
- Recovers the original project file
- Converts all imported resources back to their original import formats
- Converts any auto-converted binary resources back to their original text formats
- Recreates any plugin configuration files
This module has support for decompiling Godot 4.x, 3.x, and 2.x projects.
Installation
Grab the latest release version from here: https://github.com/GDRETools/gdsdecomp/releases
On Windows, you can also install it from Scoop:
scoop bucket add games
scoop install gdsdecomp
Usage
GUI
- To perform full project recovery from the GUI, select "Recover project..." from the "RE Tools" menu:

- Or, just drag and drop the PCK/EXE onto the application window.
Command Line
Usage:
gdre_tools --headless [options]
Main commands:
--recover= Perform full project recovery on the specified PCK, APK, EXE, or extracted project directory.
--extract= Extract the specified PCK, APK, or EXE.
--list-files= List all files in the specified PCK, APK, or EXE and exit (can be repeated)
--compile= Compile GDScript files to bytecode (can be repeated and use globs, requires --bytecode)
--decompile= Decompile GDC files to text (can be repeated and use globs)
--pck-create= Create a PCK file from the specified directory (requires --pck-version and --pck-engine-version)
--pck-patch= Patch a PCK file with the specified files
--list-bytecode-versions List all available bytecode versions
--dump-bytecode-versions= Dump all available bytecode definitions to the specified directory in JSON format
--txt-to-bin= Convert text-based scene or resource files to binary format (can be repeated)
--bin-to-txt= Convert binary scene or resource files to text-based format (can be repeated)
--patch-translations== Patch translations with the specified CSV file and source path
(e.g. "/path/to/translation.csv=res://translations/translation.csv") (can be repeated)
--gdre-help Print the help message and exit
--gdre-version Print the version of GDRE tools and exit
Recover/Extract Options:
--key= The Key to use if project is encrypted as a 64-character hex string,
e.g.: '000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F'
--output= Output directory, defaults to , or the project directory if one of specified
--scripts-only Only extract/recover scripts
--include= Include files matching the glob pattern (can be repeated, see notes below)
--exclude= Exclude files matching the glob pattern (can be repeated, see notes below)
--ignore-checksum-errors Ignore MD5 checksum errors when extracting/recovering
--skip-checksum-check Skip MD5 checksum check when extracting/recovering
--csharp-assembly= Optional path to the C# assembly for C# projects; auto-detected from PCK path if not specified
--force-bytecode-version= Force the bytecode version to be the specified value. Can be either a commit hash (e.g. 'f3f05dc') or version string (e.g. '4.3.0')
--load-custom-bytecode= Load a custom bytecode definition file from the specified JSON file and use it for the recovery session
--translation-hint= Load a translation key hint file (.csv, .txt, .po, .mo) and use it during translation recovery
--skip-loading-resource-strings Skip loading resource strings from all resources during translation recovery
Decompile/Compile Options:
--bytecode= Either the commit hash of the bytecode revision (e.g. 'f3f05dc'), or the version of the engine (e.g. '4.3.0')
--load-custom-bytecode= Load a custom bytecode definition file from the specified JSON file and use it for the session
--output= Directory where compiled files will be output to.
- If not specified, compiled files will be output to the same location
(e.g. '/main.gd' -> '/main.gdc')
Create PCK Options:
--output= The output PCK file to create
--pck-version= The format version of the PCK file to create (0, 1, 2)
--pck-engine-version= The version of the engine to create the PCK for (x.y.z)
--embed= The executable to embed the PCK into
--key= 64-character hex string to encrypt the PCK with
Patch PCK Options:
--output= The output PCK file to create
--patch-file== The file to patch the PCK with (e.g. "/path/to/file.gd=res://file.gd") (can be repeated)
--include= Only include files from original PCK matching the glob pattern (can be repeated)
--exclude= Exclude files from original PCK matching the glob pattern (can be repeated)
--embed= The executable to embed the patched PCK into
--key= 64-character hex string to decrypt/encrypt the PCK with
Patch Translations Options:
(Note: This can be used in combination with --pck-patch and its options)
--pck= The PCK file with the source translations (if used in combination with --pck-patch, this can be omitted)
--output= The output directory to save the patched translations to (optional if used in combination with --pck-patch)
--locales= The locales to patch (comma-separated list, defaults to only newly-added locales)