Difference between revisions of "Object.dat"
Jump to navigation
Jump to search
(format) |
(Added all descriptions. Still not sure about table formatting...) |
||
Line 1: | Line 1: | ||
{{file-stub}} | {{file-stub}} | ||
{{lowercase}} | {{lowercase}} | ||
− | The '''<code>object.dat</code>''' file is located in the <code> | + | The '''<code>object.dat</code>''' file is located in the <code>/data</code> directory of [[GTA III]], [[Vice City]], and [[San Andreas]], or the <code>/common/data</code> directory of [[GTA IV]]. It defines the physical aspects of objects defined in [[IDE]] files. |
== Format == | == Format == | ||
− | + | {|class="wikitable center-col-1 center-col-2 center-col-3" style="width: 100%;" | |
− | |||
− | {|class="wikitable center-col-1 center-col-2" style="width: 100%;" | ||
!style="width: 3em;" |{{Icon|3}} {{Icon|VC}} | !style="width: 3em;" |{{Icon|3}} {{Icon|VC}} | ||
!style="width: 3em;" |{{Icon|SA}} | !style="width: 3em;" |{{Icon|SA}} | ||
− | !style="width: 12em;" | | + | !style="width: 12em;" |Name in file |
− | !style="width: 6em;" | | + | !style="width: 6em;" |Data type |
!Description | !Description | ||
|- | |- | ||
− | |colspan="2" |A ||Object name ||string || | + | |colspan="2" |A ||Object name ||string || Object name. Maximum of 256 characters in length. |
|- | |- | ||
− | |colspan="2" |B ||Mass ||float || | + | |colspan="2" |B ||Mass ||float || 1 to 50000 inclusive. Unit is kilograms. |
|- | |- | ||
− | |colspan="2" |C ||TurnMass ||float || | + | |colspan="2" |C ||TurnMass ||float || The description within the file says ''kg m^3 or some such dimension'', but kg/m<sup>3</sup> is actually the [[Wikipedia:Kilogram per cubic metre|unit of density]]. However, kg/m<sup>2</sup> is the unit of [[Wikipedia:Moment of inertia|rotational inertia]], which is sometimes referred to as "rotational mass" (and could be what "TurnMass" is referring to). |
|- | |- | ||
− | |colspan="2" |D ||Air Resistance ||float || | + | |colspan="2" |D ||Air Resistance ||float || Normalised between 1 and 0. 0 means complete air resistance, 1 means no air resistance. Most objects have a value of 0.99 for this attribute. |
|- | |- | ||
− | |colspan="2" |E ||Elasticity ||float || | + | |colspan="2" |E ||Elasticity ||float || How much the object bounces when it collides with something. Normalised. 0 is the least bouncy, 1 is the most. |
|- | |- | ||
− | |colspan="2" |F ||Percent Submerged ||float || | + | |colspan="2" |F ||Percent Submerged ||float || 10 to 120. Most objects have a value of 50.0 for this attribute. |
|- | |- | ||
− | |colspan="2" |G ||Uproot | + | |colspan="2" |G ||Uproot Force ||float || The magnitude of the force vector that must be applied to the object to remove it from the ground. Possibly Newtons, but no units given. |
|- | |- | ||
− | |colspan="2" |H ||Collision Damage Multiplier ||float || | + | |colspan="2" |H ||Collision Damage Multiplier ||float || Controls how much damage a collision with this object should do to vehicles. "0.1 - 5.0 ish" according to the file. |
|- | |- | ||
− | |colspan="2" |I ||Collision Damage Effect ||integer || | + | |colspan="2" |I ||Collision Damage Effect ||integer || What happens to the object when it is collided with. Values: |
+ | |||
+ | :<code>0</code> = Nothing | ||
+ | |||
+ | :<code>1</code> = Changes model | ||
+ | |||
+ | :<code>20</code> = Smashes | ||
+ | |||
+ | :<code>21</code> = Changes model and then smashes | ||
+ | |||
+ | :<code>200</code> = Breaks | ||
+ | |||
+ | :<code>202</code> = Breaks and does not get regenerated when the area is reloaded | ||
+ | |||
|- | |- | ||
− | |colspan="2" |J ||Special Collision Response Cases ||integer || | + | |colspan="2" |J ||Special Collision Response Cases ||integer || Specifies if the game has a custom response for collisions with this object, and what the response should be if there is one. Values: |
+ | |||
+ | :<code>0</code> = Normal (no custom response) | ||
+ | |||
+ | :<code>1</code> = Lamp post | ||
+ | |||
+ | :<code>2</code> = Small box | ||
+ | |||
+ | :<code>3</code> = Big box (unused in the file) | ||
+ | |||
+ | :<code>4</code> = Fence section | ||
+ | |||
+ | :<code>5</code> = Grenade (unused in the file) | ||
+ | |||
+ | :<code>6</code> = Swinging door | ||
+ | |||
+ | :<code>7</code> = Locked door | ||
+ | |||
+ | :<code>8</code> = Hanging (like the punchbag in the gym) | ||
+ | |||
+ | :<code>9</code> = Pool ball | ||
+ | |||
|- | |- | ||
− | |colspan="2" |K ||Camera to avoid this object ||integer || | + | |colspan="2" |K ||Camera to avoid this object ||integer || Boolean (written as 1 or 0, not true/false) that controls whether the camera should move around the object. |
|- | |- | ||
− | | ||L ||{{a|c}} |Causes Explosion ||integer || | + | | ||L ||{{a|c}} |Causes Explosion ||integer || If not 0, <code>FX_NAME</code> should be a valid effect name. 0 if no explosion effect should occur. |
|- | |- | ||
− | | ||M ||{{a|c}} |FX_TYPE ||integer || | + | | ||M ||{{a|c}} |FX_TYPE ||integer ||When the explosion effect should be played. Values: |
+ | |||
+ | :<code>0</code> = No effect | ||
+ | |||
+ | :<code>1</code> = When hit | ||
+ | |||
+ | :<code>2</code> = When destroyed | ||
+ | |||
+ | :<code>3</code> = When either hit or destroyed (whichever is first) | ||
+ | |||
|- | |- | ||
− | | ||N,O,P ||{{a|c}} |FX_OFFSET ||float[3] || | + | | ||N,O,P ||{{a|c}} |FX_OFFSET ||float[3] ||3D vector. Offset of the effect system from the pivot of the object. If <code>x == -999.0</code>, the game plays the effect at the point of collision. |
|- | |- | ||
− | | ||Q ||{{a|c}} |FX_NAME ||string || | + | | ||Q ||{{a|c}} |FX_NAME ||string || The name of the effect to play. |
|- | |- | ||
− | | ||R ||{{a|c}} |B-SM ||float || | + | | ||R ||{{a|c}} |B-SM ||float ||How much larger the force needed to smash an object should be than the force needed to break it. In code: |
+ | <code>smashForce = B_SM * breakForce</code> | ||
+ | |||
+ | Smashing always takes precedence over breaking so if <code>smashForce == breakForce</code>, the object will smash and not break. | ||
+ | |||
+ | To prevent the object smashing, set a very large value so that it is impossible for the player to achieve the required smash force. | ||
|- | |- | ||
− | | ||S ||{{a|c}} |B-VX ||float || | + | | ||S ||{{a|c}} |B-VX ||float ||Offset velocity on X axis. Offset values are added to the velocity from the impact after randomness is factored in. |
|- | |- | ||
− | | ||T ||{{a|c}} |B-VY ||float || | + | | ||T ||{{a|c}} |B-VY ||float ||Offset velocity on Y axis. |
|- | |- | ||
− | | ||U ||{{a|c}} |B-VZ ||float || | + | | ||U ||{{a|c}} |B-VZ ||float ||Offset velocity on Z axis. |
|- | |- | ||
− | | ||V ||{{a|c}} |B-VR ||float || | + | | ||V ||{{a|c}} |B-VR ||float ||The maximum deviation from the B-VX/Y/Z values due to randomness. |
|- | |- | ||
− | | ||W ||{{a|c}} |B-GUN ||integer || | + | | ||W ||{{a|c}} |B-GUN ||integer || Object behaviour when shot with a gun. Values: |
+ | |||
+ | :<code>0</code> = Immune to gun damage | ||
+ | |||
+ | :<code>1</code> = Breakable | ||
+ | |||
+ | :<code>2</code> = Smashable | ||
+ | |||
|- | |- | ||
− | | ||X ||{{a|c}} |B_SPK ||integer || | + | | ||X ||{{a|c}} |B_SPK ||integer ||Whether sparks are produced on impact (1) or not (0). |
|} | |} | ||
[[Category:Map Formats]] | [[Category:Map Formats]] | ||
{{N|4|SA|VC|3}} | {{N|4|SA|VC|3}} |
Revision as of 15:55, 19 August 2020
The object.dat
file is located in the /data
directory of GTA III, Vice City, and San Andreas, or the /common/data
directory of GTA IV. It defines the physical aspects of objects defined in IDE files.
Format
Name in file | Data type | Description | ||
---|---|---|---|---|
A | Object name | string | Object name. Maximum of 256 characters in length. | |
B | Mass | float | 1 to 50000 inclusive. Unit is kilograms. | |
C | TurnMass | float | The description within the file says kg m^3 or some such dimension, but kg/m3 is actually the unit of density. However, kg/m2 is the unit of rotational inertia, which is sometimes referred to as "rotational mass" (and could be what "TurnMass" is referring to). | |
D | Air Resistance | float | Normalised between 1 and 0. 0 means complete air resistance, 1 means no air resistance. Most objects have a value of 0.99 for this attribute. | |
E | Elasticity | float | How much the object bounces when it collides with something. Normalised. 0 is the least bouncy, 1 is the most. | |
F | Percent Submerged | float | 10 to 120. Most objects have a value of 50.0 for this attribute. | |
G | Uproot Force | float | The magnitude of the force vector that must be applied to the object to remove it from the ground. Possibly Newtons, but no units given. | |
H | Collision Damage Multiplier | float | Controls how much damage a collision with this object should do to vehicles. "0.1 - 5.0 ish" according to the file. | |
I | Collision Damage Effect | integer | What happens to the object when it is collided with. Values:
| |
J | Special Collision Response Cases | integer | Specifies if the game has a custom response for collisions with this object, and what the response should be if there is one. Values:
| |
K | Camera to avoid this object | integer | Boolean (written as 1 or 0, not true/false) that controls whether the camera should move around the object. | |
L | Causes Explosion | integer | If not 0, FX_NAME should be a valid effect name. 0 if no explosion effect should occur.
| |
M | FX_TYPE | integer | When the explosion effect should be played. Values:
| |
N,O,P | FX_OFFSET | float[3] | 3D vector. Offset of the effect system from the pivot of the object. If x == -999.0 , the game plays the effect at the point of collision.
| |
Q | FX_NAME | string | The name of the effect to play. | |
R | B-SM | float | How much larger the force needed to smash an object should be than the force needed to break it. In code:
Smashing always takes precedence over breaking so if To prevent the object smashing, set a very large value so that it is impossible for the player to achieve the required smash force. | |
S | B-VX | float | Offset velocity on X axis. Offset values are added to the velocity from the impact after randomness is factored in. | |
T | B-VY | float | Offset velocity on Y axis. | |
U | B-VZ | float | Offset velocity on Z axis. | |
V | B-VR | float | The maximum deviation from the B-VX/Y/Z values due to randomness. | |
W | B-GUN | integer | Object behaviour when shot with a gun. Values:
| |
X | B_SPK | integer | Whether sparks are produced on impact (1) or not (0). |
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 |