Skip to content

XAP Project Format

Robert Jordan edited this page May 28, 2020 · 1 revision

The .xap XACT project is a text file read by XactBld3.exe to compile Wave Banks (.xwb), Sound Banks (.xsb), and Global Settings (.xgs) files.

It uses a loose JSON-like syntax, (also similar to Valve's .vdf KeyFiles). However the format seems to be somewhat limited in what characters can be defined in values.

Format Outline

A Root Property = This is a Value;

Object
{
   My Property = Value;
   
   SubObject
   {
       My Sub Property = My Value;
   }

   SubObject
   {
       My Sub Property = My other value;
   }
}

Syntax

  • Each line may only contain one type of item:
    • Property: My Prop = My Value;
    • Object name: My Obj
    • Object open brace {
    • Object close brace: }
    • Whitespace/empty line.
  • Properties must use = for assignment and ; to end the assignment value.
  • An object is defined with a name, then opening { on a new line, and closing } after its sub-properties and sub-objects have been defined.
  • An object with no items defined in its scope is legal.
  • An object's name is not require to be unique. The name more closely resembles the Type of object structure.
    • Multiple uses of an object name likely map to arrays of said object internally. The order of objects defined in the same scope is important, which solidifies this theory.
  • There is no quoting syntax, spaces are allowed in names and values.

Unconfirmed

  • Existing character escape formats are not known.
  • Support for control characters in values is unknown.
  • Considering the ; is used to end a line, it may be possible for a value to span multiple lines.
  • The order of definitions may be important, i.e properties defined before objects at any level.
Clone this wiki locally