godotdec is an unpacker for Godot Engine package files (.pck), designed to extract assets from these proprietary archives. It provides a straightforward way to access and analyze game resources stored in the .pck format.
Key Features:
Extracts all types of files contained within .pck archives, including textures, audio, and scripts.
Supports optional conversion of engine-specific file formats (e.g., textures and some audio streams) into standard formats like PNG and OGG.
Maintains compatibility with the Godot Engine's defined package format specifications.
Audience & Benefit:
Ideal for artists, developers, and researchers who need to examine or verify assets within Godot-engine games. It enables users to access resources for legitimate purposes such as studying game internals, auditing asset usage, or troubleshooting development issues.
godotdec can be installed via winget, making it accessible for Windows users.
README
godotdec
An unpacker for Godot Engine package files (.pck)
Usage
godotdec [] []
Options:
Flag (short)
Flag (long)
Description
-c
--convert
Convert certain engine-specific file types (textures, some audio streams) to standard formats.
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
This tool is designed to extract assets. If you are interested in the scripts of a game, check out Godot RE Tools
MD5 checksum is not used to verify extracted files
Format conversion is only supported for .png, .ogg
Modified engine versions may use a custom package format, which godotdec does not support
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.