A simple unpacker for Godot Engine package files (.pck)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
LICENSE
Package.bat
README.md
Run.bat
godotdec.hxproj

README.md

godotdec

A simple unpacker for Godot Engine package files (.pck)

Usage

godotdec <input_file> [<output_dir>]

Technical details

Godot Engine's package format is specified as:

Value/Type Description
0x43504447 Magic number (GDPC)
4 x Int32 Engine version: version, major, minor, revision
16 x Int32 Reserved space, 0
Int32 Number of files in archive
----- Begin of file index, for each file the following data is stored ----
Int32 Length of path string
String Path as string, e.g. res://actors/Enemy/enemy.atex
Int64 File offset
Int64 File size
16 bytes MD5
----- Begin of file contents -----

The source code of the .pck packer can be found here

Limitations

  • Modified engine versions may use a custom package format, which godotdec does not support
  • Very big files might not be unpacked correctly, but that's untested for now
  • MD5 checksum is not used to verify extracted files

Remarks

No reverse engineering has been used to write this tool.

I released it as a helper for artists to search games for unlicensed use of their assets. It is not meant to encourage extraction with the sole purpose of using assets in your own products without permission of the copyright holder.

Remember: don't steal assets from other people's games. Respect copyrights. And don't protect your own games - it's unnecessary effort.