PackCraft

Create, open, append to and extract Zip, Tar, Tar.gz, Tar.lz4 and Tar.oodle archives at runtime from files or memory, with async Blueprint nodes.

Malware-scannedSigned licence keyInstant downloadUpdates included
PackCraft β€” screenshot 1
PackCraft β€” screenshot 2
PackCraft β€” screenshot 3
PackCraft β€” screenshot 4
PackCraft β€” screenshot 5
PackCraft β€” screenshot 6
PackCraft β€” screenshot 7
PackCraft β€” screenshot 8
PackCraft β€” screenshot 9
PackCraft β€” screenshot 10
PackCraft β€” screenshot 11
PackCraft β€” screenshot 12
PackCraft β€” screenshot 13
PackCraft β€” screenshot 14
1 / 14
Zip (Zip64 on disk), Tar, Tar + GZip, Tar + LZ4 and Tar + Oodle (UE 5) archivers with…
Archives in files or entirely in memory
Append entries to existing zip files
Async Archive/Unarchive Directory and Files nodes with progress, success and failure pins
Add entries from files, directories (recursive) or byte arrays
Extract single entries, lists of entries or whole directories
$11.99

PackCraft packs and unpacks archives while your game or tool is running. Choose an archiver class (Zip, Tar, Tar with GZip, Tar with LZ4 or Tar with Oodle), create or open an archive on disk or in memory, add entries from files or byte arrays, list them and extract them again.

For the common cases a single async node is enough: Archive Directory, Archive Files, Unarchive Directory and Unarchive Files run on a background thread and report success, progress and failure through output pins. Zip archives can be reopened to append entries, and in-memory archives give you the finished bytes for uploads or save data.

Use it to export and import save games, ship and load mods and user-generated content, bundle logs and screenshots for bug reports, or unpack downloaded data packs. Raw GZip, LZ4 and Oodle compression of byte arrays is included.

PackCraft is part of the Alpha XP utilities collection for Unreal Engine 4.27 and 5.8. Every feature is exposed to Blueprints and C++, it ships with styled HTML documentation, and it is compiled and verified warning-free against clean UE 4.27 and UE 5.8 projects.

26Blueprint nodes
1Event
2Engine builds
2Platforms

Key features

  • Zip (Zip64 on disk), Tar, Tar + GZip, Tar + LZ4 and Tar + Oodle (UE 5) archivers with
  • Archives in files or entirely in memory
  • Append entries to existing zip files
  • Async Archive/Unarchive Directory and Files nodes with progress, success and failure pins
  • Add entries from files, directories (recursive) or byte arrays
  • Extract single entries, lists of entries or whole directories
  • Entry info: name, index, sizes, directory flag, creation time
  • Per-entry compression levels 0 to 10
  • Raw GZip, LZ4 and Oodle buffer compression on a background thread
  • Central error event and dedicated log category

Blueprint & C++ API

The API is organised into these entry points:

ClassTypeNodesUse it for
PackCraftBaseFunction library18The base class for the archiver. Do not create it manually!
PackCraftRawFunction library2Raw archiver class. Works with various archives, especially those specific to the engine, such as Oodle, LZ4, GZip, etc.
PackCraftUtilitiesFunction library1Provides general purpose utility functions for archivers
PackCraftZipPack Craft Base1Zip archiver class. Works with zip archives
Async action nodesLatent Blueprint nodes4Latent node with success / failure output pins.

Callable runs when executed Β· Pure no exec pin, returns a value Β· LatentAsync finishes later and fires its outputs

PackCraft 1

NodeTypeAvailable onDescription
Create Archiver(meta: PARAM() β†’ Pack Craft BaseCallableStaticCreate an archiver to archive/unarchive files and directories

Create 2

NodeTypeAvailable onDescription
Create Archive In Storage(Archive Path: String) β†’ BooleanCallableObjectCreate an archive in the specified path. The file will be created after calling the "CloseArchive" function
Create Archive In Memory(Initial Allocation Size: Integer) β†’ BooleanCallableObjectCreate an archive in memory

Open 3

NodeTypeAvailable onDescription
Open Archive From Storage(Archive Path: String) β†’ BooleanCallableObjectOpen an archive from storage
Open Archive From Memory(Archive Data: Array of Byte) β†’ BooleanCallableObjectOpen an archive from memory
Open Archive From Storage To Append(Archive Path: String) β†’ BooleanCallablePack Craft BaseOpen an archive from storage to append

Close 1

NodeTypeAvailable onDescription
Close Archive() β†’ BooleanCallableObjectClose previously created/opened archive

Get 4

NodeTypeAvailable onDescription
Get Archive Data() β†’ Boolean, Archive DataCallableObjectGet archive data created in memory
Get Archive Entries() β†’ Boolean, Num Of Archive EntriesCallableObjectGet the number of the archive entries
Get Archive Entry Info By Name(Entry Name: String) β†’ Boolean, Entry InfoCallableObjectGet information about the archive entry by name
Get Archive Entry Info By Index(Entry Index: Integer) β†’ Boolean, Entry InfoCallableObjectGet information about the archive entry by index

Add 4

NodeTypeAvailable onDescription
Add Entry From Storage(Entry Name: String, File Path: String, Compression Level: Pack Craft Compression Level) β†’ BooleanCallableObjectAdd entry from storage. In other words, import the file into the archive
Add Entries From Storage(On Result: Pack Craft Async Operation Result, On Progress: Pack Craft Async Operation Progress, File Paths: Array of String, Compression Level: Pack Craft Compression Level)CallableObjectAdd entries from storage. In other words, import files into the archive
Add Entries From Storage Directory(On Result: Pack Craft Async Operation Result, Directory Path: String, Add Parent Directory: Boolean, Compression Level: Pack Craft Compression Level)CallableObjectAdd entries from storage. Must be used for directories only
Add Entry From Memory(Entry Name: String, Data To Be Archived: Array of Byte, Compression Level: Pack Craft Compression Level) β†’ BooleanCallableObjectAdd entry from memory. In other words, import the data in-memory into the archive

Extract 4

NodeTypeAvailable onDescription
Extract Entry To Storage(Entry Info: Pack Craft Entry, File Path: String, Force Overwrite: Boolean) β†’ BooleanCallableObjectExtract entry to storage. In other words, extract the file from the archive to storage
Extract Entries To Storage(On Result: Pack Craft Async Operation Result, On Progress: Pack Craft Async Operation Progress, Entry Info: Array of Pack Craft Entry, Directory Path: String, Force Overwrite: Boolean)CallableObjectExtract entries to storage. In other words, extract the file from the archive to storage
Extract Entries To Storage Directory(On Result: Pack Craft Async Operation Result, Entry Name: String, Directory Path: String, Add Parent Directory: Boolean, Force Overwrite: Boolean)CallableObjectExtract entries to storage. Must be used for directories only
Extract Entry To Memory(Entry Info: Pack Craft Entry) β†’ Boolean, Unarchived DataCallableObjectExtract entry into memory. In other words, extract the file from the archive into memory

Utilities 1

NodeTypeAvailable onDescription
Parse Directories(File Path: String) β†’ Array of StringCallableStaticParse directories from path. It is assumed that the path is given to the file.

Raw 2

NodeTypeAvailable onDescription
Compress Raw Data Async(Raw Format: Pack Craft Raw Format, Compression Level: Pack Craft Compression Level, Uncompressed Data: Array of Byte, On Result: Pack Craft Raw Memory Result)CallableStaticAsynchronously compress raw data
Uncompress Raw Data Async(Raw Format: Pack Craft Raw Format, Compressed Data: Array of Byte, On Result: Pack Craft Raw Memory Result)CallableStaticAsynchronously uncompress raw data

Async 4

NodeTypeAvailable onDescription
Archive Directory(Archiver Class: Pack Craft Base, Archive Path: String, Directory Path: String, Add Parent Directory: Boolean, Compression Level: Pack Craft Compression Level) β†’ On Success, On Progress, On FailAsyncAsyncAsynchronously archive entries from a directory
Archive Files(Archiver Class: Pack Craft Base, Archive Path: String, File Paths: Array of String, Compression Level: Pack Craft Compression Level) β†’ On Success, On Progress, On FailAsyncAsyncAsynchronously archive entries from file paths
Unarchive Directory(Archiver Class: Pack Craft Base, Archive Path: String, Entry Name: String, Directory Path: String, Add Parent Directory: Boolean, …) β†’ On Success, On Progress, On FailAsyncAsyncAsynchronously unarchive entries in a directory to storage
Unarchive Files(Archiver Class: Pack Craft Base, Archive Path: String, Entry Names: Array of String, Directory Path: String, Force Overwrite: Boolean) β†’ On Success, On Progress, On FailAsyncAsyncAsynchronously unarchive entries to storage

Events & delegates

Bind these in Blueprint (drag off the object β†’ Bind Event) or with AddDynamic in C++.

EventParametersWhen it fires
On ErrorError Code (Pack Craft Error Code), Error String (String)Bind to know when an error occurs while running the archiver

Compatibility

UE 4.27PackCraft 4.27.zipUE 5.8PackCraft 5.8.zip

One ready-made build per engine version is included in the download β€” copy the one that matches your project.

PlatformSupported in
WindowsEditor & packaged
macOSEditor & packaged
ModuleTypeLoading phase
PackCraftRuntimeDefault

Technical details

Code modulesPackCraft (Runtime)
Blueprints0 Β· C++ classes: 11
Network replicatedNo
Development platformsWindows: Yes, Mac: Not verified
Target build platformsWin64
Third-party softwareYes
Engine versionsUnreal Engine 4.27 Β· 5.8 β€” a build for each is included
C++ classes11 + 1 structs
Blueprint nodes26
Events1
DocumentationDocumentation.html (in the download)
DownloadPackCraft.zip Β· 334 KB
Versionv1.0.0

Third-party components

  • miniz (development snapshot of 2024-08-05; Source/ThirdParty/miniz), Copyright 2013-2014 RAD Game Tools and Valve Software; Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC, MIT License
  • microtar (tar header and record handling, adapted; Source/ThirdParty/microtar), Copyright (c) 2017 rxi, MIT License

Both are shipped as source code compiled into the plugin (miniz and microtar are included by the PackCraft module), carry their notices inline, and send no data to their authors. The full attributions accompany the Third Party Software declaration submitted to Epic.

What's in the download

FileWhat it is
PackCraft 4.27.zipPlugin build for Unreal Engine 4.27
PackCraft 5.8.zipPlugin build for Unreal Engine 5.8
Documentation.htmlDocumentation (open in a browser)

Quick start

  1. Unzip the download and pick the build that matches your engine (4.27 Β· 5.8).
  2. Copy the PackCraft folder into your project's Plugins/ folder (create it if needed).
  3. Open the project, enable PackCraft under Edit β€Ί Plugins and restart the editor.
  4. Right-click in any Blueprint graph and search PackCraft β€” or include the public headers from C++.
  5. Package for your target platform (Windows, macOS).

Good to know

Built and verified warning-free for Unreal Engine 4.27 and 5.8. Oodle archives and Oodle raw compression need UE 5 (they report an error on UE 4.27); Blueprint byte arrays are limited to 2 GB, larger data uses the C++ TArray64 overloads. Developed and maintained by Alpha XP.

Everything included

  • Zip (Zip64 on disk), Tar, Tar + GZip, Tar + LZ4 and Tar + Oodle (UE 5) archivers with…
  • Archives in files or entirely in memory
  • Append entries to existing zip files
  • Async Archive/Unarchive Directory and Files nodes with progress, success and failure pins
  • Add entries from files, directories (recursive) or byte arrays
  • Extract single entries, lists of entries or whole directories
  • Entry info: name, index, sizes, directory flag, creation time
  • Per-entry compression levels 0 to 10
  • Raw GZip, LZ4 and Oodle buffer compression on a background thread
  • Central error event and dedicated log category

Platforms

Windows

Requirements

  • Unreal Engine 4.27 and 5.8
  • Develop on Windows (Win64)
  • Blueprints and C++

In the download

FilePackCraft.zip
FormatZIP
Size334 KB
Versionv1.0.0
Licence fileIncluded in the archive
SHA-256de8d125dee67de0b…

Personal

$11.99

One non-commercial project

  • 1 activation seat
  • 1 year of updates
  • One end product
  • Non-commercial use
  • Community support
  • 14-day refund window
Read the Personal terms
β˜… Most popular

Commercial

$59.99

Ship paid products

  • 5 activation seats
  • 1 year of updates
  • One paid end product
  • Unlimited end users
  • Priority support
  • Source files
  • 14-day refund window
Read the Commercial terms

Extended

$189.00

Resell & white-label

  • Unlimited activation seats
  • Lifetime updates
  • Unlimited end products
  • White-label & resell
  • 1-hour SLA
  • Seat-free team use
  • 14-day refund window
Read the Extended terms

One purchase per product, no subscription. Each licence comes with a signed key β€” 1 seat on Personal, 5 seats on Commercial, unlimited seats on Extended. Paid licences can be refunded within 14 days from your order page.

  1. v1.0.0Latest
    • Unreal Engine 4.27 and 5.8
    • Blueprint and C++ API, HTML documentation
β€”
β˜…β˜…β˜…β˜…β˜…
No reviews yet
5β˜…0%
4β˜…0%
3β˜…0%
2β˜…0%
1β˜…0%

Be the first to review PackCraft β€” reviews come from customers who bought it, so every one is a verified purchase.

Reviews are for customers who bought PackCraft.
Email supportsupport@alphaxp.net β€” include your order reference.
What support coversInstallation help, download or activation problems, and questions about documented behaviour, for your licence term.
Keys & downloadsLost a key or a download link? Everything you bought is in My library.
Refunds & terms14-day refunds from your order page. Refund policy Β· Personal terms Β· Commercial terms Β· Extended terms

Frequently asked

How do I get the files after paying?

Straight after checkout you land on your order page with the download button and your licence key. A receipt is emailed to you, and every order stays in My library.

Which licence do I need?

Personal β€” One non-commercial project. Commercial β€” Ship paid products. Extended β€” Resell & white-label. The Licences tab compares them side by side.

On how many devices can I activate it?

1 seat on Personal, 5 seats on Commercial, unlimited seats on Extended.

How long do I get updates?

Personal: 1 year of updates, Commercial: 1 year of updates, Extended: lifetime updates, counted from your purchase.

Can I get a refund?

Yes β€” paid licences can be refunded within 14 days, straight from your order page.

Is the download safe?

The file was scanned with ClamAV when it was published. Its SHA-256 checksum is listed under Features β†’ In the download, so you can verify the file you receive.

Do I need an account?

No. Checkout only needs your email. Signing in keeps all your purchases, keys and downloads together in My library.

More like this

From the same studio
$11.99Personal licence Β· PackCraft
✦ Why TechHarbour

Software you own, from the people who built it.

117 products, one studio. Each ships with a signed licence key, an instant download and 14-day refunds β€” and every file is malware-scanned before it goes on sale.