The RPF files all contain the same header. The header tells us the version of the archive, how many entries there are and whether or not the archive is encrypted.
4b - INT32 - RPF Version 4b - INT32 - Table of Contents Size 4b - INT32 - Number of Entries 4b - INT32 - Unknown 4b - INT32 - Encrypted
The RPF Version tells us the version of the RPF Archive. Version 2 is identified by 0x32465052 and Version 3 is identified by 0x33465052. The Table of Contents Size tells us the size of the table of contents segment in the file. The Number of Entries tells us the number of files contained in the archive. The Encryption flag tells us if the archive is encrypted, if the archive is unencrypted it is set to 0, otherwise it is non-zero.
Table of Contents
The Table of contents size is determined by the Table of Contents Size integer in the Header of the RPF archive. It starts after 2048 bytes from the file origin, and is encrypted depending on the encryption flag in the header. The Table of contents contains both Directories and File Entries. Both are different structures and take up different amounts of space.
Directory entries follow this structure:
4b - INT32 - Name Offset 4b - INT32 - Flags 4b - UINT32 - Content Entry Index 4b - UINT32 - Content Entry Count
The Name Offset refers to the file offset that stores the name of the directory. The Flags just give information about the directory. The Content Entry Index is generally described in the first bit of the unsigned integer. The Content Entry Count describes how many entries are under this directory, and is generally defined in the first 4 bits of the unsigned integer.
The File entries follow this structure:
4b - INT32 - Name Offset 4b - INT32 - Size 3b - UINT24 - Offset 1b - UCHAR8 - Resource Type 4b - UINT32 - Flags
The Name Offset refers to the file offset that stores the name of the file. The Size tells us the size of the file. The Offset tells us the file offset the file is stored in. The Resource Type tells us the type of resource that the file is. In the resource flag, the first bit tells us whether the file is compressed or not.
This section is incomplete. You can help by it.
The following tools can be used to import & export files into RPF archives.
|Grand Theft Auto V|
|File Formats||.dat • .gfx • .ide • .meta • .patch • .rpf|
|Documentation||Bink Video • Native functions|
|Multiplayer||GTAForums: GTA Online|
|Grand Theft Auto IV|
|File Formats||.dat • .gxt • .ide • .img • .ipl • .nod • .sco • .rpf • .rrr • .wad • .wbd/.wbn • .wdd • .wdr • .wft • .whm • .wpl • .wtd|
|Documentation||Audio • Bink Video • Cryptography • Cutscenes • Image listing • Map Listing • Native functions • Paths • Scenarios • VTable • Weapons|
|Tools||ASI Loader • ENBSeries • G-Texture • GIMS • IV Needle • OpenIV • Scocl • SparkIV • XLiveLess • WPL Manager • X Mod Installer|
Alice • C++ Script Hook • .NET Script Hook
|Tutorials||Importing Textures with OpenIV • Importing Textures with SparkIV|
|Modifications||Gostown IV • Four Multiplayer • IV Multiplayer|