Difference between revisions of "Item Placement"

From GTAMods Wiki
Jump to navigation Jump to search
(BAM²)
Line 3: Line 3:
 
| noheader=1
 
| noheader=1
 
}}
 
}}
'''Item placement''' files, known by the extension '''.ipl''', are map files used to place objects into the GTA world, as well as define zones, paths, garages, interior portals, and a lot more. Most IPL files can easily be opened and edited using any text-editing program like [[Wikipedia:Notepad|Notepad]]. In San Andreas there are also [[Binary_IPL|binary IPL]] files which are located in the [[IMG|IMG archives]] of the game. Those you can only open using a special [[Item_Placement#Useful_Tools|editor]].
+
'''Item placement''' files, usually identicated by the file extension <code>.ipl</code>, are a parts of the [[map system]] and used to create and place (for example) different objects, zones of special behaviour or paths in the world. All games do support standart item placement files which are stored in plain text format and can be opened and edited using any text-editing program (like [[Wikipedia:Notepad|Notepad]]). Also there are tools to simplify the placement of different aspects of the IPL files. [[GTA SA|San Andreas]] as the first game also introduced an binary format for item placement files and with [[GTA IV]] most of the placement information is stored inside of binary files (for more information see [[WPL]]).
  
==Structure==
 
The <code>.ipl</code> files are split up into many sections. Not all of them have to be used, leaving them empty works as well. Each section starts with a section identifier and ends with the keyword "end", both in a separate line.
 
  
Example:
+
== Overview ==
inst
 
...
 
end
 
  
Entries can be omitted by typing "#" at the beginning of each entry. All decimal separators must be ".", not ",".
+
The structure and format of the ''item placement'' file is similar to the format of the [[item definition]] files.  
  
===[[INST]]===
+
=== Format and syntax description ===
Used to place objects in the world.
 
  
''GTA III format''
+
Just like definitions placement information files are split up into sections. Each section is inicated by an identifier specifying the way the section gets parsed by the game. The sections themselves are filled with the entries containing the placement informations. Each must be placed on an seperate line. However lines can also be commented out (by starting them with the character '#') or left entry. If so the games parser simply ignores them which means they got skipped and do not get an index inside the internal placement array. This is important for different things, like the [[INST#GTA_SA_format|San Andreas LOD system]]. Each section gets terminated by the string "end". Both (identifying and terminating strings) are case insensitive, but they are stored in lower case by default.
{{hint|ID|integer}}, {{hint|ModelName|string}}, {{hint|PosX|float}}, {{hint|PosY|float}}, {{hint|PosZ|float}}, {{hint|ScaleX|float}}, {{hint|ScaleY|float}}, {{hint|ScaleZ|float}}, {{hint|RotX|float}}, {{hint|RotY|float}}, {{hint|RotZ|float}}, {{hint|RotW|float}}
 
  
{|{{Prettytable}} width="100%" class="collapsible collapsed"
+
Comments can also be placed outside sections. Just like empty lines there they will also get ignored. It is also possible to add an comment to the end of an line but breaking the line format rule of the current section using comments may cause hard to find game crashes. It is recommended to put an comment on a seperate line.
!width="250px"|Identifier
 
!Description
 
|-
 
|<center>ID</center>||A number which is used to identify the object as defined in the [[IDE]] file inside the map system.
 
|-
 
|<center>ModelName</center>||The name of the model inside an [[IMG|image]] file which is defined in the [[gta.dat]] file without extension (<code>.[[DFF|dff]]</code>)
 
|-
 
|<center>PosX, PosY, PosZ</center>||The position of the object in the world as floating point values.
 
|-
 
|<center>ScaleX, ScaleY, ScaleZ</center>||The scaling of the object as floating point values. By default each value is ''1.0'', which means the object is not scaled at all.
 
|-
 
|<center>RotX, RotY, RotZ, RotW</center>||The rotation of the object as [[Wikipedia:Quarternion|quarternion]].
 
|}
 
  
''Vice City format''
+
Lines itself are allways formatted in the same way differing only in the number of their parameters descriping the semantical content of the line. Those parameters are comma-seperated using the ',' character. [[wikipedia:Whitespace_character|Whitespace characters]] at the beginning or the end of an parameter get trimmed but they are usually used to give the content a more clear structure to make it more easier to read for human. Strings can be encased by the character '"', but this is optional and rarely used by default. Also the games parser uses an invariant culture to parse numerical values and strings. Which means strings are [[Wikipedia:ASCII|ASCII]] encrypted and the decimal seperator is '.'.
{{hint|ID|integer}}, {{hint|ModelName|string}}, {{hint|Interior|float (optional)}}, {{hint|PosX|float}}, {{hint|PosY|float}}, {{hint|PosZ|float}}, {{hint|ScaleX|float}}, {{hint|ScaleY|float}}, {{hint|ScaleZ|float}}, {{hint|RotX|float}}, {{hint|RotY|float}}, {{hint|RotZ|float}}, {{hint|RotW|float}}
 
  
{|{{Prettytable}} width="100%" class="collapsible collapsed"
+
==== Section example ====
!width="250px"|Identifier
 
!Description
 
|-
 
|<center>ID</center>||A number which is used to identify the object as defined in the [[IDE]] inside the map system.
 
|-
 
|<center>ModelName</center>||The name of the model inside an [[IMG|image]] file which is defined in the [[gta.dat]] file without extension (<code>.[[DFF|dff]]</code>)
 
|-
 
|<center>Interior</center>||A number defining the [[interior]] (render-level) the object is located in. It is an optional parameter; by default the object's interior is 0.
 
|-
 
|<center>PosX, PosY, PosZ</center>||The position of the object in the world as floating point values.
 
|-
 
|<center>ScaleX, ScaleY, ScaleZ</center>||The scaling of the object as floating point values. By default each value is ''1.0'', which means the object is not scaled at all.
 
|-
 
|<center>RotX, RotY, RotZ, RotW</center>||The rotation of the object as [[Wikipedia:Quarternion|quarternion]].
 
|}
 
  
''San Andreas format''
+
  inst
{{hint|ID|integer}}, {{hint|ModelName|string}}, {{hint|Interior|integer}}, {{hint|PosX|float}}, {{hint|PosY|float}}, {{hint|PosZ|float}}, {{hint|RotX|float}}, {{hint|RotY|float}}, {{hint|RotZ|float}}, {{hint|RotW|float}}, {{hint|LOD|integer}}
+
  ...
 
+
  end
{|{{Prettytable}} width="100%" class="collapsible collapsed"
 
!width="250px"|Identifier
 
!Description
 
|-
 
|<center>ID</center>||A number which is used to identify the object as defined in the [[IDE]] inside the map system.
 
|-
 
|<center>ModelName</center>||The name of the model inside an [[IMG|image]] file which is defined in the [[gta.dat]] file without extension (<code>.[[DFF|dff]]</code>). The parameter doesn't seem to function in the game. Any name used will not affect the rendering of the model.
 
|-
 
|<center>Interior</center>||A number defining the [[interior]] (render-level) the object is located in.
 
|-
 
|<center>PosX, PosY, PosZ</center>||The position of the object in the world as floating point values.
 
|-
 
|<center>RotX, RotY, RotZ, RotW</center>||The rotation of the object as [[Wikipedia:Quarternion|quarternion]].
 
|-
 
|<center>LOD</center>||The number of the [[LOD]] which is located inside the same instance block as the current model.<br>By default this is ''-1'' which means no LOD is defined.
 
|}
 
 
 
===[[CULL]]===
 
Create a culling zone.
 
 
 
''GTA III and Vice City format''
 
{{hint|CenterX|float}}, {{hint|CenterY|float}}, {{hint|CenterZ|float}}, {{hint|LowerLeftX|float}}, {{hint|LowerLeftY|float}}, {{hint|LowerLeftZ|float}}, {{hint|UpperRightX|float}}, {{hint|UpperRightY|float}}, {{hint|UpperRightZ|float}}, {{hint|Flags|integer}}, {{hint|Unknown|integer}}
 
 
 
{|{{Prettytable}} width="100%" class="collapsible collapsed"
 
!width="250px"|Identifier
 
!Description
 
|-
 
|<center>CenterX, CenterY, CenterZ</center>||A point which defines the center of the box in real world coordinates
 
|-
 
|<center>LowerLeftX, LowerLeftY, LowerLeftZ</center>||A point which corresponds to the ''lower left'' corner of the box.
 
|-
 
|<center>UpperRightX, UpperRightY, UpperRightZ</center>||A point which corresponds to the ''upper right'' corner of the box.
 
|-
 
|<center>Flags</center>||The [[CULL#Flags|behaviour of the cull zone]].
 
|-
 
|<center>Unknown</center>||Always 0
 
|}
 
 
 
''San Andreas format 1''
 
{{hint|CenterX|float}}, {{hint|CenterY|float}}, {{hint|CenterZ|float}}, {{hint|Unknown1|float}}, {{hint|WidthY|float}}, {{hint|BottomZ|float}}, {{hint|WidthX|float}}, {{hint|Unknown2|float}}, {{hint|TopZ|float}}, {{hint|Flag|integer}}, {{hint|Unknown3|integer}}
 
 
 
''San Andreas format 2''
 
{{hint|CenterX|float}}, {{hint|CenterY|float}}, {{hint|CenterZ|float}}, {{hint|Unknown1|float}}, {{hint|WidthY|float}}, {{hint|BottomZ|float}}, {{hint|WidthX|float}}, {{hint|Unknown2|float}}, {{hint|TopZ|float}}, {{hint|Flag|integer}}, {{hint|Vx|float}}, {{hint|Vy|float}}, {{hint|Vz|float}}, {{hint|Cm|float}}
 
 
 
===PATH===
 
''Vice City only''
 
 
 
'''Ped, Car and Boat Paths''', defines paths relative to the world centre. Only used in GTA VC, this format is much easier than in GTA3 where the paths were stored in IDE files, and GTA-SA paths which are stored in **nodes.dat inside gta3.img. This is a quite complicated format and hardly usable without an editing program (such as [[Ked]]).
 
 
 
GTA SA uses [[GTA SA Paths|compiled binary files]] for its paths.
 
 
 
===[[GRGE]]===
 
Creates a garage.
 
 
 
''San Andreas format''
 
  {{hint|PosX|float}}, {{hint|PosY|float}}, {{hint|PosZ|float}}, {{hint|LineX|float}}, {{hint|LineY|float}}, {{hint|CubeX|float}}, {{hint|CubeY|float}}, {{hint|CubeZ|float}}, {{hint|DoorType|integer}}, {{hint|GarageType|integer}}, {{hint|Name|string}}
 
 
 
{|{{Prettytable}} width="100%" class="collapsible collapsed"
 
!width="250px"|Identifier
 
!Description
 
|-
 
|<center>PosX, PosY, PosZ</center>||A coordinate of one of the corner marks
 
|-
 
|<center>LineX, LineY</center>||Those values are [[Wikipedia:Euclidean_vector#Addition_and_subtraction|added]] to the first position values. They define one edge of the box
 
|-
 
|<center>CubeX, CubeY, CubeZ</center>||Another world coordinate. Together with the abstract line created with the first 5 coordinates this forms a cube in the world.
 
|-
 
|<center>DoorType</center>||The [[GRGE#Types_of_doors|type of the door]]
 
|-
 
|<center>GarageType</center>||The [[Garage#San_Andreas|type of the garage]]
 
|-
 
|<center>Name</center>||[[Garage#San_Andreas_2|A string]] which is used to manipulate the garages behaviour through the <code>[[main.scm]]</code>
 
|-
 
|}
 
 
 
===[[ENEX]]===
 
Creates an entrance to an exit
 
 
 
''San Andreas format''
 
  {{hint|X1|float}}, {{hint|Y1|float}}, {{hint|Z1|float}}, {{hint|ROT|float}}, {{hint|W1|float}}, {{hint|W2|float}}, {{hint|C8|float}}, {{hint|X2|float}}, {{hint|Y2|float}}, {{hint|Z2|float}}, {{hint|Rot2|float}}, {{hint|Int|integer}}, {{hint|Flag|integer}}, {{hint|Name|string}}, {{hint|Sky|integer}}, {{hint|I2|integer}}, {{hint|Time On|integer}}, {{hint|Time Off|integer}}
 
 
 
{|{{Prettytable}} width="100%" class="collapsible collapsed"
 
!width="250px"|Identifier
 
!Description
 
|-
 
|<center>X1, Y1, Z1</center>||entrance location
 
|-
 
|<center>ROT</center>||
 
|-
 
|<center>W1</center>||X width of entry
 
|-
 
|<center>W2</center>||Y width of entry
 
|-
 
|<center>C8</center>||constant 8
 
|-
 
|<center>X2, Y2, Z2</center>||exit location
 
|-
 
|<center>Rot2</center>||exit rotation in degrees
 
|-
 
|<center>Int</center>||The target interior number
 
|-
 
|<center>Flag</center>||The type of marker
 
|-
 
|<center>Name</center>||[[Interior#San_Andreas_2|Interior name]], used to find the counterpart and to identify via mission script
 
|-
 
|<center>Sky</center>||Sky color changer
 
|-
 
|<center>I2</center>||unknown integer flags, could be weather related
 
|-
 
|<center>Time On</center>||enables the marker at this time
 
|-
 
|<center>Time Off</center>||disables the marker at this time
 
|}
 
  
===[[PICK]]===
+
=== Binary format ===
Creates a weapon pickup.
 
  
''San Andreas format''
+
''San Andreas'' introduced an simple binary format of item placement files. They are stored as ''"streaming files"'' inside the [[IMG|archive files]]. Editing them requires an special editor (see [[IPL#Tools|below]]). The format is pretty simple and their possibilities are not completely used by ''Rockstar''. By default they do only support ''INST'' and ''CARS'' sections. It is unconfirmed if other sections also can be used or if they are just stubs which are not implemented. Anyway their binary format is completely unknown.
ID, PosX, PosY, PosZ
 
  
{|{{Prettytable}} width="100%" class="collapsible collapsed"
+
{{Incomplete}}
!width="250px"|Identifier
+
<!--- How do binary IPLs get recognized by the game? --->
!Description
 
|-
 
|<center>ID</center>||A [[PICK#San_Andreas_Weapon_List|number]] which defines a [[weapon]]
 
|-
 
|<center>PosX, PosY, PosZ</center>||Floating point values defining where the pickup should be placed in the world.
 
|}
 
  
===[[JUMP]]===
+
==== Header ====
Creates a unique stunt jump.
 
  
''San Andreas format''
+
Each binary placement information file starts with an 4-Byte identifier followed by a header containing information about the files content.
<pre>StartLowerX, StartLowerY, StartLowerZ, StartUpperX, StartUpperY, StartUpperZ, TargetLowerX, TargetLowerY, TargetLowerZ,
 
TargetUpperX, TargetUpperY, TargetUpperZ, CameraX, CameraY, CameraZ, Reward</pre>
 
  
{|{{Prettytable}} width="100%" class="collapsible collapsed"
+
4b  - CHAR[4]  - Always "bnry"
!width="250px"|Identifier
+
4b  - INT32    - Number of [[INST|item instances]]
!Description
+
4b  - INT32    - Number of unknown 1 (''CULL'' ?)
|-
+
4b  - INT32    - Number of unknown 2 (''GRGE'' ?)
|<center>StartLowerX, StartLowerY, StartLowerZ</center>||These values define a point in the world as floating point values. The point represents one of the lower edge points of the plane representing the start of the unique stunt jump.
+
4b  - INT32    - Number of unknown 3 (''ENEX'' ?)
|-
+
4b  - INT32    - Number of [[CARS|parked cars]]
|<center>StartUpperX, StartUpperY, StartUpperZ</center>||These values are used in the same way as the first ones. They represent a point on the upper edge of the plane (diagonal opposite).
+
4b  - INT32    - Number of unknown 4 (''PICK'' ?)
|-
+
4b  - INT32    - Offset of item instances (0x4C by default)
|<center>TargetLowerX, TargetLowerY, TargetLowerZ</center>||A point on the lower edge of the ''target plane''.
+
4b  - INT32    - Size of item instances (unused - always 0)
|-
+
4b  - INT32    - Offset of unknown 1
|<center>TargetUpperX, TargetUpperY, TargetUpperZ</center>||A point on the upper edge of the ''target plane'' (diagonal opposite).
+
4b  - INT32    - Size of unknown 1 (unused - always 0)
|-
+
4b  - INT32    - Offset of unknown 2
|<center>CameraX, CameraY, CameraZ</center>||The position of the camera.
+
4b  - INT32    - Size of unknown 2 (unused - always 0)
|-
+
4b  - INT32    - Offset of unknown 3
|<center>Reward</center>||The amount of cash the player earns after he has finished this stunt successfully.
+
4b  - INT32    - Size of unknown 3 (unused - always 0)
|}
+
4b  - INT32    - Offset of parked cars
 +
4b  - INT32    - Size of parked cars (unused - always 0)
 +
4b  - INT32    - Offset of unknown 4
 +
4b  - INT32    - Size of unknown 4 (unused - always 0)
  
===TCYC===
+
The header is followed by the arrays of the entries. For more information about their format see the articles about the sections.
Creates black sky if you enter the zone. Also exists for all towns in countryside. Probably custom weather?
 
  
''San Andreas format''
+
=== Sections ===
X1, Y1, Z1, X2, Y2, Z2, ?, ?, ?, ?, ?
 
  
===[[AUZO]]===
+
The following table contains basic information about all known sections. For additional information read the articles itself.  
This creates an audio if you enter the zone.
 
  
''San Andreas format 1''
+
{|{{Prettytable}} class="collapsible"
Name, ID, Switch, X1, Y1, Z1, X2, Y2, Z2
+
!width="120px"|Identifier
 
+
!width="100px"|Supported games
{|{{Prettytable}} width="100%" class="collapsible collapsed"
 
!width="250px"|Identifier
 
 
!Description
 
!Description
 
|-
 
|-
|<center>Name</center>||Name used to identify the zone
+
|<center>[[INST]]</center>||<center>{{Icon|3}} {{Icon|VC}} {{Icon|SA}} {{Icon|4}}</center>||Most important section: places objects defined in [[OBJS]], [[TOBJ]], [[ANIM]] or [[TANM]] in the world.
 
|-
 
|-
|<center>ID</center>||[[AUZO#Auzo_Audio_IDs|Sound]] played in this zone
+
|<center>[[CULL]]</center>||<center>{{Icon|3}} {{Icon|VC}} {{Icon|SA}} {{Icon|4}}</center>||Creates zones with special behaviour and influences to e.g. [[wikipedia:Non-player_character|NPC's]] or [[timecyc.dat|weather]].
 
|-
 
|-
|<center>Switch</center>||Makes the audio always on or always off. Can be forced through the [[script]] using opcode [[0917]]
+
|<center>[[PATH]]</center>||<center>{{Icon|VC}}</center>||Creates waypoints for random ''NPC'' spawns.<br>Note: this section is also present in ''San Andreas'' and ''GTA IV''. It is used as a base for ''Rockstar's'' paths compiler, but gets ignored by the games. For more information see: [[Paths]].
 
|-
 
|-
|<center>X1, Y1, Z1</center>||A point which corresponds to the corner of the box, usually the lower left.
+
|<center>[[GRGE]]</center>||<center>{{Icon|SA}}</center>||Creates zones for ingame garages.
 
|-
 
|-
|<center>X2, Y2, Z2</center>||A point which corresponds to the opposite corner of the box, usually the upper right.
+
|<center>[[ENEX]]</center>||<center>{{Icon|SA}}</center>||Creates entrace and exit markers.
|}
 
 
 
''San Andreas format 2''
 
Name, ID, Switch, X, Y, Z, Radius
 
 
 
{|{{Prettytable}} width="100%" class="collapsible collapsed"
 
!width="250px"|Identifier
 
!Description
 
|-
 
|<center>Name</center>||Name used to identify the zone.
 
|-
 
|<center>ID</center>||[[AUZO#Auzo_Audio_IDs|Sound]] played in this zone.
 
|-
 
|<center>Switch</center>||Makes the audio always on or always off. Can be forced through the [[script]] using opcode [[0917]].
 
|-
 
|<center>X, Y, Z</center>||The center of the zone.
 
|-
 
|<center>Radius</center>||The distance the sound will be heard.
 
|}
 
 
 
===[[MULT]]===
 
''San Andreas and GTA4 only''
 
 
 
In San Andreas, this was never used in the game. This section is currently unknown and may never be known; it is ignored by the game.
 
 
 
===[[CARS (IPL Section)|CARS]]===
 
Creates a parked car generator
 
 
 
''San Andreas format''
 
PosX, PosY, PosZ, Angle, CarID, PrimCol, SecCol, ForceSpawn, Alarm, DoorLock, Unknown1, Unknown2
 
 
 
{|{{Prettytable}} width="100%" class="collapsible collapsed"
 
!width="250px"|Identifier
 
!Description
 
|-
 
|<center>PosX, PosY, PosZ</center>||The real world coordinates of the car as floating point values.
 
|-
 
|<center>Angle</center>||The angle of the car in radians (degrees/~57.2958).
 
 
|-
 
|-
|<center>CarID</center>||The ID number of the car as defined in the [[IDE]] or -1 for random car parks (influenced by the <code>[[popcycle.dat]]</code> file)
+
|<center>[[PICK]]</center>||<center>{{Icon|SA}}</center>||Creates [[WEAP|weapon]] pickups.
 
|-
 
|-
|<center>PrimCol, SecCol</center>||A car color defined in the <code>[[carcols.dat]]</code> file. If it is set to -1 the color will be randomly chosen.
+
|<center>[[JUMP]]</center>||<center>{{Icon|SA}}</center>||Creates unique stunt jumps.
 
|-
 
|-
|<center>ForceSpawn</center>||Vehicles spawn more reliably if this is set to 1.
+
|<center>[[TCYC]]</center>||<center>{{Icon|SA}}</center>||Apparently custom weather.
 
|-
 
|-
|<center>Alarm</center>||The probability of triggering the alarm system (0 - 100).
+
|<center>[[AUZO]]</center>||<center>{{Icon|SA}}</center>||Creates zones playing an [[Stream|audio stream]] if the user enters it.
 
|-
 
|-
|<center>DoorLock</center>||The probability that the doors of the vehicle is locked (0 - 100).
+
|<center>[[MULT]]</center>||<center>{{Icon|SA}} {{Icon|4}}</center>||&ndash;
 
|-
 
|-
|<CeNtEr>Unknown1, Unknown2</CeNtEr>||Unknown (Zero).
+
|<center>[[CARS]]</center>||<center>{{Icon|SA}}</center>||Creates parked [[CARS_(IDE_Section)|car]] spawns
|}
 
 
 
===[[OCCL]]===
 
Creates zones for separated rendering.
 
 
 
''Vice City and San Andreas format''
 
mid x, mid y, bottom height z, width x, width y, height from bottom height to top, rotation
 
 
 
{|{{Prettytable}} width="100%" class="collapsible collapsed"
 
!width="250px"|Identifier
 
!Description
 
 
|-
 
|-
|<center>mid x, mid y</center>||The middle of the occlusion box in X and Y coordinates.
+
|<center>[[OCCL]]</center>||<center>{{Icon|VC}} {{Icon|SA}} {{Icon|4}}</center>||Creates occlusion zones for seperated rendering.
 
|-
 
|-
|<center>bottom height z</center>||The bottom Z coordinate of the occlusion box.
+
|<center>[[ZONE]], [[MZON]]</center>||<center>{{Icon|3}} {{Icon|VC}} {{Icon|SA}} {{Icon|4}}</center>||Creates ingame regions. ''MZON'' is only used for ''GTA IV'' and contains one type of zones.
 
|-
 
|-
|<center>width x, width y</center>||The width of the occlusion box in units.
+
|<center>[[BLOK]]</center>||<center>{{Icon|4}}</center>||Apparently ignored by the game &ndash; appears to be used to allocate responsibilities during the development stage of ''GTA IV'', but also could be used to place [[Ped_Event|decision markers]].
 
|-
 
|-
|<center>height from bottom height to top</center>||The difference in height from the top of the occlusion box to the bottom.
+
|<center>[[VNOD]]</center>||<center>{{Icon|4}}</center>||Extented format of ''PATH'' &ndash; apparently only used for [[Multiplayer#GTA_4|multiplayer]] mode.
 
|-
 
|-
|<center>rotation</center>||The rotation of the occlusion box in angles.
+
|<center>[[LINK]]</center>||<center>{{Icon|4}}</center>||&ndash;
|}
 
 
 
===[[ZONE]]===
 
Creates an map zone for peds and cars.
 
 
 
''GTA III and Vice City format''
 
{{hint|Name|string}}, {{hint|Type|integer}}, {{hint|X1|float}}, {{hint|Y1|float}}, {{hint|Z1|float}}, {{hint|X2|float}}, {{hint|Y2|float}}, {{hint|Z2|float}}, {{hint|Island|integer}}
 
''San Andreas and GTA IV format''
 
{{hint|Name|string}}, {{hint|Type|integer}}, {{hint|X1|float}}, {{hint|Y1|float}}, {{hint|Z1|float}}, {{hint|X2|float}}, {{hint|Y2|float}}, {{hint|Z2|float}}, {{hint|Island|integer}}, {{hint|Text|string}}
 
 
 
{|{{Prettytable}} width="100%" class="collapsible collapsed"
 
!width="250px"|Identifier
 
!Description
 
|-
 
|<center>Name</center>||ID name of the zone
 
 
|-
 
|-
|<center>Type</center>||Type of zone
+
|<center>[[MLO+]]</center>||<center>{{Icon|4}}</center>||Unknown &ndash; apparently used to create instances of [[MLO]] definitions.
 
|-
 
|-
|<center>X1, Y1, Z1</center>||The bottom left corner of the zone
+
|<center>[[RTFX]]</center>||<center>{{Icon|4}}</center>||&ndash;
 
|-
 
|-
|<center>X2, Y2, Z2</center>||The top right corner of the zone
+
|<center>[[LODM]]</center>||<center>{{Icon|4}}</center>||&ndash;
 
|-
 
|-
|<center>Island</center>||The island number
+
|<center>[[SLOW]]</center>||<center>{{Icon|4}}</center>||&ndash;
 
|-
 
|-
|<center>Text</center>||Text of the zone used from the [[GXT]] file
+
|<center>[[2DFX_(IPL_Section)|2DFX]]</center>||<center>{{Icon|4}}</center>||Creates [[particle]] effects in the world.
 
|}
 
|}
  
===BLOK===
+
== Tools ==
''GTA4 only''
 
 
 
===VNOD===
 
''GTA4 only''
 
 
 
===LINK===
 
''GTA4 only''
 
 
 
===MLO+===
 
''GTA4 only''
 
 
 
===RTFX===
 
''GTA4 only''
 
  
===LODM===
+
* [[KEd]] &ndash; By {{U|JernejL}}
''GTA4 only''
+
* [[MEd]] &ndash; By {{U|Tonywob}}
 +
* {{GTAF|315944|IPL Helper}} &ndash; By {{U|Xmen}}
 +
* [http://www.gta.ocram-net.de/index_all.php?downloadsa=11 Binary (De-)Compiler] &ndash; By {{U|ocram88}}
  
===SLOW===
+
== See also ==
''GTA4 only''
 
  
===2DFX===
+
* [[Item definition]]
''GTA4 only''
+
* [[Map System]]
 +
* [[WPL]] &ndash; Major ''GTA IV'' item placement file.
  
==Useful Tools==
+
== External Links ==
* [[KEd]]
 
* {{GTAF|315944|IPL Helper}} - by {{U|Xmen}}
 
* [http://www.gta.ocram-net.de/index_all.php?downloadsa=11 Binary (De-)Compiler] - By {{U|ocram88}}
 
  
==External Links==
 
 
* {{GTAF|118193|GTA3/VC Map File Documentation and Troubleshooting}} - Topic by {{U|Opius}} covering general features of IPL files in GTA3 and GTA VC.
 
* {{GTAF|118193|GTA3/VC Map File Documentation and Troubleshooting}} - Topic by {{U|Opius}} covering general features of IPL files in GTA3 and GTA VC.
 
* {{GTAF|93990|Paths Documentation for SA, VC and GTA3}} - Topic by {{U|REspawn}} detailing Vice City's paths
 
* {{GTAF|93990|Paths Documentation for SA, VC and GTA3}} - Topic by {{U|REspawn}} detailing Vice City's paths
Line 372: Line 131:
 
* [http://projectcerbera.com/gta/vc/tutorials/paths Explanation of the path-section in a VC IPL] - by {{U|Cerbera}}
 
* [http://projectcerbera.com/gta/vc/tutorials/paths Explanation of the path-section in a VC IPL] - by {{U|Cerbera}}
  
{{GTA4-navi}}
+
{{N|4|SA}}
{{SA-navi}}
 
  
[[Category:Map Formats]][[Category:GTA 3]][[Category:GTA VC]][[Category:GTA SA]]
+
[[Category:Map Formats]][[Category:GTA 3]][[Category:GTA VC]]

Revision as of 08:52, 27 July 2010

40px-Ambox rewrite orange.svg.png This article may need to be rewritten.
Please help improve this article. The discussion page may contain suggestions.
Item Placement
IPL Sections:
2DFX AUZO BLOK CARS CULL ENEX GRGE
INST JUMP LINK LODM MLO+ MULT OCCL
PATH PICK RTFX SLOW TCYC VNOD ZONE

Item placement files, usually identicated by the file extension .ipl, are a parts of the map system and used to create and place (for example) different objects, zones of special behaviour or paths in the world. All games do support standart item placement files which are stored in plain text format and can be opened and edited using any text-editing program (like Notepad). Also there are tools to simplify the placement of different aspects of the IPL files. San Andreas as the first game also introduced an binary format for item placement files and with GTA IV most of the placement information is stored inside of binary files (for more information see WPL).


Overview

The structure and format of the item placement file is similar to the format of the item definition files.

Format and syntax description

Just like definitions placement information files are split up into sections. Each section is inicated by an identifier specifying the way the section gets parsed by the game. The sections themselves are filled with the entries containing the placement informations. Each must be placed on an seperate line. However lines can also be commented out (by starting them with the character '#') or left entry. If so the games parser simply ignores them which means they got skipped and do not get an index inside the internal placement array. This is important for different things, like the San Andreas LOD system. Each section gets terminated by the string "end". Both (identifying and terminating strings) are case insensitive, but they are stored in lower case by default.

Comments can also be placed outside sections. Just like empty lines there they will also get ignored. It is also possible to add an comment to the end of an line but breaking the line format rule of the current section using comments may cause hard to find game crashes. It is recommended to put an comment on a seperate line.

Lines itself are allways formatted in the same way differing only in the number of their parameters descriping the semantical content of the line. Those parameters are comma-seperated using the ',' character. Whitespace characters at the beginning or the end of an parameter get trimmed but they are usually used to give the content a more clear structure to make it more easier to read for human. Strings can be encased by the character '"', but this is optional and rarely used by default. Also the games parser uses an invariant culture to parse numerical values and strings. Which means strings are ASCII encrypted and the decimal seperator is '.'.

Section example

inst
...
end

Binary format

San Andreas introduced an simple binary format of item placement files. They are stored as "streaming files" inside the archive files. Editing them requires an special editor (see below). The format is pretty simple and their possibilities are not completely used by Rockstar. By default they do only support INST and CARS sections. It is unconfirmed if other sections also can be used or if they are just stubs which are not implemented. Anyway their binary format is completely unknown.

This section is incomplete. You can help by fixing and expanding it.

Header

Each binary placement information file starts with an 4-Byte identifier followed by a header containing information about the files content.

4b  - CHAR[4]   - Always "bnry"
4b  - INT32     - Number of item instances
4b  - INT32     - Number of unknown 1 (CULL ?)
4b  - INT32     - Number of unknown 2 (GRGE ?)
4b  - INT32     - Number of unknown 3 (ENEX ?)
4b  - INT32     - Number of parked cars
4b  - INT32     - Number of unknown 4 (PICK ?)
4b  - INT32     - Offset of item instances (0x4C by default)
4b  - INT32     - Size of item instances (unused - always 0)
4b  - INT32     - Offset of unknown 1
4b  - INT32     - Size of unknown 1 (unused - always 0)
4b  - INT32     - Offset of unknown 2
4b  - INT32     - Size of unknown 2 (unused - always 0)
4b  - INT32     - Offset of unknown 3
4b  - INT32     - Size of unknown 3 (unused - always 0)
4b  - INT32     - Offset of parked cars
4b  - INT32     - Size of parked cars (unused - always 0)
4b  - INT32     - Offset of unknown 4
4b  - INT32     - Size of unknown 4 (unused - always 0)

The header is followed by the arrays of the entries. For more information about their format see the articles about the sections.

Sections

The following table contains basic information about all known sections. For additional information read the articles itself.

Identifier Supported games Description
INST
GTA III Vice City San Andreas GTA IV
Most important section: places objects defined in OBJS, TOBJ, ANIM or TANM in the world.
CULL
GTA III Vice City San Andreas GTA IV
Creates zones with special behaviour and influences to e.g. NPC's or weather.
PATH
Vice City
Creates waypoints for random NPC spawns.
Note: this section is also present in San Andreas and GTA IV. It is used as a base for Rockstar's paths compiler, but gets ignored by the games. For more information see: Paths.
GRGE
San Andreas
Creates zones for ingame garages.
ENEX
San Andreas
Creates entrace and exit markers.
PICK
San Andreas
Creates weapon pickups.
JUMP
San Andreas
Creates unique stunt jumps.
TCYC
San Andreas
Apparently custom weather.
AUZO
San Andreas
Creates zones playing an audio stream if the user enters it.
MULT
San Andreas GTA IV
CARS
San Andreas
Creates parked car spawns
OCCL
Vice City San Andreas GTA IV
Creates occlusion zones for seperated rendering.
ZONE, MZON
GTA III Vice City San Andreas GTA IV
Creates ingame regions. MZON is only used for GTA IV and contains one type of zones.
BLOK
GTA IV
Apparently ignored by the game – appears to be used to allocate responsibilities during the development stage of GTA IV, but also could be used to place decision markers.
VNOD
GTA IV
Extented format of PATH – apparently only used for multiplayer mode.
LINK
GTA IV
MLO+
GTA IV
Unknown – apparently used to create instances of MLO definitions.
RTFX
GTA IV
LODM
GTA IV
SLOW
GTA IV
2DFX
GTA IV
Creates particle effects in the world.

Tools

See also

External Links