Tag Extractor - For "Magical Doctor Wizard Researchers" Only

Feb 26, 2016
Tag Extractor
mostly just for research
The Github for the tag extractor itself. Building it yourself to ensure it is at 100% efficiency is recommended.


A compiled copy of the 2.0 branch with plugins included. You can get this but it is not likely that it will work properly without dependencies installed. There may be no immediate warning with the program other than get more than normally damaged tags. Install the needed things like the DirectX SDK and SlimDX first before using it or you might see more issues than normal. I didn't get render models from the program when I didn't have the DirectX SDK installed for example.


The plugins used for the tag extractor. These are the same included in the compiled copy above. This is a standalone download for users who build it themselves. Just place the plugins folder in the root directory of the built exe for the tag extractor. Plugins are from Assembly except for 3 modified plugins at time of writing with those being


This tag extractor can be used to extract tags from H2V map files for use in H2EK with varying degrees of success. It also has other nifty features such as
  • extract import info
  • alpha meta injection/extraction
  • Easy method to output object datum in maps for commands.txt
If you see a feature in the menu that is not listed here then it is most likely because it doesn't actually work or is a WIP. Includes convert tab and default map directory setting.

"extract import info" allows you to get the original ASS/JMS file used to make certain tags. Extract import info does not apply to tags that have been compiled(extracted) due to them having that info removed for compression. Simply click the "extract import info" button and browse to your Halo 2 Map Editor tags folder. After you have found it and clicked ok you will find a new folder in the root directory of your extractor labeled Halo 2. Inside will be JMS/ASS files used to compile many of the different tags that come with the editor. Notice that all of the JMS files are the JMSv2 format.

Meta Injection is done by [DATA EXPUNGED] (I do not actually know how this part works.)

Commands.txt is a text file that is created manually by the user and placed at the root directory of their Halo 2 install. A name for the tag and their datum index is then placed inside the text file which is then used ingame with the spawn command to spawn the object. A user who wants to use this can open a map like shared.map and scroll down to a particular tag type of their choosing. Let's go with the weap tag for some extra weapons. Click on the tag type and then go to "test" and then select "dump selected tags list". This will generate a text file named "TagsList.txt" in the root directory of the tag extractor. This file can then be renamed to "commands.txt" and placed in the Halo 2 root directory. Ingame the user can either press `(tilde key)/f10 to open the console and type "spawnnear (object name) (object count)". The object name you can get from looking at the list you generating and typing a name like battle_rifle and count being how many of the object you want to spawn. Spawnnear will spawn all of these objects near the player using the command but one can instead use spawn to input xyz coordinates. inputting something like spawnnear battle_rifle 20 will spawn 20 battle rifles near the person using the command. Using spawn battle_rifle 20 0 3 4 will spawn 20 battle rifles at the coordinates 0 3 4. Keep in mind that the numpad will not work for inputting numbers into console at time of writing.

Once the tag extractor is open go to "file" and select "open map". Keep in mind that the tag extractor by default will always look for Halo 2 and the maps you are trying to open in
"C:\Program Files (x86)\Microsoft Games\Halo 2\maps"
Move custom maps here if you wish to extract from them. Once you have opened the map you wish the extract then you will now have two options. You can either select a tag type and press "extract tag" under "tag" to have ever tag under that type be extracted or you can decompile the map to have every dependency on the map extracted. Once you select an option you will be greeted with a screen that will have you browse for a location to place the extracted tags. If you choose "extract tag" you can checkmark a couple of extra options like "recursive extraction and you will get every dependency for that tag.

Building The Tag Extractor From Source
You will need a couple of things.

Visual Studio 2015
BoostSDK 1.55.0
DirectX SDK

Download SlimDX and the Boost files from here.

Place the "boost_1_55_0" folder in

"C:\Program Files (x86)\boost"

You will have to create the boost folder. Should just be able to build the solution from there.

Kornmann00 for his original work into BlamLib
Himanshu01 for the creation this tag extractor and modified plugins
The Assembly team for their Halo 2 plugins
Last edited:
Likes: DDevil Sako