STUD/Override

From owdev
Jump to: navigation, search

Outlines the format for the 0A6 file blob. To see the generic STUD structure that wraps the blob and array definition, see STUD. The file always starts with a header struct.

Common Types

 struct record_t {
   ulong padding; // 0xfff...
   ulong key;
 }

Information Chunk

ID is 0x4FB2CE32

 struct header {
   record_t encryptionKey;
   uint64 rarity;
   uint8 unknown;
   uint8 unknown;
   uint16 unknown;
   uint32 unknown;
   uint64[4] unknown;
   uint64 offsetReplacementArray;
   uint64[3] unknown;
   record_t icon;
   uint64[4] unknown;
   record_t unknown;
   uint64[2] unknown;
   record_t unknown;
   float[4] unknown;
}

The replacement array offset points to a reference array. The key of each reference is the key to replace with the target instance value.

Reference Chunk

These records are also referenced by the information chunk.

Instance Table ID is 0xB87BF59ADE760C26, Local ID is 0x8305C688

 struct reference {
   uint32 id;
   uint32 next_instance;    // offset to next entry. if 0xFFFFFFFF, it's the last one
   uint64 f0B3Key; // points to a 0B3 file, usually
 }

STUHeroWeapon

Similar structure to the information chunk, uses the same reference indices. Found in 0AD files.

Instance Table ID is 0x7B9E6EF05C0F92F8, Local ID is 0x3FCD3E39

 struct secondary {
   uint id;
   uint next_instance;
   record_t zero1;
   ulong unk1;
   ulong one;
   ulong unk2;
   ulong unk3;
   ulong offset_info;
   ulong unk5;
   ulong unk6;
   ulong unk7;
   ulong unk8;
 }