unp4k
These tools allow users to open, decrypt, and extract data from Star Citizen .p4k
files.
Installation:
- Download
unp4k-suite-v3.3.x.zip
- Right click the zip and select Properties
- Under the General tab, check the Unblock checkbox at the bottom if it exists, and click ok
- Extract the selected zip to your desired installation directory
NOTE: unforge currently requires .Net Framework 4.6.2 or greater to run. If you receive the error Method not found: '!!0[] System.Array.Empty()'.
you will need to install this framework.
Quickstart:
- Drag
Data.p4k
from theStarcitizen\LIVE
folder, directly ontounp4k.exe
Advanced Command Line Usage:
- Launch a command line, and navigate to the unp4k directory
- Execute
unp4k.exe c:\path\to\data.p4k [filter]
where filter is a keyword used to filter the results (the default filter is*.*
)
NOTE: The filter does not fully support wildcards. To extract files of a certain type, you may use *.ext
as the filter, but no further wildcard functionality exists.
Basic GUI Usage:
- Launch
unp4k.gui.exe
- Select
File
>Open
and browse to your chosenData.p4k
- Browse the file structure
- Right click to extract/open files
NOTE: unp4k.gui is early alpha, and has many crashes, and unfinished features. Use at your own risk
File Format Overview:
The p4k files used by Star Citizen are Zip archives.
Star Citizen supports data in multiple modes inside the archive, including STORE, DEFLATE, and custom support for ZSTD.
Star Citizen also implements bespoke encryption over some of the data inside the archive - this can all be decrypted with the same public key that is utilized by CryEngine based games for various encryption routines within the engine.
Inside the p4k file, XML files are often stored as CryXML rather than raw XML.
CryXML is a basic serialized XML format which unforge.exe
is able to deserialize.
Inside the p4k file, there is also a game.dcb
file, which is a bespoke database format, with similarities to CryXML.
This is the product of what is known internally as "DataForge", and is also able to be converted/extracted using the unforge.exe
tool.