STU/Unlock

From owdev
Jump to: navigation, search

Outlines the format for the 0A5 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.

The 0A5 file has several internal types.

Common Types

struct array_definition_t {
  uint64 count;
  uint64 offset;
}

struct record_t {
  uint64 padding;
  uint64 key;
}

Generic Inventory Item

Each STUD within this type has this super-header

 struct item_header {
   uint32 id;
   uint32 next_instance;
   record_t name; 
   record_t icon; // zero
   record_t unk1;       // zero
   record_t background_mask;       // zero, 1.4.0.2
   record_t availble_in;
   uint64 unk2;     //
   uint64 unk3;     //
   record_t description;
   ITEM_RARITY rarity;     // 0 = common, 1 = rare, 2 = epic, 3 = legendary
   uint32 sort_order;    // ?
 }
 enum ITEM_RARITY : uint32 {
   COMMON    = 0,
   RARE      = 1,
   EPIC      = 2,
   LEGENDARY = 3,
 }

STUUnlock_LootBox

Checksum 0x61632B43

 struct header {
   item_header metadata;
   uint64 unk1; // zero
   uint64 unk2; // zero
 }

STUUnlock_PortraitFrame

Checksum 0x3ECCEB5D

 struct header {
   item_header metadata;
   record_t portrait;      // Key for portrait
   record_t portrait2;     // Key for portrait @ 2
   uint32 unk1;     // 1?
   uint32 indice;   // indice?
   uint64 unk2;     // zero
 }

STUUnlock_SprayPaint

Checksum 0x15720E8A

 struct header {
   item_header metadata;
   uint64 unk3;      // zero
   record_t f00D;   // Points to a 00D file
   record_t decal;   // Points to a decal file
   uint64 unk1;      // 128?
 }

STUUnlock_SprayPaintEffect

Checksum 0x6DA011A1

 struct data {
   uint id;
   uint next_instance;
   record_t f00D;   // Points to a 00D file
   record_t decal;   // Points to a decal
 }

STUUnlock_Currency

Checksum 0x0BCAF9C9

 struct header {
   item_header metadata;
   uint64 unk1;      // zero
 }

STUUnlock_RankedCurrency

Checksum 0x3AC0997D

 struct header {
   item_header metadata;
   uint64 unk1;      // zero
 }

STUUnlock_AvatarPortrait

Checksum 0x8CDAA871

 struct header {
   item_header metadata;
   uint64 unk1;      // zero
   record_t f00DKey;   // points to a 00D file
   record_t decal;   // points to a decal file
   uint64 unk2;      //
 }

STUUnlock_SkinTheme

Checksum 0x8B9DEB02

 struct header {
   item_header metadata;
   record_t f0A6Key;   // points to a 0A6 file
 }

STUUnlock_POTGAnimation

Checksum 0x4EE84DC0

 struct header {
   item_header metadata;
   record_t f006Key;   // points to a 006 file
   uint64 unk1;      // zero
   uint64 unk2;      // zero
 }

STUUnlock_Weapon

Checksum 0x01609B4D

 struct header {
   item_header metadata;
   uint64 unk1;      // zero
   uint64 unk2;      // zero
 }

This struct MOST LIKELY isn't valid anymore.

STUUnlock_Emote

Checksum 0xE533D614

 struct header {
   item_header metadata;
   record_t f014;   // points to a 014 file
   uint32 unk1;      //
   float unk2;       // duration maybe?
   uint64 unk3;      //
   uint32 unk4;
   float unk5;
   uint64 unk6;      //
 }

STUUnlock_Pose

Checksum 0x018667E2

 struct header {
   item_header metadata;
   record_t f0BF;   // points to a 0BF file
 }

STUUnlock_VoiceLine

Checksum 0x090B30AB

Note this is a reference file, so far the second 00D file is shared across all heroes for one particular voice line. The actual sound file is defined somewhere else.

 struct header {
   item_header metadata;
   uint64 unk1;      //
   record_t f00D;   // points to a 00D file
   record_t decal;   // points to a decal file
   record_t index;  // points to a 00D file
   uint64 unk2;      //
 }

STUUnlock_Trophy

Checksum 0x7979C642

empty?

STUUnlock_HeroMod

Checksum 0x3482B4E9

Unused, probably leftover from Project Titan (which Overwatch/Prometheus/Tank is based on)