Tag

Tags are the fundamental units of the internal content and resource management systems used by Bungie in the Halo games. Various pieces of data including objects and textures are represented using tags. They are effectively the Halo implementation of Windows program resources, and can also be compared to computer files in a file system and tags in an XML document.

Technical explanation
When coding the games in the Halo trilogy, Bungie needed a way to organize and access their content at run-time. They decided to use a system of tags and tag groups, storing game resources as tags and sorting them into groups by type.

When a component of the game needs to use a resource, it is given a reference to the tag instead of a direct reference to the resource. This makes it easier to transform the tag at run-time (e.x. distorting a sound if the game camera is underwater). Also, by defining most game assets as tags, Bungie compartmentalized their code, separating the process of loading the tags and the process of using the tags, thus making it easier and simpler to load a tag.

Because the parts of the game that use the tags (things like the physics engine) are separate from the parts of the game that load the tags (the tag manager), it is possible to optimize the loading of tags without having to modify the parts of the program that use them. This allows features like tag caching to be added and modified while leaving other core parts of the game engine untouched.

Role in modding
Tags are very important when modding Halo: Combat Evolved, Halo: Custom Edition, and Halo 2. Most mods involve altering models, AIs, items, textures, and map geometry, all of which are implemented in the form of tags; a basic understanding of tags and their usage is necessary when modding.

Tags are created and manipulated with Halo: Custom Edition's Halo Editing Kit. The kit's Tool program can compile tags; Guerilla can edit the properties of tags, including references to other tags; Sapien allows the visual editing of a level, including the placing of other tags (e.x. weapons and vehicles) inside of the level's geometry.

Modified versions of the kit's programs, as well as extensive libraries of custom tags, can be found on various websites and used to create entirely new maps, vehicles, bipeds, AIs, and textures.