After the long wait, you are excited to finally make maps for HL2. You fire up Hammer, make a room, and think it would be cool to have a bunch of props. You add them in, compile, and... they aren't there. What happened?
The most common reason for props not showing up in the game has to do with how props describe themselves to the game engine. Each prop has a number of attributes built right into it, including what type of prop it should be. For example, most of the vehicle props have two versions: one designed for use as a
prop_static, and one designed for use as a
prop_physics.
The reason the prop didn't show up in the game is that you have mismatched its type. If you attempt to use a prop intended for use as a
prop_dynamic as a
prop_physics, it will not show up; the same applies to a
prop_physics being used as a
prop_dynamic. I currently do not know if there is a way to check the prop type ahead of time, beyond if it tells you in the name.
If you really want to use a prop for a type it's not designed for, you're in luck; there's a way to do it. The
prop_dynamic_override and the
prop_physics_override entities allow you to override the built-in prop information, forcing it to be the type of your choosing. There is a downside to this: by overriding the built-in information, you are losing
all of the built-in information, including some potentially useful information such as mass and buoyancy, so use the overrides only when you have to.
In case you're wondering why
prop_static almost always shows up and there is no prop_static_override, it's because
prop_static already overrides all of the built-in information in a prop. All the of the weight and physics info in a prop is useless to a
prop_static: it doesn't move.
While wrong prop type certainly seems to be the most frequent reason for props not showing up, there are other common ways. If you have had problems with
prop_static, particularly small ones, and
prop_detail not showing up, there is another source (pun intended) for this problem: the Source engine is great at scaling back graphics for performance. If you have a pre-DirectX 7 video card, the engine does not display
prop_detail models. The engine also fades out props based on their size; smaller props fade out sooner. I have had some small
prop_static models that were about twelve feet up a wall, and it took me forever to figure out why they weren't showing up in-game. Turned out the engine was fading them from that distance, so that I couldn't even see them when I jumped. The solution is to adjust the
fadescale attribute in the prop's properties.
The start/end fade distance can also be the source of your problems. The default value for the end fade distance in Hammer is 0 and the start fade distance is -1. The -1 means that the prop will not "fade" out the closer you get to the end fade distance, it will simply disappear. The value of 0 for end fade distance means that the prop will not fade out. If this value is set for something really small, this may be the source of your trouble. Another related problem is the Screen Space Fade on prop_static props. This attribute can set the prop to disappear based on how large the object is on-screen; how many pixels it is. Lets say you want the prop to fade out if you are 1024 pixels away from it, but you accidentally turn on "Screen Space Fade". Now, the prop will fade out if it takes up less then 1024 pixels on screen, not what you intended. So make sure this is set to "no" unless your actually trying to use it.
In conclusion, there are a multitude of ways to not have a prop show up. Luckily, most of the common ways have been caught be the community and we have solutions for them. If you are still confused or if you have any questions, you can post a comment here or email me at jeffca51
at yahoo
dot com.
This article was originally published on the
Valve Editing Resource Collective (VERC).
TWHL only archives articles from defunct websites. For more information on TWHL's archiving efforts, please visit the
TWHL Archiving Project page.