Unpaker 1.1.0

dotnet add package Unpaker --version 1.1.0
                    
NuGet\Install-Package Unpaker -Version 1.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Unpaker" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Unpaker" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Unpaker" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Unpaker --version 1.1.0
                    
#r "nuget: Unpaker, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Unpaker@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Unpaker&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Unpaker&version=1.1.0
                    
Install as a Cake Tool

Unpaker

CI License: MIT NuGet .NET GitHub release

A comprehensive C# library and desktop application for reading and writing Unreal Engine 4 Pak archive files, compatible with GTA:III, GTA:VC, and GTA:SA Definitive Editions.

Screenshot

Features

Library (Unpaker)

  • Full Pak Format Support: Supports Pak versions V0 through V11
  • Compression: Supports multiple compression algorithms including Zlib, Gzip, Oodle, Zstd, and LZ4
  • Encryption: AES-256 encryption support for pak indices and file data
  • Reading: Extract files from existing pak archives
  • Writing: Create new pak archives with customizable options
  • Mount Points: Support for custom mount point paths
  • Path Hash Seeds: Support for v10+ pak files with path hash seeds

Command-Line Interface (Unpaker.CLI)

  • List: View contents of pak files
  • Extract: Extract files from pak archives
  • Create: Create new pak archives from directories
  • Add: Add files to existing pak archives
  • Info: Display detailed information about pak files

Desktop Application (Unpaker.Desktop)

  • Modern Dark UI: Beautiful dark theme with GTA:VC-inspired accent colors
  • File Management: View, add, remove, and extract files from pak archives
  • Search: Real-time search filtering by file name or path
  • Batch Operations: Extract multiple files or all files at once
  • Pak Creation: Create new pak archives with customizable options:
    • Version selection (V0-V11)
    • Compression method selection (Zlib, Gzip, Oodle, Zstd, LZ4)
    • AES-256 encryption support
    • Custom mount points
  • Detailed Information: View pak file metadata including version, compression, mount point, and encryption status
  • Context Menu: Right-click support for quick file operations

Installation

Requirements

  • .NET 8.0 SDK or later (for building from source)
  • Windows (for desktop application)

Pre-built Binaries

Desktop Application

Download the latest release from GitHub Releases and extract Unpaker.Desktop.exe. The native Oodle library (oo2core_9_win64.dll) is included for Oodle compression support.

Command-Line Interface

Download the latest release from GitHub Releases and extract Unpaker.CLI.exe. The native Oodle library (oo2core_9_win64.dll) is included for Oodle compression support.

NuGet Package (Library)

Install the library via NuGet Package Manager or using the .NET CLI:

dotnet add package Unpaker

Or using Package Manager Console:

Install-Package Unpaker
Oodle Compression Support

To enable Oodle compression/decompression in your application, download the oo2core_9_win64.dll from the Oodle SDK and place it in your application's output directory (same folder as your executable). Oodle support requires .NET 8.0 or later.

Building from Source

# Clone the repository
git clone https://github.com/vaibhavpandeyvpz/unpaker.git
cd unpaker

# Build the solution
dotnet build

# Run the desktop application
cd Unpaker.Desktop
dotnet run

# Or build the CLI
cd Unpaker.CLI
dotnet run -- --help

Usage

Desktop Application

  1. Launch Unpaker.Desktop.exe
  2. Click Open to load an existing pak file
  3. Use the toolbar buttons to:
    • New: Create a new pak archive
    • Open: Open an existing pak file
    • Save/Save As: Save changes to pak files
    • Add: Add files to the pak
    • Remove: Remove files from the pak
    • Extract: Extract selected files
    • Extract All: Extract all files
    • Reload: Reload the current pak file

Command-Line Interface

# List contents of a pak file
unpaker list path/to/file.pak

# Extract all files
unpaker extract path/to/file.pak --output ./extracted/

# Extract specific files
unpaker extract path/to/file.pak --output ./extracted/ --files file1.txt file2.txt

# Create a new pak file with Zlib compression
unpaker create --output new.pak --input ./source/ --version V11 --compression Zlib

# Create a new pak file with Oodle compression
unpaker create --output new.pak --input ./source/ --version V11 --compression Oodle

# Add files to existing pak
unpaker add existing.pak --input ./newfiles/

# Get pak file information
unpaker info path/to/file.pak

Project Structure

unpaker/
├── Unpaker/              # Core library
├── Unpaker.CLI/          # Command-line interface
├── Unpaker.Desktop/       # WPF desktop application
└── Unpaker.Tests/        # Unit tests

Supported Games

  • Grand Theft Auto: III - Definitive Edition
  • Grand Theft Auto: Vice City - Definitive Edition
  • Grand Theft Auto: San Andreas - Definitive Edition

Development

Running Tests

dotnet test

Code Structure

  • Unpaker: Core library containing Pak reading/writing logic
  • Unpaker.CLI: Command-line interface using System.CommandLine
  • Unpaker.Desktop: WPF application with MVVM pattern
  • Unpaker.Tests: Comprehensive unit tests including real pak file validation

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

Vaibhav Pandey (VPZ)

Acknowledgments

All game names and logos are property of their respective owners and are used for illustration purposes only.

Support

For issues, feature requests, or questions, please open an issue on GitHub Issues.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0 670 12/2/2025
1.0.0 670 12/1/2025