Difference between revisions of "OBJS"

From GTAMods Wiki
Jump to navigation Jump to search
m
m
Line 1: Line 1:
 
{{IdeSection
 
{{IdeSection
| game        = {{Icon|t}} {{Icon|4}}
+
|game        = {{Icon|t}} {{Icon|4}}
| description = Used to define standard map objects
+
|description = Used to define standard map objects
 
}}
 
}}
 
'''OBJS''' is a section in the [[item definition]] file in [[GTA III]], [[Vice City]], [[San Andreas]], and [[GTA IV]]. It is used to define standard map objects. There are also sections to extend default object definitions:
 
'''OBJS''' is a section in the [[item definition]] file in [[GTA III]], [[Vice City]], [[San Andreas]], and [[GTA IV]]. It is used to define standard map objects. There are also sections to extend default object definitions:
Line 27: Line 27:
 
This type should never be used but it is still considered valid. It is documented here for sake of completion.
 
This type should never be used but it is still considered valid. It is documented here for sake of completion.
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
! style="width: 4em;"| {{Icon|t}}
+
!style="width: 4em;" |{{Icon|t}}
! style="width: 12em;"| Identifier
+
!style="width: 12em;" |Identifier
! style="width: 6em;" | Type
+
!style="width: 6em;" |Type
! Description
+
!Description
 
|-
 
|-
| A || Id || integer || Unique object ID.
+
|A ||Id ||integer ||Unique object ID.
 
|-
 
|-
| B || ModelName || string || Name of the <code>.dff</code> [[model file]] without extension.
+
|B ||ModelName ||string ||Name of the <code>.dff</code> [[model file]] without extension.
 
|-
 
|-
| C || TxdName || string || Name of the <code>.txd</code> [[texture dictionary]] without extension.
+
|C ||TxdName ||string ||Name of the <code>.txd</code> [[texture dictionary]] without extension.
 
|-
 
|-
| D || ''unknown'' || integer || ''unknown''
+
|D ||''unknown'' ||integer ||''unknown''
 
|}
 
|}
  
Line 44: Line 44:
 
This is used for non-breakable objects.
 
This is used for non-breakable objects.
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
! style="width: 4em;"| {{Icon|t}}
+
!style="width: 4em;" |{{Icon|t}}
! style="width: 12em;"| Identifier
+
!style="width: 12em;" |Identifier
! style="width: 6em;" | Type
+
!style="width: 6em;" |Type
! Description
+
!Description
 
|-
 
|-
| A || Id || integer || Unique object ID.
+
|A ||Id ||integer ||Unique object ID.
 
|-
 
|-
| B || ModelName || string || Name of the <code>.dff</code> [[model file]] without extension.
+
|B ||ModelName ||string ||Name of the <code>.dff</code> [[model file]] without extension.
 
|-
 
|-
| C || TxdName || string || Name of the <code>.txd</code> [[texture dictionary]] without extension.
+
|C ||TxdName ||string ||Name of the <code>.txd</code> [[texture dictionary]] without extension.
 
|-
 
|-
| D || MeshCount || integer || Number of meshes. 1 for this type.
+
|D ||MeshCount ||integer ||Number of meshes. 1 for this type.
 
|-
 
|-
| E || DrawDistance || float || [[Draw distance]] in [[unit]]s.
+
|E ||DrawDistance ||float ||[[Draw distance]] in [[unit]]s.
 
|-
 
|-
| F || Flags || integer || Object flags (see [[#Object flags|below]]).
+
|F ||Flags ||integer ||Object flags (see [[#Object flags|below]]).
 
|}
 
|}
  
Line 65: Line 65:
 
This is used for breakable objects.
 
This is used for breakable objects.
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
! style="width: 4em;"| {{Icon|t}}
+
!style="width: 4em;" |{{Icon|t}}
! style="width: 12em;"| Identifier
+
!style="width: 12em;" |Identifier
! style="width: 6em;" | Type
+
!style="width: 6em;" |Type
! Description
+
!Description
 
|-
 
|-
| A || Id || integer || Unique object ID.
+
|A ||Id ||integer ||Unique object ID.
 
|-
 
|-
| B || ModelName || string || Name of the <code>.dff</code> [[model file]] without extension.
+
|B ||ModelName ||string ||Name of the <code>.dff</code> [[model file]] without extension.
 
|-
 
|-
| C || TxdName || string || Name of the <code>.txd</code> [[texture dictionary]] without extension.
+
|C ||TxdName ||string ||Name of the <code>.txd</code> [[texture dictionary]] without extension.
 
|-
 
|-
| D || MeshCount || integer || Number of meshes. 2 for this type.
+
|D ||MeshCount ||integer ||Number of meshes. 2 for this type.
 
|-
 
|-
| E,F || DrawDistance1, DrawDistance2 || float[2] || [[Draw distance]] in [[unit]]s (one for each mesh, only the first is actually used).
+
|E,F ||DrawDistance1, DrawDistance2 ||float[2] ||[[Draw distance]] in [[unit]]s (one for each mesh, only the first is actually used).
 
|-
 
|-
| G || Flags || integer || Object flags (see [[#Object flags|below]]).
+
|G ||Flags ||integer ||Object flags (see [[#Object flags|below]]).
 
|}
 
|}
  
Line 86: Line 86:
 
This is used for complex breakable objects.
 
This is used for complex breakable objects.
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
! style="width: 4em;"| {{Icon|t}}
+
!style="width: 4em;" |{{Icon|t}}
! style="width: 12em;"| Identifier
+
!style="width: 12em;" |Identifier
! style="width: 6em;" | Type
+
!style="width: 6em;" |Type
! Description
+
!Description
 
|-
 
|-
| A || Id || integer || Unique object ID.
+
|A ||Id ||integer ||Unique object ID.
 
|-
 
|-
| B || ModelName || string || Name of the <code>.dff</code> [[model file]] without extension.
+
|B ||ModelName ||string ||Name of the <code>.dff</code> [[model file]] without extension.
 
|-
 
|-
| C || TxdName || string || Name of the <code>.txd</code> [[texture dictionary]] without extension.
+
|C ||TxdName ||string ||Name of the <code>.txd</code> [[texture dictionary]] without extension.
 
|-
 
|-
| D || MeshCount || integer || Number of meshes. 3 for this type.
+
|D ||MeshCount ||integer ||Number of meshes. 3 for this type.
 
|-
 
|-
| E,F,G || DrawDistance1, DrawDistance2, DrawDistance3 || float[3] || [[Draw distance]] in [[unit]]s (one for each mesh, only the first is actually used).
+
|E,F,G ||DrawDistance1, DrawDistance2, DrawDistance3 ||float[3] ||[[Draw distance]] in [[unit]]s (one for each mesh, only the first is actually used).
 
|-
 
|-
| H || Flags || integer || Object flags (see [[#Object flags|below]]).
+
|H ||Flags ||integer ||Object flags (see [[#Object flags|below]]).
 
|}
 
|}
  
Line 107: Line 107:
 
This is used for non-breakable objects and behaves equivalently to [[#Type 1|Type 1]].
 
This is used for non-breakable objects and behaves equivalently to [[#Type 1|Type 1]].
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
! style="width: 3em;"| {{Icon|SA}}
+
!style="width: 3em;" |{{Icon|SA}}
! style="width: 12em;"| Identifier
+
!style="width: 12em;" |Identifier
! style="width: 6em;" | Type
+
!style="width: 6em;" |Type
! Description
+
!Description
 
|-
 
|-
| A || Id || integer || Unique object ID.
+
|A ||Id ||integer ||Unique object ID.
 
|-
 
|-
| B || ModelName || string || Name of the <code>.dff</code> [[model file]] without extension.
+
|B ||ModelName ||string ||Name of the <code>.dff</code> [[model file]] without extension.
 
|-
 
|-
| C || TxdName || string || Name of the <code>.txd</code> [[texture dictionary]] without extension.
+
|C ||TxdName ||string ||Name of the <code>.txd</code> [[texture dictionary]] without extension.
 
|-
 
|-
| D || DrawDistance || float || [[Draw distance]] in [[unit]]s.
+
|D ||DrawDistance ||float ||[[Draw distance]] in [[unit]]s.
 
|-
 
|-
| E || Flags || integer || Object flags (see [[#Object flags|below]]).
+
|E ||Flags ||integer ||Object flags (see [[#Object flags|below]]).
 
|}
 
|}
  
Line 131: Line 131:
 
==== Type 1 ====
 
==== Type 1 ====
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
! style="width: 3em;"| {{Icon|4}}
+
!style="width: 3em;" |{{Icon|4}}
! style="width: 12em;"| Identifier
+
!style="width: 12em;" |Identifier
! style="width: 6em;" | Type
+
!style="width: 6em;" |Type
! Description
+
!Description
 
|-
 
|-
| A || ModelName || string || Name of the <code>[[WDR|.wdr]]</code> model file without extension.
+
|A ||ModelName ||string ||Name of the <code>[[WDR|.wdr]]</code> model file without extension.
 
|-
 
|-
| B || TxdName || string || Name of the <code>[[WTD|.wtd]]</code> texture dictionary without extension.
+
|B ||TxdName ||string ||Name of the <code>[[WTD|.wtd]]</code> texture dictionary without extension.
 
|-
 
|-
| C || DrawDistance || float || Draw distance in units.
+
|C ||DrawDistance ||float ||Draw distance in units.
 
|-
 
|-
| D || Flag || integer || Object flag (see [[#Object flags|below]]).
+
|D ||Flag ||integer ||Object flag (see [[#Object flags|below]]).
 
|-
 
|-
| E || ''unknown'' || float || Unknown integer (usually 0 but uses other values as high as 32).
+
|E ||''unknown'' ||float ||Unknown integer (usually 0 but uses other values as high as 32).
 
|-
 
|-
| F,G,H || MinX, MinY, MinZ || float[3] || Lower left corner of the bounding box for the object.
+
|F,G,H ||MinX, MinY, MinZ ||float[3] ||Lower left corner of the bounding box for the object.
 
|-
 
|-
| I,J,K || MaxX, MaxY, MaxZ || float[3] || Upper right corner of the bounding box for the object.
+
|I,J,K ||MaxX, MaxY, MaxZ ||float[3] ||Upper right corner of the bounding box for the object.
 
|-
 
|-
| L,M,N || SphereX, SphereY, SphereZ || float[3] || Center of the bounding sphere for the object.
+
|L,M,N ||SphereX, SphereY, SphereZ ||float[3] ||Center of the bounding sphere for the object.
 
|-
 
|-
| O || Radius || float || Radius of the bounding sphere into all dimensions.
+
|O ||Radius ||float ||Radius of the bounding sphere into all dimensions.
 
|-
 
|-
| P || LODModel || string || Name of the <code>[[WDD|.wdd]]</code> file that contains the ''lod model'' for the defined modelname; otherwise ''null''.
+
|P ||LODModel ||string ||Name of the <code>[[WDD|.wdd]]</code> file that contains the ''lod model'' for the defined modelname; otherwise ''null''.
 
|}
 
|}
  

Revision as of 18:02, 6 July 2017

OBJS (IDE section)
Supported games:GTA III Vice City San Andreas GTA IV
Brief description:Used to define standard map objects
IDE Sections:
2DFX AMAT ANIM CARS HIER HAND MLO OBJS
PATH PEDS TANM TOBJ TREE TXDP WEAP

OBJS is a section in the item definition file in GTA III, Vice City, San Andreas, and GTA IV. It is used to define standard map objects. There are also sections to extend default object definitions:

  • TOBJ for defining an additional ingame time range the object gets rendered in.
  • ANIM which links an animation to an object.
  • TANM which does both of the previously mentioned sections.

Format

GTA III, Vice City, and San Andreas

objs
# type 1 (III/VC/SA)
Id, ModelName, TxdName, MeshCount, DrawDistance, Flags
# type 2 (III/VC/SA)
Id, ModelName, TxdName, MeshCount, DrawDistance1, DrawDistance2, Flags
# type 3 (III/VC/SA)
Id, ModelName, TxdName, MeshCount, DrawDistance1, DrawDistance2, DrawDistance3, Flags
# type 4 (SA)
Id, ModelName, TxdName, DrawDistance, Flags
end

Type 0

This type should never be used but it is still considered valid. It is documented here for sake of completion.

GTA III Vice City San Andreas Identifier Type Description
A Id integer Unique object ID.
B ModelName string Name of the .dff model file without extension.
C TxdName string Name of the .txd texture dictionary without extension.
D unknown integer unknown

Type 1

This is used for non-breakable objects.

GTA III Vice City San Andreas Identifier Type Description
A Id integer Unique object ID.
B ModelName string Name of the .dff model file without extension.
C TxdName string Name of the .txd texture dictionary without extension.
D MeshCount integer Number of meshes. 1 for this type.
E DrawDistance float Draw distance in units.
F Flags integer Object flags (see below).

Type 2

This is used for breakable objects.

GTA III Vice City San Andreas Identifier Type Description
A Id integer Unique object ID.
B ModelName string Name of the .dff model file without extension.
C TxdName string Name of the .txd texture dictionary without extension.
D MeshCount integer Number of meshes. 2 for this type.
E,F DrawDistance1, DrawDistance2 float[2] Draw distance in units (one for each mesh, only the first is actually used).
G Flags integer Object flags (see below).

Type 3

This is used for complex breakable objects.

GTA III Vice City San Andreas Identifier Type Description
A Id integer Unique object ID.
B ModelName string Name of the .dff model file without extension.
C TxdName string Name of the .txd texture dictionary without extension.
D MeshCount integer Number of meshes. 3 for this type.
E,F,G DrawDistance1, DrawDistance2, DrawDistance3 float[3] Draw distance in units (one for each mesh, only the first is actually used).
H Flags integer Object flags (see below).

Type 4

This is used for non-breakable objects and behaves equivalently to Type 1.

San Andreas Identifier Type Description
A Id integer Unique object ID.
B ModelName string Name of the .dff model file without extension.
C TxdName string Name of the .txd texture dictionary without extension.
D DrawDistance float Draw distance in units.
E Flags integer Object flags (see below).

GTA IV

objs
ModelName, TxdName, DrawDistance, Flag, unknown, MinX, MinY, MinZ, MaxX, MaxY, MaxZ, SphereX, SphereY, SphereZ, Radius, LODModel
end

Type 1

GTA IV Identifier Type Description
A ModelName string Name of the .wdr model file without extension.
B TxdName string Name of the .wtd texture dictionary without extension.
C DrawDistance float Draw distance in units.
D Flag integer Object flag (see below).
E unknown float Unknown integer (usually 0 but uses other values as high as 32).
F,G,H MinX, MinY, MinZ float[3] Lower left corner of the bounding box for the object.
I,J,K MaxX, MaxY, MaxZ float[3] Upper right corner of the bounding box for the object.
L,M,N SphereX, SphereY, SphereZ float[3] Center of the bounding sphere for the object.
O Radius float Radius of the bounding sphere into all dimensions.
P LODModel string Name of the .wdd file that contains the lod model for the defined modelname; otherwise null.

GTA IV stores bounding information inside the item definitions for better performance. The previous games stored bounding information inside the collision files. Also it uses the hashes of the model names as a key of an hash table instead of the ID as an index to the definition array for previous games.

Object flags

Flags are used to specify the behaviour of objects. They are signed 32-bit integer values where each bit describes a boolean value of an special aspect.

Flag Supported games Binary Description
-1 1111 1111 1111 1111 1111 1111 Enables all flags.[a] Never used by default.
1 GTA III Vice City San Andreas GTA IV 0000 0000 0000 0000 0000 0001 Wet effect (objects appear darker).
2 GTA III Vice City San Andreas GTA IV 0000 0000 0000 0000 0000 0010 Do not fade the object when it is being loaded into or out of view.
4 GTA III Vice City San Andreas GTA IV 0000 0000 0000 0000 0000 0100 Allow transparencies of other objects to be visible through this object.
8 GTA III Vice City San Andreas GTA IV 0000 0000 0000 0000 0000 1000 Alpha transparency 2
16 GTA III Vice City San Andreas GTA IV 0000 0000 0000 0000 0001 0000 Opposite to flag 2
32 GTA III Vice City San Andreas GTA IV 0000 0000 0000 0000 0010 0000 Indicates an object to be used inside an interior.
64 GTA III Vice City San Andreas GTA IV 0000 0000 0000 0000 0100 0000 Disables the shadow mesh to project a shadow; allow transparencies of other objects, shadows, and lights to be visible through this object.
128 Vice City San Andreas GTA IV 0000 0000 0000 0000 1000 0000 Object surface will not be culled.
256 Vice City San Andreas GTA IV 0000 0000 0000 0001 0000 0000 Disables draw distance (Only used for LOD objects with an LOD value greater than 299).
512 Vice City San Andreas GTA IV 0000 0000 0000 0010 0000 0000 Object is breakable (like glass – additional parameters defined inside the object.dat file, otherwise there is no effect).
1024 Vice City San Andreas GTA IV 0000 0000 0000 0100 0000 0000 Similar to flag 512: object first cracks on a strong collision, then it breaks (does also require object.dat registration).
2048 San Andreas GTA IV 0000 0000 0000 1000 0000 0000 Indicates an object as an garage door (for more information see GRGE – requires object.dat registration).
4096 San Andreas GTA IV 0000 0000 0001 0000 0000 0000 Indicates a multi mesh object (Object switches from mesh 2 to mesh 1 after collision – requires object.dat registration).
16384 San Andreas 0000 0000 0100 0000 0000 0000 Indicates a vegetation object (Object moves in wind).
32768 San Andreas GTA IV 0000 0000 1000 0000 0000 0000 Uses object brightness from the current weather definition (See timecyc.datPoleShd).
65536 San Andreas GTA IV 0000 0001 0000 0000 0000 0000 Object explodes after getting hit (requires object.dat registration).
131072 San Andreas 0000 0010 0000 0000 0000 0000 Unknown – apparently some flag for the Script.
262144 San Andreas 0000 0100 0000 0000 0000 0000 Unknown – only used 1 time in San Andreas.
1048576 San Andreas 0000 1000 0000 0000 0000 0000 Object will switch from mesh 2 to mesh 1 after getting sprayed by the player (graffity flag).
2097152 San Andreas 0001 0000 0000 0000 0000 0000 Disables backface culling – as an result the texture will be drawed on both sides of the model (Always enabled for GTA III and Vice City)
4194304 San Andreas 0010 0000 0000 0000 0000 0000 Unknown – apparently related into physics.
edit

Statistics

Total number of OBJS entries in:

GTA III: 2908 (max 5000)
Type 1: 2844
Type 2: 63
Type 3: 1
Vice City: 3800 (max 3885)
Type 1: 3761
Type 2: 38
Type 3: 1
San Andreas: 14052
Type 1: 1
Type 4: 14051
GTA IV: 24820

See also