GRAF:UnrealArchive
Contents
U, UAX, UKX, UMX, USX, UTX, UVX
- Format Type : Archive
- Endian Order : Little Endian
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
- byte {1} - Filename Length (including null byte)
- // 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.
- // Flags
// 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)
- byte {1-5} - Object Class
// 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 {1-5} - Class Package (Package of the Class. Index to the Nametable)
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*