Godot Decompiler

Godot Decompiler Online

PCK, EXE, APK or a bare .gdc — back to a project you can open, with real GDScript source.

.pck .exe .apk .gdc
Drop your Godot game here
Choose file

⚠ Drag-and-drop upload could not load — an ad blocker is most likely blocking it. Please disable your ad blocker and reload the page to upload a file.

How It Works

1

Upload

Drop the .pck, the game .exe, the APK or a single .gdc. The format is read from the file itself, not its name.

2

Recover

The pack is unpacked, imported resources are converted back to their source formats, and every script is decompiled.

3

Browse

Read the project in your browser, or download the tree as a ZIP and open it in the Godot editor.

Godot Is the One Engine That Decompiles Properly

Most of what this site does is lossy. C# and Java decompile well because their bytecode keeps a type system; C++ compiled to native code barely decompiles at all; a Unity IL2CPP build gives you declarations and nothing inside the methods. Godot is the outlier in the other direction.

GDScript is never compiled to machine code. Exporting a project turns each .gd file into a .gdc, which is a token stream: the same script with each keyword, operator and identifier replaced by a number, plus tables of the constants and names it used. Nothing is inlined, nothing is optimised away, nothing is renamed. Reversing it is close to running the tokenizer backwards, and what comes out is source — variable names, type hints, signal declarations, enum members, exported properties and the original control flow, all intact.

The one thing that genuinely does not survive is anything the tokenizer threw away: comments, blank lines and the exact spacing. Everything else you get back is what the developer wrote.

What You Upload

The .exe That Contains Nothing

This trips up almost everyone. Godot's Embed PCK export setting is off by default, so the typical shipped game is a folder with game.exe and game.pck side by side. The executable is an unmodified copy of Godot's export template — the same bytes for every game built with that engine version — and contains no part of the game whatsoever.

If you upload one of those, you will get a note saying exactly that. Upload the .pck that sits next to it instead. When the pack is embedded, it is appended to the end of the file with its size and a GDPC marker in the last twelve bytes, which is how it is detected here regardless of what the file is called.

What You Get Back

The recovery report names the editor version to open the project with. Use it: a project recovered from a 3.5 game will not load cleanly in Godot 4.

A Godot APK Is Two Applications in One

Decompiling a Godot Android game with a plain APK tool gets you GodotApp, GodotEditText, a handful of plugin shims and whatever ad SDK was linked in. That is the launcher, not the game.

The game is unpacked loose under assets/.gdc scripts, .scn scenes and .ctex textures as individual entries in the APK's zip — along with assets/project.binary, the compiled project settings. Android tooling has no reason to look there, so it never does. Upload the APK here and that half is recovered into godot/ while the Java side is decompiled as normal.

Versions and Formats

Godot 2.x, 3.x and 4.x are all supported, including the pack format introduced in recent 4.x releases that moved the archive's file index to the end of the file.

One quirk is worth knowing. Godot 4.0 through 4.2 shipped GDScript as plain text — the exported pack contains readable .gd files and no bytecode at all. Binary tokenization returned as an export option in 4.3, and games built with 4.3 and later are back to shipping .gdc. Either way you end up with source; in the first case there was never anything to decompile.

Limits

What It Is Used For

Recovering your own game after losing the project folder — the most common reason by far, and the case Godot's design makes genuinely possible. Beyond that: studying how a mechanic was implemented, auditing what a game does with your data, translation and modding work, and checking whether a shipped build leaks keys in its string constants. Decompiling software you do not own may be restricted by its licence and by local law; that judgement is yours to make before you upload.

Frequently Asked Questions

Can you really get GDScript source back?

Yes. GDScript is tokenized, not compiled to machine code, so names, types, constants and structure all survive. Only comments and blank lines are lost.

What is a .pck file?

Godot's package archive — one file holding the whole game. Every exported game has one, either beside the executable or appended to it.

I uploaded the .exe and got nothing back.

Embedding the pack is off by default. If there is a .pck next to the .exe, upload that one — the executable is only the engine.

Does this work on Godot Android games?

Yes. Upload the APK and the recovered project appears in a godot/ folder next to the normal Java output.

Which Godot versions work?

2.x, 3.x and 4.x, current pack formats included. Projects built with Godot 4.0–4.2 ship their scripts as plain text already.

Can you open an encrypted PCK?

No. The encryption key is chosen at export time and is not stored in the archive.

Can I open the result in the Godot editor?

Yes — download the ZIP and open project/. Use the editor version named in the recovery report; a 3.x project will not load cleanly in Godot 4.

Does decompiling run the game?

No. The file is read as an archive and parsed. Nothing from it is executed, and the work happens in an isolated, time-limited worker process.