Unique Tips, Tricks, Tutorials, Lessons, and Lectures

If you would like to greatly improve the visual quality of your maps, read the following. I won’t provide the basics,

The Magic 4th Value in Light Color
This is tragically skipped in 99% of tutorials. Choosing a light color needs changes to the first 3 values, RGB, but have nothing to do with how brightly the color is shown when the map is compiled. The 4th value controls the brightness of the light and goes from 0 - 1000. It’s 200 by default, too low by my experience. I use values of 500 - 1000 mostly. You won’t achieve realistic lighting without using this 4th value.

Example: 200 vs. 1000


50% Falloff Distance - 0% Falloff Distance
You can find these options in your common light entities. Use these to your advantage. 50% falloff distance is the distance at which the brightness of the light falls to half of it’s original value. 0% falloff distance is self-explainable.

LDR before HDR
It’s critical that you be aware of how bright your lights actually are with LDR before using HDR. The default tonemap settings of HDR can over-correct what are actually dark lights when viewed under LDR. So, view your maps under LDR when testing your lights.

Dark Textures = Dark Lighting
How dark a texture is measures how much light it will retain. Counteract this by increasing the 4th value of the light color until something acceptable is achieved.

Correct Your Tonemap Settings
As I said above, the default tonemap settings are too extreme. To counteract this, create two entities; env_tonemap_controller, and logic_auto. Give tonemap_controller a name, then go to the output tab in logic_auto. Create 3 outputs:

OnMapSpawn - tonemap_controlller name - SetAutoExposureMax - 1
OnMapSpawn - tonemap_controlller name - SetAutoExposureMin - 0
OnMapSpawn - tonemap_controlller name - SetBloomScale - .5

That’s it. The settings I provided are the ones I found most suitable after testing all my lights under LDR.

This material command will change your life. It tells VRAD how much light should be retained in the material when reflecting light. The Source engine’s default settings are too low, big surprise. I use $reflectivity “[ .5 .5 .5 ]” by default in all of my materials to achieve more realism. On the other hand, lower values can be applicably used. You could more easily design a stealth map with “[ .1 .1 .1 ]”.

Source default settings vs $reflectivity “[ .5 .5 .5 ]”.


Develop an Artistic Hand/Eye
This is rather important. Develop some rudimentary skills in sketching or painting. The further you go with these skills, the further they extend to your ability to make better maps. Nothing is more intuitive than a pencil and paper, it’s also a great way to develop a full idea before opening up the map editor.

First is the basic geometry pass. Create a very basic version of your map with brushes. Imagine an abstract CSS gun game map. Exclude any facets, buttresses, and support structures. Exceptions include doorways, stairs, and windows because they’re critical to visibility and navigation. When you are finished with this process, apply textures. The second geometry pass will include placing facets, buttresses, and support structures. Since these details are repetitive, it’s wise to texture one instance of the detail before duplicating it elsewhere, it saves time. Your brushwork should be done now. The next pass is static props, followed by lighting. Placing props before lights will assist in your choice of light placement. It shortens the time it takes to make a decision as well.

Think Big Before Small
When designing an environment, place the absolute biggest elements in the scene first and work your way down according to size. In a figure of speech, don’t worry about the pebbles when you could be worrying about the boulders. This approach will also help you measure exactly how much detail you want in your map before you stop.

Detail Where it Counts.
This should be an obvious one. Invest more time in detailing areas that players occupy the most. If you intend to detail the entire map, start in areas that need it and work outwards.

The Usefulness of Dev Textures
Dev textures have a big psychological effect. Using them keeps your mind clear and focused on your geometry work.

Textures Types that Demand Details
Texture choice can limit the amount of work that must be done. Brick walls may demand details; posters, windows, drain pipes, ventilation, fans. A fresh, tiling metal or glass wall on the other hand will ask to be kept clean of anything.

Use the same FOV Settings In-Game and In Editor
Again, it has psychological effect. I use a viewing angle of 75 degrees. You can change Hammer’s FOV settings in Tools -> Options -> 3D Views tab

Props Before Lights
Prop placement has a major influence in light placement. Vice versa, placing lights influences placement of props. Prop placement should come first because the location of lights is much more irrelevant. Having your geometry finished, you’ll notice good opportunities to place lights in accordance to geometry in the scene to create interesting light-play. The second philosophy is in achieving atmosphere. If you can achieve the desired atmosphere purely with geometry and textures, the lighting pass will build on that even more.

Shift + Click & Drag on Displacements
The next time you are editing displacements with the Paint Geometry tool, hold Shift + click and drag your mouse up and down. The result is being able to precisely move vertices on the displacement.

**Fast Iteration **
In addition to Cordon Tool, here’s a couple other pointers to test changes as quickly as possible:

  • Go to your steam library and open the launch options of the game you use to map with. Enter -novid and -console. These will disable the start up screens and the menu background map from loading. Also, configure the game to run in windowed mode.
  • Download the Valve Batch Compile Tool. This is a stable, separate compile tool. The compile progress screen does not hang, reveals more compile options, compiles faster, and does not have issues running games automatically after compile like Hammer. It can also be used without Hammer being open, that’s a big memory save when doing a final compile.

Using VBCT to Compile and Map at the Same Time
Valve Batch Compile Tool is especially useful when you are close to finishing a map and the little time you have is precious. Since it runs independently of Hammer, you can can compile a map and continue using Hammer at the same time. Whenever you’re ready to compile, save the .vmf file under a different name on the desktop, such as “gm_construct_compile”. You can let VBCT compile that with only 1 or 2 processing threads while you continue to edit the original “gm_construct” file. So if your maps take 15 - 30 minutes to compile, use this. Don’t waste time waiting while you could be working.

Disabling T-Junction Fix-ups
This is only applicable to people who are building massive maps, know what creates t-junctions, how to avoid any avoidable t-junctions in their brushwork, and are very familiar with how Source PVS rendering works. If you meet those requirements, you may find adding -notjunc to vbsp.exe in your expert compile settings useful. Rather than juggling between the maximum brush limit and t-junc limit, you can max the brush limit without worries.

Expect a lot more topics to be added in the coming days and weeks. I plan to organize and illustrate all of this info as well as time goes on. Thank you for reading, I hope this comes in handy!

Very helpful for all of the beginners out there. Lighting is pretty much one of the hardest things to get right when it comes to Source.

Thanks Hostel for the amazing tips! Looking forward to many more awesome lessons.

Great tips Hostel!

Wow, I always thought the brightness only went up to 200. Now I know better,thanks a lot! Great Tips!

4th value is my hero

A few more topics were added. Most of them are brief but never the less important. I created this thread to save a lot of the headache that I went through while I was learning. I’m glad people are enjoying the knowledge, happy mapping.

Made a workflow thingy of how I used Hostel’s tip.
First, I started out with a VERY basic dev corridor:


Then I added some little detail. A ventilation duct and the double door.


Then I did the textures for the basic layout.


I then did some detail with a truss system and some grates.


I then added some static and physics props for added detail.


Added some more props for more detail including light models.


Basic HDR lighting and a couple more props are placed.


I then added some dustmotes to the lights.


I then added an env_fog_controller and built the cubemaps and BAM!

Finished product:


Sorry the lighting isn’t the best, but this is as good as I can do in 4 hours.

The climate in that hallway is pretty humid, haha. Try fog density values of .1 or .05

Haha now that I think about it that is kinda foggy. I will reduce!


Alright, hows this?


Thanks for the tips, I’ve always been awful at lighting.

How would add sweet lighting using this prop?


You could perhaps disable the model’s shadow and put a light inside it. I’d prefer light_spot with a large cone

And use a sprite with a Size of Glow Proxy Geometry of like 10

I call a sticky, who agrees?

[editline]29th July 2011[/editline]

About that workflow, is it normal to start out in fullbright until you have something that actually looks like what you are making?

I rather configure lighting first, so you get a better impression of how it will turn out.

It’s best to have everything in place first with fullbright so you can get an impression on how you can maneuver your lights to look the best they can.

The thought process behind placing props before placing lights is that prop placement has a major influence in light placement. Vice versa, placing lights first will influence placement of props. By my experience, your prop placement should come first because the location of lights is much more irrelevant.

That’s a more simple breakdown to what I’m getting to. Having your geometry finished will have you noticing good opportunities to place lights in accordance to the geometry in the scene to create interesting light-play, such as interesting shadows being cast. The second philosophy is in achieving the atmosphere you want. If you can achieve the desired atmosphere with purely geometry and textures, the lighting pass will only build on that even more.

I’ve added a few more topics.

Awesome, i am starting mapping soon so perhaps those could be usefull for when i start lighting, thanks of course Hostel <3 you.

[release]Cordon Boundaries Tool

This tool has come in handy far to many times nearing the completion of my map to go unreported.

It allows you to do quick compiles of certain sections of your map to test features or the look of lighting,
without sitting through massive compile times involving your whole map.

It should be noted, this is for development purposes only, and a map released using cordon to seal it is almost as bad as carving.


Wow, how did I not know about the shift+click and drag on displacements until now. That’s extremely useful.

Also using hard edge is helpful for sharp fall-offs