object.dat

From GTAMods Wiki
Revision as of 15:55, 19 August 2020 by Squ1dd13 (talk | contribs) (Added all descriptions. Still not sure about table formatting...)
Jump to navigation Jump to search

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

GTA III Vice City San Andreas 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:
0 = Nothing
1 = Changes model
20 = Smashes
21 = Changes model and then smashes
200 = Breaks
202 = Breaks and does not get regenerated when the area is reloaded
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:
0 = Normal (no custom response)
1 = Lamp post
2 = Small box
3 = Big box (unused in the file)
4 = Fence section
5 = Grenade (unused in the file)
6 = Swinging door
7 = Locked door
8 = Hanging (like the punchbag in the gym)
9 = Pool ball
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:
0 = No effect
1 = When hit
2 = When destroyed
3 = When either hit or destroyed (whichever is first)
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:

smashForce = B_SM * breakForce

Smashing always takes precedence over breaking so if smashForce == breakForce, 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 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:
0 = Immune to gun damage
1 = Breakable
2 = Smashable
X B_SPK integer Whether sparks are produced on impact (1) or not (0).