Category:Tags

Tag Classes and Tag Types
A Halo tag is a file that stores specific kinds of information, grouped by type. For example, a particular kind of vehicle in the game will have its data stored within a vehicle tag type. There are 83 tag types mentioned as part of the Halo Editing Kit for the Halo 1 game. Each tag type has a special format whereby it stores data.

Each tag type is named internally by a four-character abbreviation. If there are only three characters, they are followed by a blank space or a symbol, such as "sky ", "fog ", and "hud#". As standalone Halo Editing Kit format files, they use their own named file extensions. In the following list, there is the four-character abbreviation, the file extension, and then the interpreted name.

The standalone Halo Editing Kit tag files are altered by all three programs within the Halo Editing Kit. Guerilla generates the raw tag files, and then Sapien adds its own extra information and Tool essentially compresses or otherwise modifies the resulting format as it is stored in the map cache files that are finally used by Halo. So the tag files are often different within .map files from their raw HEK tag counterparts. Each tag type page indicates what extra information is stored and shows differences between the .map cache file tag formats and the HEK tag file formats. The tags get processed and altered during the map development process.

Only 78 of the 83 tag classes are directly used with the HEK; the 5 others are somewhat abstract primary or secondary super-classes. Furthermore, not all 78 tag classes are implemented by the Halo game.

Here is a list of all the Halo 1 tag classes, presented as the four-letter tag class ID, the HEK tag file extension, a name for the tag class, and some information describing the role of tags of that type:

Abstract Tag Classes
The .device, .item, .object, .shader and .unit tags are the five abstract tag super-classes that are primary or secondary of these 83 mentioned tag classes; the actual usable tag classes are only 78 and are tertiary tag classes. Primary, secondary, and tertiary refer to the tag hierarchy within a map cache file. Primary and secondary tag super-classes describe the general categories of certain tertiary tag classes. Primary means the most general categorization and secondary is a more specific categorization, both describing the tertiary specific tag class. For example, both vehicles of the vehi tag class and bipeds of the bipd tag class are of the primary obje object tag class and the secondary unit tag class. So this essentially means that the game engine interprets these two specific tertiary tag classes as objects, and more specifically, units, and they both include object and unit sections of information within their details. As another example, weapons are objects, but instead of being units, they are items. So the primary abstract tag class for a weap tag is obje and the secondary abstract tag class is item. When a tag only contains one abstract class, it is listed as the secondary class, since there is no more-generic primary tag class applicable; so for example, a soso shader model is a tertiary class with a single abstract class of shdr shader, and there is no other abstract class for soso, and so shdr is the secondary abstract super-class for soso shader model tag types. Obje is not always a primary tag class: for example, with scen scenery, it is the only abstract class, and so is listed as a secondary tag super-class for scenery tag types. It helps to visualize it in this way: 3 columns, numbered from left to right as 3 (tertiary), 2 (secondary) and 1 (primary), the first containing the actual tag class in question and the other two columns containing optional secondary and primary tag super-classes by which the tag class in question can be categorized. For example:

tertiary main class / secondary abstract class / primary abstract class bitm / - / - matg / - / - soso / shdr / - (soso Shader Model is a kind of shdr Generic Shader) scen / obje / - (scen Scenery, such as rocks and trees, is a kind of obje Object) bipd / unit / obje (bipd Biped, such as the player character, is a kind of unit Unit, and also more generically a kind of obje Object)

Here is an actual 832-byte segment from the tag index within the a10.map playable map file:

mtibˇˇˇˇˇˇˇˇ∫.‚óÓE@‡:X@ ososrdhsˇˇˇˇª/‚«ÓE@º;X@ mtibˇˇˇˇˇˇˇˇº0‚ÒÓE@t=X@ ososrdhsˇˇˇˇΩ1‚�ÔE@P>X@ ososrdhsˇˇˇˇæ2‚NÔE@�@X@ ososrdhsˇˇˇˇø3‚vÔE@¿AX@ ihcsrdhsˇˇˇˇ¿4‚£ÔE@xCX@ mtibˇˇˇˇˇˇˇˇ¡5‚ÕÔE@úEX@ rtnaˇˇˇˇˇˇˇˇ¬6‚˜ÔE@xFX@ hgilˇˇˇˇˇˇˇˇ√7‚�E@`LX@ snelˇˇˇˇˇˇˇˇƒ8‚;E@¿MX@ mtibˇˇˇˇˇˇˇˇ≈9‚hE@0OX@ necsejboˇˇˇˇ∆:‚ùE@\QX@ 2domˇˇˇˇˇˇˇˇ«;‚ E@¿SX@ ososrdhsˇˇˇˇ»<‚˝E@¿WX@ mtibˇˇˇˇˇˇˇˇ…=‚3ÒE@xYX@ mtibˇˇˇˇˇˇˇˇ >‚ÉÒE@ÑZX@ mtibˇˇˇˇˇˇˇˇÀ?‚ŸÒE@ê[X@ ihcsrdhsˇˇˇˇÃ@‚�ÚE@l\X@ mtibˇˇˇˇˇˇˇˇÕA‚7ÚE@¥]X@ hgilˇˇˇˇˇˇˇˇŒB‚XÚE@ê^X@ snelˇˇˇˇˇˇˇˇœC‚ÚE@_X@ dpibtinuejbo–D‚®ÚE@`aX@ 2domˇˇˇˇˇˇˇˇ—E‚√ÚE@LjX@ ososrdhsˇˇˇˇ“F‚ﬁÚE@<äX@ mtibˇˇˇˇˇˇˇˇ”G‚�ÛE@ÙãX@

You can see how the four-letter tag classes of each indexed tag, presented here as one entry per line, shows the tag classes reversed, having been byte-swapped from the HEK tag files in Big Endian to the Little Endian map cache file format suitable for reading into game memory. The first four bytes are the tertiary column, the second are the secondary column and the third are the primary column. The first entry, "mtib" is a bitm Bitmap tag entry which contains no super-classes. The second entry is "ososrdhs", which is soso Shader Model of the super-class shdr Generic Shader and no other abstract class, so there is nothing listed for the primary abstract tag class. Moving down, you can see that "necsejbo" means that scen Scenery tag classes have a single abstract class, therefore given as the secondary super-class, which is obje Object. Towards the end of the example, you see "dpibtinuejbo" or obje - unit - bipd, where the primary abstract class is obje Object, the secondary, more specific abstract class is unit Unit, and the actual tag class, the tertiary class, is bipd Biped.

13 tag classes have obje (object) abstract super-classes. They are listed here according to their internal indices:

-1 / obje / .object / Object 0 / bipd / .biped / Biped 1 / vehi / .vehicle / Vehicle 2 / weap / .weapon / Weapon 3 / eqip / .equipment / Equipment 4 / garb / .garbage / Garbage 5 / proj / .projectile / Projectile 6 / scen / .scenery / Scenery 7 / mach / .device_machine / Machine 8 / ctrl / .device_control / Control Panel 9 / lifi / .device_light_fixture / Light Fixture 10 / plac / .placeholder / Object Placeholder 11 / ssce / .sound_scenery / Sound-Emitting Scenery

10 tag classes have shdr (shader) abstract super-classes. They are listed here according to their internal indices:

-1 / shdr / .shader / Generic Shader 3 / senv / .shader_environment / Environment Shader 4 / soso / .shader_model / Model Shader 5 / sotr / .shader_transparent_generic / Generic Transparent Shader 6 / schi / .shader_transparent_chicago / Transparent Shader 7 / scex / .shader_transparent_chicago_extended / Extended Transparent Shader 8 / swat / .shader_transparent_water / Transparent Water Shader 9 / sgla / .shader_transparent_glass / Transparent Glass Shader 10 / smet / .shader_transparent_meter / Transparent Meter Shader 11 / spla / .shader_transparent_plasma / Transparent Plasma Shader

There are 4 types of devi (device) tags, but they are not apparently indexed. They are listed here:

devi / .device / Device ctrl / .device_control / Control Panel lifi / .device_light_fixture / Light Fixture mach / .device_machine / Machine

There are 4 types of item (item) tags, but they are not apparently indexed. They are listed here:

item / .item / Item eqip / .equipment / Equipment garb / .garbage / Garbage weap / .weapon / Weapon

There are 3 types of unit (unit) tags, but they are not apparently indexed. They are listed here:

unit / .unit / Unit bipd / .biped / Biped vehi / .vehicle / Vehicle

Extra Tag Class Lists
Here are all the tag classes as a list:


 * actr / .actor / Actor
 * actv / .actor_variant / Actor Variant
 * ant! / .antenna / Antenna
 * antr / .model_animations / Animations
 * bipd / .biped / Biped
 * bitm / .bitmap / Bitmap
 * boom / .spheroid / Spheroid
 * cdmg / .continuous_damage_effect / Continuous Damage Effect
 * coll / .model_collision_geometry / Collision Model
 * colo / .color_table / Color Table
 * cont / .contrail / Contrail
 * ctrl / .device_control / Control Panel
 * deca / .decal / Decal
 * DeLa / .ui_widget_definition / UI Widget Definition
 * devc / .input_device_defaults / Input Device Defaults
 * devi / .device / Device
 * dobc / .detail_object_collection / Detail Object Collection
 * effe / .effect / Effect
 * elec / .lightning / Lightning
 * eqip / .equipment / Equipment
 * flag / .flag / Flag Cloth
 * fog / .fog / Fog
 * font / .font / Font
 * foot / .material_effects / Material Collision Effects
 * garb / .garbage / Garbage
 * glw! / .glow /Particle Glow Effect
 * grhi / .grenade_hud_interface / Grenade HUD Interface
 * hmt / .hud_message_text / HUD Messages
 * hudg / .hud_globals / General HUD Settings
 * hud# / .hud_number / HUD Numbers Settings
 * item / .item / Item
 * itmc / .item_collection / Respawning Objects Collection
 * jpt! / .damage_effect / Damage Effect
 * lens / .lens_flare / Lens Flare
 * lifi / .device_light_fixture / Light Fixture
 * ligh / .light / Light
 * lsnd / .sound_looping / Looping Sound
 * mach / .device_machine / Machine
 * matg / .globals / General Game Settings
 * metr / .meter / Meter
 * mgs2 / .light_volume / Volumetric Light
 * mod2 / .gbxmodel / Gearbox PC Model
 * mode / .model / Xbox Model
 * mply / .multiplayer_scenario_description / Multiplayer Descriptions
 * ngpr / .preferences_network_game / Multiplayer Character Settings
 * obje / .object / Object
 * part / .particle / Particle
 * pctl / .particle_system / Particle System
 * phys / .physics / Object Physics
 * plac / .placeholder / Object Placeholder
 * pphy / .point_physics / Particle Point Physics
 * proj / .projectile / Projectile
 * rain / .weather_particle_system / Weather
 * sbsp / .scenario_structure_bsp / Scenario Environment Structure
 * scen / .scenery / Scenery
 * scex / .shader_transparent_chicago_extended / Extended Transparent Shader
 * schi / .shader_transparent_chicago / Transparent Shader
 * scnr / .scenario / Scenario Environment Configuration
 * senv / .shader_environment / Environment Shader
 * sgla / .shader_transparent_glass / Transparent Glass Shader
 * shdr / .shader / Generic Shader
 * sky / .sky / Sky
 * smet / .shader_transparent_meter / Transparent Meter Shader
 * snd! / .sound / Sound
 * snde / .sound_environment / Ambient Effect
 * soso / .shader_model / Model Shader
 * sotr / .shader_transparent_generic / Generic Transparent Shader
 * Soul / .ui_widget_collection / UI Widget Collection
 * spla / .shader_transparent_plasma / Transparent Plasma Shader
 * ssce / .sound_scenery / Sound-Emitting Scenery
 * str# / .string_list / String References
 * swat / .shader_transparent_water / Transparent Water Shader
 * tagc / .tag_collection / Tag Collection
 * trak / .camera_track / Camera Track
 * udlg / .dialogue / Unit Dialogue
 * unhi / .unit_hud_interface / Unit HUD Interface
 * unit / .unit / Unit
 * ustr / .unicode_string_list / Unicode String References
 * vcky / .virtual_keyboard / Virtual Keyboard
 * vehi / .vehicle / Vehicle
 * weap / .weapon / Weapon
 * wind / .wind / Wind
 * wphi / .weapon_hud_interface / Weapon HUD Interface

Here is the same list, but with just the four-letter tag class identifiers:

actr, actv, ant!, antr, bipd, bitm, boom, cdmg, coll, colo, cont, ctrl, deca, DeLa, devc, devi, dobc, effe, elec, eqip, flag, fog , font, foot, garb, glw!, grhi, hmt , hudg, hud#, item, itmc, jpt!, lens, lifi, ligh, lsnd, mach, matg, metr, mgs2, mod2, mode, mply, ngpr, obje, part, pctl, phys, plac, pphy, proj, rain, sbsp, scen, scex, schi, scnr, senv, sgla, shdr, sky , smet, snd , snde, soso, sotr, Soul, spla, ssce, str#, swat, tagc, trak, udlg, unhi, unit, ustr, vcky, vehi, weap, wind, wphi