You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
nikitalita a472f97159
CI: Don't run build editor checks for .vscode
2 months ago
.github CI: Don't run build editor checks for .vscode 2 months ago
.scripts Sync with Godot API changes. Update and apply clang-format rules to match Godot. (#36) 1 year ago
.vscode vscode templates for bootstrapping 2 months ago
bytecode sync with master @8912f3e4 2 months ago
compat Prevent real loads on text resources 2 months ago
doc_classes Sync documentation. 1 year ago
editor Fix GDRE tools not working in editor 2 months ago
external/toojpeg Add jpg and webp saving 1 year ago
helpers Add dummy project.godot to the helpers folder 3 years ago
icons Update for 4.0 API 3 years ago
images Prep README.md for release 4 months ago
misc Sync with Godot API changes. Update and apply clang-format rules to match Godot. (#36) 1 year ago
standalone Log project export messages to GUI log 2 months ago
utility improve translation key guessing 2 months ago
.clang-format Sync with Godot API changes. Update and apply clang-format rules to match Godot. (#36) 1 year ago
.gitattributes Add GitHub Actions CI (#33) 1 year ago
.gitignore vscode templates for bootstrapping 2 months ago
BYTECODE_HISTORY.md Update docs. 2 years ago
LICENSE Initial commit 4 years ago
README.md vscode templates for bootstrapping 2 months ago
SCsub generate version header using `git describe` 4 months ago
config.py Sync documentation. 1 year ago
gdre_icon_builder.py Standalone: Fix icon display, disable embedded windows, disable binary export, fix CI (#54) 8 months ago
register_types.cpp Log project export messages to GUI log 2 months ago
register_types.h Fix module initialization 8 months ago

README.md

Godot RE Tools

This software in an alpha stage. Please report any bugs on the github page.

Introduction

Code Screenshot

This module includes following tools:

  • 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.

Grab the latest release version from here: https://github.com/bruvzg/gdsdecomp/releases

Limitations

Support has yet to be implemented for converting the following resources:

  • ADPCM wavs
  • Fonts
  • Translation files
  • Models (obj, dae, fbx, glb, etc.)

In addition, it does not support decompiling any GDNative or GDMono scripts. For Mono/CSharp, you can use Ilspy or dotPeek.

Usage

GUI

  • To perform full project recovery from the GUI, select "Recover project..." from the "RE Tools" menu: Menu screenshot
  • If the project is encrypted, select the "Set encryption key..." menu option first first and enter the key.
  • In the file dialog, select the apk, pck, or embedded exe you want to recover:

File dialog

  • In the PCK explorer dialog, select "Full Recovery" or "Extract Only", then select the directory you want to recover the project to, then click "Extract...":

Recovery dialog screenshot

  • After it finishes, it will pop up a recovery box telling you the location of the log file, what editor version you should use when editing the recovered project, report any non-recovered assets:

Recovery log

Command Line

gdre_tools --headless --recover=game.pck

Optional arguments:

  • --output-dir=<out_dir> : Output directory, defaults to <NAME>_extracted, or the project directory if one is specified
  • --key=<key> : The Key to use if PAK/EXE/APK is encrypted (64 character hex string)

Use the same Godot tools version that the original game was compiled in to edit the project; the recovery log will state what version was detected.

Compiling from source

Clone this repository into Godot's modules subfolder as gdsdecomp. Rebuild Godot engine as described in https://docs.godotengine.org/en/latest/development/compiling/index.html.

For ease of bootstrapping development, we have included launch, build, and settings templates for vscode in the .vscode directory. Once you have read the instructions for compiling Godot above and set up your build environment: put these in the .vscode folder in the Godot directory (not gdsdecomp), remove the ".template" from each, and launch vscode from the Godot directory.

Requirements

Godot 4.0 (master branch) @ commit ae86d907e7

  • Support for building on 3.x has been dropped and no new features are being pushed
    • Godot RE Tools still retains the ability to decompile 3.x and 2.x projects, however.

Standalone

Assuming you compiled with scons platform=linuxbsd target=template_debug,

$ bin/godot.linuxbsd.template_debug.x86_64.llvm --headless --path=modules/gdsdecomp/standalone --recover=<pck/apk/exe>

License

The source code of the module is licensed under MIT license.

Travis Build Status