Chapter I. Introduction.

Getting started: required software, basic mapmaking terms, and a complete list of tutorial example maps.

1.1

Where to Start?

The most difficult thing in any endeavor is the first step. This step should be a firm decision for you to learn how to create maps for Counter-Strike. If you are confident in your aspiration, then everything is in order - you can start! :) On our website you will find all the necessary information to achieve your desired goal.
In terms of map creation, Counter-Strike is a simple game. Making maps for CS is really easy. The same cannot be said about the gameplay itself. Becoming a good player requires time and long hours of practice. You need to have a really large amount of knowledge: know the maps thoroughly, know the economic side of the game, various tricks, tricks, setups, etc., you need to be able to shoot from a large number of weapons, you need to understand the psychology of the players, have intuition, etc. etc.
Anyone can learn how to create maps if they want. But creating really good maps is rare. A good mapper, first of all, must be an experienced player. He must understand the game inside and out, know what players like, plus he must have the technique of creating maps, a good imagination and many other things inherent in a creative person. And the mapper, without any doubt, is a creative person.
So, you must clearly understand that in order to achieve good results in mapping, you need a lot of time, patience, and knowledge. Just as a player gains experience by watching demos of the best players (teams) in the world, mappers gain experience by learning from the work of famous map creators. Almost never the first, and the second, and third maps turn out good. At first, a novice mapper thinks that his maps are very interesting, beautiful and of high quality. In 99% of cases, this is not the case :) Listen to the opinions of people more experienced in this matter, then you will quickly understand what's what.
It is impossible to learn from other people's mistakes in mapping. You will go through hundreds of obstacles before you become a pro in this matter, you will feel like a fish in water. Different people spend time differently. There are many influencing factors here: from the desire to experiment to the availability of free time. You can learn to build maps in 1 week, learn to build good maps in months or even years.

What is there to learn?

  1. We will learn how to work in a program called a map editor, namely Valve Hammer Editor. The topic of most articles in the Tutorial is a description of the technique for creating maps in the editor.
  2. We will get acquainted with entity objects, without which the map is not suitable for playing CS. All entity objects are described in detail in a separate section of the site "Entity".
  3. We will learn how to compile a map - i.e. convert it into a format understandable to the game.

What's the best way to study the material?

The two main sections of the site are "Tutorial" And "Entity" We recommend starting with the Tutorial, from the very first articles. All articles of the Tutorial are divided into 21 Chapters (Introduction, Map Editor, Compilation, Textures, etc.). If you are a beginner and don't know anything about creating maps, study the sections one by one. If you know something, then you yourself will figure out where to start :)
Having become a little more familiar with the editor, pay attention to Chapter VI Tutorial "Map optimization", from which you will learn about map optimization and, in general, how to build maps correctly so that they do not slow down.
At the end of many articles in the Tutorial we provide links to download example maps. If you don't understand something, these maps will help you understand the structure of certain things described in the article. Maps are small, their size rarely exceeds 30 KB. In the archive you will find both a finished map and a map for viewing in the editor.
Don't delay with the "Entity" The sooner you start studying the properties of the entity objects described there, the faster you will learn to create good maps. This section, like the Tutorial, contains several introductory articles. From them you will learn what entity objects are, how many there are, what classes they are divided into, and much more. An article about main entity objects, i.e. most commonly used on maps (there are about 35 in total).
We wish you more patience, fewer mistakes and success in overcoming the obstacles that will certainly arise on your way! :)
1.2

What Programs Are Needed to Create Maps?

2026 update. The classic Hammer + ZHLT workflow below is still useful for understanding GoldSrc mapping, but a new setup should normally use modern tools:
  • J.A.C.K. is the closest modern replacement for Hammer. It supports Half-Life and Counter-Strike projects, can work with MAP/RMF/JMF sources, and keeps the familiar Hammer-style workflow.
  • TrenchBroom is a free cross-platform brush editor. It is good for clean brushwork in Valve 220 MAP format, but it does not use Hammer's RMF format, so keep backups and compile/test often.
  • VHLT v34 and SDHLT are the modern compiler families. Treat old ZHLT 2.5.3 and ZHLT Custom Build as historical names unless you need to reproduce an old compile exactly.
In order to start creating maps, you need 3 programs. As you gain experience, you will need additional programs and utilities. Well, for now here is a list of this minimal gentleman's set:
  1. Valve Hammer Editor (or Worldcraft)
  2. ZHLT (or ZHLT: Custom Build)
  3. Expert FGD file (or just an FGD file)
Basic programs for creating maps
Valve Hammer Editor Map editor is a program in which maps are created, the main tool of a mapper. Before version 3.4 the program was called Worldcraft, but then Valve changed its name to Valve Hammer Editor 3.4. You can also often find the abbreviation VHE.
J.A.C.K. A modern Hammer-like editor for GoldSrc and other Quake-style BSP engines. It is a practical first choice if you want the classic Hammer workflow with better stability, modern conveniences, and support for its native JMF format as well as MAP/RMF exchange.
TrenchBroom A free cross-platform editor for brush-based engines. For Half-Life and Counter-Strike work, use Valve 220 MAP format and compile with external GoldSrc tools. It is strongest for brush editing, but Hammer/J.A.C.K. are still useful when you need RMF/JMF-specific project data.
Zoner's Halflife Tools (ZHLT) Compilers are four small programs that convert a map from MAP format (readable to the editor) to BSP format (readable to the game). These compilers are also called Zoner Utilities, after the developer's name (more precisely, by his nickname). Today, the practical successors are VHLT v34 and SDHLT. SDHLT uses the same CSG/BSP/VIS/RAD workflow, but adds modern fixes, 64-bit builds, extra tool textures, model shadows, and other features.
Expert FGD file Game Definition File is a file that stores information about all entity objects that can be used when building Counter-Strike maps. The Expert prefix means an extended (more complete) FGD file. It is necessary to use it. There is also a regular, standard FGD file. It can also be used successfully, but it does not support all the new features of the ZHLT: Custom Build utilities. The FGD file is connected to the map editor during its configuration process.
Links to download these and other programs are provided in the appropriate section: What Programs Are Needed to Create Maps?. As we have already said, over time you may need some other programs, for example, to create your own texture libraries, sprites, models, to render sky pictures, to find errors on maps, etc. You can get all the necessary information about these programs from the above section.
Let's now take a closer look at the main programs: editor, compilers And FGD file.

1. Valve Hammer Editor (official map editor)

Valve Hammer Editor map editor logo Valve Hammer Editor (VHE, Hammer, Hammer) is the official map editor for the game Half-Life and its mods: Counter-Strike, Day Of Defeat, Team Fortress, Front Line Force and others. In the same editor (more precisely, in its previous versions called Worldcraft) levels for Half-Life were created.
As we said above, until version 3.4 the editor was called Worldcraft, and then it was renamed Valve Hammer Editor. It should be noted that maps made in Worldcraft can be opened in the new editor and vice versa. The format remains the same, and therefore we have full compatibility.
This is what the Hammer v3.4 editor interface looks like:
Valve Hammer Editor map interface
Compared to other editors, Hammer is not overloaded with buttons, panels and other things that can scare away a novice map creator. Hammer is quite easy to use, takes up very little disk space, it has all the most necessary functions and in general you CAN create excellent maps (you don't have to look far for examples: authors de_aztec, de_dust and many other famous maps used by Hammer/Worldcraft).
Of course, Hammer also has its shortcomings: some errors, glitches (not without this), it could probably use some new features, but despite all this, Hammer remains the favorite editor of a large (if not more) number of mappers creating maps for CS around the world.
In addition to Hammer, there are several other editors that support the creation of maps for the Half-Life engine. Let's take a quick look at them:
  • Quark (Quake Army Knife)
  • GtkRadiant
  • Qoole (Quoin Object Oriented Level Editor)
  • Tread 3D
It would seem that the choice is quite large, but this is only at first glance. Among these editors, only Quark And GtkRadiant, the development of the rest has long ceased. Quark and GtkRadiant support several games, while Hammer is designed exclusively for Half-Life. From our point of view, Hammer is the easiest to learn for a beginning mapper. And once you get used to it, you won't even want to see anything else on your desktop :)
You can get all the necessary information about setting up and using the Hammer editor from the second chapter of the Tutorial - Map editor (Hammer).

2. Compilers (ZHLT)

Now let's look at the second most important mapper tool - compilers.
Zoner's Halflife Tools (ZHLT) - the best compilers for maps based on the Half-Life engine. ZHLT is a whole set consisting of four small console compiler programs. These programs convert the map from the MAP format (which we get in the editor) to the BSP format, which is used in the game.
Unfortunately, or maybe fortunately, we cannot create a map in the editor and immediately launch it in Half-Life or CS. Before we do this, the map must be compiled (processed with certain parameters by all four compiler programs, so to speak, prepared :) During compilation, the compiler programs are launched one by one and perform their stage in transforming the map (one program calculates the surfaces, another illuminates the map, the third optimizes, etc.).
For new work, read "ZHLT" in older articles as the family of compatible GoldSrc compile tools. Use VHLT v34 for the established classic toolchain, or SDHLT when you want the actively maintained fork with 64-bit builds and newer features. In an editor, connect them exactly like ZHLT: CSG, BSP, VIS, then RAD.
There are 2 versions of ZHLT compilers:
  • Official ZHLT 2.5.3 (they have not been updated for a long time)
  • And improved ZHLT: Custom Build (fortunately, updated regularly :)
Is there an alternative to ZHLT?
A reasonable question that can be answered: both Yes and No. The point is that included in The Hammer editor includes a set of compilers (there are also four of them), but their development has stopped long ago. Now these standard compilers (files: qbsp2.exe, qcsg.exe, qrad.exe, vis.exe in the directory "Hammer/Tools") are seriously inferior to ZHLT utilities in terms of compilation quality, speed, functionality, information content and other parameters. We can't say anything good about standard compilers. But this is for the better. There is so much ZHLT documentation written all over the world that it is a pleasure to use them. Actually, from all this it follows that there is no alternative to ZHLT.

3. FGD file

Well, at the end of our article, let's look at the last tool from the gentleman's set - Expert FGD file (without it, as without the previous two tools, it is impossible to build a map).
The FGD file stores information about all entity objects and their properties that can be used when creating a Counter-Strike map. The file, as we noted above, is connected to the map editor during its configuration.
There are two FGD files:
  • Standard FGD file (halflife-cs.fgd)
  • Extended FGD file (halflife-cs-expert.fgd)
We recommend using an extended FGD file (Expert), because it contains information about more entity objects and more fully supports ZHLT utilities. You may come across different versions of extended FGD files - that's okay. They are simply released by different people and, accordingly, there are slight differences in the files. For example, one of them may provide support for displaying models directly in the map editor, while another has more complete support for the latest version of the ZHLT: Custom Build compilers. Just follow the news on mapper sites (including ours), and you can choose the best FGD file.
In the future, you yourself will be able to release new versions of FGD files (if, of course, you want to do this :). For example, it will be possible to combine several FGD files into one that will support all the new features of the map editor and/or compilers. And merging FGD files is easy, because... these are simple text files.
For reference: this article is about FGD files used to create Counter-Strike maps. For other Half-Life mods (Day of defeat, Front Line Force, Team Fortress, etc.) there are their FGD files that contain information about the entity objects used in this MOD. So, remember that to create CS maps you need to use a CS FGD file.
1.3

Basic Mapmaking Terms

In this article we will introduce you to the basic terms and concepts from the world of map creation. These terms appear all the time, and without knowing them it is difficult to start building maps. A broader overview of terms can be found in the article with the corresponding title: Terms.
The final goal for us is a finished, working version of the map. The map format in Half-Life is BSP (Binary Space Partition). The Hammer editor uses its own format RMF (Rich Map Format), the editor also allows you to save the map in the format MAP, which is used by compilers.
Compilers
Compilers are a set of four programs that convert a map from MAP format to BSP format. Each compiler performs its own stage in map transformation. The best compilers for Half-Life and its mods are ZHLT (Zoner's Halflife Tools).
Objects
Maps in Half-Life, and by extension Counter-Strike, are made up of objects. An object is a general name for any individual component of a map. Objects are divided into 2 types: brushes (brush) and entity (entity).
  • 1. Brushy (plural brushes)
    Brushes can be compared to building slabs. Look at the picture below, it shows 5 brushes making up a kind of open room.
    t1brush Maps are made from such brushes. Players run on the ground, consisting of brushes and between
    walls - also brushes. Naturally, the player sees painted (textured) brushes, and
    not as monochromatic as in our picture.
    2. Entity (plural entities)
    Entities are objects with properties. Examples of entities: an opening door, a button, a light source (light bulb), sound, a car - all these objects have properties (speed, volume, etc.). With the help of entity objects, we can make the map more interesting - add sounds to it, make water and other special effects.
    But entities are not only special effects, but also objects that control events on the map. For example, to make a map with a bomb, you need to insert an entity object of one type onto it, and if with hostages, then another. By the way, not a single map in Counter-Strike is complete without the use of at least several entity objects, so studying them is no less important than mastering the technique of creating maps, which is described in the Tutorial.
    Entities are interesting because they can have the form of brushes, or they can be completely invisible in the game (have no shape). Hence the division of entities into two groups: brushes (brush-based) and point (point-based). For example, door — this is a brush entity object that players see in the game; and here light source or sound source — point entity objects.
    The properties of all entity objects are described in the section: "Entity".
Textures
Textures are pictures with which the map is colored. Textures are applied to the ground, walls, boxes, cars and all other objects on the map.
Textures for Half-Life are stored in files with the extension WAD. These "texture libraries," as they are also called, can store from 1 texture to several thousand. You can find many texture WAD files in the following directories: valve And cstrike, as well as in the directories of other mods. You can create your own collections of textures (Wally will help you with this). You can extract textures from resources of other games (to name a few: DeusEx, Max Payne, MOHAA, NOLF2, SF, SOF2) and convert them to WAD format.
Textures in Half-Life are divided into several types (regular textures, special textures, water textures, textures with transparent parts, animated textures, etc.). The main thing to always remember about textures is that some of them do not go together, i.e. cannot be located together on the same object (for example: a water texture cannot be located with any other texture - an error immediately appears during compilation); you also need to know that the type of texture is determined by the first few characters of its name.
All types of Half-Life textures (their names, information about compatibility and application) are described in detail in the article Texture Types in Half-Life and CS.
Decals
Decals are traces of grenade explosions, bullet holes on the walls and other similar things. These are also textures, but they can be applied on top of regular textures. Unlike the wide variety of texture files, we can only use one file with decals. And he lies in: valve/decals.wad. Well, the developers didn't let us use their decals, so we'll have to take what we have.
Polygon
In the first picture we see a simple box, this is a brush, each side of which is covered with a texture, i.e. drawing. The box has 3 visible sides. Each side has 1 texture. Therefore, the figure shows 3 polygons (not counting the polygons on the ground).
Box and 3 visible polygons
Thus, a polygon is the textured side of a box or any other object in the game.
Here's another example: on the wall on the left, the textures are applied at a scale of 4x1 (only 6 polygons), and on the right - 1x1 (16 times more polygons!).
On the wall on the left, the textures are applied at a scale of 4x1 (only 6 polygons), and on the right - 1x1 (16 times more polygons!)
Therefore, the number of polygons depends not only on the number of sides, but also on the scale of the textures. The smaller the texture scale, the more polygons. And the more polygons, the more our map slows down. Therefore, it is necessary to make maps with as few polygons as possible.
Prefab (prefab)
Prefab is a blank that is stored in a special *.ol file. Examples of prefabs are tables, chairs, cabinets, trash cans, spotlights, cars, etc. Prefabs are used to quickly insert objects into the map. You can craft your own prefabs and then reuse them on your maps, eliminating the need to recreate frequently used objects. It is enough to make them once and save them in a *.ol file.
Trigger (trigger)
Trigger is an object (entity object) that controls events on the map. There are a total of 11 different types of triggers. Triggers are not visible in the game. The main task of triggers is to activate some other objects (that is, turn them on or off).
Triggers work independently or with the help of the player (for example, when the player walks through them). Brush triggers are painted with a special AAAtrigger texture. Point triggers, of course, do not need to be painted over. This class of objects is used very often on maps.
Let's give an example of using triggers. Let's remember the thunder on the map de_aztec. There are four brush triggers of the same type located in different places on this map. When the player passes through the trigger, the sound of thunder is activated, which is heard after a few seconds. This is perhaps one of the most common ways to use triggers - to activate sound.
Unit
Unit is a unit of measurement for length/width/height in Half-Life. Accordingly, in the Hammer map editor all objects are also measured in units. To build maps correctly, you need to know the standard sizes of objects (doors, windows, stairs) so that the virtual world "fits" and does not seem overly large or, on the contrary, small. You can read more about sizes and how to choose the right scale of objects in the article Dimensions and Scale.
R_speeds
R_speeds is a very important parameter that shows the number of polygons visible to the player on the map. The parameter is used when testing the card. If there are too many visible polygons (i.e. too large r_speeds) — the card will slow down. In this case, it is necessary to optimize the map in order to reduce the number of visible polygons. A separate chapter of the Tutorial is devoted to map optimization.
Sprite
Sprite is a graphic picture (often animated) in the format SPR. Sprites are used quite often (the most common case is fire or glow around light bulbs). Sprites are stored in a folder cstrike/sprites and are inserted onto the map using entity objects.
Object name
Most entity objects can be given a name (parameter "Name" in object properties). It is not necessary to give a name to every entity object on the map. The name is only necessary if the object will be activated (see below). The name must be written in English letters without spaces (use underscore).
Activation
Activation is the act of turning on or off an object that has a name. Objects can be activated by the player or other objects. For example, we have a button that opens a door. The player presses a button (activates it), and the button activates the door.
For activation to occur, you need to assign a name to the activated object (for example, a door), and enter this name into the "Target" parameter for another object (for example, a button).
1.4

Terms

In this article we will introduce you to all the basic terms and definitions that you will encounter on the pages of our Tutorial. We talk about some basic terms in more detail using illustrations (pay special attention to these terms). Some terms and idea of ​​the article are taken from a very good site http://collective.valve-erc.com/. We thank the author, the well-known Tony Moore aka "Merl". And we expect from him not only new good articles, but also regular updates of ZHLT utilities :)
List of terms
Abbreviations and their meanings
BSP Binary Space Partition
1. (Creating maps) Map format in Half-Life.
2. (Compilation) This is the second stage in converting a map from MAP format to BSP format. At this stage, a map tree and a working BSP file are created. In ZHLT utilities, this process is carried out by the hlbsp.exe compiler.
CSG Constructive Solid Geometry (compilation)
This is the name of the first stage in converting a map from MAP format to BSP format. At this stage, the general geometry of the map is calculated, surfaces are created, and textures are checked. In ZHLT utilities, this process is carried out by the hlcsg.exe compiler.
FPS 1. Frames Per Second (frames per second) (game engine).
2. First Person Shooter (first person shooter).
HL Half-Life (no comments :)
RAD 1. (compilation) Radiosity
This is the name of the final, fourth stage in converting a map from the MAP format to the BSP format. At this stage, the lighting on the map is calculated. In terms of system resource requirements, this process confidently ranks first among all compilation stages. In ZHLT utilities, this process is carried out by the hlrad.exe compiler.
2. (map creation) A file format that contains information about all the luminous textures of the map with the light characteristics for each texture. This file is no different from TXT except for the extension.
RGB Red Green Blue (Red Green Blue)
A method of forming an image from three colors: red, green and blue. It is used in TVs and monitors with a color electron beam gun.
RMF Rich Map Format (map creation)
Map format used in the Valve Hammer Editor (Worldcraft). This format is an improved version of the MAP format, which is used for map compilation. The RMF format stores information about visible and hidden objects on the map, as well as other service information.
VIS Visible Information Set (compilation)
This is the name of the third stage in converting a map from MAP format to BSP format. At this stage, it is calculated which parts of the map are visible from a given position and which are not (simply put, which part of the map the player sees at the moment and which not, and what he does not see is cut off by the game engine). The calculation result is written to the BSP file in the form of a Visibility Matrix. In ZHLT utilities, this process is carried out by the hlvis.exe compiler.
VHE Valve Hammer Editor (map creation)
The official map editor from Valve for the game Half-Life and its modifications.
WC Worldcraft (map creation)
The official map editor from Valve for the game Half-Life and its modifications. Subsequently renamed Valve Hammer Editor.
ZHLT Zoner's Half-Life Tools (map creation)
A set of four compilers (HLCSG, HLBSP, HLVIS, HLRAD) designed to convert a map created in the map editor (MAP format) into a map understandable by Half-Life (BSP format). Zoner's utilities (Zoner is the nickname of the compiler developer) replace old compilers (QCSG, QBSP, etc.), which were also used to compile maps for Quake.

Terms and their meaning

AAAtrigger (map creation)
AAAtrigger is the name of one of 7 special textures that are used in strictly defined cases. The list of special textures consists of: AAAtrigger, SKY, CLIP, ORIGIN, HINT, SKIP, NULL.
This is what the texture looks like:
t1aaa tex t1clip tex t1hint tex t1null tex t1origin tex t1skip tex t1sky tex Used to create many brush entity objects that are invisible in the game (for example, triggers or Func group objects). The texture is in a standard WAD file halflife.wad, which is in the valve folder.
You can use the texture with any other image, as long as its name is AAAtrigger.
Activation (entity objects)
Activation is the calling of one game object to another.
For example, if a player presses a button in a game, then this is an activation of the button. Another example, a button turns on a light bulb. In this case, the light bulb is activated by a button. This term is constantly used in texts about creating maps and is one of the main ones.
Angle (properties of entity objects)
A parameter for many brush entities. This parameter is located in the properties of the entity object and indicates the direction or angle. As you can see from the figure below, the angle can be specified by a number or by rotating the white line in the black circle.
t1angle The angle parameter operates in the horizontal plane, which is the floor of your map, so it is most convenient to set the angle using the top view.
In the picture below you can see that on the right is 0°, on the top is 90°, on the left is 180° and on the bottom is 270°.
t1angles For example, for the light_environment entity object, which is the "sun" of your map, this parameter determines the direction of the light rays. Let's say, if angle = 270°, then the light on the map will be directed at the corresponding angle in the top view.
Another example is the func_door or "sliding door" entity. For this object, the angle parameter specifies the opening direction. Let's assume that if angle = 180°, then the door in the game will move exactly at this angle (in the top view it will be to the left).
BSP
1. (Creating maps) Map format in Half-Life.
2. (Compilation) This is the second stage in converting a map from MAP format to BSP format. At this stage, a map tree and a workable bsp file are created. In ZHLT utilities, this process is carried out by the hlbsp.exe compiler.
Brush (map creation)
This term refers to any primitive objects that make up the map. For example, a wall is a brush; the earth is also a brush; mountains, boxes, fences - all these are brushes. We can say that almost the entire visible part of the map consists of brushes.
Brushes can be compared, for example, to blocks. If we need to build a room, then we will use 6 brushes (4 brushes for the walls and 2 for the floor and ceiling).
The picture below shows a "room" without a front wall. This room is built from 5 brushes.
t1brush Maps are made from such brushes; players run between the brushes. Naturally, the player sees colored (textured) brushes, and not as monochrome as in our picture.
In addition to the rectangular shape, brushes can be cylindrical, conical, and also take on a more complex shape (for example, a piece of rock) when using the appropriate tool to change the shape.
However, it should be understood that brushes cannot take absolutely any shape. There are a number of strict restrictions, violation of which leads to compilation errors. You can learn more about this from the articles on compilation errors.
Brush-based entity (map creation)
All entity objects are divided into two types: point and brush. In English these names look like: point-based and brush-based.
So, a Brush-based entity is a brush entity object. Outwardly, this type of object is no different from ordinary brushes; in fact, they are called "brushes" because they consist precisely of brushes. But unlike them they have some properties.
In the picture below you can see one of the many types of brush entity objects, namely func_door (or an ordinary door :)
Brush entity object
As you can see, in appearance the door differs little from, say, a brick wall (the shape is the same - rectangular, there are no special differences). With the same success, we could make the door a regular brush... However, unlike a wall or any other brush, a door entity can open, and with a given speed and a given direction - that is, the door has properties. This is the main difference between brushes and entities. Entities are a little lively :)
To create a brush entity object, you must first create a regular brush and then pressing [Ctrl-T], turn it into an entity.
In the Hammer editor, all brush entities in 2D views are designated purple.
Now count how many brush entity objects are shown in the picture?
t1bbe how Correct answer: 3.
Carve (map editor function)
Carve ("kav" or in Russian "karve" :) is a Hammer editor function that cuts one geometric body from another. Let's look at the action of this function using an example:
t1carve At first we had 2 brushes: rectangular and cylindrical. We then applied the Carve function to the cylinder. As a result, a cylindrical hole was formed in the rectangular brush.
The Carve function is called in the following ways:
  • Using the button t1carve btn
  • From the menu Tools -> Carve
  • Keyboard shortcut Shift-Ctrl-C
  • From the right-click context menu (in 2D view)
You can cut objects from each other of any shape, thus obtaining square or cylindrical holes, arches for gates, recesses, etc. It should be noted that when using Carve, the number of brushes increases, for example, if we cut a through square hole in the wall, the wall will be divided into 4 brushes (according to the number of sides of the hole). More sides - more brushes!
ATTENTION! Professional mappers never use this function, because... it doesn't work in the best way. Often, after using Carve, poorly joined brushes appear; in other words, microgaps appear between the brushes. During compilation, such microgaps can affect the calculation of the lighting of these brushes, which will negatively affect their appearance (various glitches with lighting will appear).
It is more correct to create each individual brush yourself (manually). If we want a cylindrical hole, then we need to create 8, 12, 16 or more brushes, changing their shape using the Vertex Manipulation tool and achieving their position in such a way that a cylindrical hole will be formed.
Overall, Carve is bad.
CLIP (map creation)
CLIP is the name of one of 7 special textures that are used in strictly defined cases. The list of special textures consists of: AAAtrigger, SKY, CLIP, ORIGIN, HINT, SKIP, NULL.
This is what the texture looks like:
Used to create CLIP brushes (invisible walls for blocking a player). The texture is in a standard WAD file halflife.wad, which is in the valve folder.
You can use the texture with any other image, as long as its name is CLIP.
CLIP brush (map creation)
Brush, specially painted on all sides. texture CLIP.
t1clip brush The CLIP brush is used to block the player and is installed in places where the player should not go. The CLIP brush is invisible in the game and does not stop bullets.
Clipping (map editor function)
t2wcinstr9 This feature of the Hammer editor allows you to cut brushes into pieces. It is attached to the Clipping Tool. Cutting can be done in one of three ways (see picture below).
t1clipping 1. In the first case, the left side of the brush remains
2. In the second - right
3. And in the third, both parts are preserved.
To start the cutting procedure, you need to select the object. Then you should select the Clipping Tool (Shift-X), use the mouse to determine the first point of the cutting line, then the second and finish cutting by pressing Enter.
PS: The cut line, as can be seen from the pictures, is depicted in light blue, and the points are white.
Clipnode (game engine)
Surfaces that are determined by the game engine to be impassable for the player. Each brush on the map (be it a wall, floor or box) is "wrapped" in clipnode surfaces. Thanks to clipnodes, the player does not fall through the ground and cannot pass through walls.
Remember the old cheat in Half-Life - noclip (walking through walls)? This is what it is :)
Decal (map creation)
t2wcinstr8 Decals are special textures applied to the surfaces of objects to give various effects, such as: blood splatters, bullet holes on the walls, traces of grenade explosions, painted cracks on the walls, etc.
To apply decals, use a tool in the form of a brown cube with a red target (see figure).
All decals are stored in a special file decals.wad, which is located in the valve folder.
t1decals The picture above shows what some decals look like in the editor.
It is also worth noting that when applying a decal to the side of an object, it turns into an entity object infodecal, which can then be moved or deleted.
Entity (map creation)
Objects that have certain properties, with the help of which events in the virtual world (on the map) are controlled. Examples of entities: glass, cars, elevators, stairs, light and sound sources, players' birth points and many others. etc.
There are two types of entities: point and brush.
Edge (geometry)
The edge of the object, i.e. a line connecting two vertices (vertices).
Face (geometry)
Object side.
FGD file
This file stores information about all entity objects and their properties that can be used when creating a map. For each of the Half-Life mods there is its own FGD file with records about the objects inherent in this MOD. The FGD file is connected to the map editor.
FPS
1. Frames Per Second (frames per second) (game engine).
2. First Person Shooter (first person shooter).
HL
We all know this game very well, which was released by Valve on October 31, 1998.
HLBSP (compilation)
A compiler program included in the ZHLT utilities that creates a map tree and a working BSP file.
HLCSG (compilation)
A compiler program included in the ZHLT utilities, which calculates the overall geometry of the map, creates surfaces, and also checks the size and presence of all necessary textures.
HLRAD (compilation)
A compiler program included in the ZHLT utilities that calculates lighting on the map. In terms of system resource requirements, this process confidently ranks first among all compilation stages.
HLVIS (compilation)
A compiler program included in the ZHLT utilities, which calculates which parts of the map are visible to the player from each specific position and which are not. The calculation result is written to the BSP file in the form of a Visibility Matrix.
Hollow (map editor function)
Hollow is a feature of the Hammer map editor that is best illustrated in action by pictures.
So, we have a regular brush. Let's apply Hollow to it, this can be done:
  • From the menu Tools -> Make Hollow
  • Keyboard shortcut Ctrl-H
  • From the right-click context menu (in 2D view)
Applying Hollow to a Cube
After calling the Hollow function, we will be asked how thick the walls should be. Let's indicate, for example, 32 units. As a result, the brush will be divided into 6 brushes with a thickness of 32 units. A void will appear inside the former brush (seen in the figure below, on the right). That is, we had a brush, but it became a room.
Application of Hollow. The cube broke into 6 separate brushes (3D wireframe view)
You can also specify a negative thickness value, for example "-32", then new brushes will be formed not inside, but outside the former brush.
Hull (map creation)
Files containing a list of surfaces of the entire map, which are generated by compilers. Information about surfaces is recorded in 4 files. File names are created using a mask: card_name.p0, card_name.p1, card_name.p2, card_name.p3. The first file (.p0) contains information about all visible surfaces of the map, while the other three (p1, p2, p3) contain clipnode information.
HINT (map creation)
HINT is the name of one of 7 special textures that are used in strictly defined cases. The list of special textures consists of: AAAtrigger, SKY, CLIP, ORIGIN, HINT, SKIP, NULL.
This is what the texture looks like:
Used together with the SKIP texture to create HINT brushes, which, in turn, are used to optimize the map. The texture is in WAD files: zeditor.wad And zhlt.wad, which come with the ZHLT and ZHLT Custom Build utilities, respectively.
You can use the texture with any other image, as long as its name is HINT.
HINT brush (map creation)
Brush, specially painted. SKIP and HINT textures.
t1hint brush The HINT brush is used to optimize the map, lower the r_speeds parameter and, accordingly, increase FPS on the map.
When compiled, the HINT brush forces the VIS program to make an additional cut in the BSP structure of the map in the place where it is located.
If it is necessary to "cut" a long corridor, then the HINT brush should be slightly larger in size than the corridor (in width and height, but not in length!), 5 of its sides should be painted with the SKIP texture and the sixth (cutting) with the HINT texture.
If it is necessary to make a BSP cut on the floor, then the brush should be painted over as shown in the figure above (the side painted with the HINT texture should be perpendicular to the floor).
Map source (map creation)
The source is a file containing information about your card. In the Valve Hammer Editor, source files have the RMF extension. Also, the map source is considered to be a MAP format file that is used during compilation.
Compilers (map creation)
A set of programs that compile a map.
Compilation (map creation)
The process of converting a map from MAP format to BSP format, i.e. from the source map, which we receive in the editor, into the finished map, perceived by Half-Life.
Console
A way for a player to communicate with a game engine through a set of commands and variables. If the game is launched with console support (in the shortcut, in the "Object" field, after hl.exe the parameter is written -console), then it can be called by pressing the tilde "~".
Leaf (map creation)
An area of ​​playable space on a map bounded by surfaces.
Leafnode (game engine)
End of a branch in the map's BSP tree. t1leafnode
Leak (map creation)
An error on the map that appears if not all point entities are covered with brushes, in other words, if there is a HOLE on the map. If this error occurs, the compilation will be interrupted and the message will be displayed: === LEAK in hull ... ===. You can cope with the error by downloading the PTS file created in this case through the console in Half-Life (the file must be copied to the cstrike/maps folder).
Mapper
A person who makes maps. Such people are also called mapmakers, level designers, and, finally, map creators :)
Mapping
The process of creating a map. There was nothing -> there is a map where you can play with friends :)
MAP (map creation)
The map format used to compile it. The Hammer editor has a feature to export from its native RMF format to the MAP format. Compilers only work with the MAP format.
Model
1. (Game engine)
An object created not from brushes, but from triangles and recorded in a special MDL file. For example, hostages in CS or weapons in hands are models. The game engine copes much better with drawing models than brushes (in the r_speeds parameter: wpoly - polygons created by brushes; epoly - models). Models are inserted into the map by an object cycler.
2. (Creating maps) Brush entity objects are also called models, but they have nothing in common with the previous models.
Name (properties of entity objects)
Many entity objects have a Name parameter in their properties, i.e. object name.
The name is required so that the object can be activated. If object A must activate object B, then the second one needs to be given a name, and the first one must have this name in the "Target" parameter.
Node (game engine)
Branch in the BSP tree of the map.
NULL (map creation)
NULL is the name of one of 7 special textures that are used in strictly defined cases. The list of special textures consists of: AAAtrigger, SKY, CLIP, ORIGIN, HINT, SKIP, NULL.
This is what the texture looks like:
Used to optimize the map. It is applied to those sides of objects that the player will never see (roofs of houses, etc.). When compiling, surfaces painted with a NULL texture are simply not calculated and, thus, it turns out that the number of visible polygons in the game decreases (hence, FPS increases). The texture is in the WAD file zhlt.wad, which come with the ZHLT Custom Build utilities.
You can use the texture with any other image, as long as its name is NULL.
Object (map creation)
What maps in Half-Life are made of. And they consist of two types of objects: brushes and entities.
Entities are divided into: brush entities and point entities. Entities are often called entity objects.
ORIGIN (map creation)
ORIGIN is the name of one of 7 special textures that are used in strictly defined cases. The list of special textures consists of: AAAtrigger, SKY, CLIP, ORIGIN, HINT, SKIP, NULL.
This is what the texture looks like:
Used to create ORIGIN brushes (i.e. brushes that define the center of rotating entity objects).
The texture is in a standard WAD file halflife.wad, which is in the valve folder.
You can use the texture with any other image, as long as its name is ORIGIN.
ORIGIN brush (map creation)
Brush, specially painted on all sides. ORIGIN texture.
t1origin brush The ORIGIN brush defines the center of a rotating entity object (for example, revolving doors and platforms, fans, and trains and cars).
Here's what you need to know about ORIGIN brushes:
  1. The ORIGIN brush is painted with a special ORIGIN texture on ALL sides!
  2. Every rotating object must have an ORIGIN brush
  3. ORIGIN brush is an integral part of rotating objects
  4. The center of the ORIGIN brush determines the point through which the object's rotation axis passes
  5. Object rotation does not depend on the size of the ORIGIN brush
  6. One object - one ORIGIN brush
  7. It is unacceptable to have an ORIGIN brush without an object
  8. The ORIGIN brush is invisible in the game and does not interfere with players

PAK (map creation)
An archive file format that stores all the sounds, models, sprites, and levels of Half-Life. The contents of this archive can be extracted by special programs, for example, PakExplorer, PakScape or Wally.
Pak0.pak (map creation)
The main archive of the Half-Life game (located in the valve folder).
Point-based entity (map creation)
All entity objects are divided into two types: point and brush. In English these names look like: point-based and brush-based.
So, a Point-based entity is a point entity object. Unlike brushes or brush entity objects, this type of object has no shape. Point objects are invisible in the game, they, like brush objects, have some properties, but their size has only a symbolic representation in the editor.
In the picture below you can see an example of two point entity objects, namely light (on the left in the picture, a light bulb) and ambient_generic (on the right, a sound source).
Point entity object
In 3D editor views, point entities are displayed as sprites (as in the picture above) or simply as small cubes (if a sprite has not been created for them and there is no entry in the FGD file).
To create a point entity object, you need to select the Entity Tool (Shift-E). Then, having selected the type of object in the list, you can simply click the mouse in the 3D view or insert the object in the 2D view, fixing the creation with the Enter key or from the context menu with the "Create object" command.
Here's what creating a point entity object looks like in 2D views: t2pic17 t2pic18
Pointfile (map creation)
A file created by compiler programs if a Leak error is found on the map.
To find a hole in the map (Leak error), you need to launch Half-Life, enter the console, load the map, write pointfile and follow the line of dots until you find the error (first copy the PTS file to the cstrike/maps folder).
Polygon
1. (Game Engine) Triangle used to construct the visible game space of Half-Life. The game engine draws 2 types of polygons: epoly and wpoly (see r_speeds).
2. (Mapping) A textured surface enclosed between the vertices and edges of an object. The number of polygons depends not least on the scale of the textures.
Portal (compilation)
A surface describing the intersection of two Leafs. Portals are used for mathematical calculation during compilation. They are not written to the BSP card and are not used by the game engine.
Prefab (map creation)
Prefab is a blank object stored in a special *.ol file. Examples of prefabs are tables, chairs, cabinets, trash cans, spotlights, cars - in general, all those objects that are used repeatedly on the map.
You can create your own prefab, write it to an OL file, and then reuse it across different maps, eliminating the need to recreate the object.
R_SPEEDS
R_speeds is a special parameter that determines the speed at which the game engine draws the map. The number of frames per second is inversely related to r_speeds, i.e. the higher r_speeds, the fewer frames per second (the card slows down more) and vice versa.
The R_speeds parameter is dynamic, it changes depending on your location on the map. Indeed, if you turn and look into the corner, the number of fps (frames per second) will most likely be a maximum of 99-100. If you go out into open space on the map, then fps will be lower, and r_speeds will be correspondingly higher.
To find out r_speeds on the map you need to enter in the console: developer 1 And r_speeds 1. In the lines that appear on the screen: wpoly (from "world polygons") - this is the number of polygons drawn by the engine that create brushes; epoly (from "entity polygons") - the number of polygons that models create (hands with weapons, players, other models).
There are quite a few methods to reduce r_speeds and increase FPS on a map.
Here are the main ones:
  1. Turning brushes into entities
  2. Upscaling textures
  3. Closing view of players
  4. Method of leaving a gap of 1 unit
  5. Method for using 240x240 pixel textures
  6. Using SKY or NULL textures
  7. "Dividing" the map into separate spaces
  8. Using HINT Brushes
All these methods are discussed in detail in our Tutorial.
RGB
A method of forming an image from three colors: red, green and blue. It is used in TVs and monitors with a color electron beam gun.
When creating maps, you often have to set the color of light sources in RGB format. For example, 255 255 255 100 means a white light with a brightness of 100 units.
RMF (map creation)
Map format used in the Valve Hammer Editor (Worldcraft). This format is an improved version of the MAP format, which is used for map compilation. The RMF format stores information about visible and hidden objects on the map, as well as other service information.
SKIP (map creation)
SKIP is the name of one of 7 special textures that are used in strictly defined cases. The list of special textures consists of: AAAtrigger, SKY, CLIP, ORIGIN, HINT, SKIP, NULL.
This is what the texture looks like:
Used together with the HINT texture to create HINT brushes, which, in turn, are used to optimize the map. The texture is in WAD files: zeditor.wad And zhlt.wad, which come with the ZHLT and ZHLT Custom Build utilities, respectively.
You can use the texture with any other image, as long as its name is SKIP.
SKY (map creation)
SKY is the name of one of 7 special textures that are used in strictly defined cases. The list of special textures consists of: AAAtrigger, SKY, CLIP, ORIGIN, HINT, SKIP, NULL.
This is what the texture looks like:
Used to create SKY brushes (or, in Russian, the sky on a map :).
Can also be used to optimize the map, because acts like a NULL texture. The texture is in a standard WAD file halflife.wad, which is in the valve folder.
You can use the texture with any other image, as long as its name is SKY.
SKY brush (map creation)
Brush, specially painted on all sides. SKY texture.
t1sky brush SKY brushes are placed in those places on the map where you need to see the sky. The technique for creating the sky can be different: one large box around the card (unsuccessful method, but fast :) and around the perimeter of the card (preferred method, but longer).
Sprite (map creation)
A picture in SPR format, which has the following distinctive property: when a sprite is placed on the map, it is always directed towards the player's face. No matter from which side the player approaches the sprite, he will never see it from the side.
Sprites are inserted onto the map by the following entity objects:
  • cycler
  • cycler_sprite
  • env_glow
  • env_sprite
To create sprites, you can use the following programs: SprWizzard or SpriteMaker.
Target (properties of entity objects)
Many entity objects have a Target parameter in their properties. Literally "target" is translated as "goal", "target".
This parameter is directly related to the concept of "activation". The "Target" parameter contains the name of the object that needs to be activated.
Texture (map creation)
A picture applied to the surface of objects in order to give them a recognizable appearance. Thanks to textures, we can distinguish brickwork from a wooden fence, a forest path from asphalt. Texture sizes in Half-Life must be a multiple of 16.
Texture light (map creation)
A method of lighting a map that creates a lighting effect from the texture. Any texture in Half-Life can emit light, but to do this, you need to create a special RAD file before compilation, in which you should enter the names of all textures that emit light, as well as the characteristics of the light (color and brightness).
Trigger (map creation)
A group of entity objects united under the common name Trigger. "Trigger" can be translated as "to put into action." This name well reflects the purpose of the objects in this group. They all activate something.
Triggers can be either point objects or brush objects. For brush triggers (for example, trigger_multiple or trigger_hurt), a special AAAtrigger texture has been created, which makes these objects invisible in the game.
t1aaa brush Among brush triggers, the most commonly used is trigger_multiple, which can activate an object multiple times.
Among point triggers, the favorite is trigger_camera, which allows you to create cameras like those on cs_assault and cs_militia.
Unit (map creation)
A unit is a virtual unit of length (and size in general) in Half-Life. For example, the height of a player in Counter-Strike is 64 units, the length of the bridge on De_Aztec is 784 units, and the entire available space for creating a map is a cube with a side of 8192 units.
For beginning mappers, "unit" is one of the most important concepts to understand well. After all, the first thing a young map creator notices is the enormous size of his level compared to the player :)
Vertex (geometry)
The top of the object, i.e. the point at which its edges intersect. For example, a cube has 8 vertices (8 vertices). The Hammer map editor has a tool that allows you to change the positions of vertices. Thus, it becomes possible to create objects that are more complex in shape than the standard cube, cylinder and cone.
VHE (Hammer) (map creation)
The official map editor from Valve for the game Half-Life and its modifications.
Visblocker (map creation)
Any brush on the map that blocks the player's view. Such brushes are processed during compilation by the VIS program, which calculates the visibility of certain areas of the map, depending on the position and direction of the player's view.
WAD (map creation)
A file format used to store textures for the game Half-Life and its modifications. Each WAD file can contain from one texture to several thousand. You can edit and create new WAD files in the Wally program.
Most Half-Life textures are stored in a file halflife.wad, which is located in the valve folder.
Textures for Counter-Strike maps are stored in the cstrike folder or included in the map (example: de_survivor).
WC (Worldcraft) (map creation)
The official map editor from Valve for the game Half-Life and its modifications. Subsequently renamed Valve Hammer Editor.
ZHLT (map creation)
A set of four compilers (HLCSG, HLBSP, HLVIS, HLRAD) designed to convert a map created in the map editor (MAP format) into a map understandable by Half-Life (BSP format). Zoner's utilities (Zoner is the nickname of the compiler developer) replace old compilers (QCSG, QBSP, etc.), which were also used to compile maps for Quake.
ZHLT Custom Build (map creation)
A set of improved ZHLT compilers. This version of the compilers is being developed by Anthony Moore aka "Merl" and some other people. The Merl version of the utilities has a number of advantages over the original Zoner compilers. In addition, and importantly, ZHLT Custom Build is constantly being improved, and a new version is released approximately every 3 months (ugh, ugh, ugh, so as not to jinx it :)
1.5

List of All Tutorial Test Maps

This document contains links to all test maps in our Tutorial.
List of all test maps of the Tutorial
Link to map Size Article from the Tutorial
8 fire.zip 81 KB Fire
37 cliffs.zip 19 KB Rocks
40 fan.zip 30 KB Fan