object.dat

From GTAMods Wiki
Revision as of 16:06, 19 August 2020 by Squ1dd13 (talk | contribs) (Removed stub template)
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

If either 200 or 202 is specified, extra breakable object information must be specified.

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. If there is no effect, none should be used. (The file says it should be noname, but none is used instead. noname is never used.)

Extra breakable object information

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).