<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> Halo Map Tools v3.5 Tutorial With the release of HMT3.5 perfect model injection and SP->MP conversion is finally made easy. This tutorial will take you through converting AotCR to a MP map and Injecting the Pelican Model.

Setting Up Your Project

When you're attempting something this big, I'd recommend creating a project folder like I have in the following image:

It includes 5 separate folders - One for the Extracted SP BSP, one for the Extracted Multiplayer map that you are using as a foundation for the map, another for new items that you may wish to add (in the case of this tutorial, the Pelican), a fourth folder that all of the individual assets will be copied into just to keep things organized, and a fifth folder that you will build the HMT BSP Chunk in. If this doesn't make sense right now, keep reading and you'll see what I'm talking about. The rest of the tutorial will assume that you've created a project folder and the various sub folders as shown above.

Extracting Your Base Map

First things first, you need to batch extract you're Multiplayer Map that you are using as a base - in this case it's carousel. Open carousel.map in HMT, and go to Tools->Extract->Batch Extract to bring up the batch extract window.

- Choose "C:\Project\Carousel Extract" as the "Extract To" folder.
- Check the Extract Metadata checkbox
- Click Start Batch Extraction
- Choose YES for the "Extract BSP?" prompt

The map will begin extracting into the specified folder. When the progress bar reaches the end, it may appear to freeze for a moment - the is because it is extracting the bsp, which is the largest part of the map by far. Be patient and it will finish. once the operation is complete, you'll get a message box stating that it was completed and a measure of how long it took.

While we still have carousel.map loaded, we also need to extract it's bsp/model areas. so that they can be recombined with the SP BSP later on

- Go to Tools->Extract->BSP/Model Sections
- Choose "C:\Project\Carousel BSP Build" as the destination folder

This creates three new files in that folder - carousel.sbsp, carousel.vertices, and carousel.indices. You will get a "Files Saved" message box once the operation is complete.

Extract The SP BSP

Ok - now that you have the basis for your map, you need to get the BSP from the single player map that you wish to convert.

- Open b40.map (Assault on the Control Room) in HMT.
- Go to Tools->Extract->Individual BSP

You'll see a list of all BSP's in the map along with information about their offset, size, and magic.

- Select levels\b40\b40_a from the list and click "Extract BSP"

You will be prompted for the existing extracted multiplayer BSP. This is one of the three files that were extracted in the previous step (Tools->Extract->BSP/Model Sections)
HMT needs information from this file in order to correctly build the new BSP so that it is compatible with the MP map we have chosen.

- Browse to C:\Project\Carousel BSP Build and choose "carousel.sbsp"

Now we need to choose the scnr file from the extracted MP map. HMT will automatically update several values in this file. It's not required that you choose this file, but if you choose not to, you will have to update these values by hand with a hex editor.

- Browse to C:\Project\Carousel Extract\levels\test\carousel" and choose "carousel.scnr.meta"

Now you must choose where the SP BSP and all of its dependent files will be extracted to.

- Choose "C:\Project\AotCR BSP Extract"

At this point, the recursive extraction of the BSP will begin. Do not interrupt this procedure - if it appears that HMT has stopped responding, be patient. It will eventually finish the extraction, although it may take several minutes. When the extraction is complete, you will receive a "Done" messagebox.

Ok - we have successfully extracted our BSP, but we must rename the file and modify the XML so that HMT can recognize it as carousel instead of an aotcr bsp.

- Browse to "C:\Project\AotCR Extract" You should see several files and sub folders.

* You may not have b40.map - I copy the SP maps into the folders where they are used from, but this is just my preference and isn't required.

The files we are interested in right now are carousel.xml and carousel.sbsp.

At the same time you have this window open, in another window browse to "C:\Project\Carousel Extract\levels\test\carousel" You will see the following files:

Notice carousel.sbsp.meta and carousel.sbsp.xml - these files will be replaced by our SP BSP and accompanying XML file after some modifications.

- In the "C:\Project\AotCR BSP Extract" folder, rename "carousel.xml" to "carousel.sbsp.xml"
- Open the file in notepad, and look for this line: <Tag>rncsÿÿÿÿÿÿÿÿ</Tag> It should be the fifth line.
- Change the line so that it reads <Tag>psbsÿÿÿÿÿÿÿÿ</Tag>
- Right below that line is a line that reads <Filename>levels\b40\b40</Filename>
- Change that line to read <Filename>levels\test\carousel\carousel</Filename>
- Save your changes
- Copy this file to the "C:\Project\Carousel Extract\levels\test\carousel" folder and overwrite the existing file.

Now we need to open another window and browse to "C:\Project\Carousel BSP Build"

- Copy carousel.sbsp from the "Aotcr BSP Extract" folder into the "Carousel BSP Build" folder, and overwrite the existing file.

Build the BSP/Model Chunk

Now that we have everything extracted and copied to the right places, we can proceed with adding our new model and building our BSP/Model chunk. First things first - we need to recursive extract the pelican vehicle from AotCR.

- Open b40.map in HMT3.5 (if it's not already open)
- Under [vehi] Vehicle select "vehicles\pelican\pelican"
- In the Tag Information section at the top of the app, locate the "Save Meta" button. Next to it is a checkbox labeled "Recursive".
- Check the "Recursive" box and then click the "Save Meta" button.

- You will be prompted for a folder where the metadata for the pelican will be saved.
- Browse to "C:\Project\New Items"
- Create a new subfolder of "New Items" and named "Pelican"

- Click "OK" and the files will be extracted. After the operation is complete, you'll receive a "Finished Extracting" message.

Now that we have the pelican extracted, we need to correct it's model metadata as well as add the Raw Model data to the model area so that it builds correctly into AotCR. This involves two separate utilities - one that extracts the model, and another that corrects the model's metadata and injects the model into the BSP/Model chunk. These utilities are the Model Extractor and the Model De-Crapper, and are the heart of perfect model injection. Since these utilities create a new HMT BSP/Model chunk, we will also be creating our final BSP file at the same time. Spiffy.

First off, we need to create a model list for AotCR. THis will allow HMT to find the models inside the map and extract them.

- With AotCR still loaded, go to Tools->Generate Raw Model Offset List (CSV File)
- Save the file in "C:\Project\New Items"

Now that we have a model list, we can extract raw models.

- Go to Tools->Extract->Raw Model
- Click on "Load CSV File"
- Browse to "C:\Project\New Items" and choose "offsets.csv"

You will then see a list of models - choose "vehicles\pelican\pelican" and click "Extract"

- Choose to save the data in the same folder that the pelican model's metadata is located (pelican.mod2.meta). This folder will be "C:\Project\New Items\Pelican\vehicles\pelican"

Now that the model is extracted, it must be repaired and it's data added to the HMT BSP/Model Chunk

- Go to Tools->Model Decrapper/BSP Builder

You will notice several text boxes and a blank model list at the top.

- Right click in the top area and choose "Add"
- Browse to "C:\Project\New Items\Pelican\vehicles\pelican" and choose "pelican.mod2.meta"
- For Existing Vertex Area browse to the "C:\Project\Carousel BSP Build" folder and choose "carousel.vertices"
- For Existing Index Area, in the same folder choose "carousel.indices"
- For Existing BSP Block, in the same folder choose "carousel.sbsp"

- Click the "De-Crap These Models and Build a New BSP Chunk While We're At It" button

Finally, we have all of our files extracted and corrected.

Copy Files to the Build Folder

We have this sub folder in our project folder called "Build Folder" which has remained empty until now.

- Copy the entire contents of "AotCR BSP Extract" to "Build Folder"
- Copy the entire contents of "New Items\Pelican" to "Build Folder" (Choose to overwrite any files)
- Copy the entire contents of "Carousel Extract" to "Build Folder" (Choose to overwrite any files)

Open a window and browse to "C:\Project\Carousel BSP Build" In this folder is a file called "carousel.sbsp.meta" that was just created out of existing data and the new pelican model. This is the file that HMT uses as the base for building a map.

- Copy the "carousel.sbsp.meta" file to the "C:\Project\Build Folder\levels\test\carousel" folder. (Overwrite the existing file)

Build the Map

Yey - now we have all of our files that are necessary to build the map

- Go to Tools->Rebuild Map
- For Original Map browse to "C:\Project\Build Folder" and choose "carousel.map"
* Note - if this file doesn't exist copy it to the folder from your "Halo\Maps" folder. This is required.
- Choose "Yes" to the prompt asking if you wish to auto-fill in the other filenames for the build.
- Under "Additional File" click the "Add" button (or right click and choose "add")
- Browse to C:\Project\Build Folder\vehicles\pelican" and choose "pelican.mod2.meta"
- In the top right, check the "SP->MP Mode" box. This is very important, as the build will not work otherwise.
- Click Build.

The build will begin, and after a few moments you will receive several prompts. It is imperative that you choose the correct responses to these prompts.

The first prompt will be "Have there been any new vertices added to the BSP chunk?"
- Choose "Yes"
- Browse to the "C:\Project\Carousel BSP Build" folder and choose "carousel.vertices.new"

The second prompt will be "Have there been any new indices added to the BSP chunk?"
- Choose "Yes"
- Browse to the "C:\Project\Carousel BSP Build" folder and choose "carousel.indices.new"

The third prompt will be "Browse for the SP BSP that you are using for this Build"
- Click "OK"
- Browse to the "C:\Project\Carousel BSP Build" folder and choose "carousel.sbsp"

The fourth prompt will inform you that the start offset was modified and ask if you would like to use the modified offset.
- Click "Yes"

Congratulations!

Once the build operation completes you will have successfully converted an SP bsp into a MP map, as well as injected a perfect model. You can open your new map in Sparkedit and see the pelican model (it will be the last thing in the list) In order to actually walk around, you will need to move your spawn points inside the map, since right now they are all outside in their original locations from Derelict (the scnr we used).

I hope this tutorial was easy enough to follow, and that this update to HMT allows you to take your mods to the next level.

Good luck and keep modding!