From XentaxWiki
(Redirected from UnrealArchive)
Jump to: navigation, search


Format Specifications

byte {4}     - Header (0x9E2A84C1)
uint32 {4}   - Version (Low order word is the file version, hight order word is the Licensee Mode
uint32 {4}   - Package Flags
uint32 {4}   - Number Of Names
uint32 {4}   - Name Table Offset
uint32 {4}   - Number Of Objects In The Export Table
uint32 {4}   - Export Table Offset
uint32 {4}   - Number Of Objects In The Import Table
uint32 {4}   - Import Table Offset
byte {16}    - Package ID
uint32 {4}   - Generation Count

// for each generation
uint32 {4}   - Export Count
uint32 {4}   - Import Count

// Name Table

// repeatable section
byte {1}     - Filename Length (including null byte)
char {X}     - Filename
byte {1}     - null Filename Terminator
uint32 {4}     - Flags
// Flags
* RF_LoadForClient (0x00010000): Must be loaded for game client.
* RF_LoadForServer (0x00020000): Must be loaded for game server.
* RF_LoadForEdit (0x00040000): Must be loaded for editor.
* RF_Public (0x00000004): Object may be imported by other package files.
* RF_Standalone (0x00080000): Keep object around (don't garbage collect) for editor even if unreferenced.
* RF_Intrinsic (0x04000000): Class or name is defined in C++ code and must be bound at load-time.
* RF_SourceModified (0x00000020): The external data source corresponding to this object has been modified.
* RF_Transactional (0x00000001): Object must be tracked in the editor by the Undo/Redo tracking system.
* RF_HasStack (0x02000000): This object has an execution stack allocated and is ready to execute UnrealScript code.

// Export Table

// for each object
byte {1-5}   - Object Class
byte {1-5}   - Parent Object Class
uint32 {4}   - Package (Package the object resides in)
byte {1-5}   - Object Name (Index to the Nametable)
uint32 {4}   - Flags
byte {1-5}   - Serial Length (Size of the object in this file)
byte {1-5}   - Serial Offset (This field only exists if Serial Length > 0)

// Import Table

// for each object
byte {1-5}   - Class Package (Package of the Class. Index to the Nametable)
byte {1-5}   - Class Name (Index to the Nametable)
uint32 {4}   - Package (Package the object resides in)
byte {1-5}   - Object Name

byte {X}     - File Data

MultiEx BMS Script

Not written yet

Notes and Comments

  • This file format is used by games made with Unreal 2 engine.
  • The fields with size 1-5 use a special technique for reading the values, called Compact Indexes. It involves reading each byte 1 at a time, and checking the bits of the byte to see whether more bytes need to be read.

The structure of the 5 bytes are as follows...
sDxxxxxx Dxxxxxxx Dxxxxxxx Dxxxxxxx xxxxxxxx
The most significant bit (bit 7) of the first byte indicates whether the value is positive or negative
Bit 6 of the first byte tells you whether you will need to read an additional byte. If the value is 1, you would then read the second byte. Similarly, if any of the D values are 1, you read the next byte.
All the x values form part of the number being stored in the field.

This is a very rough overview - you should search on the net for more detailed information on this (there is a lot of it)

Compatible Programs

See List of Unreal Engine Tools article on this wiki.

Other Games

These games use this file format

  • Adventure Pinball: Forgotten Island *.u*
  • Advent Rising *.u*
  • Americas Army Operations *.u*
  • Brothers In Arms *.u*
  • Clive Barker's Undying *.u*
  • Dead Mans Hand *.u*
  • Desert Thunder *.u*
  • Deus Ex *.u*
  • Devastation *.u*
  • Dr Brain's Thinking Games: Action Reaction *.u*
  • Duke Nukem Forever *.u*
  • Ghost Recon *.u*
  • Harry Potter And The Chamber Of Secrets *.u*
  • Harry Potter And The Sorcerers Stone *.u*
  • Heavy Gunner *.u*
  • Hoopworld *.u*
  • Land Of The Dead: Road To Fiddlers Green *.u*
  • Lineage 2 *.u*
  • Magic The Gathering: Battlegrounds *.u*
  • Men of Valor: Vietnam *.u*
  • Mobile Forces *.u*
  • Nerf Arena Blast *.u*
  • New Legends *.u*
  • Pariah *.u*
  • Postal 2 *.u*
  • Rainbow Six 3: Athena Sword *.u*
  • Rainbow Six: Raven Shield *.u*
  • Rune *.u*
  • Sephiroth: 3rd Episode Of The Crusade *.u*
  • Shadow Ops: Red Mercury *.u*
  • Splinter Cell *.u*
  • Splinter Cell: Chaos Theory *.u*
  • Splinter Cell: Pandora Tomorrow *.u*
  • Star Trek: Deep Space Nine - The Fallen *.u*
  • Star Trek: The Next Generation: Klingon Honor Guard *.u*
  • Star Wars: Republic Commando *.u*
  • SWAT 4 *.u*
  • Tactical Ops: Assault On Terror *.u*
  • Thief 3: Deadly Shadows *.u*
  • TNN Outdoors Pro Hunter *.u*
  • Tom Clancy’s Splinter Cell *.u*
  • Tribes Vengeance *.u*
  • Twin Caliber *.u*
  • Unreal *.u*
  • Unreal 2 *.u*
  • Unreal Championship *.u*
  • Unreal Championship 2 *.u*
  • Unreality *.u*
  • Unreal Tournament *.u*
  • Unreal Tournament 2003 *.u*
  • Unreal Tournament 2004 *.u*
  • Virtual Reality Notre Dame *.u*
  • Wheel Of Time *.u*
  • X-Com Enforcer *.u*
  • XIII *.u*