AttribSys Vault

AttribSys vault resources act as a database which holds attributes for vehicles, engines, surfaces and more. They are split into the vault, which holds information needed to access the data, and the bin, which holds the actual attribute data. Vaults work with the AttribSys schema found in the executable.

= Structures =

64-bit
= Vault = The vault is a set of structures with ChunkBlocks which are read sequentially. In Burnout Paradise, these are:
 * Vers: The version
 * DepN: The dependency node
 * StrN: The start node
 * DatN: The data node
 * ExpN: The export node
 * PtrN: The pointer node

Attrib::Vault::DependencyNode
This structure is immediately followed by the hashes of the dependency strings, then the offsets of the strings relative to the start of the first string, then the strings themselves.

Start node
Size is 16 bytes, but the final 8 bytes is always null. This node appears to not be read by the game.

Data node
This is followed by several collections.

This node is not read directly. Pointers in other nodes read the data that lies in this node.

Attrib::CollectionLoadData
This is always followed by the types, then the entries (which are the key followed by several unknown bytes - might be a node).

Attrib::Vault::ExportNode
Followed by export entries of an amount defined by mCount.

Attrib::Vault::PointerNode
Followed by several PtrRefs.

Attrib::PtrRef
Pointers with type 2 with an index of 1 point to the bin.

Attrib::PtrRef::anon_union_0
= Bin = The bin is primarily data but has one ChunkBlock in Burnout Paradise:
 * StrE: The string exports

The rest of the data in the bin is not associated to a chunk and is instead pointed to by the vault.

String exports
This is followed by null-terminated strings.

Attributes
The fields and order are defined by the AttribSys schema.
 * Engines (Burnout Paradise)/Attributes
 * Vehicles (Burnout Paradise)/Attributes