Halo Hacking

Your Logo Here

 

 

Hacking Made Easy

Site Navigation    

 Home

 Downloads

 Tutorials

 Files

 Forums

 Upcoming Mods+Vids

 HaloTV

 WebsAlbum

 Guestbook

 
 
 

HMT, HHHT, PPF-O-MATIC, SHEEPS TRAINER, RECORDING MOVIES, AND TAKING SCREENSHOTS

In this Tutorial, I will attempt to explain some basic aspects of Halo hacking (with emphasis on the PC version), for those who are completely new to it. For this reason, this tutorial maybe be too slow for some, but I wanted to help people *start* exploring Halo Hacking. Once people have started hacking, there are places like halomods.com, and halo-mods.com that discuss advanced hacking techniques and applications. Also, I will explain how to take HUDless screenshots so people can start that as well. :)

Here are the topics I will be discussing.

PPF Patches

  • Helpful Halo Hacking Tool ver. 1.3
  • PPF-O-MATIC 3

Halo Map Tools 3

  • How to Swap Characters, Weapons, Bullets, and Character for Bullets.

Trainer

  • How to install Halo twice.
  • How to use Outcast's Trainer.

Taking Screenshots

  • How to remove the HUD
  • Tips and Tricks for some good screens.

Before you try your hand at hacking the maps, each map in Halo has a code name for it. Here is what you will find in your Halo\MAPS folder.

Single Player
-------------
a10.map - Pillar of Autumn
a30.map - Halo
a50.map - Truth and Reconciliaton
b30.map - Silent Cartographer
b40.map - Assault on the Control Room
c10.map - 343 Guilty Spark
c20.map - The Library
c40.map - Two Betrayals
d20.map - Keyes
d40.map - Maw

Multiplayer
-----------
beavercreek.map - Battle Creek
carousel.map - Wizard
putput.map - Chiron TL34

All other MP maps are self titled.

Ok, now let's begin.

Home | PPF Patches | Halo Map Tools 3 | Trainer | Taking Screenshots | Credits



Another Tutorial

Find winrar here http://www.rarlabs.com/rar/wrar330.exe 

Easy why to inject .rar files step by step

1.Get winrar (above)

2.Download the Mod U Want

3.Save To C Drive, Program Files, Microsoft Games, Halo, Maps (make a maps folder and a mod folder) save mod to mod folder then hit close on the download when done.

4.Go to C drive, Program Files, Microsoft Games. Halo, Maps.

5.Drag original .map file to map folder

6.Open mod folder right click on mod go to winrar and got to extract.

7.Open Extracted Folder and drag the .map file to desktop

8. go to maps folder and drag mod from desktop to maps folder

9.Try it out



Yet Another...

An explanation of Halo Map Files.

Ok, this tutorial is LONG overdue. In this tutorial, I intend to explain how the halo mapfile format works. I will try to point out the differences between Halo Xbox and HaloPC where I can. My target audience is advanced modders, but intermediate modders will get some good info out of it as well. After reading this, you should get a general idea of how the mapfile works, and a better understanding of why some things are corrupt, or why your rebuild doesn't work. Ok, so on with the info dump...

---------------------------------------------------

Table of Contents

MAPFILE ORGANIZATION

-Header

-Tag Index Header

-Scenario

-Supporting Tags

-Raw Model Data

-Raw Bitmap Data

-Raw Sound Data

-BSP(s)

THE MAPFILE HEADER

-what it does

-xbox and compression, fixed length

-header format

THE TAG INDEX HEADER

-model raw data offsets

-magic

-tag count

-base tag

-tag ids

THE SCENARIO

-header and reflexives

-scenario defines everything in the GAME, everything else is supporting

-scenario spawns

-high level tags

-scenario reference pools

-bsp data

SUPPORTING TAGS

-metadata...what it really is

-major tag types

-recursive types

-tag hierarchy

-raw data

MODEL RAW DATA

-model tags

-how the model raw data works

-submeshes and submesh headers

-LODs and variations

-differences in offsets for xbox and pc

-raw data corruption with model injection and map rebuilding

BSP

-what is a BSP

-how the bsp is found

-most difficult part of reverse engineering halo

-bsp tags having a zero offset

-collision bsp and visible meshes

---------------------------------------------------

DIFFERENCES BETWEEN HALO XBOX and HALOPC

There a great number of differences between xbox and pc maps. Of course, the version number in the header is 5 for xbox, and 7 for PC. People often say that xbox maps are fixed length, so you can't really add anything to them. This is partially correct, but mostly wrong. It is true that cache files are all the exact same size. However, all of the mapfiles in their "cache" format use garbage padding from the end of the useful halo data to the end of the cache file. When halo runs, it decompresses the map files on the original game disk onto the harddrive. The data here is usually several megabytes shorter than the cachefile length, so the rest of that "slack space" from the end of the useful data to the end of the actual cache file is garbage. The length of the decompressed file is defined by the mapfile header.

Another major difference between the PC and Xbox versions is a lot of the floating point data on the xbox version is in an encoded/compressed format. This is to save disk space and memory on the console, which is much more restrictive than on a normal PC capable of running halo. Since the PC has much more free memory, it is more efficient to use up more disk space and avoid converting all those compressed floats (this saves CPU cycles by avoiding the conversion altogether). In fact, this is the major difference between PC models and xbox models. It would probably be possible to someday convert PC models to xbox.

The biggest difference between PC and xbox is that xbox cache files contain ALL of the necessary resource to run a map. On PC, the raw data for sound and bitmaps are moved into separate .map files to save on disk space. This is the major reason that rebuilding with HMT works on PC, but not on xbox. The code to handle the raw data is not perfect, and it is still not perfectly understood.

 

---------------------------------------------------

MAPFILE ORGANIZATION

The mapfile consists of thousands of tags and some headers. However, there is an organization to the data. If you were to run a utility like Filemon (www.sysinternals.com) you could watch HaloPC's file activity in detail. You would notice that it reads 4 major sections:

-The mapfile header

-The Tag index and metadata

-The model raw data

-The BSP(s)

The layout of these structs looks like this:

Code:

 

Header | BSP(s) | Raw Data | Tag index and meta

 

--The mapfile header--

The mapfile header is the first thing that gets read when halo loads a map. The header format looks like this:

Code:

 

typedef struct STRUCT_MAPFILE_HDR

{

int id;

int Version;

int decomp_len;

int Unknown1;

int TagIndexOffset;

int TagIndexMetaLength;

int Reserved1[2];

char Name[32];

char BuildDate[32];

int MapType;

int Unknown4;

int Reserved2[485];

int Footer;

}MAPFILE_HDR;

Some parameters of interest:

decomp_length - this is the length used by the compression algorithm to decompress the mapfile.

TagIndexOffset - this is the offset to the Tag Index Header.

TagIndexMetaLength - this is the size of the tag index and meta combined.

MapType - determines that the map is single player, multi-player, or User Interface

Version - xbox = 5, pc = 7

id = "head"

Footer = "foot"

The header is never compressed, it is always 2048 bytes (0x800 bytes). On the xbox game disk, the header is uncompressed, but the data following it is zip compressed using the zlib open-source compression library. For HaloPC, nothing is compressed.

So Halo reads in the map header. If we are talking about xbox, Halo then decompresses the map data into a cachefile and appends garbage to make the mapfile fit into one of the xbox-defined cachefile lengths.

--The tag index header--

Next, Halo reads in the Tag Index Header and the Tag Metadata. The Tag Header tells Halo how many tags there are in the index (usually there are thousands). It also tells the offset and length of the model raw data.

Code:typedef struct STRUCT_INDEX_HDR

{

int index_magic;

int BaseTag;

int unknown2;

int tagcount;

int vertex_object_count;

UINT ModelRawDataOffset;

int indices_object_count;

UINT indices_offset;

int ModelRawDataSize;

}INDEX_HDR; /* index_header_t */

 

Ok, this structure requires a bit of explaining. Aside from the mapfile header, the index header is the roadmap to a Halo mapfile. It tells you where the model raw data begins, how many tags are in the map, and it contains one of the critical components for calculating "magic". For those of you that don?t know, magic is a special number that you subtract from those raw offset numbers in Halo. On xbox, if you see a number like 0x80245CA4 ? that number is very likely an offset (numbers on 4-byte boundaries that start with 0x8). On HaloPC, the numbers are more like 0x423A8C40 (staring with 0x4). You might ask yourself why wouldn?t they just use the correct offset to begin with? Well, there is a very good reason.

--An explanation of magic--

The biggest reason that Halo loads like 1000% faster than other games is that Halo reads the mapfile straight into memory. Those "magic" offsets can easily be converted to memory pointers, which means that when you read the mapfile in, you don?t have to do excessive memory setup. This is a huge advantage. If you allocate memory only once instead of 6,000 times, and you don?t spend your time doing file opens, closes, seeks and reads, you will save a lot of time.

There is one problem with this setup. When you allocate a memory buffer, you can?t control where the memory is located. This means after you read in the data, your object located at 0x80245CA4 is not in a valid memory address. It has to be adjusted, as does every other raw offset in the mapfile. You do this by adjusting the offset:

Code:

 

Memory_offset = raw_offset ? calculated_magic + memory_base_pointer

 

Ok, so you might ask yourself why bother with magic at all? Why not just keep the values at the actual file offsets and add the memory base pointer directly?

Code:

 

Memory_offset = actual_offset + memory_base_pointer

 

I mean, if the engine knows where all the offsets are anyway, why bother adding a huge number (like index_magic = 0x80004380) to all the values?

There is a very simple explanation for this. It has to do with map creation and the tools for creating mapfiles. I?ve told you already that mapfiles are composed of the following major components:

-The mapfile header

-The Tag index and metadata

-The model raw data

-The BSP(s)

Well, the artists are continuously tweaking the bsp, the models and the scenario. Now, I don?t know how long it takes to compile a map, but I would guess that it takes several minutes at least. BSP compiling could probably take hours. What the designers want to avoid is unnecessary holdups in the art pipeline. If someone changes a model, you don?t want to recompile the entire map, just the part with the models. One problem: When you change a model or a bsp, the sizes of these sections can change depending on what you are working on:

-The Tag index and metadata

-The model raw data

-The BSP(s)

This means that the offsets inside the mapfile must shift everytime you make a minor change to a model?s size, or if you add a little bit to the bsp, or whatever. Well, to avoid this problem altogether, Bungie uses magic. Here is an example:

Code:

 

Map Component Original Map Modified Map

Mapfile header offset 0 0

Mapfile header size 0x800 0x800

BSP offset 0x800 0x800

BSP size 0x10000 0x11000

Model raw data offset 0x10800 0x11800

Model raw data size 0x1000 0x1000

Tag Index/Meta offset 0x11800 0x12800 <----overflow

Tag Index/Meta size 0x30000 0x30000

 

You can see that the model raw data size has grown and started to overwrite the Tag Index/Meta. To fix the problem, all you have to do is shift the Meta and the Index up. Without magic, you would need to modify all of the offset references in the meta (which could be 10,000 or more). With magic, all you have to do is adjust the magic number and you are done.

With magic, adding new assets to maps takes very little time and the artists can concentrate on what they do, rather than wait for map compilations.

This would also be a good time to mention the slack space in the scenario (slack space is where you see all of the 0xCACACACA garbage). The scenario is the tag which defines the placement of scenery, vehicles, dynamic lights, devices?a number of things. The slack space is there so the same problem can be avoided. The level designers can add to the scenario without recompiling the map because there is room to grow

MAP REBUILDING

 ?? HMT is fairly simple to use - just open a map and select a resource from ??
 ?? the resource browser.  If it has a dedicated plugin or an XML plugin, it ??
 ?? will load and you will be able to edit certain properties and/or extract ??
 ?? resources depending on the type of tag.                                  ??
 ??                                                                          ??
 ?? Map Rebuilding: This feature requires a little basic knowledge to use    ??
 ?? effectively.  Follow these steps in order to rebuild a map.              ??
 ??                                                                          ??
 ?? 1. Into it's own folder, batch extract the multiplayer map that you wish ??
 ??    to modify.                                                            ??
 ?? 2. Open the map that you which to extract resources from and choose      ??
 ??    "Extract Meta" after selecting the proper tag.  If you would like to  ??
 ??    automatically extract all dependencies as well, check the "Recursive" ??
 ??    box.  Choose a folder to extract the files to.                        ??
 ?? 3. Copy the extracted files/folders to the folder you extracted the      ??
 ??    multiplayer map to.  Overwrite any existing files.                    ??
 ?? 4. Choose "Rebuild Map" from the menu, and choose the Original Map (this ??
 ??    is the original multiplayer map that you batch extracted earlier)     ??
 ??    *Note that the original map MUST be in the same folder as the batch   ??
 ??    extracted files.                                                      ??
 ?? 5. Choose "yes" when prompted if you want to auto fill in the other      ??
 ??    filenames.                                                            ??
 ?? 6. Now add any new files you wnat to add to the rebuild to the list at   ??
 ??    the bottom.  For example, if you want to add the Sentinal Beam weapon ??
 ??    you would choose the Sentinal Beam.proj.meta file from the proper     ??
 ??    folder.  Note, that you only have to add the parent tag - any         ??
 ??    dependencies will be added automatically during the build.            ??
 ?? 7. Now, click Rebuild and wait for it to finish.  Once it has completed  ??
 ??    the rebuild, you will have a new map file in the folder named         ??
 ??    OriginalMapName.map.rebuild.map.                                      ??
 ?? 8. Copy this file to your Halo\MAPS\ folder, rename it to replace the    ??
 ??    appropriate map, and enjoy ;)



Blender Tutorial

Introduction
I have always been fond of castles. I simply can't resist the urge to create one in Blender every now and then.

This tutorial will introduce you to basic modeling techniques in Blender. It assumes some basic knowledge like adding objects, using edit mode and changing the view. These are described in The Blender User Interface.

The castle is used as a starting point for other tutorials on this site like Texturing a Castle.

To begin the lesson start Blender or press (which starts a new project) if you already have Blender open.

The final result.
The final result.
!
Remember to save your work early and often! This is a good computing practice which you should follow anyway but is even more important in Blender. If anywhere along the way you find that your castle doesn't look quite right you can press and your model will revert back to the state it was in before you entered edit mode. This is Blender's version of and 'Undo' button.

A 32-sided mesh circle.
A 32-sided mesh circle.
Creating the tower
The tower is created by simply extruding a mesh circle several times. By using both translation and scaling while extruding you can create a nice outline.

Let's start by switching into top view (). Remember that the each number on your keypad will switch you into a different view. Let's begin creating the top of our tower. Add a mesh circle which can easily be done by pressing the space bar, click "Mesh" and then click on "Circle." I left the number of vertices on 32 (the default) but if you are on a polygon budget, you may consider changing this to something like 10.

Make sure that you're in edit mode before proceeding.If you're in edit mode you'll be able to see the individual vertices of the circle. You'll recall that vertices are the points that define the shape of a 3D object and appear in Blender as small dots. Your screen should look like in the picture to the left at this point. If your circle just looks like a pink outline this means that you aren't in edit mode and should press the key.

Switch to front view with numpad and press . Confirm the requester that pops up to start the extrusion.

Confirm the extrusion.
Confirm the extrusion.
!
To confirm any requester in Blender, either click on the text (in this case, 'Extrude') or press . To cancel, either move your mouse cursor away from the requester or press .

The first extrusion step
The first extrusion step
After you start an extrusion, grab mode is automatically started. Hold down to constrain the movement to grid units. This will make your cursor snap to the grid lines in the 3D window making it easier to keep your tower from leaning to one side.

Move your mouse upwards a bit and left click. This part will form the cone on the top of the tower. As you can see extruding an object creates a clone of the vertices which you have seletected and allows you to extend the body of your object. If you had not been in edit mode during this step you would've been unable to extrude your circle.

To taper the top, press to start scaling and hold down again. Move your mouse horizontally to scale and left-clickonce the top has been scaled down to zero (this is shown in the bottom left corner of your 3D window).

Now I will work from the bottom of the cone and extrude the rest of the tower out of it - this uses the same technique as the previous step. First, press to deselect all vertices (pressing it again will select all the vertices). Select the vertices on the bottom of the cone by starting Box Select () and dragging a rectangle around them.

Tapering the top.
Tapering the top.
!
Press twice to use Brush select - in this mode, a circle appears. Use this circle to 'draw over' the vertices and select them. Press numpad and numpad to change the brush size.

Some extrusion steps.
Some extrusion steps.
Now we're going to create the body of our tower. For the first step, start the extrusion ( key) and then immediately press . Scale the inside of the tower down a bit. When you're satisfied with the width of the body of your tower do a left click to set the size. Next, do a 'normal' extrude and drag the selection down.

Don't forget you can use the key to help keep your tower standing straight and tall. Left click when you're happy with the height of your tower to lock it's size in place.

If you like, you can add some more detail like I have done here. Your tower is ready!

A tower.
A tower.
5-sided circle.
5-sided circle.
The Castle Wall
I want to create a pentagonal castle wall. To be able to place the towers on the right positions, I use another mesh circle. Later on, I turn this circle into the castle wall.

Leave edit mode (), return to top view () and add a mesh circle with 5 sides. Scale it to the right proportions.

By leaving Edit Mode and then creating our walls (a 5 sided circle in this case) we're telling Blender to think of our circle as a seperate object from the tower. This will make editing our castle wall a lot easier later on.

Leave edit mode and select the tower with Right-Mouse. 'Grab' your tower ( key) and move it to one of the corners of the pentagon. Don't put the center of the tower exactly over the corner of the pentagon, but rather slightly more outward - this is to take the thickness of the wall into account (see below).

Placing the Tower.
Placing the Tower.
Creating copies of the tower.
Creating copies of the tower.
With the tower selected, press to create a duplicate. Grab mode is now automatically started, so you can move the new tower to another corner. Repeat this for all corners.

!
Pressing will make a full copy of the entire object - geometry included. After this, you can edit the geometry of every individual copy without affecting the others.

If you use however, Blender will create an instanced copy. In this case, each copy's geometry is linked to the original data. Changing one individual copy will change every copy along with it. Using instanced copies requires less memory than full copies.


Now to give the castle wall some body, select the circle and enter edit mode. Select all vertices and start extrusion. Scale the selection a bit to give the circle some width.

Giving the wall body.
Giving the wall body.
Giving the wall height.
Giving the wall height.
The wall has width now, but no height. Leave edit mode and switch to front view with numpad . Your wall now probably starts somewhere in the middle of your tower, so use grab mode to move it to floor level.

While still in front view, extrude the wall upward.

Giving the wall height.
Giving the wall height.
The result so far!
The result so far!
This is already starting to look like a castle, isn't it?

Creating the Castle Door
This is all very nice, but there is no door in the wall yet! Instead of using a Boolean operation to cut it right out off the wall, I will show you how to do this with simple mesh editing.

The segment of the wall that I want to work on (the bottom part) is slightly rotated, so I will first make it horizontal. Select all the objects in your scene with and rotate your entire scene until the bottom segment is horizontal. Hold down to constrain the rotation to multiples of 5 degrees.

Rotating the scene.
Rotating the scene.
Selecting the bottom wall.
Selecting the bottom wall.
Now I separate the segment of the wall from the rest so that I can work on it. Select the wall and enter edit mode. Use Box Select to select the bottom segment of the wall as shown.

To create a new object out of the selected vertices, press and confirm the requester. If you now leave edit mode, you will have a new, separate object. Select the new object.

Creating a new object out of the selection.
Creating a new object out of the selection.
Moving the wall segment to another layer.
Moving the wall segment to another layer.
Now to make life a little easier on myself, it is a good idea to move this new object into a separate layer. Doing this will allow me to hide the other objects. With the new object selected, press to bring up the Move Layer requester. Select the second button or press to move the wall segment to layer 2. Press when done.

!
In the bottom of your 3D window, you see a similar row of buttons. It currently has only layer one selected, so moving the wall segment to layer 2 will make it disappear. Shift-click on button two or press to activate layer 2 as well.

It's a good idea to utilize layers for anything more than a fairly simple project. This will allow you to break down your project into more manageable and flexible chunks. It will also enable you to make changes far more easily than if you had everything on one jumbled, complicated layer.


For now, I only want to see the wall segment so press .

Showing only the wall segment.
Showing only the wall segment.
Removing vertices.
Removing vertices.
First I will create a flat image of a wall with a door in it - later I can extrude this to get a wall with a hole in it. First I need to remove half of the vertices. Enter edit mode and select the top vertices using Box Select. Press to bring up the Erase requester. Select 'Vertices'.

In top view, carefully place the 3D cursor on the line. This determines where the next shape will be placed. If you don't line up your 3D cursor on this line your door won't come out correctly later!

Placing the 3D cursor.
Placing the 3D cursor.
Adding a circle to the door.
Adding a circle to the door.
Switch to front view, enter edit mode (!) and add a 32 segment mesh circle. This will become the top of the door. Move and scale it a bit so that it has the right size and position.

Now press to deselect all vertices and select only the bottom half using Box Select. Press and select 'Vertices' when the Erase requester pops up to delete the bottom half of the circle.

Deleting half of the circle.
Deleting half of the circle.
Extruding the circle to form a door.
Extruding the circle to form a door.
Select the two lowest vertices and extrude them downwards so that they match the bottom edge of the castle wall.

Now I need to attach the door to the rest of the wall. First, I need to remove the original edge at the bottom of the wall. Select the two vertices at the bottom left and bottom right corners of the wall as pictured on the right.

Preparing to remove the bottom edge.
Preparing to remove the bottom edge.
The bottom edge removed.
The bottom edge removed.
Press and select 'Edges' to remove the bottom edge.

Connect the corners of the wall to the corners of the door by selecting two vertices and pressing . If you leave edit mode now, your model will look like this:

Reconnecting the outline.
Reconnecting the outline.
Filling the wall.
Filling the wall.
The outline is now all right, but the shaped is not filled. You will notice this when you switch to shaded view with . To fix this, enter edit mode and select all vertices. Press to fill the shape.

As the last step I will give the wall depth again. Switch to top view and extrude the wall slightly upwards. Try to match the depth of the other wall segments. If you are not sure about the depth, press to turn on layer one.

Extruding the wall and door.
Extruding the wall and door.

When you are done, leave edit mode, activate layer 1 () and turn on solid view with . I also turned to perspective view (Numpad ) and rotated the view a bit.

Quite impressive for only a few steps, isn't it

 

 

 

 

 

Introduction
No matter how well you can model, you will need to add good materials and textures to your model to make it look realistic. In this tutorial you will learn how Blender works with materials. It is based on Building a Castle.

The final result.
The final result.
The castle before applying materials.
The castle before applying materials.
You can either do that tutorial first, or download one that I made below. You will notice that I added some details like a drawbridge and a moat. All of these were made with the same techniques as described in Building a Castle.

It also contains two lamps and a camera.

Download:
 castle.zip
To make things a little easier for you, I have moved the objects in my file to different layers. This allows you to display only relevant objects by the push of a button.

1 - Moat
2 - Floor
3 - 1 Tower (the rest is in layer 9)
4 - Front wall
5 - Door, drawbridge and chains
6 - Inside square
7 - Water
8 - Other walls
9 - Other towers

To display a layer, press the associated number on your keyboard. To show all layers at the same time, press the ~ key. As you can see, the light and camera are present in all layers so you can always render your objects.

Showing only the drawbridge in layer 5.
Showing only the drawbridge in layer 5.
Switching to the Material Buttons screen.
Switching to the Material Buttons screen.
Creating a new Material
Let's start off by creating a simple material without textures. Select the moat object in layer one by pressing and select the object.

To start working with materials, go to the Material Buttons screen. You can reach this by selecting the icon of the red ball in the header of the lowest window, or by pressing .

Later on I will add a transparent water surface layer on top of this.

Right now, there is no material associated with the object so nothing is shown in the Material Buttons window. The first thing I need to do is add a new material. Take another look at the header of the Material Buttons window and press the button with the '-' sign on it.

The material data block button.
The material data block button.
Selecting an existing material or creating a new one.
Selecting an existing material or creating a new one.
A requester will pop up, asking you if you want to select an existing material or create a new one. In this case, select 'Add New'.

Let's take a closer look some of the buttons in the window that appears now. On the far left is the material preview. Any changes that you make to your new material are immediately shown here. The default view is flat but if you prefer a sphere, just press the icon of the red ball.

The material preview
The material preview
Colors
Colors
The next group of buttons determines the material color. Try changing the values of the R, G and B sliders now to create a nice deep blue color for your moat. The changes will be visible in the 'Color' section of this window in real-time. If you stop dragging a slider, the material preview will render with your selected color. I used R=0.1, G=0.3 and B=0.6 for my material.

These buttons affect material properties such as shininess, hardness and transparency. Try changing them and seeing how they affect the look of the material preview (this works best of you view it as a sphere instead of a flat plane). I changed the Spec value to 1 and Hard to 75 to get a nice plastic.

Material properties
Material properties
Changing the material name
Changing the material name
When you are satisfied with your new material you need to give it another name. This makes it easier if you want to apply it to another object later. Left-click in the material name space (it probably says 'MA:Material') and type in a new name. Press when done.

Now let's take a look at your first material! Press to render (if you haven't downloaded my castle you may need to add some lamps. If you don't have any lamps your render will turn out all black!!).

Blue!
Blue!
Manipulated castle wall picture
Manipulated castle wall picture
I could go on adding materials like this, but the scene would start to look like everything was made out of plastic. To add some realism I will now apply an image as a texture map. For this, I have prepared a picture of a castle wall.

Download:
 wall_seamless.jpg
!
You will see that I have manipulated it a bit to prevent the edges of the picture from showing up. If you are familiar with the Gimp (a free image manipulation program), you can do this with the feature 'make seamless'. Preparing your images before you apply them as a texture map is often a good idea.

The 8 texture channels.
The 8 texture channels.
Switch to layer 4 and select the front wall. Create a new material for it. Now take a look at the right part of the Material Buttons screen. There is a row of 8 buttons. Each one can hold a texture that you can apply to a material. Click on the first button and add a new texture by selecting the '-' button below the texture buttons. This button works in the same way as when creating a new material.

The Material data button
The Material data button
Like with the material, you can give each texture a name by left-clicking in the name field. If you want to remove a material, select the 'Clear' button.

To change the texture settings, switch to the Texture Buttons screen. Select the texture icon or press .

Switching to the Texture Buttons screen.
Switching to the Texture Buttons screen.
Preparing to load a picture.
Preparing to load a picture.
For now, it is best to ignore all the buttons in this screen except for one: 'Load Image'. Select it to bring up the Select Image window.

This window works like any other file window in Blender, except for the fact that it shows thumbnail previews of each image in the current directory. If you have many images, it can take a while for the screen to update. To load your image, select it by left-clicking on it and pressing . Alternatively, you can also middle-click on it to immediately load it.

Selecting a texture map
Selecting a texture map
Determining the mapping method.
Determining the mapping method.
Return to the Material Buttons screen and take a look at the mapping method buttons. These determine how the texture is applied to your object. The most basic one is 'Flat'; this works like a slide projector. If you are not careful with this one it can severely distort your image.

The second option, 'Cube', projects your map on all sides of your object. In many cases, this works quite well without further tweaking.

'Tube' and 'Sphere' are, you guessed it, for mapping your object onto tubes and spherical objects.

For the wall, select Cube mapping.

If you do a test render now (), you will see that the bricks are still quite large in comparison to the wall. This is where the Size buttons come in handy: tweak these to change the size of your bricks. You can squeeze your image by scaling your texture map differently in the X or Y direction. I found that SizeX=3 and SizeY=1.5 gave good results. Your mileage may vary though if you are using your own wall with a different size.

Changing the mapping size.
Changing the mapping size.
The wall with a brick map.
The wall with a brick map.
So far, so good. Now on for the rest of the walls. Press to turn on the other walls ( will keep layer 4 selected as well) and select the other walls. Use the material selection button ('-') to apply the wall material to this object too. A test render should look look like a real wall now!

Mapping the tower
Mapping the tower is very similar to the wall, only this time I will use a different mapping method. Because of the circular geometry of the tower, it makes no sense to use cube mapping for it. Instead, I will use cylindrical mapping ('Tube') for it. The the rest, the tweaking is the same as above.

The tower consists of two separate objects so start by creating two new materials for it (Roof and Wall). Load the provided textures into them.

Download:
 roof.jpg
The roof tiles.
The roof tiles.
!
If you are using a tower that you modeled yourself, you will need to split the roof from the rest of the tower. To do this, enter editmode and box select the vertices that you want to separate from the rest of the object. Press to separate them.

This is the texture that I used for the wall of the tower.

Download:
 bricks.jpg
The tower wall.
The tower wall.
Setting the tower mapping parameters.
Setting the tower mapping parameters.
Again, you will need to tweak the size of the applied texture map before it looks all right. I had to create a second material for the roof halfway down the tower and tweak it's size settings a bit before it looked ok.

I found that my brick texture looked a little bit too fuzzy. This was caused by the way Blender handles texture maps - each texture map is filtered before it is applied to an object. In this case, the filtering was a bit too much. Fortunately, you can change the amount of filtering that is applied. Go to the Texture Buttons screen and decrease the 'Filter' value.


!
Blender can remember two versions of rendered images. You can flip between them with . If you want to see the result of the new filter value, render an image with the old setting first. Then press and render a new image with the new setting. Pressing will now flip back and forth between the old and the new image.

This is a quick test render of the mapped towers.

The mapped towers.
The mapped towers.
The remaining materials
The remaining materials all use the techniques that I have described above. Just load the images provided here and try if you can figure it out on your own. If you can't work it out, take a look at the supplied .blend file at the end of this tutorial.

The Portal:

For the portal you will need to create three materials: one for the door itself, one for the wooden bridge and one for the metal chains. For the door, I have selected a sandstone-like texture. Apply it to the portal outline with a low specularity and a low hardness.

Download:
 wall.jpg
Portal texture.
Portal texture.
Apply this wood texture to the bridge. Like with the portal, create a dull looking surface for this.

Download:
 bridge.jpg
Bridge texture.
Bridge texture.
The metal chains are relatively small and do not really need a texture map; the detail would probably be lost anyway. However, to make a material metallic there is a nice trick that you should know: when you look at the real-time color preview you will notice there is also a color preview which is labeled 'Spec'. This is the specular or highlight color of the material. If you select the 'Spec' button, you can change this color.

For plastics, the specular color is white. For metals it is usually different from the material's normal color. To create realistic chains, try setting the material color to black and the specular color to blue.


This is the texture map for the courtyard inside the castle. Try experimenting with the 'Nor' button in the texture types buttons (this turns on bumpmapping). The amount of bumpmapping can be controlled with the 'Nor' slider.

Download:
 courtyard_seamless.jpg
Castle courtyard texture.
Castle courtyard texture.
For the grass and the water I have re-used this texture. To create good looking grass, create a dull green material and apply this texture. Next, look at the buttons in the bottom-right of the Material Buttons screen. The value of 'Col' determines how much of the texture's color is mixed with the material's own color. Decrease this value to make the grass look greener while still retaining the texture's noisy character. I had to increase SizeX and SizeY to 15 to get a satisfactory result.

Download:
 grass.jpg
Grass texture
Grass texture
To use this texture with water, first create a blue-plastic material. Use a high specularity and hardness. Now apply the grass texture, but turn off the 'Col' button on the top right in the material buttons screen. Instead, select 'Nor'. This will turn the map into a bump-map, simulating bumps in the material.

Finish the water by setting 'Alpha' to 0.5 - this creates a transparent material. In the row of buttons in the middle of the screen, select 'ZTransp'. This option will force Blender to calculate objects underneath the water surface, too.

Grass and water
Grass and water

Here is the final result - quite a lot better than what we started off with, don't you think? Of course it is very important to build a good collection of textures for yourself. Take the time to clean them up, make them seamless and ready for use.


 

Introduction
If you are reading this tutorial, you are probably feeling like I did exactly one year ago. I had found this extremely interesting looking 3D application (which other users were raving about), but the user interface completely baffled me. I couldn't find the quit function (I had to kill the application instead of exiting it), I saw buttons that seemed to react differently each time I clicked on them and every time something interesting happened, I could not reproduce it.

In the weeks after that, I slowly found out the basic principles behind the Blender user interface. And though it is non-standard, it became clear that it was a very consistent system - it would let me use the same functions in a number of completely different situations.

Blender in Action.
Blender in Action.
This tutorial will save you weeks of frustration by explaining the basics of Blender's user interface. It will not explain every button or even every window in detail (that is where the Blender manual comes in), but instead let you see the basic idea behind it.

After finishing this tutorial you are ready to work with the rest of the book. Like me, you will find out that Blender's user interface really grows on you; it is one of the most efficient and well-thought out interfaces I have worked with.

Here is what I found to be the Golden Rule of Blender:

"Keep one hand on your keyboard and one on your mouse."

Even while Blender's user interface may be a bit daunting at first, I hope that working with this book will teach you that it is actually a very intuitive one. It was written entirely for working efficiently and quickly and this means that a lot of functions are accessible both by using the keyboard and by using the mouse. Working with hotkeys instead of menus is harder to learn, but the rewards are great.

After a while working with Blender becomes a second nature. Often, my girlfriend watches in amazement at the speed with which I can handle objects, change views, navigate your way around your scene in Blender. Blender has really turned my keyboard and mouse into a glove which reaches into 3D space.

But it all starts with the Golden Rule - remember him while you are working your way through this book!

What am I looking at?
When you first start Blender, your screen will look like this. The screen is divided into three parts; on the top you see the Info Window. Among other things, you will see Blender's version number and some statistics about your current scene.

Next is the 3D Window. This window type is used for all the editing in your 3D world. The pink square in the middle is the standard plane. It is pink because it is currently selected. The black triangle on the bottom is the camera. The gray lines are the grid lines of the 3D world - you can use them to align your objects. The cross hairs with the white and red colored circle is the 3D cursor. You can place it anywhere in 3D space. It is used to determine where new objects are placed, but it can also act as a center for rotation or scaling.

The window on the bottom is called the Buttons Window. In this window, you can edit a variety of information about your scene: materials, lights, animation settings, rendering settings - it is all in here.

An empty Blender scene.
An empty Blender scene.
The window header.
The window header.
Each window has a Header. For the 3D window the header is located at the bottom. You can switch the position of the header by right clicking on it and confirming the requester that pops up ('Switch header'). Pay special attention to the button on the far left - each window has this icon. This is also the one that completely eluded me in the beginning.

In Blender terms, it is called an Icon Slider button. If you click your left mousebutton on it and drag left or right it will change, revealing a number of different icons. Each icon corresponds to a different window type. I will explain the different types later.

!
You can also click on the left and right half of the Icon Slider to change the window type.

The contents of the Buttons Window can be changed by clicking on one of these buttons. In fact, it is a lot like the Icon Slider button that I discussed, but now all the options are visible. The meaning of the different buttons is explained in 'the Buttons Window' below.

Selecting a Button Window.
Selecting a Button Window.
Moving a window border.
Moving a window border.
Configuring the screen your way
Blender's screen can be reconfigured in any way you like. To start with, you can change the size of the different windows by placing the mouse pointer over one of the lines separating the different windows. The cursor changes shape to indicate you can now change the window size. Left click and drag to change the window size.

Adding a new window is similar: move the mouse pointer over a window border and press the middle mouse button. A small requester will pop up now. You can confirm splitting the screen by left clicking on the text 'Split', or by pressing . The window which has the focus and has a yellow header (in this case, the top window) is the one that will be split - approaching the window border from below will split the bottom window.

A line indicating the position of the split is now shown. You can move it to the desired position and left-click to confirm the location.

Cancel the action by moving your mouse pointer away from the requester, or by pressing .

Splitting a screen.
Splitting a screen.
A Blender screen with four 3D windows.
A Blender screen with four 3D windows.
Of course, splitting windows works on vertical window borders, too. In this example, I have created three additional 3D Windows by splitting the default 3D Window three times. Each window is now independent from the others. This way, you can create the traditional 4-view window (top, front, right and camera) in Blender. More about this below in 'the 3D Window'.

!
Press to make the current window full screen. Press it again to restore the previous view.

Removing windows is very much like splitting them; with the mouse pointer over a window border, right-click. Confirm the requester. Like splitting, the direction from which you approached the border (or rather, which window has the focus before joining) determines which window 'survives' the joining.

Joining two windows.
Joining two windows.
The toolbox.
The toolbox.
The Toolbox - Adding a Sphere
Almost every Blender function can be accessed by using the keyboard or the mouse. The Toolbox contains most of Blender's functions. You can call up the toolbox either by clicking on the toolbox icon in the top-right of the Blender screen, or by pressing .

This is how the toolbox works: The dark gray buttons on the left are function categories; moving your mouse pointer over them will change the button list on the right. Move your mouse pointer to the right and click on a function button to activate that function. Each button also shows the corresponding keyboard shortcut. In the shortcut notation, c|<button> means holding down and pressing the listed button. Similarly, a|<button> uses the key as a modifier.

Clicking some buttons will reveal a third layer of functions. For example, if you wish to add a sphere to your scene, first select 'Add' from the categories list in the Toolbox. Next, left-click on the button labeled 'Mesh'.

Starting to add a mesh.
Starting to add a mesh.
Adding a cube.
Adding a cube.
The button list on the right now changes to offer you a choice between the different primitives that Blender knows. left-click on 'UVsphere' to add a sphere to your scene.

When adding objects like a sphere, Blender wants to know which resolution you require. A sphere with a high resolution looks smoother than a low-resolution sphere, but it also requires more memory and is slower to manipulate and render.

These buttons work like the Icon slider you saw earlier: left-click on the 'Segments' button and drag left or right to increase or decrease the value. Also, you can click on either side of the button to change the value step by step.

Parameter for a sphere.
Parameter for a sphere.
Editing a parameter.
Editing a parameter.
Yet another way to change the value is to hold down and left-click the 'Segments' button. This will change the button into a text input. You can now type a value into the field directly. Press when you have entered the correct value.

Finally, click on the OK button or press to set the value of the 'Segments' variable.

A mesh sphere in edit mode.
A mesh sphere in edit mode.
In the case of the sphere, you will need to set a second parameter, 'Rings'. After doing this, a sphere will show up at the location of your 3D Cursor. Instead of showing up in pink or black, the sphere is drawn with small yellow dots. This mode is described in the paragraph 'Edit Mode'.


About Edit mode
When you are working in 3D space, you can basically perform two types of operations: operations that affect an object as a whole and operations that affect the geometry of an object, but do not affect the object's global properties An example of the former is moving an object to another location. An example of the latter is shaping a nose on a face.

In Blender, you have to indicate which of the two you want to use. This is where edit mode comes in.

This is an example of an object that is not in edit mode. Operations like translating (), rotating () or scaling () affect the object as a whole. For example, translating moves the entire object somewhere else.



In contrast, when you select you enter edit mode. The object is redrawn and the separate points of which is consists are drawn. (These points are known as vertices, by the way). If you select a vertex by right-clicking on it, you can then translate only this point, while leaving the others unaffected. In this way, you change an object's shape.

If you select more than one vertex, you can also rotate or scale them. In this case, the vertices are rotated or scaled around their median point.

Loading and saving your work
By now you have probably created a Blender scene which you might want to save to disk, or you would like to take a look at the .blend files that we have included on the CD-Rom that comes with this book. Blender has a lot of file loading and saving options - even to the point that you can use Blender as a file manager.

In this part I will briefly describe the basic file loading and saving mechanisms. As always, these functions can be accessed either from the Toolbox or by using a hotkey.

Accessing the file functions in the toolbox.
Accessing the file functions in the toolbox.
The Load File window.
The Load File window.
Loading a Blender file
Call up the File Window by pressing . In this window, files are shown in black and directories in white text. The .blend files are also indicated with a small yellow square in front of them.

The first method to load a file is by left-clicking on a filename. This will copy the name to the filename box at the top of the window (the second textbox from the top). Pressing will then actually load the file. Alternatively, you can also middle-click on a file which will cause it to be loaded immediately.

Navigating to the parent directory is done by clicking on the '..' directory in the list, by clicking on the 'P' button at the top of the window or by pressing . Sometimes you may want to refresh the file list; for example when another program has been writing or changing files in the current directory. In that case, click in the '.' directory or press the dot key.

Saving a Blender file
Open the File Window by pressing . This window works in the same way as above. Additionally, you can now enter a new filename in the filename box. To do this, left click in the filename box and enter a new name.

The Save File window.
The Save File window.
!
Use the keys numpad and numpad to automatically increase or decrease the versionnumber of a file before loading or saving



Model Tut

Box Modelling Part 1

In this tutorial I will be showing a basic way of modelling that most people use. So lets get started by creating a box with the same values as shown in fig 1.a.

Fig 1.a

Now that we have made our box, you select it and right click-convert to edible poly for max 4 users,or convert to edible mesh for max 3.1 users. Now, select the vertex selection tool as shown in 1.b. Now select the vertices on the mesh that you want to move around; being careful not to overlap any as this will create mesh errors. Try moving them like in fig 2.a.

fib 1.b fig 2.a

Now, basically you can do any shape that you want to do by moving the vertices around. Now try the polygon selection tool, which is the fourth from the left in fig 1.b. Now this will select the induvidual polygons in the mesh to be either extruded or bevelled. Fig 2.b shows the extrude tool.

fig 2.b

By holding your ctrl key you can select multiple polys at the same time like in fig 2.c.

fig 2.c

Follow so far? Now the model that I did here doesnt look like much, but as you can see it opens up infinite possibilities. So, now if you want a more organic or smoother model you can go to your modifier panel as in fig 3.1 and select the meshsmooth modifier.

fig 3.a

The menu rollout (shown if fig 3.b) will consist of several submenus, but for this tutorial we will enter the values as shown fig 3.b. Always remember to check your iterations and smoothness under subdivision amount as it will not render your meshsmooth without them.

fig 3.b

This is what yours should look like:

Box Modelling Part 2

So, you have done part 1 of the boxmodelling on this site and you are wondering if you can see the meshsmooth results before you apply the meshsmooth modifier. Well there is a way so open up Max and create a box 80by 80 by 20 and with 6 segments for length width and height like in fig 1.a. Now right click and convert to edible poly.

fig 1.a

Go into your modifier list and select meshsmooth using the values like in fig 1.b. Make sure you select your render values or it will not work right.

fig 1.b

ok so far? Now then, what we do at this point is select the edible poly in the stack like in fig 2.a. You will notice that your mesh goes back to its original form. This is because we are going to edit it before the meshsmooth modifier. Now, click, show end result on-off toggle which is at the bottom of fig 2.a, second from the left.

fig 2.a

We are still in edible poly, so we can simply click polygon like in fig 2.b. And you will notice a grid form on your mesh like in fig 2.c. This is the original polys on your mesh and you can extrude or chamfer using these, but the result will be already meshsmoothed as you are doing so creating a realtime meshsmooth so you can see the results as you are boxmodelling! fig 3.a shows the results of just a few extrudes.

fig 2.b fig 2.c

fig 3.a

Shapemerge

Ok, here we go with our first 3d tutorial, with what I think is one the most powerful weapons in a 3d modellers toolbox; especially for adding much needed detail, as most 3d models are too bland and dont look good close up. First of all fire up your trusty 3ds max and create a box (fig 1a).

fig 1a

Ok, now we need to make our splines that we want to shapemerge onto our nice shiny box. So, now in the top view, go to the shapes tab in fig 1b and create 4 rectangles like in fig 2a.

fig 1b fig 2a

Looking good so far. Now select one of the rectangles you just created. Right click and select convert to edible spline option. Then scroll down till you come to geometry and select attach mult like in fig 2b. Now when the attach mult box comes up, select your other 3 rectangles that you made. This will make them all one object.

fig 2b

Now the important part: we have to select the object consisting of the 4 splines and move them above the side that we want shapemerged. Do this in your front viewport and move them up (fig 3a)

fig 3a

Doing good so far I hope. All we have to do now is select your original box and under compounds tab select the shapemerge button. It should look like my fig 3b. Now under your rollout on the right side, you will see a button that says pick shape. Click it and click the 4 rectangles that should be over your box.

fig 3b

All you have to do is select your box and right click - convert to edible mesh, and choose polygon (fig 4a). Now all you do is scroll down further and select extrude(fig 4b), and when you increase the value only the shapes that you want will extrude(fig 5a). There now you know how to add controllable detail to your model.

fig 4a fig 4b fig 5a

Shockwave Tutorial

This time around I will show you how to do a pretty good looking shockwave effect not using plugins. So start max up and create a tube object with radius 1 -70 and radius 2 about 50. Set the height about .6 or .7 high as we want this to have some depth. Also give it about 70 sides.

Now apply a uvw map modifier to your tube planar will work fine.

Now open up your material editor and scroll down to your maps. Under the diffuse slot select a gradient use the settings that I did in fig 1.a. Remember to select radial or it wont look right.

fig 1.a

Next go down to the self illumination slot and select a gradient as well and use the settings like in fig 1.b. Now in the color 2 tab, select a noise map and use the settings that are in fig 1.c; note the phase has a little red square around it. This is gonna be the part that we animate later on.

fig 1.b fig 1.c

Now, the last part we select a gradient for the opacity using the settings like in fig 2.a. In the color 2 we select a noise map and use the settings like in fig 2.b. Note the phase has a red box around it this will be for our animation, which we set to 0 at the first part of the animation and set about 15-17 for every 100 frames afterward. This will make it look more realistic in the end, but make sure you do it for the noise in both the self illumination and the noise in the opacity map. Good luck!

fig 2.a fig 2.b

Halfwire Tutorial

Here is a tutorial an how to do a half wireframe picture using 3ds Max and photoshop.This technique is not hard to do, but I will try to explain it the best that I can. First thing to do is open up 3ds Max. Render your mesh as you normally would all textured as seen in fig 1.a.

fig 1.a

Next, we will render it as a wireframe. The best way to do this in max is to force wireframe. This is done by going to the render dialogue (teapot with a little square above it) as shown in fig 1.b.

fig 1.b

Also set your wire thickness low for complex meshes like this one, as it will look better in the end. Now render. You should have something like fig 1.c.

fig 1.c

Make sure you save each render at the exact same angle (dont move your camera or pespective view) as a .bmp for good quality later on I used wire.bmp and shaded .bmp.

Also you may also want to set your self-illumination way up in your wireframe render, you can do this in the material editor, but that is only if you want to. Now we are done with max so, save if you want to, then shut it down and fire up Photoshop.

In Photoshop, load each pic that you just made. Place the wireframe on top of the shaded pic (I just drag and drop from the layers menu), make sure they are directly on top of each other. Now go to quick mask mode as shown in fig 2.a

fig 2.a

Now, all we do is select a soft brush like in fig 2.b and we are set to go. Now all we do is mask out the sections we want to remove like in fig 2.c.

fig 2.b

fig 2.c

Now, select your edit in standard mode button (next to the quikmask button). See fig 2.a and you should see a dotted line where you used the paint brush. All you do now is hit delete on your keyboard a there you have a half wire half shaded pic like in fig 3.a

fig 3.a

Spline Cage Tutorial

Greetings, this time we are going back to modelling using a spline cage method. So to start with open up Max and start a new scene.Iin the top viewport, create a shape-circle shape. Now right click and convert to edible spline and select vertex and move it like I did in fig 1.a.

fig 1.a

Now, select spline instead of vertex and select the distorted circle that we made. Now holding your shift key down drag the splines along the z axis, so that it creates clones of it. Make about 4 or so like in fig 1.b.

fig 1.b

Now go back to your vertex mode and start distorting the hell out of your spline like in 1.c.

fig 1.c

Once you get the splines to your liking, you can go to you modifier list and select crossection. Make sure on your crossection rollout that smooth is selected. Now all you do is go into your modifiers again and select surface. In the rollout, select flip normals if it looks weird. Also select remove interior patches, this will get rid of any mesh errors that may arise. The last thing you have to do is increase your patch steps to your liking but remember the more steps the higher poly your model will be. Now experiment with different splines and good luck.

Multiloft Tutorial

Here we are in part three of our tutorials on modelling, and this time I am going to show you the technique of multilofting. For example, say you want to model a square peice into a round piece and back to square again all in one seamless mesh. This by normal boxmodelling is nearly impossible and the results are poor so we are going to try the good old multi loft. Start up Max and draw 2 square splines a circle spline and a straight line like in fig 1.a

fig 1.a

Now that you did that, select the square on the bottom. Now, select loft from the compound tab and scroll down the rollout until it says creation method and select the get path button. Making sure your spline square on the bottom is still selected and the get path button is highlighted, select the straight line to the left. Now you should have something similar fig 1.b

fig 1.b

Now, under the path parameters set the path to a value of about 10. Now go back up to the creation parameters and select get shape. Now go ahead and select your circle spline in the middle. Btw, it might be easier to be in wire frame mode like I am. Now you should look like fig2.a

fig 2.a

So far so good I hope now all you do is set your path to around 50. Go back and press select shape. Now select your top square spline, and it should turn out like my pic in fig 2.b. Practice with differnt shapes and different path values. Good luck.

fig 2.b

 



HHT Tut

This easy tutorial will let you see some things that HHT can do.


This is what HHT looks like. It's not much different from HMT, so it isn't very hard. Wink



We'll start with the easy things.

DEPENDENCY SWAPPING

A dependency is something that has to do with an object/weapon/etc.
For ex. The pistol bullet is a dependency of the pistol weapon.
If a Marine carries a pistol, the pistol is a dependency of the Marine.

We'll start with the Cyborg Biped.
As you can see under dependencies, the Cyborg has the normal things.
The cyborg has a model, a weapon, a dialog and all kinds of dependencies.
These can all be swapped.
By clicking on a dependency, there will be a little drop-down box under the dep. list.
Above the box says Dependency to swap with.
click on the arrow to see ALL of the other dependencies that are the same.
We will pick mod2( the model of the cyborg.)

As you can see, all the other models will be visible.
Click on another dependency, other than the cyborg.
After you have done that, click on SWAP.
The models will be swapped, without any error.
This will let the models be swapped, and you won't get a exception error( NOT FULL PROOF)
(unlike the HMT plugin)

CHANGING THE FILENAME OF A META

To change the filename of a meta, click on the box with the name on it.

Now, enter a new name you want to have, and press Save Changes.

CHANGING TAG TYPE
Click on tag type, click on another tag and Save Changes.


This was a small, but helpful tutorial about HHT.
I hope this helped a bit, because some people wanted a tutorial badly.




Well apparently people are still confused about how to do this so i am making another tutorial with pics on how to do it.
-Create a Project folder like this (Being organised can make troubleshooting easier)

-Open the map that contains the object you want to inject into a mp map then select the object you want to Inject. In this case im going to use the wraith (refer to fig 1).After you Have selected it MAKE SHURE YOU CHECK "RECURSIVE" And hit save Meta.Save it in your Project Folder Under new Stuff(refer to fig 2)
Figure1-

Figure2-

-While We still have this map Open go to tools "Generate Raw Model Offset List" and save it in your new stuff folder.
-Then go to tools ,extract "Raw models"
You will see a window and a empty box ,and two buttons that say "Extract "And "Load CSV File"
-select load CSV file and select the Raw offset model list you just made
Then the box is filled with a list of models
-Select the model you want to extract and hit extract (Refer to fig 3)
Figure 3-

-Then extract to the folder which contains the meta file of the object your extracting in this case "wraith.vehi.xml"(refer to fig 4)
Figure 4-

-wait till you see this

-now we must open The map you want to inject the object into in this case im using bg then go to tools,extract and select batch extract(refer to fig 5)
Figure 5-

Batch Extract only the meta into the "build folder in your project folder and Say YES TO EXTRACT BSP

- then go to tools ,extract,"BSP/Modelsections "

-extract that into the "bsp folder"

-now goto tools "Model Decrapper/BSP builder"
right click in the big empty box and select "add"
Select the model you extracted into the models folder
then select the Existing vertex area and Existing Index area ,and the existing bsp Block. these are in your bsp folder in the project folder after that hit "de-crap these models and biuld a new bsp chunk while your at it"
It should look like this-

after that go to the bsp folder and copythe file "bloodgulch.sbsp.meta" and navigate to "\New Project\Build\levels\test\bloodgulch" and paste it there And OVERWRITE THE OLD FILE.
-We are now ready to rebuild
first get a new copy of the map you are rebiulding and paste it in the rebuild folder. Then open hmt go to tools rebuild map MAke SHURE YOU SELECT SP->MP MODE
Select the map in your build folder and say yes to auto fill.
After That for additional files YOU must add Bot the Model FILE(.mod2 and the object meta file (in this case .Vehi))
After you have done that for each model and object you can then rebuild it.
It should look like this-

when it askes you if any New Vertices have been added say yes
then navigate to bsp folder and select "bloodgulch.vertices.new"
say yes to new indices and browse to the same folder and select "bloodgulch.indices.new"
And select "bloodgulch.sbsp" for the sp bsp.
It will then finish biulding and if succesfully creatd you should be able to view the perfect models in se3. to view the wraith we added in the game open hmt and select wraith under vehicles and copy its meta value then navigate to scenery and swap a tree with it and it will be in the game along with all other veh. well i shure hpe this gets stickied cause theres alot of newbs that dont know whatis. Very Happy hope these images werk



More Tuts

Complete Walkthrough:

  1. Download my script here. Find out where you installed gmax. Inside the gmax folder will be a directory called "scripts". Inside that folder is another folder called "startup". Copy the script you just downloaded into that folder and start up gmax.
  2. Download "GMaxSLGRAB", found here, or here. It is a simple binary that will grab the full text buffer from the maxscript listener and save it to a file of your choosing. If the above link is dead you can also get the tool here. Extract it someplace convenient, then run the program. A window will pop up, move it off somewhere out of your way.
  3. Next you need the rendering software, which is called Yafray. Go here and download the Windows version of the software.
  4. Now it's time to start the fun and games. Load up gmax. Your scenes will need to meet a couple of requirements before you can do a successful rendering. For one, you need to set up a camera. You do that by going to the "Create" menu (it's the mouse cursor pointing to the star on the right side of your screen), and click on the camera icon. Choose a "Target" style camera, then click and drag somewhere in your scene. Where you click is where the camera will be, where you drag to is where the camera will point. Once the camera is created, you can fine tune the view by clicking on the boxes of the camera and moving them about.
  5. You also need to put a light into gmax. If you know nothing about lighting you will want to learn about them (hint: use google) to get the most out of rendering, but for now, we'll just plop in an Omni light. Again go to the Create menu and click over to the Light section. Hit the Omni button, then click in your scene. The effect on your scene will be immediatley obvious. Switch to Modify mode and move the light to be exactly where you want.
  6. Lastly, you have to set up a viewport to show what your camera is seeing. Pick a port, and right click on the title of that viewport. Mouse down to Views, and pick the Camera option at the very top.
  7. Now for the scripts.
  8. After installing my script, you probably noticed right away that a new interface has appeared on the left side of the screen. If you don't like it there, position your mouse very close to the edge of the screen and doubleclick. That will detach the interface into a floater window. In this interface is a bunch of options and rollouts and such, which I describe in full detail right here. You can ignore most of them for now, the default options will in general be good enough to get a scene rendered.
  9. Click on the "Save As" button in the interface. A file dialog appears, navigate to wherever you installed yafray and name the file you want to save to.
  10. You need to open the Listener. This is just a text console where debug info for maxscripts gets printed. Or in our case, mesh info. Over on the very far right of your gmax screen will be a little icon that looks like a hammer (the Utilities panel). Click it, and a ways down should be a button that says MAXScript. It should be the very last button. Press that button.
  11. Press the button that says Open Listener and the MAXScript Listener should appear, perhaps with some text in it.
  12. Select the viewport that you set to show the view of your Camera. Deselect any objects you have selected, and in the Yafray Exporter interface press the "export" button. The Listener window should go bonkers with output and provided all goes well the script won't crash. Yay for you, you just exported a scene (almost).
  13. Next, you have to get that text from the Listener into an XML file that Yafray can parse. Remember that little utility I had you run? The one with the big "GRAB" button? Press that button now.
  14. Almost done! The next step is actually running yafray. To do this you need to open up a dos window. To do that find it in the Start menu (usually under "Accessories"). You will need to change directories to the yafray directory. To do that, type in a command such as this:
    cd "C:\Program Files\yafray"
    
    And hit enter. Now you have to remember what you named the file as, and run a second command and hit enter:
    yafray myscene.xml
    
  15. Quite quickly the program will spit out a bunch of text and you'll see a progress meter tick out the rendering process. When it finishes, it will dump a file called gmax_render.tga into the directroy. Open that image in your favorite paint program and if all went well, you'll see a stunningly rendered version of your scene.
  16. If not, continue on to the troubleshooting section. You are now ready to render anything you want as often as you want.
  17. -----------------------------------------------------------------------------------------------------------------

This is the easiest way to put a vehicle in a level with out one already

First there needs to be scenery in the level
Ok open Hmt3 up.
Then go to vehicles
Choose the vehicle that u want to place in
Next copy the Meta offset
Then open scenery and choose the piece of scenery that you choose to
get rid of.
Paste that into the meta offset for one of the scenery
The new vehicle that you chose is now in the game where the scenery
would normally be.
I will place a Banshee in Hang ?em High
First I opened the vehicle section and chose
vehicles/banshee/banshee_mp
Then I copied its Meta wich is BA1C70
I then opened the scenery tag and opened
scenery/floor_arrow/floor_arrow
Then I pasted BA1C70 over 848BE0
After that save
Start the game and hopefully my tut worked

 

How to import bots into multiplayer; by daevltimi

This tutorial will show you how to import working AI into any multiplayer level, Before you begin you must remember that only the host of the server can kill the bots unless certain measures are taken, this is because halos net coding doesn?t allow for the npcs to be seen in the same places for every player, I will explain how to prevent this later in the tut,

Anyway to begin you batch extract the map you want to import the bots to using hmt,

 

 

You should save this to a separate folder specially made for the map. When you have done this you go into a single player map with the character you want to put into the multiplayer map in it, ( choose assault on the control room usually)then go to actor variant, select the character you want and recursively save its meta,

 

save it to the same folder as the multiplayer map you saved and then rebuild this map

now the bots are in the map you need to put them somewhere, if you don?t already have it download hht (halo hacking tools) and open up the rebuilt map, go to the vehicle tag and select ghost, then select the actv tag in the right hand menu it should be nulled out bring down the scroll down list and select the character you imported,

Then open up hmt again and in bipeds swap the character you imported with characters/cyborg/cyborg, open up halo and see if it worked.

Now to make it so everyone can kill them simply put them into a gun turret rather than a ghost, if your selected map doesn?t already contain a turret then you can usually put one in using spark edit 3, go into tools in the se3 menu and click on import tag into scenario, select vehicles then covenant gun turret

then simply swap a vehicle with the turret and your done,

There you go enjoy your brand new bots of death.

How to give the right mood to your mod

By Daevltimi

Before I begin I must say that this is not as much a tutorial as a catalogue of advice to guide you through the world of scenery, lighting Etc. it can be reordered in many ways to give the user of your mod the desired emotions when they come to play it.

I must also warn you against making the mistake many have made and so have bought down the standard of their own mods, we do want to see our hands in front of our faces, making a pitch black mod only makes it frustrating boring and pointless.

Ok now we?ve got that over with lets begin,

We?ll start with a mod centred on stealth, and let?s say it?s in bloodgulch as the example for the outdoor map of this scenario. I will move onto an indoor map for this later.

A lot of scenery will be needed for this, rocks, small trees and shrubs should prevail for this type of mod, we don?t want to use huge trees such as the type found in timberland because this takes away the air of suspense and eases the tension between players, the level should be littered with tunnels, houses and bases for hiding and scuttling around, unnoticed, it needs 1 or 2 vantage points just to speed up the game play now and then , these should be quite a challenge to reach though and in no way a camping spot, weapons should be swift and powerful, no automatic firing guns you must keep in mind that people will probably have their fingers permanently stuck to their triggers, waiting for people to walk into their sights they should also be few and far between, forcing players to conceal themselves rather than pick fights with the nearest passer by. The lighting should be dimmed not dark but more like the light of dusk, just to loosen peoples senses a little, vehicles should be at a minimum, if you insist on vehicles use a ghost, preferably reskinned to be darker, and in difficult places to retrieve it from such as narrow tunnels.

Now for the indoor level I will choose hang ?em high, indoor stealth games present a new sense of entrapment, the player will feel urged to find ways of getting away from the rest, rather than rush to find them, little scenery should be used as there are already multiple hiding places but it should still be implemented, I recommend rebuilding your map with small rocks or other hiding places, plants don?t generally merge well but with the right skin the panels found in bloodgulch can be used as additional tunnels or hiding places, it should be a little dimmer than the levels of light found in bloodgulch stealth I mentioned before, to provide a sense of foreboding doom, the weapons should be the same as before, no rapid fire and very few littered around, vehicles must be at an absolute minimum but again ghosts are best if you feel you are lost without them, and finally the high points of the level should be enclosed in most places but open in a few, just for snipers and to let those on the ground have a small advantage in knowing the whereabouts of their foes for a small period of time.

Next we will move onto mods set in dreary, dingy and dark places like swamps. For this I would use the level battle creek, it has much flatland and is excellent at providing the feeling of fear, sorrow and loss which you may not notice you are feeling but is always there in levels like 343 guilty spark, you will need to change the bitmaps of the walls first, they should be dreary green as if they are growing a layer of moss which has presided there longer than you could know. If you can (I don?t know if this is possible with the tools we have at present) the ground should be like a thin layer of water, with the sound of squelching feet as you walk, scenery should be small bushes hiding the ground with nothing but a small hole here and there and the occasional dead tree, it should be very dimly lit so as seeing across the map is almost impossible, weapons should be close range, like shotguns, and assault rifles you may want to decrease damage done by assault rifles, sniper rifles and pistols are a big no no, rocket launchers are critical for this kind of level, they can be used as a great way of making people need a quick change of pants and can also show the true power of light, vehicles should be cars with the ability to skid much more than usual and slowed down a little, tanks, and maybe banshees, ghosts are terrible, they can be used to sneak around and take away the sense of the instability of the ground with their ability to perform sharp turns, and ease of riding.

Indoor mods of this type are near impossible and never seem to come out right anyway so I will not be covering them.

I will now move onto mods with the theme of war, I will be using sidewinder for this mod, these are best set in the light of day and have mainly man made structures, importing the pieces of shattered metal from the wizard level would be a good idea, these should be scattered randomly and thickly around all constructs made from metal, such as bases and tunnels, you will also want something to make temporary looking bunkers from, like the logs in bloodgulch (this is the only time I condone logs) and put them in the corners and by the walls maybe 2 at the side of each base, weapons should be ranging through all the human weapons, there should be many in the bases in ordered rows, and spread thinly throughout the level so as to make it seem as though they have been dropped by dead marines, the same should be with the vehicles, there should be many human vehicles at the bases such as cars, tanks and if you can manage it the turrets from the hogs, you will want lots of scorched bitmaps for vehicles and various parts of the floor walls and scenery, and if you can duplicate the weapons you should add a nuke in a moderately hard place to reach so as to provoke a mad scramble by the players to get to it first.

For the indoor level I would choose boarding action, it presents the players with least hiding places and makes excellent use of teamwork. The barricades should be used greatly at bases and then more thinly spread the further away from the base you are, this will make for a real challenge and sense of danger in ctf games, again the shards of metal should be imported and spread everywhere, there should be no vehicles and weapons should be again many at bases and few around the level, you should only have human weapons for a sense of realism all weapons of these types should be enabled, though the rocket launchers ammo should be restricted a little. The light should be fairly dull but not dim, as if there were no lights but the windows were open.

This is the end of the 1st instalment of my setting the mood for your mods tutorial pair, in my 2nd instalment I will be discussing, human covenant wars, earth mods, and driving mods.

Pre- Detailed Tutorial
I will be posting a fully detailed tutorial with all the tricks that I've discovered, by the end of this weekend.
For now though, you can play with this.
Hopefully you know how to batch extract, and rebuild a map file.
1.  Open the folder you batch extracted your map to.
2.  Go to "weapons" and drop the whole chainfrag folder that I included, into "weapons".
3.  Now add the 2 files that I included in the zip, that are in the file called "frags", into
 the "weapons\frag grenade" folder.  Just the 2 files, not the folder.
3.  At this point, if you just rebuild the map without adding any files, in the rebuild section for HMT,
 you will have chain spawning frags.  The file is self recursive.
4.  Now lets say you want to spawn rockets at the end of the chain.
5.  In the decompiled map folder, open "weapons\chainfrag\effects"
6.  Look for this file "chain4.effe.xml".
7.  Right click it and open it with notepad.
8.  Now look for the lines that read "<Filename>weapons\frag grenade\frag grenade2</Filename>.
There should be 4 of them like this.
9.  Now change "frag grenade\frag grenade2" to "rocket launcher\rocket", on all four lines.
10. Save the file.
11. Rebuild the map now.  In HMT, after selecting the unedited map, and choosing yes to auto add
the required fields, just hit build.
Now you have a frag grenade that will spawn rockets as its final detonation.
You can also spawn weapons, scenery, and power ups.  Vehicles, and bipeds are also possible,
 but the game crashes more often than not.  I'm still working on this.
In the full tutorial I will show you how to...
Get MC to spawn things when his sheilds are down,
Have a grenade spawn 3 different projectiles, then 3 different other ones,
Make incendiary grenades,
Put the correct visual and sound effects into chain spawning,
Making other weapons spawn,
Plus more stuff.

How Create Duplicate Vehicles With Their Own Properties.  By Polysorbate/Deimos
This tutorial is given with the assumption that you have some basic knowledge of map rebuilding.

1.  Create a new folder on your DT and name it DI mod
2.  Copy the unedited Death Island map to that folder
3.  Open the map you just copied with HMT3
4.  Batch extract the map and select Metadata and Models; to DI mod folder
5.  Now you should have the original map file, and a bunch of folders in the DI mod folder.
6   Open the folder "vehicles"
7.  Copy the "warthog" folder to your DT
8.  Now rename it to "warthog2"
That's the easy part, now for the real fun!
9.  Put the warthog2 folder back into the vehicles folder
10  Open the warthog2 folder, you'll see 2 types of files in here, XML and META.  The ones we'll be editing are the XML files.

  I'll give you an example of what needs to be done.

11.  In the warthog2 folder, right click on the file that's named "bullet.jpt!.xml", and choose Open With- notepad.
12.  You should see this...

<?xml version="1.0"?>
<!--Halo Map Tools: Metadata Structure File-->
<Results>
  <Map>Death Island</Map>
  <Tag>!tpj????????</Tag>
  <Filename>vehicles\warthog2\bullet</Filename>
</Results>
13.  Now the important part is the Filename, this file is one of the easiest to change, because you only have to change one line.  Now change <Filename>vehicles\warthog\bullet</Filename> to
                                                        <Filename>vehicles\warthog2\bullet</Filename>
The easiest way to do this in all the files to go to edit in notepad and do  find, look for vehicles\warthog and add the 2 after the warthog.  This is telling it to look in the warthog2 folder instead of the original one.
  To make a unique vehicle, you have to do this to all the files, including the ones in the subfolders: shader, effects, and bitmaps.  After you do it a couple times, it gets easier.  Remember to only change the lines that read "vehicles\warthog"  And only the instance of warthog that is directly after vehicles.
14.  Change all the xml documents and then, you are almost finished.
15.  Now that you have changed all the "vehicles\warthog" to "vehicles\warthog2", you are ready to put the new one in the map.
16.  Go to the main DI mod folder and open levels.  You'll see several folders here, the one you need to go into is "test", so open that.
17.  Now open the folder "deathisland"
18.  You need to edit the XML file "deathisland.scnr.xml", so open this with notepad.
19.  Now do a find again and look for warthog
20.  You should see this...
   <Dependency>
    <Location>0x3A84</Location>
    <Tagclass>ihevtinuejbo</Tagclass>
    <Filename>vehicles\warthog\mp_warthog</Filename>
  </Dependency>
21.  Now copy this and paste it just below the original so it looks like this...
<Dependency>
    <Location>0x3A84</Location>
    <Tagclass>ihevtinuejbo</Tagclass>
    <Filename>vehicles\warthog\mp_warthog</Filename>
  </Dependency>
<Dependency>
    <Location>0x3A84</Location>
    <Tagclass>ihevtinuejbo</Tagclass>
    <Filename>vehicles\warthog\mp_warthog</Filename>
  </Dependency>
22.  First, change one of the warthogs to "warthog2", again only the one right after vehicles.
23.  Now, the last thing you need to change is the Location which is included in what you copied.  You'll see that the original reads "<Location>0x3A84</Location>"  you need to swap this with some scenery object. 
24.  Copy this, go to edit and find in notepad and paste it... scenery\small beacon\small blue beacon</Filename>
25.  TAKE NOTE OF THE LOCATION, WHICH IS 2 LINES ABOVE IT, it should read "<Location>0x22E4</Location>", now delete this area from the first dependency to the second one, so you'll be selecting these lines
<Dependency>
    <Location>0x22E4</Location>
    <Tagclass>necsejbo????</Tagclass>
    <Filename>scenery\small beacon\small blue beacon</Filename>
  </Dependency>
now delete them.
26.  Now go back to the warthog2 location line and replace "0x3A84" with "0x22E4"
27.  Now save the file.
28.  Go to HMT3 again and at the top choose Tools, Rebuild Map
29.  At the top of the window, where it reads original map, select the unedited map file in the DI mod folder
30.  When the window comes up that asks about auto filling the required fields, choose yes.
31.  Now at the bottom, lower left, where it reads "Additional Files", hit the add button.
32.  It does not matter what order you add the files but I do the scnr.meta file in DI mod\levels\test\deathisland, first because that is the one I usually forget.
33.  Now add all the files from your warthog2 folder, again, also the subfolders.
34.  Now hit Build, in the upper right corner of the HMT3 window.
35.  Wait for it to recompile the map.  At this time if you get an error, pay attention to what it reads because it will give you a good idea of what file you
       need to go back and change.  Often it will say something like, a required dependency for (the file name), was not found.  If you see this, go to that
       file and make sure you renamed all the warthogs after vehicles, to warthog2.
36.  Once it is done the rebuilt map will be in the DI mod folder.
37.  Take this file out and rename it to "deathisland.map", if you have file extensions eabled, otherwise, just "deathisland"
38.  Now drop it in your maps folder.
39.  It will work at this ponit but your new warthog is still the same as the original.
40  Open the new map with HMT3 and under vehicles you should see...

vehicles\warthog\warthog\mp_warthog
vehicles\warthog\warthog2\mp_warthog

41.  Now just for fun go to projectiles, and change the warthog2 bullet to a rocket
42.  Save it
43.. Now the warthog2 will be anywhere there was previously a blue beacon, (I advise deleting some with Spark Edit, or the map could be laggy),
when you fisrt start the map.  You should turn vehicle respawn off because the new warthogs will spawn at the same points as other vehicles. 
The map will still work, but it will keep adding vehicles until it gets to laggy to play, just try it with respawn on and you'll see.
That's it, now you have a warthog that fires normal bullets and one that fires rockets, because you copied everything, you can change the physics,
 speed and anything else.  To sum it up, the computer now sees the original warthog and warthog2 as 2 completely different vehicles.  The ONLY
exception to this is the model.  If you change the model on one, the other will have the same model.  I'm sure there's a way to counter this, but I
 have not found it yet.  If you change the skins on them though they will be different.  You can do this the same way with all the other vehicles, and
 the turret.  I had to go through about 100 errors, while trying to rebuild the map, before I finally got it to work.
I hope this helped you.  If you have any problems, you can P.M. me through the site and I will try to answer you asap.

mini-tut on getting models from HMT3 into Milkshape :

Open HMT3

Find [mod2]PC Models, click on the thing that you want to export.

if /fp is after the name, it means when you carry the weapon. Otherwise, it means when its on the ground. When there are multitple models, the first one means the closest, the second one means you see it farther away, etc...

Anyways, open Milkshape, and go to File - Import - Wavefront OBJ and browse for the model that you exported from HMT3.

Edit to your wish -

Click on Select, click on Vertex down on the menu at the bottom of the toolbar, go into one of the 3 modeling screens, select what you want, go back over, select Extrude or Move, and move them around.

mini-tut on getting models from Milkshape into Halo :

In MilkShape, do File - Export - Wavefront OBJ.

Open HMT3

Find [mod2]PC Models, click on the model that you originally exported from HMT3

Click import, browse for the new model, click import, save, and play.

Note : If it says you can't import, then somehow you changed the number of vertices.


Changing weapon projectiles (beginners hex editing)



You will need:

A hex editing program, I recommend Hex Workshop
Halo Offsets List


Introduction:

In this tutor you will learn how to change weapon projectiles or begin Hex editing. This tutorial assumes you have done all previous tutorials.


Step 1, Download and Opening the Configuring the Program:

Download and install Hex Workshop. The program should already be configured.


Step 2, Opening .map file:

For this tutorial, we will just be changing the pistol's projectiles to fuel rods. First of all, right click bloodgulch.map and open with Hex Workshop. Make sure all your MAPS folder is backed up! At first just a whole heap of numbers and letter will appear, don't worry this is normal.



Step 3, What does what:

Well, in Hex editing there are two main terms, a Value and an Offset.

Offset: Where the value is located in the file.

Value: What the code is telling the game to do.


Step 4, Getting the offset:

First off, extract all the offset files to somewhere. Open the Blood Gulch off set list. Up the top, click the Weapons button to go straight to the weapons offset list. Locate the Pistol, and copy the offset sequence (Far left).



Step 5, Finding the offset:

Hex Workshop should already be open. Click Edit>Goto. A new window will pop-up. Where it says off set, well put the offset sequence in. Select the Hex option and press Go. You will now be at the pistol offset.


Step 6, Entering in the value:

Now, in the offsets list, go back to the top and press Projectiles. This will take you to the projectiles section. This time we are not selecting the offset though. We want the Value. This time we cannot copy and paste, you have to type in the sequence manually.

With out editing anything in Hex Workshop type in the sequence.

It will overwrite the old sequence automatically. Notice the edited text turns red? That just makes it easier for you to know what you have edited. You will also notice that the 40 on the end didn?t change colour because there are the same numbers. The value has now been changed to make the Pistol shoot fuel rods.


Step 7, Saving your work:

When you save your work it will give you the option of backing up your file. You should have already backed everything up though. To save, click the little save icon or go to File>Save. Both do the same thing. Your work is now saved. The red text will now return to blue.



Step 8, Testing your mod:

You should already know how to do this. If you just want to test your mod, it will already be saved so you can just go straight into Halo and play it. If you want to hand it out to the public, well you know how .ppf patching works.

Conclusion:

Well done, you have just created your very first mod for Halo. Just a few notes: When Hex editing, always think ahead. Say if you make the Assault Rifle shoot Warthogs, what is going to happen when they try to re-spawn at their original position? Nothing, because there is no original position, so instead of the Warthogs re-spawning, the game will crash.

so first open HMT3 with D40 (the maw) and open the tab in resource browser effects and go to SCENERY\HALO_DESTROYED\EFFECTS\EXPLOSION_HALO
click on it and go to tag information on top and click the checkbox RECURSIVE and click save meta. make a new folder and call it bloodgluch meta and in that new folder make an other new folder called explosion1 (cauz yes there is an explosion 2). And save the meta there. We got explosion 1 exported. Now go in particle system in the resource browser and go to LEVELS\D40\DEVICES\POA_EXPLOSION\EFFECTS\POA_EXPLOSION here we got our explosion 2. Save the meta data recursive again in the folder explosion2. ok! we got the meta data that we needed to make a nuke! But were just a the begin... dont jump now Ok so open bloodgluch in HMT3 and go to tools batch extract. In your folder bloodgluch meta, make a new folder called batch export. clik OK. good. now clik only export metadata chekbox. Click start batch extraction, it will take a few sec. When its done go in the folder of explosion1 (in windows explorer) and copy the folders that are in the folder of explosion 1. Paste all that in your folder batch export and click yes to all for remplace. Do the same thing for explosion 2 (paste folders from folder explosion2 in the folder batch export ). Lot of folders heh? Still when your in your batch export folder paste a copy of bloodgluch. ok go back in HMT3, go to tools and clik rebuild map for the original map open the copy of your bloodgluch that we pasted. To the box that apears and asking you if you wanna fill the required files, clik OK. Now, at the bottom, to additional files clik add. go to your batch export folder and add theses file in theses folders: in your folder batch export , clik on scenery, halo_destoyed, effects. add all theses files. ok. Clik add again, go to levels, d40, devices, poa explosion, effects. add that file. done............. almost! . click BLUID. open the rebuilded map (bloodgluch.map.rebuild.map) in your batch export folder. ok now go to Effects in resource browser, and go to meta :SCENERY\HALO_DESTROYED\EFFECTS\EXPLOSION_HALO. On top in tag information, copy the meta in the box (its 6 letters and numbers). Still in Effects, paste that over all the metas of: WEAPONS\FRAG GRENADE\EFFECTS\... (EXAMPLE: WEAPONS\FRAG GRENADE\EFFECTS\IMPACT METAL) (TIP: ALWAYS CLIK SAVE ON THE SIDE AFTER EDITING META) BUT NOT OVER "WEAPONS\FRAG GRENADE\EFFECTS\EXPLOSION" AND "WEAPONS\FRAG GRENADE\EFFECTS\THROW". You HAVE to remplace the frag grenade metas if you wanna have the rocket work with a NUKE. goooood. now if u wanna have a nuke explosion with the rocket, go to WEAPONS\ROCKET LAUNCHER\EFFECTS\... and paste the meta of explosion halo over all the metas of WEAPONS\ROCKET LAUNCHER\EFFECTS\... , but NOT WEAPONS\ROCKET LAUNCHER\EFFECTS\EXHAUST, NOT WEAPONS\ROCKET LAUNCHER\EFFECTS\FIRE, NOT WEAPONS\ROCKET LAUNCHER\EFFECTS\FIRE ROCKET AND NOT WEAPONS\ROCKET LAUNCHER\EFFECTS\ROCKET EXPLOSION. ok almost done.... Now go to Particle System, now copy the meta of LEVELS\D40\DEVICES\POA_EXPLOSION\EFFECTS\POA EXPLOSION and paste it over WEAPONS\FRAG GRENADE\EFFECTS\EXPLOSION MED. Now copy the meta of WEAPONS\FLAME THROWER\EFFECTS\DEFOLIANT and paste it over WEAPONS\ROCKET LAUNCHER\EFFECTS\ROCKET EXHAUST. Now copy the map youve just edit and pasta it in your maps folder of your game!!!(rename it bloodgluch.map) DONE!!!!!!!!!!!!

The only thing left to edit is in Damage, edit the damage radius 


Instead of re-installing halo there is a way to grab the maps from the CD

Go to your CD drive <D:> then there should be a folder called "FilesCAB"

open that up, you will see some files that have the extention .cab, open

one up (the maps are in all of the files)

extract them to wherever you want and your done!

 

1. Question: How do I put AI in to MP?

Answer:

1. Batch extract a MP map, checking all check marks. I'll use Blood Gulch as an example.

2. Recursively extract elite major plasma rifle, into the batch extracted MP map's folder.

3. Put Bloodgulch.map into the extracted folder, and rebuild the map

(Making sure to add the new elite actv)

4. In HMT, save the meta of a vehicle as VEHINAMEHERE.vehi.meta

(Non Recursively) into a folder somewhere.

5. Open up the Elite Actv, and at the top you will see ID then a bunch of numbers. Well, thats the ID of the tag, just in Decimal format.

6. Open up Calculator, and go to view, and make sure Scientific is arked. Go to Dec, and type in the numbers after the ID: from HMT.

7. Now click on Hex, and copy what's in the answer bar. Go into HMT, and click on the Utilities section.

8. Paste the Hex ID into the left Util. bar, and press Swap Endian. Now you finally have a useable ID! (note you must do this for ALL ID's you ever want to use)

9. Open up that Vehicle meta you saved earlier in a hex editor. You need to look for a vtca reference (an actv reference, but backwards) Skip the first one, as it won't do anything. For you advanced people, only use the ref's in the seat chunks. For you New guys, just skip the first vcta you see, and use any after that.

10. Once you have a good vtca to use, you will see FF FF FF FF in the hex window after a few zeros. Guess what?! It's the perfect size for that Elite actv ID!!! So put it in.

11. Save and inject the new Vehi meta, and Now you have crappy looking elite bots!

12. Uncrappifying - Save the elite biped and open in a Hex editor. Go find the ID of the cyborg_mp model, and look at the top of the bipd meta. You will see 2dom, that's the tag reference to the elite's Mod2. Replace the ID of the elite mod2 with your cyborg_mp ID. When you're done with that, take the antr ID from Cyborg_mp biped, and paste in the elite's bipd, You should be all set! Enjoy!

2. Question: What is Capture the Grunt gonna be like?

Answer: It will be the flag model replaced with a perfect Grunt Model.

3. Question: How do you rebuild a map?

Answer: http://www.halomods.com/tutorials/Mapping/maprebuild/maprebuild.php

 

4. Question: How do I skin?

Answer: With photoshop: http://www.halo4pc.com/index.php?showtopic=219

 

5. Question: How do I remodel (make a gun, vehicle, etc) something:

Answer: http://www.halo4pc.com/index.php?showtopic=27

 

6. Question: How do i turn a sp map into mp?

Answer: Not answered yet

7. Question: How do I rename something?

Answer: Open up your UI.map with Hex Workshop. Then click on find and check "text string" Next search for whatever you want to rename. Ex. "Warthog"

Keep looking until you find something that looks like W.a.r.t.h.o.g. Now replace those letters with whatever you want it to be. To delete, just put a space where the letter is. (The name can't be longer than the original)

8. Question: How do I change individual things in a map, such as making one rocket hog shoot plasma grenades, and another shoot frag grenades?

Answer: Better Answer coming soon

9. Question: Where can I find HMTv3 Plugins?

Answer: Find them here http://www.halo-mods.com/index.php?showtopic=2623&hl=modder

 

10. Question: Is there a specific topic here that has a downloadable AI mod in it (For any level but DI)?

Answer: As of yet, No

11. Question: How do I find the identifier (ID) of something?

Answer: Open up calculator and HMT, and in HMT go to the tag you want to find the ID for. At the top, you should see ID: then some numbers (ex: ID: 3872982373 @ 0x302DE5C (The numbers in bold would be the ID)). These numbers cannot be used as is, because they're in decimal format, and anything you'll be hexing needs to be in hex. This is where Trusty-McCalculator comes in. Go to View > Scientific, then click on the "Dec" radio button. Type in the numbers after "ID:" from HMT, then click the "Hex" radio button, and calculator will convert it to Hex. Still can't use it though, Why? It's not quite right yet. Copy the converted ID, and go back to HMT. Expand the Utilities section, and you will see two bars. The left bar is for swapping endian, which is what we want to do with our ID. So Paste the ID in the left bar, and click "Swap Endian." You can now use this ID anywhere you want, It's in the correct format.

12. Question: What is a tag reference? (tag ref)

Answer: In Hex, when looking at a tag, you will see Tag Ref's everywhere. They're pointers to other tags, like in Bipd, they point to the model that biped needs to use, the animation trigger, and a lot more.

So whats a tag ref look like?

vtca 00 00 00 00 00 00 00 00 12 65 34 88

^^^ This is made up, but a tag ref can also look like

2dom 56 43 23 78 00 00 00 00 12 43 75 37.

These are both tag references, and a tag reference is a pointer to another tag. So how does it point to a tag? by the Identifier. For example:

in either

vtca 00 00 00 00 00 00 00 00 12 65 34 88 or

2dom 56 43 23 78 00 00 00 00 12 43 75 37

The bolded numbers would be where the tag ID goes. So whats with the numbers at the beginning, or: 2dom 56 43 23 78 00 00 00 00 12 43 75 37?

Don't even worry about those, you won't need to do anything with 'em. Hopefully if you understood this, you now know what tag ref's are.

13. Question: How do I activate the console? (Be able to kick, ban, etc)

Answer: On your desktop, right click on your Halo shortcut (make one if you don't have one) and click properties. Go to Target. In that, there should be something like "[harddrive]/[other directories]/Halo/halo.exe"

All you have to do is put a space at the end, then you can put your flags after that.

The flag to activate the console is -console. To use it in-game, press ~

The 3 basic commands for a non-dedicated server are:

sv_kick (player name/number)

sv_ban (playername/number)

sv_players to retrieve the player numbers.

Note: If you use the playername type of sv_kick, names with spaces need to be in quotations.

PS: for more help with the console in-game, press ~, then TAB

14. Question: How do I make Grenades explode so they throw objects across the screen, but do no damage?

Answer: Make sure that youre modding the right values, ex: you wouldn't want to make the force of the Grenade itself high, 'cause that would make anything the grenade bounces off go flying. Instead, make sure you change the Grenade explosion/shockwave info. Another way to do what you want is make the damage extremely low, something like .00001

15. Question: How do I make a Grenade shoot out of my gun, instead of just dropping out of my gun?

Answer: Change the speed to something like 0.0001. If you just edit the speed then it will constantly move and will never blow up. What you should probably do is just change the arc/weight tag to something smaller, like 0.001, - this will make it go farther, but it will still drop and explode.

16. Question: In the AI tutorial, do you have to add every last file that was recursively extracted for the Elite, or are there just specific ones you need?

Answer: Only one file, the actv, is all that's needed. Any other tags that that tag needs to use are automatically added.

17. Question: I've seen many mods that have a completely round log with flat ends in BG. Where is it?

Answer: scenery\trees\tree_leafy_fallentrunk\tree_leafy_fallentrunk However, you must swap this tree trunk into the map with some other scenery object.

18. Question: What are the names for all the Single Player Maps?

Answer:

A10 - Pillar of Autum

A30 - Halo

A50 - Truth and Reconciliation

B30 - Silent Cartographer

B40 - Assault on the Control Room

C10 - Guilty Spark

C20 - Library

C40 - Two Betrayals

D20 - Keyes

D40 - The Maw

19. Question: How do I swap Scenery in?

Answer: Just use SparkEdit3.

20. Question: How do I put vehicles in maps that don't have any vehicles?

Answer: If the vehicles are already in the map file, just swap one with a scenery object. If not, just rebuild the map with vehicles, and then swap.

21. Question: How do you get the models to be coherent?

Answer: Not Answered Yet

22. Question: I know how to duplicate a vehicle or a weapon etc. and change it, but what I want to know is how do you place it?

Answer: Your best bet would be to replace a scenery object with your duplicated object, then move that in SparkEdit.

23. Question: How do you change the MC's color in SP, not just by changing the texture, because some mods like general camo are hardly noticable under the green color.

Answer: Try removing all of the Blue channel in the Cyborg_Multipurpose bitmap.

24. Question: How do you put human (warthog) turrets into MP maps?

Answer: Coming Soon

25. Question: How do you modify the size, length, etc. of collision models?

Answer: This data is all raw, just like models are, so find the raw data (with a hex editor) and go from there. This is the most I can help you on this, but I suggest coming on IRC to ask someone who knows more about it than me.

26. Question: How would you add the pistol scope to the assault rifle without having to swap the hud interface?

Answer: You don't have to swap the hud interface at all, it's just a bitmap.

27. Question: Whats the multiplayer covenant mod going to be like? Can you choose from all the species or just Elites?

Answer: Ah, I haven't really thought much of it, I may just drop the idea.

28. Question: I just downloaded a mod, how do I open it and insert it into Halo?

Answer: Usually there are instructions in the readme, but you can be sure if there are .ppf files, you will need ppf-o-matic.

29. Question: Is there a way to edit the weapon hud interface?

Answer: You are going in the wrong direction. Any graphical changes can be made by editing the proper Bitmaps.

30. Question: How come there is always an exception in AI maps?

Answer: Which maps, and who made them?

31. Question: How do I use the Halo dedicated server? Where can I get everything I need for it?

Answer: You can get it here. It is a standalone program that basically sets up your computer as a server that dedicates all of its resources to managing an online game, so that game is less laggier. the downside is that you cant play on a computer with a dedicated server, so the idea is to get a friend to set it up.

32. Question: How do I use ppf studio to make maps into patches?

Answer: You need the original map, and the modded map, and they must be the same size. Put the original map where it says in ppf studio, and the modded as well. Find a save spot, and press go. For a better tutorial, check this out: http://www.halomods.com/tutorials/Basics/BOLLppfmake/bollppfmake.php

 

33. Question: Has anyone made a mod where you can ride on the wings of banshees, kind of like you do on tanks?

Answer: No one has done this yet. And HunterXI, it is already quite possible, as seats are only chunks, just make a new chunk, update the chunk count, and recalculate chunk offsets.

34. Question: I've seen so many mods where you shoot MC out of guns. I'm wondering if anyone can tell me how for all the guns

Answer: To shoot MC's, all you have to do is go to Bipeds> Cyborg (or MP_Cyborg) then copy the meta in the little bar. then go to projectiles, and pick a any. In the same little bar, paste in the value you copied above, and click 'save'... voila! you can shoot MC's!

35. Question: How do I make the Marines drop 8 grenades?

Answer: All you need to do is get a plugin for HMT and then make it from 4 to eight. Check here.

36. Question: If there's some way of linking a light bridge with another object, shouldn't it be possible in some way to replace a gun's projectile with whatever that link is and use it as a remote control?

Answer: In SP, this should be possible, but since Halo MP netcode doesn't allow scripting, you couldn't do it there. In SP, I myself wouldn't really know how to take the action from the bridge holo control and make a weapon activate it.

37. Question: I always get an exception error when I swap models using the model plugin. Why is this?

Answer: As far as I know, it's because the vertices and indices aren't swapped as well. I really have no idea on this one, tjc2k4 would be the one to ask.

38. Question: When I start a server on another computer... I can see it in the select game list, and so can everyone else, but I'm the only one who can join it. What causes this? If its the firewall I have built into windows then how do I disable it?

Answer:

* Open Network Connections (Click Start, click Control Panel, and then double?click Network Connections.)

* Click to select the High?Speed Internet connection that you want to unprotect.

* In the task pane on the left, under Network Tasks, click Change settings of this connection.

(Or, within the Network Connections folder, right-click on the connection that you want to unprotect and then click Properties.)

* On the Advanced tab, under Internet Connection Firewall, select the following:

To disable Internet Connection Firewall, clear the Protect my computer and network by limiting or preventing access to this computer from the Internet check box. This disables the firewall, your computer and network are then vulnerable to intrusions.

39. Question: I looked on the halo modding for dummies section and I have hex workshop, and opened the map I want but now I need Iron_Forges offset list. Where should I go and what should I do?

Answer: These are the offset lists Thanks to DrLime.

or

here

As for what you should do? Just let jour imagination guide you. Try swapping some offsets.

40. Question: Every time I do the AI mod I get gathering exception data... I swapped the elite ID into the FF FF FF FF spot. Why?

Answer: I don't really know, I've had many people reply to me that the tutorial works, maybe your rebuilt actv is a bad one... try one from another level.

41. Question: I know how to make weapons fire things, but how do I stop them from falling on me?

Answer: I assume you mean vehicles. Well, seeing as they don't have any velocity, you're kinda screwed. Try messing around with velocity, or try throwing them in place of grenades.

42. Question: How can I make a warthog leave a contrail?

Answer: Not Answered Yet

43. Question: Does anyone know how you could change yourself into a covenent?

Answer: Not Answered Yet

44. Question: How do you make marines explode on death?

Answer: Not Answered Yet

45. Question: How do people get those flat metal panels into levels?

Answer: They make them out of logs. (Make their own collision model, make their own PC model, make their own skin.)

46. Question: Okay, I've duplicated some turrets for a mod, but there isn't enough scenery to replace them with. I'm putting them in Ice Fields, but I don't want to replace the rocks and trees. I've tried to put them where the grenades and weapons are, but that doesn't work. The turret doesn't even show up in the map when I do that. Is there a way to add them in without replacing something else?

Answer: All that's needed to be done is duplicate scenery, import tags with SE, copy and replace existing scenery with SE, swap the new scenery with the new vehicles with HMT, and move with SE.

47. Question: How do you make warthogs have flame contrials and do wheelies?

Answer: You may be able to have it in a permanent wheelie by adding hover to the front tires. To make them have flaming tires, look in "Particle System", and look for something that's involved with dirt, and swap it with "Flamethrower_Defoliant".

48. Question: How do you make the muzzle flash brighter without causing it to stay on? I attempted to do this, but my muzzle flash stayed on continually.

Answer: I know it's controlled by a ligh tag, so maybe if I map it out I'll post what you need here.

49. Question: My halo dedicated server works fine, and people can see it, but they cannot join.. anyone know the reason? I have a wireless connection.

Answer: Well, it could be that WindowsXP firewall is up, or NAT is enabled. If NAT is on, then anyone trying to join your server will only connect to your public IP, not your private one. All I can really say is google for more information on NAT, and see if you have a DMZ-Plus mode. If so, activate that.

50. Question: How do you make nukes like the one that MonoxideC made?

Answer: I will be creating a new weapon tutorial one of these days, it'll cover this. Until then, read this:

Okay, to make a nuke, you need to save some meta and rebuild the map. If you want, you can duplicate the rocket launcher and mod the duplicated rocket launcher so you can have a nuke and the rocket launcher in the map.

1. Open up HMT and open The Maw map (d40). Open up the Particle System menu, click on "levels\d40\devices\poa_explosion\effects\poa explosion," and save the meta. Make sure the box next to Recursive is checked.

2. (I'm assuming you have already batch extracted the map you want to mod.) Find where you saved the meta, copy the folders and paste them into the folder where you batch extracted the map you want to mod. Click "Yes to all" when you paste the folders. Now rebuild the map you want to mod, and add the meta for the POA explosion.

3. Open the map you want to mod in HMT. Find "weapons\frag grenade\effects\explosion med" under Particle Systems and swap it for the newly imported POA explosion meta. Now, find "weapons\rocket launcher\effects\rocket exhaust" and swap it for "weapons\flamethrower\effects\fp_defoliant3." This will change the explosion and the flame effect of the rocket. Now, you'll want to change the damage of the rocket to get the full effect of the nuke. You can do this under Damage. (If you duplicated the rl, then exchange the meta values for your duplicated weapon.)

4. I'd recommend changing the ammo and clip size of the rocket launcher so there aren't multiple nukes. You can do this under Weapons and changing some numbers for the rl. You can also change the arc, speed and life span for the rocket under Projectiles.

5. Save all your changes and copy the modded map into Halo's map folder. You now have a nuke in the map you modded. This does not change the sound to what MonoxideC put in his mod, and there is no little flare in the middle of where the nuke explodes.

51. Question: What exactly does life span do? Is that how many seconds it lasts?

Answer: It's measured in distance, and it's how long an object will last before it explodes (rockets) or disappears (bullets and things of that sort).

52. Question: When I swap Jackals with Marines, they won't attack me. I tried all kinds of things, but it still doesn't work. Why?

Answer: It's attack is based on the team. Change the team or part of the actv that reads team, and you'll be set. You're on your own with this one.

53. Question: How do you make a Pelican destroyable?

Answer: Not Answered Yet

54. Question: What is a good seat for an Elite?

Answer: Try banshee-B-Driver.

55. Question: How do you make things invisible (for example a hog?)?

Answer: You can swap the meta of its texture with a shader such as the teleporter shield or active camo.

56. Question: How you can add unlimited ammo to plasma weapons, and also turn off the overheat?

Answer: Not Answered Yet

- Dirt

1 - Dirt

2 - Pebbles

3 - Snow

4 - Wood

5 - Metal

6 - Metal

7 - Metal

8 - Rubber

9 - Unbreakable Glass

10 - Red Shielding

11 - Grunt Blood

12 - Metal

13 - Hunter Blood

14 - Elite Blood

15 - Elite Blood

16 - Reflective Shield

17 - Engineer Blood

18 - Jack Shield Sparks

19 - ?????

20 - Green Blood

21 - Metal Spark With Blood Splat

22 - Shields

23 - Blood

24 - Blood

25 - Unbreakable Glass

26 - Unbreakable Glass

27 - Unbreakable Glass

28 - Water

29 - Grass

30 - Shields

31 - Glass

32 - Reflective Metal

MATERIAL DEFINITION

Sometimes its name comes as 'col left rudder' or something.

I suppose its not quite a material name like 'rubber' but the structure is the same.

There exists a reflexive pointer to material list @ 0x234

(This is constant for all collision models).

It will specify a chunk count and an address for the start of this material list.

Each chunk/material definition is 0x48 Bytes long.

(Although this doesn't seem 100% constant more like 95%)

If you measure 0x24 bytes into the block there is a short,

if turned to FFFF results in a 'black hole' behavior. If turned to various other int values, ie: 0400 for wood.

Then when you hit/melee/collide with this thing, it gives off different sound/visual effects.

This is good because you don't have to swap metas, and potentially erase cool effects.

 

FRAME DEFINITION

Reflexive pointer to frame list @ 0x28C

It specifies a chunk count and an address

(This is constant for all collision models)

ie: Fallen Trunk

0100 0000 50CF 4E40

1 Frame Chunk of 0x40 Bytes beginning at That offset.

Swap the Endian, Subtract the Magic, (Subtract the Meta if your working with the sub-files).

And there's your offset.

Inside the small meta files

that turns out to be 0x3D4

The Frame definition is

0x40 Bytes long.

0x20 Bytes in is a single quad which if turned to FFFF turns off the collision model.

I don not know if this is an intended result, or if its some kind of parsing error.

0x34 Bytes in is another reflexive pointer to the frame collision definition.

ie: for fallen trunk

0100 0000 90CF 4E40

 

 

FRAME COLLISION DEFINITION (REFERENCED TO BY REFLEXIVE POINTER IN FRAME DEFINITION)

Given the 0x60 byte Frame Col Def. Block.

**NOTE**

When I say @POS I am referring to the fallen_trunk.coll.meta

This is for example purposes only.

**END NOTE**

@POS 0x414

0600 0000 F0CF 4E40

6 Chunks :: Size 0xC bytes at 0x474

@POS 0x420

0600 0000 38D0 4E40

6 Chunks :: Size 0x10 bytes at 0x4BC

These are the force plane definitions.

@POS 0x42C

0600 0000 98D0 4E40

6 Chunks :: Size 0x30/0x6 = 0x08 bytes at 0x51C

@POS 0x438

0600 0000 C8D0 4E40

6 Chunks :: Size 0x8 bytes at 0x54C

@POS 0x450

0600 0000 F8D0 4E40

6 Chunks :: Size 0x48/0x6 = 0xC bytes at 0x57C

@POS 0x45C

0C00 0000 40D1 4E40

12 Chunks :: Size 0x18 bytes at 0x5C4

@POS 0x468

0800 0000 60D2 4E40

8 Chunks :: Size 0x10 bytes at 0x6E4

 

BLOCK 1 (All shorts, except for that FFFF FFFF?)

0000 0000 0100 0000 0500 0080

0100 0000 0200 0000 0400 0080

0200 0000 0300 0000 0300 0080

0300 0000 0400 0000 0200 0080

0400 0000 0500 0000 0100 0080

0500 0000 FFFF FFFF 0000 0080

BLOCK 2 (THE FORCE PLANE BLOCK [ALTERED FOR MY OWN PURPOSES])

0000 0000 0000 0000 35FA 7F3F 9A99 993E

0000 0000 0000 0000 0000 80BF 9A99 993E

0000 0000 0000 80BF 0000 0000 CDCC AC3F

0000 0000 0000 803F 0000 0000 CDCC AC3F

0000 80BF 0000 0000 0000 0000 CDCC AC3F

0000 803F 0000 0000 0000 0000 CDCC AC3F

Does the force plane always go z, z, y, y, x, x? And if so, does the pattern repeat?

 

 

BLOCK 3 (All Shorts)

0000 0100 0000 0000

0000 0100 0100 0000

0000 0100 0200 0000

0000 0100 0300 0000

0000 0100 0400 0000

0000 0100 0500 0000

BLOCK 4 (All shorts)

0500 0000 0500 0080

0400 0000 0400 0080

0300 0000 0300 0080

0200 0000 0200 0080

0100 0000 0100 0080

0000 0000 0000 0080

BLOCK 5 (All shorts)

0000 0000 0000 0000 0000 0000

0100 0000 0200 0000 0000 0000

0200 0000 0200 0000 0000 0000

0300 0000 0600 0000 0000 0000

0400 0000 0100 0000 0000 0000

0500 0000 0700 0000 0000 0000

BLOCK 6 (All shorts...Or Verticies?)

0100 0000 0200 0000 0100 0000 0B00 0000 0000 0000 0300 0000

0200 0000 0000 0000 0400 0000 0900 0000 0000 0000 0400 0000

0400 0000 0500 0000 0300 0000 0A00 0000 0100 0000 0200 0000

0500 0000 0300 0000 0600 0000 0800 0000 0100 0000 0400 0000

0000 0000 0600 0000 0500 0000 0800 0000 0000 0000 0200 0000

0600 0000 0100 0000 0000 0000 0A00 0000 0000 0000 0500 0000

0300 0000 0700 0000 0700 0000 0900 0000 0100 0000 0300 0000

0700 0000 0400 0000 0200 0000 0B00 0000 0100 0000 0500 0000

0000 0000 0500 0000 0200 0000 0100 0000 0200 0000 0400 0000

0300 0000 0200 0000 0000 0000 0300 0000 0300 0000 0400 0000

0400 0000 0600 0000 0400 0000 0700 0000 0200 0000 0500 0000

0100 0000 0700 0000 0600 0000 0500 0000 0300 0000 0500 0000

BLOCK 7 (CO-ORDINATE BLOCK [ALTERED FOR MY OWN PURPOSES])

CDCC ACBF CDCC ACBF 9A99 993E 0400 0000

CDCC AC3F CDCC AC3F 9A99 993E 0000 0000

CDCC ACBF CDCC AC3F 9A99 993E 0100 0000

CDCC ACBF CDCC AC3F 9A99 99BE 0600 0000

CDCC AC3F CDCC ACBF 9A99 99BE 0200 0000

CDCC ACBF CDCC ACBF 9A99 99BE 0300 0000

CDCC AC3F CDCC ACBF 9A99 993E 0500 0000

CDCC AC3F CDCC AC3F 9A99 99BE 0700 0000

THE STRETCHING THE LOG EXAMPLE

I'll tell you straight out, I haven't yet figured out how to stretch a collision model unconditionally. There seems to be a limit on how big it can get, for this log anyway. My analysis of the other data blocks may yield results in the future.

BUT, for the standard log-streching, I have some addition information in regards to forces exerted on each of the walls. If you haven't seen my SPRING-LOG movie go here:

http://files.halomods.com/viewtopic.php?t=1787

The streching of the log deals with BLOCK 2 and BLOCK 7.

(NOTE THAT IN FRAME COLLISION DEFINITIONS, THERE MAY BE MORE THAN 7 BLOCKS. IF SO, THE LAST BLOCK IN THE DEFINITION HOLDS THE CO-ORDINATE BOUNDARIES)

As far as I have discovered, there seems to be a limit of about 1.35 for the X, Y and Z values. Alas. I shall endevor to find a way around this.

Step 1

FIRST STRETCH THE CO-ORDINATE DATA

Lets take for example the first line of data in BLOCK 7

CDCC ACBF CDCC ACBF 9A99 993E 0400 0000

AAAA <- quad, AAAA AAAA <- double-quad

The First three double-quads are the X, Y, and Z boundaries

respectively.

The last double-quad is a vertex to which it refers.

ie: CDCC ACBF is the X-boundary.

If your using a hex-editor (which I strongly suggest)

then if you highlight this d-quad, then you'll notice

it has a float value of -1.35.

I didn't exactly stretch it or multiply the origional by

a integer as xorange or GlasssJAw did, I simply set it

to a number I liked.

Ensure that your consistant with your co-ordinates for making

a panel or cube.

Ie:

CDCC ACBF CDCC ACBF 9A99 993E 0400 0000

CDCC AC3F CDCC AC3F 9A99 993E 0000 0000

CDCC ACBF CDCC AC3F 9A99 993E 0100 0000

CDCC ACBF CDCC AC3F 9A99 99BE 0600 0000

CDCC AC3F CDCC ACBF 9A99 99BE 0200 0000

CDCC ACBF CDCC ACBF 9A99 99BE 0300 0000

CDCC AC3F CDCC ACBF 9A99 993E 0500 0000

CDCC AC3F CDCC AC3F 9A99 99BE 0700 0000

You'll notice that my x-bound is varying between

1.35 and -1.35.

y-bound between

1.35 and -1.35

z-bound between

0.3 and -0.3

The original log file did as well, although

it was more like 1.35094 ...

9AEB ACBF = -1.35....

You can perform similar streching for each co-ordinate,

but keep in mind, I believe these to be only defining

the vertex at specified co-ordinates.

The above blocks (not BLOCK 7) I believe define the

connections of verticies in the collision model.

So increasing these numbers arbitraily may result in

holes.

NOW, go to block 2 (The force plane block).

In the original it appears as:

69DF 593C 0000 0000 35FA 7F3F 87BF 863E

CBBE 8BB4 CF1F A733 0000 80BF F862 7B3E

998D 643C A0F9 7FBF DB49 00B4 D0C1 933E

942B BABB F1FE 7F3F F914 7E33 649C 8C3E

0000 80BF 0000 0000 0E0A F334 95EB AC3F

0000 803F B73A EC28 DA6A 82B4 99EB AC3F

These 0x10 packets define the forces exerted throughout

the collision model.

In the fallen trunk example (not necessarily others)

Packets 1 and 2 define z-forces [up/down]

Packets 3 and 4 define y-forces [-/+]

Packets 5 and 6 define x-forces.[-/+]

The format of the packet changes slightly depending on what

axis it deals with.

ie: For z-axis.

Skew-X, Skew-y, Force-Z, Distance-Z

Skew-[XYZ]

What do I mean by Skew?

Well, here's the deal.

If you put a skew of 1 (float32) or 0000 803F

then it will result in a 90 degree inclination.

If you want say, a 60 degree incline then the value

should be 60/90 = 0.7 = 3333 333F

The same goes for y-skew.

Force-[XYZ]:

Its a ratio of gravity. So a value of 0.9999 results in

a stable platform. 1.0 doesn't work for some reason.

So, if you want a spring, turn it to say 1.45.

Careful though, falling hurts ??!!

Distance-[XYZ]:

This is the distance at which the force is applied.

Unfortunatly this value is limited as well.

To ensure consistancy, try to make sure that

these axis distances match the vertex point distances

in BLOCK 7.

For y-axis:

Skew-X, Force-Y, Skew-Z, Distance-Y

For x-axis:

Force-X, Skew-Y, Skew-Z, Distance-X

NOTES ON HALO HACKING

Definitions

Byte: 2 characters (0-10 and/or A-F) ex: 4c, 34, da, etc.

Word: 2 bytes ex: 1a 23, 12 34, ac 31, etc.

Dword: Also refered to as double word, integer, or int, its 2 words (hence double word) ex: 1a 23 12 34, 12 54 0a c5 etc.

Meta: The controls and data, it takes resources and uses them to do something.

Pointer: A dword that stores an offset within it. Directly from the map, it has magic added. ex: The values use in offset swapping are actually meta pointers, they have magic added.

Identifier: Also called IDENT a unique number representing a tag. It is a different value in every map. First byte is 'E'.

Offset: An address to a value somewhere in the file.

Value: Number referring to something in the code.

Tag Type: Categories that tags are put in, such as projectile tags are in the "proj" tag type.

Endians: Endian is the style the information is stored in. Big endian is stores information in a normal readable state, and little endian stores the information backwards.

Index: The offset list/tag information list inside of a map.

Tag: Any object used in the map.

Useful Programs

HMT, HMTV3, Halo Map Tools - An easy to use tool great for swapping projectiles and stuff. Also cam be used for more complex things

SE, SparkEdit - 3D map viewing and editing tool. Used mostly for placement of objects.

HHD Hex Editor - Used for editing the hex in halo maps.

HHHT, Helpful Halo Hacking Tool - Used to apply PPF patches to levels

HEK, Halo Editing Kit - A likely myth, a program unlikely to released for making levels and mods simple form GearBox Software for Halo PC. The release date is unknown and may be non existant.

Swapping Identifiers

1. Locate the Meta for whatever your changing using the offset list.

2. Locate the tag for whatever your changing. ex: jorp

3. Locate the identifier of the object your changing, Its the 4 bytes following 4 '.'s after the tag.

4. Locate the identifier for what your putting in there on your offset list.

5. Replace the ident for the original object with the ident for the second object

Finding the Index

1. Open any map.

2. Go to offset 0x10.

3. Get the int there.

4. Swap it's endian.

5. Go to the result as an offset.

6. Go to +0x28 for pc maps and +0x24 for xbox maps.

Notes on the index

Every 32 bytes is a tag page.

The first every four bytes up until 12 bytes are the tag types.

Then the next four bytes is the identifier.

After those, the next four bytes is the meta pointer.

Then finally the last four bytes is the filename pointer.

Swapping Endian

It's simply reversing the order of the bytes in groups of four.

Examples: 01 23 45 56 = 56 45 23 01; a0 d1 f2 c2 = c2 f2 d1 a0

 

Swapping Offsets

Swapping offsets is simply switching two tags around. You can swap anything from bitmaps to vehicles to particles to projectiles, etc.

1) Get a hex editor and an offset list, like Iron Forge's: http://forge.halomods.com/offsets/retail.php

2) Open the map you want to swap in, in the hex editor.

3) Look up the offset for the the tag you want to change on the offset list under the proper category.

4) Goto that objects offset in your hex editor.

5) Now at that offset there is a dword that should end with 40, 41, 80, or 81.

6) Now on the offset list look up what you want to go in place of that tag.

7) Replace the dword at the offset for the new dword or "value" from the new object.

Now just save the map and run.

9) Enjoy!

1. open up the UI map in hex editor

2. use this meta offset to find the names of the maps... 134958...

3. once you get to the right spot, look for the level name you want to change

4. change the name to what ever you want. YOU MUST KEEP THE PERIOD THERE

5. save the file and test it!

A lot of people have been wondering how to make the levels darker. Before all of you go making the pain staking mistake off changing all your textures to darker colors I am here with a much eaiser answer.
First of all you need HMT v3 and the sky plugin from the HMT forum. The values are set as RGB values for the fog. Similar to hexideceimal color assignments in order to get black fog you need to assign zero to all three values, R, G, and B. The other options are personal. If you want the darkness to start right in front of your face make the start distance small. I have included a pitch black bloodgulch picture, and the HMT picture setting that were used to make it. The only texture you may want to change is the sky, as you can see its a bit out of place, and My example may be a little too dark.

((EDIT))
This picture may show a little more of what you can do, the other one is pretty dark... I lowered the thikness to 0.8


Hope this helps, I was able to mimick NitrousOxides setting in Bloodgulch by doing this, so I thinks this is what he did in Forest Gulch.





 


 

Create a free website at Webs.com 

E-MAIL-HALO343GS2003@YAHOO.COM-AIM-HALOSPATAN343