From Valve Developer Community
Propper is an edited version of vbsp that outputs a model instead of a bsp.
Many mappers need to make props for their maps, but don't want or don't have time to learn a separate modeling program. This tool allows them to make models in Hammer in a one-step process. It's also useful to modelers who work with mappers. Propper keeps texture mapping intact, and auto-generates a physics mesh.
- Can create static props, dynamic props, or physics props
- Generates a .qc file and automatically compiles the prop for use in your game.
- Generates a working physics mesh.
- Automatic material conversion--Turns map textures into valid model textures.
- Distinguishes between real textures and "tool" textures.
- Respects Hammer smoothing groups or autosmooth.
- Configure your prop from within Hammer.
- Displacement support--outputs any displacement surface you can make (not solid).
- skins support--use multiple textures on the same prop.
- custom gib support
- $keyvalues support: cables, particles, and physgun interactions are available.
- Output multiple models out of one map
- LOD support.
- Bodygroup support
Propper beta version 0.31 is the latest version. Download it at moddb: 
The previous version of Propper, version .24, is available here: 
There are two versions of propper included. One is for the 2006 SDK, and the other works with both the 2007 and 2009 versions. A .fgd (Forge Game Data) file is included for both, to help you configure your props.
The folders in this ZIP file mirror the folders in the SDK. For best results, unzip the file to your steamapps\<username> folder, and let your zip utility keep directories intact.
After installing, you should change your game configuration a bit. Open Hammer under the game with which you will use Propper, and click Tools:Options.
Find the section for "Game Data Files", and click the "Add" button. Open propper.fgd when prompted (It will be right there if you installed correctly). Then Click OK or Apply to save the settings. Finally, restart Hammer so the settings take effect.
Making a prop
To use Propper, Open your map in Hammer and turn some brushes into a propper_model entity.
There are number of important properties to the propper_model entity:
|Name||The name that other entities refer to this entity by.|
|Origin (X Y Z)||The position of this entity's center in the world. The model's origin point defines how it is lit and is how the prop is positioned in a map. For static props, put the origin somewhere that lets you align the prop easily.|
|Model Name||The directory and name of the finished model. Relative to <yourmod>/models The model will be created here, inside the "models" folder of your selected mod or game. The .mdl extension is not needed.)|
|Material path||Where the model's textures will be. Relative to <yourmod>/materials. Make sure this folder exists before running! Propper extracts material files from your mod folder or game cache, and makes a copy in this location.|
|Scale||Scale the model up or down by this factor.|
|Surface property||The physical properties of the model--affects impact sounds and weight for physics props.|
|Physics mesh||Pick any brush entity (including this one) to represent the physical shape of the model. Leave this field blank for a non-solid model. If you leave this blank while making a physics prop, Propper will automatically use the propper_model entity for collisions.|
|Mass||Weight of the prop in kg. Enter zero or lower to automatically calculate mass.|
|Concave collisions||Used to make a concave collision model. If you choose no, the model will be 'shrink-wrapped'.|
|Smoothing mode||Determines how vertex normals are computed for lighting.|
|Source folder||Where you want to keep your .qc and .smd files. The final directory will be <sourcefolder>/<modelname>. This folder path may be anywhere on your hard drive that is convenient for you.|
|Smoothing threshold||If auto-smooth is enabled, Edges flatter than this angle will appear smooth. Pick from 0 to 180.|
|Snap to Hammer||Causes every vertex to be snapped to the nearest grid point.|
|Welding threshold||Vertices will be snapped together if within this tolerance. A value of 0 is not recommended because there may be visible gaps in the mesh. Larger numbers will merge vertices together, and may be useful for optimizing your model.|
|Auto-Center||The model's origin point defines how it is lit and is how the prop is positioned in a map. Auto-center moves the model's origin to the center of its bounding box and is recommended for physics props.|
|Disable normal mapping||This option removes all bump map info from the converted materials. This is useful if you wish to use -StaticPropLighting to light your props.|
|Don't warp displacement textures||In Hammer, when you move a displacement point, the texture moves with it. If you pick yes, the texture will stay in place.|
You run Propper just like you would compile a map with vbsp. Pass it the current game directory and your vmf file.
|-game||The path to your Game Directory.|
|-nocompile||Optional. Prevents Propper from running studiomdl to compile the props (this makes it a great .smd exporter).|
|-logging||Optional. Propper will create a .log file with all its output.|
|-nomaterials||Optional. Prevents Propper from copying and converting material files.|
|-obj||Optional. Will cause Propper to output Wavefront OBJ files instead of SMD files. Useful for exporting geometry to other 3D tools.|
|<vmf name>||The name of the vmf file containing your props. must come last|
You can run Propper from within Hammer. Just create a new Run configuration and run propper instead of vbsp.
Important: There must be no extra spaces or lines in the parameters box. Propper may refuse to run if anything comes after $file.
Run Propper. For each propper_model entity you have in the map, it should create a new model. You may have to restart Hammer to see your new models.
There are a number of optional entities you can use to configure each prop. They all contain the following property:
|Model to apply to||Pick a propper_model entity for this property to apply to.|
This determines which of your models will be affected by the entity. So if you have a propper_model entity called myModel1, any of the following entities should use myModel1 here.
- propper_physics: If you use this entity, Propper will configure your model as
physics prop. See Prop data for documentation on the following.
|Origin (X Y Z)||The position of this entity's center in the world. Rotating entities typically rotate around their origin. (not used by propper)|
|Health preset||Dictates how strong the prop is vs. different weapons.|
|Health||Overrides the prop's health. Setting this to 0 will make the prop unbreakable. -1 will use the default value from "Health preset"(recommended).|
|Flammable||Will it burn? Picking this enables the 'ignite' options.|
|Ignite at half-health||Just like those barrels in HL2.|
|Ignite from explosions||Won't break right away if something explodes near it, but will ignite.|
|Explode damage||Damage to do when breaking|
|Explode radius||Radius of explosion|
|Gibs||Generic shards to spawn when the prop breaks|
|Gib count||How many gibs?|
|Gib skin||Which skin to use on the gib models, if applicable.|
- propper_skins: Propper can create alternate skins by replacing a texture that is on your prop. If you have multiple textures on your model that you want to change, you can use this entity more than once.
There is a limit of textures on any one model. Both the model and extra skins should not have more than 32 textures. This does not include the tooltextures.
Propper.31 has lifted the limit of textures.
|Material||Pick a texture that's present in the original model. This will be skin 0.|
|Skin(1-14)||This texture will replace the original when you pick skin #.|
- propper_attachments: add attachment points to a model (for cables and particles)
- propper_cables: add ropes/cables to dynamic models!
- propper_particles: attach particle emitters to dynamic models (2007 engine and later only)
- propper_physgun_interactions: add custom behavior to physics props--eg. stick to walls, paint splatter, impale enemies
- propper_gibs: pick custom physics models to use as gibs when the prop breaks
- propper_lod: A brush entity that you can use to create low-poly versions of your model.
- propper_bodygroup : "Bodygroups allow you to swap between parts of a mesh. For example, you could have a door with several different knobs and allow the mapper to pick one."
- An instance was found where textures were being applied incorrectly and to the wrong faces.
- If materials are used that are in the root materials\ folder, Propper will try and convert the material for every face on which it appears.
- The 2007/2009 versions no longer create folders when saving source (smd and qc) files.
- When propper_model x,y,z is set it will reset to center point when model is move and/or saved then reopened. Note: using spaces between x y z(0 0 0) will save.
- When multiple models are made from one file the first and last model will have their textures but in-between models will have no textures.
Source SDK Update 10/19/2011
In this update, Valve created a new engine version called "Source Engine MP" that is incompatible with Propper.
If you attempt to use Propper with Source Engine MP, you'll get an error like this:
Can't load c:\program files (x86)\steam\steamapps\xxxxxxxxxxxx\sourcesdk\bin\orangebox\bin\filesystem_steam.dll.--VFileSystem017
The solution is to browse to sourcesdk\bin\orangebox\bin. Find propper.exe and propper.fgd, and move them into sourcesdk\bin\source2009\bin.
Then, in order to use Propper for TF2, CS:S, or DOD:S, you must use the SDK in 2007 or 2009 mode. Select Source SDK 2009, and double-click "Edit Game Configurations". Add the game you want to use Propper for, and make sure you use the engine version when you want to run Propper.
To run Propper in any version of Hammer, please refer to the Compiling section.
Steampipe / SDK 2013 Update
With Valve's new Steampipe content system, all Valve games reside in the "common" folder, instead of a "[username]" one. Now, as a stopgap, mappers no longer access Hammer through the SourceSDK tool (so do not download this). Instead, you go into your game's bin folder and double-click "Hammer.bat" to access Hammer (and the same for some other tools). (For example, to access Hammer for Counter-Strike Source you go to C:\Program Files (x86)\Steam\SteamApps\common\Counter-Strike Source\bin, and find "Hammer.bat".)
How to get Propper working
TopHATTwaffle has written a very detailed and complete guide on getting Propper to work with Steam Pipe. This method is based off of Marnamai's fix, but is just more detailed and easy to follow.
Steam user Marnamai wrote a guide to get Propper to work post-steampipe with Source SDK, it might work for some: http://steamcommunity.com/sharedfiles/filedetails/?id=199956039
There might be a problem with the textures though, you will need to extract the .vpk files of the game you want the materials from.
I keep getting an error like this:
Error opening d:\program files\steam\steamapps\blah\mymap .vmf: File d:\program files\steam\steamapps\blah\mymap .vmf, line 1: Invalid argument.
This happens when you have a line break or other white space in the parameters box of Hammer. Don't copy-paste the parameters in there. Type it in.
I can't find these prefabs I've heard about. Where are they?
Propper no longer includes any prefabs for the config entities. You should use the entity tool and find propper_options in the list of entities.
My prop's collisions are wrong. It's solid where it shouldn't be.
There are some cases where two brushes get combined into one big collision piece. Try to avoid making brushes overlap and it should not be a problem.
My prop's collisions are in the wrong place.
If your useing a func_brush to show propper where to make the collisions, you will need to set the origin of the func_brush in the same place as your propper_model.
I made a large building into a model and the lighting is not as good as a brush model. What gives?
Models in Source use rather simple vertex lighting, whereas brushes get radiosity lightmaps. What that means in simple terms is your map gets nice soft shadows and bounced light, but props don't. Buildings just look better when they're made from brushes.
In some cases, you can get better lighting on your props by enabling per-vertex lighting when you compile your map. In the command line of vrad, include -StaticPropLighting to enable that feature. Models that use normal mapping aren't compatible with per-vertex lighting, so use the "Disable normal mapping" option when you use Propper.
Propper quits with an error saying it can't open such-and-such file.
Be sure that you have permission to write to that folder, that it's not write-protected, and that you have entered a valid folder.
Why would I want to make a prop anyway?
It's also not uncommon for mappers to run into the brush/face/plane limits for a very large or detailed map. Props let you add detail to your map without pushing this limit. If a feature is used several times in a map, making it a prop will reduce the size of the .bsp and the system memory needed to run the map.
Models can be smaller and more precise than the stuff you make in Hammer. Plus there is the fun stuff Propper lets you do with physics models.
Hammer's a mapping tool! People who want to make models should learn a real modeling program like Blender or XSI.
I agree, but maybe they don't want to. For better or worse, people are more comfortable working with tools they know. The learning curve with Propper is far lower than that of the "official" tools - you use virtually the same procedures you already know from Hammer. Propper was originally meant to be a map optimization tool, but people have used it to make some very nice models.
Using Propper With Displacements
- If you run the tool on a map with no brushes (displacements don't count), Propper will crash. Thus, if making a model solely from displacements, place a normal (non-displacement) brush somewhere in the vmf file. This is an obscure bug from vbsp and I haven't managed to track it down yet.
- If you use certain invisible textures (eg. clip, nodraw, sky), on a face, that face will be erased. You can lower the final poly count of your model by using nodraw on any face that the player won't see.
- I don't yet sort LOD entities by distance(because I am lazy). So always make your closest LOD FIRST, and so on. Otherwise, they won't switch right.
- You can now construct a physical shape for your model. Make it a func_brush, and point your propper_model to it.
- Hammer limits you to its one-unit grid while you work. However, you can make your model at a larger scale--say, 16:1--and then tell Propper to scale it down to the correct size. That would allow you to model objects as small as 1/16 inch. (You can also resize brushes within Hammer itself, as always.)
- Don't set "materialpath" to the same folder as any of your map textures. The model materials may overwrite your map materials! It's best to follow the convention of putting model textures under "models\"
- Propper will over-write files without asking, so make sure there are no files in your selected folders that you don't want to lose.
Left 4 Dead(2), Alien Swarm, and Portal 2
Propper doesn't currently work with any SDK newer than the Orange Box-era SDK. If you are mapping for these games, you can try the following:
- Extract the materials (vmt and vtf files) you want to use from the post-Orange-Box game using GCFScape and mirror them in an Orange Box game that you own (such as Episode 2, or Portal).
- Run Propper from the Source SDK as normal.
- Take the files created by Propper and copy them into the appropriate folder in your Game.
This process does work when using Propper with Alien Swarm.
This program has been used with some success by community mappers. It's based on vbsp, which we all know and trust not to destroy our PCs. That said, use at your own risk. I claim no responsibility for damage to your computer or games that may occur while using Propper.
- Configuring Propper for Steam Pipe, TopHATTwaffle
- Steampowered forum thread on Propper
- Interlopers forum thread on Propper
- Some tutorials have been made to help with using Propper.