Converting Brushwork

From Valve Developer Community
Jump to: navigation, search

This section will help you out with converting brushwork in your old Half-Life 1 map to the Source engine, or help you get started with Source based mapping if you are familiar with Half-Life 1 mapping.

For more reading on other aspects of map conversion, see Source Mapping for Half-Life 1 Mappers.

World Brushes

All your world brushes should be fine without any changes.

Basic Brush Entities

Let's start with the two core brush entities you're probably familiar with in Half-Life 1: func_wall and func_illusionary.


In a nutshell, if the func_wall doesn't have a name or any kind of special rendering property, just convert it to a func_detail. The func_detail entity is new in Source. It is basically a func_wall which has no special render properties or any other properties. Like any brush entity, they do not block visibility. There is one exception about func_detail and render modes. If you are using a Half-Life 1 rendermode SOLID (an old "{" texture) then go ahead and convert the brush to a func_detail. It will automatically be rendered as it should be.

If you have func_wall entities with names because you are targeting them with an env_render for example, make the brush a func_brush. Because you are probably doing something a bit more complex, you may wish to explore the new capabilities of Source and find some other way to get the same effect you are using.


These haven't changed in Source, so you should be able to just leave your existing ones as-is.

Rotating Doors and Other Entities with Origins

In Source, you no longer need to place an ORIGIN texture brush tied to brush entities needing an origin. Instead, all brush entities now have an origin point associated with them. You can see the origin point as a small "+" symbol on the brush in Hammer's 2d views. To move the origin, click on the "+" and drag it to a new location. You may want to zoom in a bit to better be able to select the point. Place this origin point where you want the rotation axis to be for your object. So if you have a brush based func_door_rotating, put the origin on the side of the door you want it to rotate about.

Trigger Brush Entities

Brush based trigger entities the remain the same as in Half-Life 1, with a few difference. There is still a trigger_once and trigger_multiple entity in Source. When converting, texture all your trigger entities with the new tools/toolstrigger. The bigges change with triggers is how trigger entities target things. Targeting entities in Source is rather different than in Half-Life 1, but much more powerful and useful to the mapper. For more information on targeting and triggering, see Converting Entities.


If you have any func_ladder entities in your map, you should texture them with the new tools/toolsinvisibleladder material. Other than that, you won't need to change anything.


If you have water in your map (func_water or otherwise), convert all the brushes into world brushes. If the water has a targetname, convert it to a func_water_analog. Then texture them with a water texture from a Source. Paint all the sides of the water brush not visible with tools/toolsnodraw material. There are a few special rules for using water in maps, which are covered in Adding Water.

Warning.png Warning: You can't make water brushes anything but horizontal in Source. So if you've got water brushes at an angle, you are out of luck. You'll have to find some other way to create the effect you want.

Special Materials and Textures

There are a few new materials available in Source which you will want to get familiar with. Below is a list of basic materials you may be familiar with that you need to convert. There are additional special materials available in Source however we're only covering the ones with equivalents in Half-Life 1.


This is the same clip texture you are used to in Half-Life 1. It has the same behavior as you are used to. Replace all your old CLIP textures with tools/toolsclip.


If you are familiar with the NULL texture from Half-Life 1 mapping, then you will understand this new material. Basically, any face textured with this new material will not be drawn. It can be used to texture faces of brushes you know the player will never see. Since nothing is drawn on these faces, they won't add to the load on the engine to draw them. Replace all your old NULL textures with using the old SKY texture to create textures that don't draw, also replace it with tools/toolsnodraw.


This is the same as the old SKY texture. Replace all your SKY texture with the new tools/toolsskybox material.