A small Java library for efficiently reading Unreal Engine packages.
Unreal Packages, are used by Unreal Engine games for packaging content such as maps, textures, sounds, and the gameplay code itself.
Although the files all have different file extensions for organisation purposes only (for example, .unr or .ut2 for maps, .utx for textures, .u for code), they all have the same structure and are capable of holding the same content.
This implementation supports Unreal Engines 1 and 2, with support for Unreal Engine 3 in progress, and has been tested using content and assets from Unreal (1998), Unreal Tournament (1999), and Unreal Tournament 2003/4 (2004).
The implementation has focussed on supporting the above games for the purposes of making data available for the Unreal Archive, however other games using the Unreal Engine may Just Work, though some developers did introduce significant customisations to their engine versions, so your mileage may vary from game to game.
Also provided via the
Umod class is the ability to read and extract the
.umod installers, commonly used to distribute larger Unreal and
Unreal Tournament modifications and total conversions.
These can be combined with a
PackageReader to support reading package
contents directly from UMOD files without needing to unpack the individual
Finally, reading of Unreal Engine’s
.ucl files is provided via the
IntFile class, which simplifies processing some of the non-INI file like
properties contained within these files.