pyuepak is a Python library for working with Unreal Engine .pak files.
- Can read and write
.pakversions 1–11 - Can read encrypted paks
- Can read Zlib, Oodle compressed paks
pip install pyuepakOr install directly from the repository:
git clone https://github.com/stas96111/pyuepak.git
cd pyuepak
pip install -r requirements.txt
pip install .pyuepak [OPTIONS] COMMAND [ARGS]...Global option:
--aes <key> — AES key for encrypted .pak files.
| Command | Description |
|---|---|
info |
Show info about a .pak file |
list |
List all files in the archive |
extract |
Extract one file |
unpack |
Unpack all files |
pack |
Pack a folder into .pak |
read |
Read a file and print to stdout |
pyuepak info -p game.pak
pyuepak unpack -p game.pak -o out/
pyuepak extract -p game.pak -f "Game/Content/file.txt"
pyuepak pack -i folder -o new.pakEncrypted file:
pyuepak --aes 1234567890ABCDEF info -p encrypted.pakfrom pyuepak import PakFile, PakVersion
pak = PakFile()
pak.read(r"path/to/pak.pak")
print(pak.list_files()) # ["/Game/asset.uasset", ...]
print(pak.mout_point) # "../../../" (default)
print(pak.key) # b'0000000...' AES key (default)
print(pak.path_hash_seed) # 0 (default)
print(pak.count) # prints file count
data = pak.read_file(r"/Game/asset.uasset") # return binary data
pak.remove_file(r"/Game/asset.uasset")
new_pak = PakFile()
new_pak.add_file("/Game/asset.uasset", data)
new_pak.set_version(PakVersion.V11)
new_pak.set_mount_point("../../..")
new_pak.write(r"path/to/pak.pak")Contributions are welcome! Please open issues or submit pull requests.
This project is based on information and ideas from two great open-source tools:
This project is licensed under the MIT License.