WPL
WPL is the format of the map-related files similar to IPLs from the previous games. It can be edited using WPL Manager.
Contents
File Format
Binary Headers
Each world placement file starts with one single header followed by the object placement information. The structure for the header is very simple:
Size = 68 bytes 4b - UINT32 - (Main file header) (Value always = 3) 4b - UINT32 - (Section 0) - Instances (Value always = Amount of Object instances) 4b - UINT32 - (Section 1) - Unused (Value always = 0) 4b - UINT32 - (Section 2) - Garage (Value always = Amount of Object instances) 4b - UINT32 - (Section 3) - Parked Cars (Value always = Amount of Object instances)(only used in * _stream *. wpl files) 4b - UINT32 - (Section 4) - Cull (Value always = Amount of Object instances) 4b - UINT32 - (Section 5) - Unused (Value always = 0) 4b - UINT32 - (Section 6) - Unused (Value always = 0) 4b - UINT32 - (Section 7) - Unused (Value always = 0) 4b - UINT32 - (Section 8) - Strbig (Value always = Amount of Object instances)(only used in * _strbig *. wpl files) 4b - UINT32 - (Section 9) - LODcull (Value always = Amount of Object instances)(only used in lodcull_ *. wpl files) 4b - UINT32 - (Section 10) - Zone or Cull (Value always = Amount of Object instances) 4b - UINT32 - (Section 11) - Unused (Value always = 0) 4b - UINT32 - (Section 12) - Unused (Value always = 0) 4b - UINT32 - (Section 13) - Unused (Value always = 0) 4b - UINT32 - (Section 14) - Unused (Value always = 0) 4b - UINT32 - (Section 15) - Blok (Value always = Amount of Object instances)
The placement information corresponds to the previous instance section of the .ipl
files. They have a binary structure like the binary ipl files introduced with San Andreas:
Section 0 - INST
Size = 48 bytes 4b - FLOAT - Position X 4b - FLOAT - Position Y 4b - FLOAT - Position Z 4b - FLOAT - Rotation X 4b - FLOAT - Rotation Y 4b - FLOAT - Rotation Z 4b - FLOAT - Rotation W 4b - UINT32 - Model name hash 4b - UINT32 - Unknown 4b - INT32 - LOD Index 4b - UINT32 - Unknown 4b - FLOAT - Unknown
Rotation information as Quarternion
Section 2 - Garages
Size = 48 bytes 4b - FLOAT - Position X1 4b - FLOAT - Position Y1 4b - FLOAT - Position Z1 4b - FLOAT - Position X2 4b - FLOAT - Position Y2 4b - FLOAT - Position X3 4b - FLOAT - Position Y3 4b - FLOAT - Position Z3 4b - UINT32 - DoorType 4b - UINT32 - GarageType 4b - UINT32 - hash 4b - UINT32 - Unknown
X1, Y1, Z1 = lower left vertex position, X2, Y3, Z3 = upper right vertex position, X3, Y2 = lower left vertex position for Garage entrance
Section 3 - Parked Cars
only used in the (*_stream*.wpl) files
Size = 56 bytes 4b - FLOAT - Position X 4b - FLOAT - Position Y 4b - FLOAT - Position Z 4b - FLOAT - Unknown 4b - FLOAT - Unknown 4b - FLOAT - Unknown 4b - UINT32 - Model name hash 4b - INT32 - Unknown 4b - INT32 - Unknown 4b - INT32 - Unknown 4b - INT32 - Unknown 4b - INT32 - Unknown 4b - INT32 - Unknown 4b - INT32 - Unknown
Section 4 - CULL
these are used for interiors directly accessed from outdoor locations.
Size = 48 bytes 4b - FLOAT - Position X1 4b - FLOAT - Position Y1 4b - FLOAT - Position Z1 4b - FLOAT - Position X2 4b - FLOAT - Position Y2 4b - FLOAT - Position Z2 4b - INT32 - Unknown 4b - INT32 - Unknown 4b - INT32 - Unknown 4b - INT32 - Unknown 4b - UINT32 - Model name hash
X1, Y1, Z1 = lower left vertex position, X2, Y2, Z2 = upper right vertex position
Section 8 - Unknown (Strbig)
only used in (*_strbig*.wpl) files.
24b - String - Model name 4b - UINT32 - Unknown 4b - UINT32 - Unknown 4b - UINT32 - Unknown 4b - FLOAT - Position X 4b - FLOAT - Position Y 4b - FLOAT - Position Z 4b - FLOAT - Rotation X 4b - FLOAT - Rotation Y 4b - FLOAT - Rotation Z 4b - FLOAT - Rotation W
Section 9 - LODcull
only used in (lodcull_x.wpl) files, usually located in 'Rockstar Games\Grand Theft Auto IV\pc\data\maps\generic' folder.
4b - FLOAT - Position X1 4b - FLOAT - Position Y1 4b - FLOAT - Position Z1 4b - FLOAT - Position X2 4b - FLOAT - Position Y2 4b - FLOAT - Position Z2 4b - UINT32 - unknown UINT32 4b - UINT32 - Hash 1 4b - UINT32 - Hash 2 4b - UINT32 - Hash 3 4b - UINT32 - Hash 4 4b - UINT32 - Hash 5 4b - UINT32 - Hash 6 4b - UINT32 - Hash 7 4b - UINT32 - Hash 8 4b - UINT32 - Hash 9 4b - UINT32 - Hash 10 32b - String - Model name 1 32b - String - Model name 2 32b - String - Model name 3 32b - String - Model name 4 32b - String - Model name 5 32b - String - Model name 6 32b - String - Model name 7 32b - String - Model name 8 32b - String - Model name 9 32b - String - Model name 10
X1, Y1, Z1 = lower left vertex position, X2, Y2, Z2 = upper right vertex position
Section 10 - Unknown (Zone or Cull)
4b - FLOAT - Position X1 4b - FLOAT - Position Y1 4b - FLOAT - Position Z1 4b - FLOAT - Position X2 4b - FLOAT - Position Y2 4b - FLOAT - Position Z2
X1, Y1, Z1 = lower left vertex position, X2, Y2, Z2 = upper right vertex position
XPL
In the XBox 360's version of GTA 4 same files have the extension .xpl
. The XPL and WPL formats are same, but due to the fact XPL files are used on the Xenon platform its data is stored in the big-endian order.
Tools
- GTAForums: GTA IV Placement Tool – by |Dageron|
- GTAGarage: IV Placement Editor – by Chipsman
- WPL Manager – by Yoann (UZI-I)
External Link
- GTAForums: WPL file format specification
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 • GXT Text • Image listing • Keycodes • Map Listing • Native functions • Paths • Radar Blips • Radio Stations • Saves • Scenarios • VTable • Weapons |
Tools | ASI Loader • ENBSeries • G-Texture • GIMS IV • Ingame WPL Editor • IV Needle • OpenIV • SparkIV • XLiveLess • WPL Manager • X Mod Installer Alice • C++ Script Hook • .NET Script Hook • Scocl |
Tutorials | Importing Textures with OpenIV • Importing Textures with SparkIV |
Modifications | GTA Connected • Gostown IV • Four Multiplayer • IV Multiplayer • CitizenMP:IV Reloaded |
Useful links | Community portal • Discussion forums • Modding forums • Mods on GTAGarage.com |