STUD/Entity Definition

From owdev
(Redirected from STUD/Binding Root)
Jump to: navigation, search

003 files are complicated STUD files, for this particular STUD file it's easier to parse it per instance record rather than from the first instance header.

This page will only be describing the STUD file on a per-instance basis.

Common Types

 struct record_t {
   ulong padding;
   ulong key;
 }

STUStatescriptComponent

ID 0x9B38211B

 struct Header0x11C983E815FECD28 {
   uint id;
   uint next_instance;
   ulong parameters_offset; // array_definition * ParameterRecord0x11C983E815FECD28
   ulong unk2;
   uint unk3;
   uint unk4;
 }
 
 struct ParameterRecord0x11C983E815FECD28 {
   record_t parameter;
   ulong unk1;
   ulong unk2;
   ulong unk3;
 }

View Model Record

ID 0xDAF7A654

 struct Header0x503AD86BB9752B99 {
   uint id;
   uint next_instance;
   record_t modelBinding;
   float unk1;
   float unk2;
   float unk3;
   uint unk4;
   uint unk5;
   uint unk6; 
 }

STUModelComponent

ID 0xBC1233E0

 struct Header0xF65022A8B1E146D9 {
   uint id;
   uint next_instance;
   record_t animations;		// movement? (021, STUD)
   record_t secondaryAnimations;// 020, STUD]]
   record_t fbond;		// File_type_007
   record_t model;		// model file (00C)
   record_t material;		// material file (01A, STUD)
   ulong* unk1[3];		// zero
   float unk4;			//
   uint unk5;			// zero
   byte* params[10]		// ?
   ushort* unk6[7];		// ?
 }

STUWeaponComponent

ID is 0x378F54CD

 struct Header0x8D08A5795843FDD2 {
   uint id;
   uint next_record;
   record_t binding;
   ulong offset; // points to an array_definition, each entry is a Child0x8D08A5795843FDD2
   ulong offset2;
   ulong offset3;
 }

 struct Child0x8D08A5795843FDD2 {
   record_t unk1; // usually zero
   ulong unk2;
   ulong unk3;
   ulong unk4;
   record_t parameter; // sometimes zero
 }

STUEntityDefinition

ID is 0xEC23FFFD

 struct Header0x9284FC578E1984E3 {
   uint id;
   uint next_instance;
   record_t binding;
   ulong offset; // array_definition, each entry is a Binding0x9284FC578E1984E3
   ulong unk1;
   ulong offset_info; // reference_array_definition, key is local instance id.
   ulong unk2;
   ulong unk3;
 }

 struct Binding0x9284FC578E1984E3 {
   ulong unk1;
   record_t binding; // 003 file
   record_t virtual_record; // doesn't exist
   record_t unk2; // zero
   ulong unk3;
 }

Sound List Reference

Refers to a 05F file, usually.

ID 0x528F2F94

 struct Header0x2AFA1A146E4A7E6B {
   uint id;
   uint next;
   record_t file;
 }

Animation Coreference

ID 0xC811BADD

struct Header0xADD66DCFB21894C4 {
  uint local_id;
  uint next;
  ulong offset1;	// -> array definition -> AnimationReference0xADD66DCFB21894C4
  ulong unk1;		// zero
  ulong unk2;		// zero
}
struct AnimationReference0xADD66DCFB21894C4 {
  ulong unk1;		// zero
  record_t reference;	// 006 file
  float start;		// start time (in seconds)
  float end;		// end time (in seconds)
  uint unk2;		// zero
  uint unk3;		// one
}

STUEffectComponent

ID 0x7454409A

 record_t reference; // 00D file

Notes

  1. offset_grouping points to a reference array definition, each reference should be grouped together per indice. Key is local instance ID.