Skip to content

Tag Properties#

Tags can contain a wide variety of properties.

Integers#

Integers store real numbers with no decimal places. The different types have different lengths, smaller types can be used to save disk space and to aid in compression.

int8#

  • An int8 type can have a value from -128 to 127. Decimal places are not allowed.

int16#

  • An int16 type can have a value from -32768 to 32767. Decimal places are not allowed.

int32#

  • An int32 type can have a value from -2147483648 to 2147483647. Decimal places are not allowed.

Floats#

float32#

  • A float32 can store values with up to 6 decimal places of precision.

float [TBD]#

  • A float can store values with up to 6 decimal places of precision. needs confirmation from a tag somewhere in assembly

Colors#

colorf#

  • A colorf stores color in a float format.

colorint [TBD]#

  • A colorint stores color in an int format.

Bitfields#

bitfield8#

  • A bitfield8 stores up to 8 boolean properties, or bits. Most true/false values in a tag are stored this way.

bitfield16#

  • A bitfield16 stores up to 16 boolean properties, or bits.

bitfield32#

  • A bitfield32 stores up to 16 boolean properties, or bits.

Enums#

enum8#

  • An enum8 acts as a way to pick from a variety of different options, similar to a combobox. They are often represented as a combobox in any UI elements involved in tag editing.

enum16#

  • An enum16 acts as a combobox with up to 16 options.

enum32#

  • An enum32 acts as a combobox with up to 32 options.

Other/Misc#

ascii#

  • An ascii stores text data directly in a tag, separately from the string table.

reflexive/block#

  • A block, referred to as reflexives in the Halo mod scene, as well as structs in the earlier days of Halo modding, are blocks that store any number of entries that each contain their own properties. A single entry can be used to group properties together, but it has support for multiple entries, each available with their own index.

dataref#

  • A dataref is a way of storing raw bytes of data. A length must be provided for these.

stringid#

  • A stringid is a reference to a string within a level's string table. If a stringid reference is invalid, an error will be displayed in console and will be treated as an empty string at runtime.

boolean#

  • A boolean stores a simple true or false option. Generally, these are not used often as most of these types of options are stored in bitfields.

undefined#

  • These are unknown/undefined types. Some of these will be present initially as we will be starting off utilizing tag formats from the official games. As we go on, undefined properties will either be removed or repurposed for our own needs.