FAQ

If your question is not answered here, then just ask! Use the Ask a Question to send me a message about your question. I typically will respond in about 24 hours.

  1. My Hammer has no Grid, or I get “Failed to load the default scheme file.”
  2. What is a leak, and how do I fix it?
  3. What is the Process of Elimination Fix?
  4. How do I use the Cordon Tool to find issues?
  5. During compile, it freezes and says “not responding”.
  6. My level seems to never finish compiling.
  7. Water in my level is invisible, but still there.
  8. My level is really dark.
  9. My level is all bright, how do I fix this.
  10. My level runs very slow, and laggy.
  11. How can I contact you?
  12. If I have an idea for a level/mod and want to ask for your help, how should I proceed?
  13. When is the next tutorial coming out?
  14. When I compile, none of my changes show in game.
  15. My level crashes when I load my map.
  16. What are some tips and tricks to make mapping easier and faster?
  17. Can I pay you to fix my level?
  18. Why does my entire map repeat in my 3D skybox?
  19. How do I launch a game in tools mode?
  20. How do I install custom textures?
  21. Certain props and textures in my map are super shiny.

My Hammer has no Grid, or I get “Failed to load the default scheme file.”


You may have no grid, or get this error when you load Hammer.VolvoPlz

This is most likely because you have launched Hammer from Source SDK. This is no longer how we load Hammer for games without Authoring tools. (Counter-Strike Source, TeamFortress 2, ect..) Instead you should be launching Hammer.bat (Launch Hammer.exe if the bat file fails) from the BIN folder. The path to TF2’s BIN folder is: Steam\SteamApps\common\Team Fortress 2\bin.

Once you load Hammer from the BIN folder, you should no longer have this issue.

What is a leak, and how do I fix it?


Levels created with the Source Engine must be completely sealed. The inside of your level must not be able to reach the outside or as we call it, The Void. When there are any kind of holes to The Void, a leak is generated when the map is compiled by VBSP. This results in a MAPNAME.lin file (Also call the Point File) to be created on compile, this file contains where the level has leaked out to The Void. When the leak occurs, the tools do not know which part of the level is inside, and what part is outside, and VVIS cannot run correctly. If VVIS is not run several effects may not work or look right including, but not limited to:

  1. Correct Lighting
  2. Water
  3. Particle Systems
  4. Sound Scapes
  5. Certain Shaders
  6. Other random things

You can confirm if you have a leak by looking at your compile log. You’ll see something like this in the compile log.

fixing up env_cubemap materials on brush sides...
ProcessBlock_Thread: 0...1...2...3...4...5...6...7...8...9...10 (0
**** leaked ****
Entity prop_static (558.00 -4.00 183.00) leaked!
Processing areas...done (0)
Building Faces...done (0)

NOTE: Some games will abort a compile when you have a leak, while some older games will just keep compile with the leak.

Some games will have VVIS.exe crash, and leave this error in your compile log.

Valve Software - vvis.exe (Sep 8 2014)
6 threads
reading c:\my_levels\mapname.bsp
reading c:\my_levels\mapname.prt
LoadPortals: couldn't read c:\my_levels\mapname.prt

If you have any of these happen to you, you probably have a leak. Now we just have to try and locate the leak. This is done by using the MAPNAME.lin file that was generated by VBSP when it realized that your level could reach the void.

  1. Make sure Raidus Culling is off, this tool causes many problems and should never be used. If it’s on, there will be a red circle in all your 2D views. Radius_culling
  2. Start by doing a standard VBSP ONLY compile. VBSP is all we need to compile to test for leaks. This is because VBSP with either generate the needed MAPNAME.prt file for VVIS to do it’s job, or if there is a leak MAPNAME.lin will be generated instead.
    1. Doing a VBSP only compile in the NORMAL compiler:
      bsp_normal
    2. Doing a VBSP only compile in the EXPERT compiler:
      bsp_expert
  3. Verify that a leak is present in this compile
    leakconfirm
  4. Load the Point File (MAPNAME.lin)
    1. Click Map
    2. Click Load Point File
    3. Click Yes when asked if you want to Load default Point File
      maploadlinlinload
    4. Now you have to locate the leak in the 3D and 2D views. The leak is represented as a red line. It draws it’s path from the entity the leaked, and the path it to to reach the outside of level. Locating the red line in a level full of stuff can be difficult due to the sheer amount of stuff in your level. To easily find the line, follow these steps.
      1. In the compile output window, grab the XYZ coordinates of the leak.
        leakxyz
      2. Click View
      3. Click Go to Coordinates…
        viewcords
      4. Enter the XYZ Coordinates that you got from the compile output, then click OK.
        cords
      5. You’ll now be looking right at your leak. Click on the entity that is causing the leak, and press CTRL+E to center all your 2D views onto it.
        leakview
    5. Follow the red line to see exactly where it’s leaving your level.
      leakfound
    6. Now, using only world brushes, you’ll need to patch that hole. You can do it by creating new brushes, or just extending existing ones.
      REMEMBER: Only world brushes will prevent leaks.
      Fixedleak
    7. Compile the level again, then check the compile log to see if you have a leak. If you do, follow these same steps again to fix the leak. It’s not uncommon to have multiple leaks at a time.

 What are some other causes of leaks?

  1. Entities outside of the level.

    You may have accidentally placed a prop, or some other entity outside of your level. Find it, and either put it into your level, or remove it.
    sillybarrel

  2. Improperly constructed area portals

    Leaks can be caused when an area portal does not completely seal the two areas that it touches. When this happens a leak will be generated. Find the trouble area, then either fix the trouble area portal or create another one to seal the area. When you have one of these leaks, you’ll receive a different compile log leak error.

    Areaportal leak ! File: c:\my_levels\mapname.lin
     Brush 55419: areaportal brush doesn't touch two areas

    apreaportalleak

  3. Non solid geometry that does not seal the level

    Displacements and entities (such as func_detail and func_brush) do not prevent leaks. You’ll have to put a backer entity behind these to prevent them from reaching the void. Typically you use tools\toolsnodraw for this.
    displacementleakThis is an example of a func_detail causing a leak. Either put a nodraw brush behind it, or press CTRL+SHIFT+W to move to back to a world brush.
    func_detailkeak

  4. Mismatched / Misplace entity origins

    Some entities have the origin ball. You may have accidentally moved this away from the entity. (This can happen when you vertex edit things). To solve this leak, follow these steps.

    1. Make sure Helpers are turned on. helpers
    2. Load the Point File as you did before.
    3. Click Edit
    4. Click Select All
      editselect
    5. Where the leak is, you’ll see the little ball. Click and drag it back to it’s owner entity. It will draw a dotted line to where you need to move it.
      originleak
  5. Translucent textures on brushes

    If your level is completely sealed, but one of the brushes that is sealing your map has “$translucent” “1” on it, this will not seal your level. You’ll have to either remove the translucent parameter from that texture, or use nodraw behind this offending brush to prevent the leak.

What is the Process of Elimination Fix


Process of elimination fix is what the name says. You try to locate the issue by removing things that you have confirmed to be working. You typically do this when you’re getting a non-descriptive error in your compile log, or the level is just out right crashing the game when you try to load it.

  1. Make sure you need to actually use this type of fix.
    1. Look over your compile log for errors.
    2. Put your compile log into the Interlopers Compile Log Error Checker to see if it finds something you missed.
  2. We need to determine at what compile level the error is happening. Complete these 3 sub steps to find out, and then move on to the rest of this guide.
    1. Compile with just VBSP. If the issues return, then you can do all your troubleshooting with VBSP only compiles. Move onto step 2, and only use VBSP when doing test compiles. If the level works fine on a VBSP only compile, move onto step 1.2
    2. Compile with just VBSP and VVIS. If the issues return, then it is a VIS problem, and you will do all your troubleshooting with VBSP and VVIS only compiles.  Move onto step 2, and only use VBSP and VVIS when doing test compiles. If the level works fine on a VBSP and VVIS only compile, move onto step 1.3
    3. Compile with all 3 VBSP, VVIS and VRAD. The issue should return, and it should be a RAD issue. You’ll do all troubleshooting with a VBSP, VVIS and VRAD compile.
  3. With what compile process that’s causing the issue sorted out. Head over to the Auto tab on the VisGroups window. NOTE: Your vis groups may differ.Visgroups
  4. Start by unchecking everything except World Geometry. Compile the level and see if the error exists. If not, then your world brushes are not the issue. If the level crashes, then the problem is in one of these remaining checked groups. Turn them off one by one and see when the errors goes away. Since we are in the World Geometry group, you should start with Displacements, then Water. If Displacements and water are off, and the issues is still going on then you’ll have to to cordon tool on the remaining brushes in the level. That’s covered further on in the: How do I use the Cordon Tool to find issues?
    WorldGeo
  5. Now turn on groups 1 by 1 until your issue comes back. I suggest this order:
    1. World Details\Props
    2. World Details\Func Detail
    3. Entities\Point Entities
    4. Entities\Brush Entities
    5. Entities (The entire group, what ever else is left)
    6. Tool Brushes (Entire group)
    7. Remaining VisGroups
  6. As you turn these on 1 by 1, more and more stuff will be added back into the level. But as you do, you’ll be marking them as “safe” For instance, you compile with World GeometryWorld Details, and Entities\Point Entities and the level has not had the issue. These VisGroups are now considered “Safe” and you have confirmed they are not causing the issues. You then turn on Entities\Brush Entities and the issues come back, we now suspect that this VisGroup has the offending object.. That means that something in this group is causing the issue. You’ll now want to verify this by turning on EVERYTHING EXCEPT the suspected bad VisGroup. (in this case Entities\Brush Entities) Compile the level like this, and everything should work fine. This will confirm that the issue lies in this turned off VisGroup.
    1. NOTE: When you turn off some VisGroups, you may notice that others turn off as well. This is because some objects are in multiple VisGroups. This is ccompletely normal. As long as the suspected bad VisGroup is completely off (does not have a faded check mark in it) we should be fine.
      OffnedingVis
  7. Now that we have the trouble VisGroup found and confirmed. Turn on ONLY the bad group.
    OnlyBadGroup
  8. Select about half of the remaining objects. Then put them into a new User VisGroup called Test Hide.
    NewGroupNewGroupMake
  9. Turn on all of your VisGroups under the Auto tab. The trouble VisGroup should show with a shaded check mark, meaning that it is partially turned on. Then switch over to the User tab. You should see your new group as being unchecked.
    CustomOff1
  10. Now compile the level again. What we’ve done here is turn off half of the trouble VisGroup. We are now find what parts of this group can be considered “safe”, and which ones are not. If the level works, then you’ve hidden the half with the bad object. If the level breaks, then the offending object is in the remaining half.
  11. In my case, it’s in the other half, so I now have to remove the “Safe” side of this group, and add the other side to verify that the bad object is in that half.
    1. Start by turning off all Auto VisGroups, and enable only the bad VisGroup.
    2. Select our first test User VisGroup and click Mark at the bottom. This selects that VisGroup.
      Mark
    3. Click the New VisGroup button again. Add these objects to a new VisGroup called Safe.
      Safe
    4. Now Select the Safe User VisGroup, and press ALT+ENTER to open the Object Properties. Click on the VisGroup tab, and then remove them from the Test Hide VisGroup. Click Apply.
      1. We have to manually remove them from this group so they are not considered potentially bad. If we used the “Remove objects from all other VisGroups” check box when we added them to Safe it would have remove them from the Auto VisGroups as well.
        Removal
    5. Now you’re left with the possible offending half of the bad VisGroup. Select it, and add it into the Test Hide VisGroup.
      TestHideOtherHalf
    6. Turn on all Auto VisGroups, then turn off the User Test Hide VisGroup. Compile and the issue should be gone. This will confirm that the bad object is in the Test Hide VisGroup.
      CompileSafeTestOff
  12. Now to separate half of the remaining Test Hide VisGroup. We will now find out which half, of the half, the bad objects are living in.
    1. Turn off all Auto and User VisGroups, then turn on the Test Hide VisGroup.
      TestHideOnly
    2. Select half of these entities, and add them to another VisGroup called Test Hide Sub 1.
      TestHideSub1
    3. Check and then select the Test Hide Sub 1 VisGroup then click Mark. Press ALT+ENTER to open the Object Properties. Click the VisGroups tab and remove them from the Test Hide VisGroup. Click Apply.
      RemoveSub1FromMain
    4. Turn off Test Hide Sub 1 VisGroup and you’ll be left with the other half of the half. Select these objects, and add them to a new VisGroup called Test Hide Sub 2.
      testhidesub2
    5. Check and then select the Test Hide Sub 2 VisGroup then click Mark. Press ALT+ENTER to open the Object Properties. Click the VisGroups tab and remove them from the Test Hide VisGroup. Click Apply.
      RemoveSub2FromMain
    6. You’ll now be left with 3 new VisGroups: Safe, Test Hide Sub 1, and Test Hide Sub 2. Turn on all Auto VisGroups, along with the Safe and the Test Hide Sub 2. VisGroup.
      AllNoSub1
    7. If the level has issues still, then you can assume they are in the Test Hide Sub 2 VisGroup. You can confirm this by turning Test Hide Sub 2 VisGroup off. If there are no issues, you can assume the problem objects are in the Test Hide Sub 1 VisGroup.
  13. You can now keep cutting each VisGroup in half until you’re left with only a handful of objects. Then you can remove them 1 by 1 until you find what the problem is. Once you find it, you can try various things (Re making, changing it’s shape, removing outputs, changing key values, ect..) until it works.

But what if my level is still broken and yes, I’ve used the cordon tool to try and find the issues.

Ah! Then you must have some super special problem right?! Not really. Typically this happens when you’re at a Source Engine limit. There isn’t much you can do when you’re at this point, but here are my suggestions. Do them in order.

  1. As a test, click Edit -> Select All and then press SHIFT+A to open the face edit sheet. Under Lightmap Scale enter: 128 then click apply. Compile the level and try again. If this fixes it, then you’re at a light map scale limit. Here are my suggestions:
    1. Propper some objects so that you’re using model lighting instead of the Light Map grid.
    2. Fly though your level and manually set all your light map scales to higher and lower values. Then hope that when you’re done it works.
  2. Start a new level. :(

How do I use the Cordon Tool to find issues?


So you’ve just tried the Process of Elimination Fix and most likely failed during the World Geometry VisGroup. To troubleshoot this we have to use the Cordon Tool. This tool allows us to only compile certain parts of our level, while keeping the level sealed in a box. There are 3 parts to the tool (Older versions of Hammer only have 2):

  1. Enable Cordon BoundsEnableCordon
  2. Edit Cordon BoundsEditCordon
  3. Create Cordon BoundsCreateCordon

Now that you know the 3 tools, let’s get started.

  1. Click the Edit Cordon Bounds button. You should now have a dotted red line with blue grab points on the 2D and 3D view ports.
    Cordon
  2. Adjust it to cover half of your level. Then click the Enable Cordon Bounds button. Only the half of the level inside of this red box should be showing.
    CordonEnabled
  3. Compile the level and test. If there are no issues, then flip the side that the cordon tool is on and compile again. If the issues are still there, adjust the cordon tool to only cover half of the half. Compile and test again.
    HalfOfHalfCordon
  4. Keep compiling in smaller and smaller chunks. Eventually you’re get to a point where only a few objects will be left. At that point you can just throw them into VisGroups and narrow down what could cause the issues.

During compile, it freezes and says “not responding”.


Just like your parents telling you that you can be anything you want, it’s lying to you. This happens when Windows cannot process anything else, so it thinks it’s crashed. Open Task Manager before a compile. Watch the processes VVIS.exe and VRAD.exe. They will be using 100% CPU during a compile. It should be noted that this only happens on older version of Hammer that use the embedded compiler. Newer versions that use the Command Prompt window compiler don’t have this issue.

You may also try to use some 3rd part compiler interface tools such as CompilePal

Command Prompt Compiler

Command Prompt Compiler

Embedded Compiler

Embedded Compiler

My level seems to never finish compiling


99 times out of 100 this is because of VVIS. If you’re like most people you opened Task Manager and saw that VVIS was running, and you stopped it. You can confirm this by opening your MAPNAME.LOG file and looking where it’s last entry way, probably on in the VVIS step. This is probably due to lackluster optimization, mainly func_detail usage in your level. I have 2 video tutorials on ways to solve this issue. Please check them out here:

Water in my level is invisible, but still there.


You most likely have a leak in your level.

Learn how to fix a leak here.

My level is really dark.


You may need to learn about how lighting works in the source engine. Please check out the tutorial below to learn about lighting in the Source Engine.

You may also have a leak. If you have a leak radiosity will not compile correctly, resulting in no light bounces, thus darkness. Learn how to fix a leak here.

My level is all bright, how do I fix this.


This is probably because you have no lights. When a level has no lights it defaults to what is called “Fullbright” mode. Add some lights, and compile with VRAD to get lighting. Please check out the tutorial below to learn about lighting in the Source Engine.

After the compile, you may need to force Fullbright off by using “mat_fullbright 0” in your console.

My level runs very slow, and laggy.


This is typically resolved by optimizing your level. You can learn how to optimize your level using these two video tutorials:

How can I contact you?


There are many ways to contact me. I will list all of my contact methods below.

  1. Email (Preferred): http://www.tophattwaffle.com/contact/
  2. Steam: http://steamcommunity.com/id/TopHATTwaffle
  3. YouTube: http://www.youtube.com/user/rocketrascal34
  4. Skype: Call TopHATTwaffle on Skype

If I have an idea for a level/mod and want to ask for your help, how should I proceed?


A lot of people ask me to make levels for them, or join their mod teams. I, sadly, have to decline most of the time. But please don’t let the discourage you from asking. I always love to hear your ideas and thoughts about mods and level design.

So, the best way to contact me with this information is the normal ways.

  1. Email (Preferred): http://www.tophattwaffle.com/contact/
  2. Steam: http://steamcommunity.com/id/TopHATTwaffle
  3. YouTube: http://www.youtube.com/user/rocketrascal34
  4. Skype: Call TopHATTwaffle on Skype

When is the next tutorial coming out?


There is no set schedule for tutorial releases. I make them when I have time and other things are not in the way. But you can view the tutorial that will be made next. Click here to view the tutorial queue

When I compile, none of my changes show in game.


This happens then VBSP is not able to finish compiling. You have a few options when it comes to trouble shooting this issue. Here are some of the best ways to try and fix this.

  1. Look over your compile log for errors.
  2. Put your compile log into the Interlopers Compile Log Error Checker to see if it finds something you missed.
  3. Take a look at: What is the Process of Elimination Fix?
  4. Check out: How do I use the Cordon Tool to find issues?

If you’re still stuck, send me an email and be sure to include the compile log and a description of the problem. http://www.tophattwaffle.com/contact/

My level crashes when I load my map.


There are a few things that can cause a level to crash the game on start up. Some of the common ones are:

  • Breaking a Limit
    • A render Limit
      • Cause by having too much stuff rendered at a time. Typically results in a overflow of some sorts.
    • Entity Limit
      • You have too my entities.
      • You’re close to the entity limit, then once people spawn the entity count goes up and results in a crash.
    • Size Limit
      • There is a limit to the Hammer Grid, and if you try to break this limit bad things happen.
  • Invalid Brushes
    • Some times you can have a bad brush make it past VBSP (Super rare) but it can cause the issue.
    • A brush that is tried to an entity, or group that is causing the crash.

Here are my suggested steps to resolve this issue

  1. Look over your compile log for errors.
  2. Put your compile log into the Interlopers Compile Log Error Checker to see if it finds something you missed.
  3. Take a look at: What is the Process of Elimination Fix?
  4. Check out: How do I use the Cordon Tool to find issues?

If you’re still stuck, send me an email and be sure to include the compile log and a description of the problem. http://www.tophattwaffle.com/contact/

What are some tips and tricks to make mapping easier and faster?


Now this is a good one. There are many things that I do to make mapping easier and faster. I’ll make a bullet list so it’s easiest on you!

  • Save early, save often… Beat CTRL+S like the red-headed step child you never loved.
  • https://developer.valvesoftware.com/wiki/Main_Page
  • Setting these options will make your life much much easier.HammerOptions
  • Listen to music/watch TV whilst you map. I do it, and it makes time fly.
  • There is no shame in reusing something you’ve already made. Work smarter, not harder.
  • Learn Hammer’s hot keys. They will save you loads of time. Here is a list of hotkeys!
  • Map with a goal.
  • Working breaks – If you’re in a rut, and are not motivated, take a break. Either step away for a few days, or working on something that has such a small scope you can’t work on it for more than 15 hours. I’ve done with with 3 levels. Check out my Working Break projects here:

Do you work on / make levels for pay.


If you’re asking if I fix levels for pay, I have always been of the opinion that you should learn to fix your level instead of using my as an escape goat. I will be more than happy to assist you in fixing the level, but I will not just accept the map file and fix the level for you. Feel free to contact me to ask for help.

If you’re inquiring about hiring me for contract work, please contact me at: tophattwaffle@gmail.com or use my contact forms here: http://www.tophattwaffle.com/contact/

Why does my entire map repeat in my 3D skybox?


Your 3D skybox is created incorrectly. Please view the following tutorial to learn how to make a correct 3D skybox.

Also make sure that you’re compiling with VVIS and have no leaks.

Creating a 3D Skybox

How do I launch a game in tools mode?


First load your game’s SDK/Authoring Tools. There may be an option to load the game in tools mode. If it’s there, use that. If not, follow these steps.

  1. Right click on the game that you want to launch in tools mode, then go to properties.
  2. Then under the “General” tab, click “Set Launch Options”
  3. Type -Tools and click okay.
  4. Click close.
  5. Launch your game in tools mode. To get the game back to normal, just remove the launch option. tools

How do I install custom textures?


First check to see if the downloaded textures came with instructions, they almost always do. If not, the best way is to learn how to make textures so you understand how the files and formats work. Please watch the following tutorial to learn how to create, and install custom textures.

Creating Custom Textures, Normals, VMTs, Packing a Level’s Content

Certain props and textures in my map are super shiny.


By default Source Engine always uses the Skybox as a cubemap if none are placed. To fix this you need to place cubemaps into your level, then build them.

Env_Cubemaps, Static Reflections, Reflective Textures