Source SDK

Source SDK

Not enough ratings
Propper for SteamPipe (without SourceSDK)
By Смайл
In this guide, I’m gonna tell you about the latest version of Propper that can run without SourceSDK and works with SteamPipe.

The newest version of Propper supports any games on the Source engine that come with the built-in Hammer Editor. You can use this fresh version of Propper for games like Team Fortress 2, Garry's Mod, Counter-Strike: Source, Half-Life 2, Synergy, Portal, and Half-Life 2: Deathmatch.

And other games on the Source engine that have a built-in editor right in the game (in the bin folder with the game).
   
Award
Favorite
Favorited
Unfavorite
Intro
Propper is an edited version of VBSP that outputs a model instead of a BSP file.

Propper allows users to easily create models using Hammer instead of a typical model-editing software. It keeps texture mapping intact and can auto-generate a physics mesh.

If you are using Hammer++, a built-in Propper is now available under Tools → Propper (or Ctrl+🡑 Shift+P), and it serves as a replacement for this tool. It converts the Hammer mesh directly so there is no quality loss in the geometry due to the BSP process.



Propper for SteamPipe (no SourceSDK needed) — It's just a tweaked version of Propper that works with SteamPipe. You won’t need to download SourceSDK and SourceSDK Base 2007 anymore. Just throw Propper into the bin folder (next to the Hammer Editor), link it up with the Hammer Editor base, and you can start making models right in the Hammer Editor.

For the old version of Propper, you had to download SourceSDK and SourceSDK 2007 from Steam. But for the new Propper, you don’t need to bother with that; just grab any game using the Source engine.

Nowadays, Valve games come with Hammer Editor built right in (just check the game folder in the bin directory). For example, you can use Garry's Mod or Counter-Strike Source. All you gotta do is go to the game folder, open the bin folder, and find and fire up the Hammer Editor from there.



You can make any models you want and share 'em in the Workshop. Like how I do it with my Props Packs, for example:

https://steamproxy.com/sharedfiles/filedetails/?id=1180323600


Ya can get the latest Propper version for SteamPipe from Google Drive:
https://drive.google.com/file/d/1Rg8xN67IrF7wTczkLQQkssmFoz_6W-lQ/view?usp=sharing

Inside the archive, you’ll find the setup guide for Propper for the Hammer Editor.



How do I know if a game or mod supports the built-in map editor?
Check out the game folder, go into the bin folder, and if you see hammer.exe in there, then the game or mod's got a map editor. If there’s no hammer.exe in the bin, then just accept it, the game or mod doesn’t support an editor.

For example: Half-Life 2 → go to the 'bin' folder and look for hammer.exe (if it’s not there, then the game/mod ain't got it).

But don’t stress! Most Source games on Steam nowadays come with a built-in map editor.



Features
  • It can create static props, dynamic props, or physics props.
  • Generates a .qc file and automatically compiles the prop for use in-game.
  • Generates a working physics mesh.
  • Automatic material conversion — Turns map textures into valid model textures.
  • Distinguishes between regular textures and tool textures, such as nodraw and clip.
  • Respects Hammer smoothing groups or autosmooth.
  • Skins support — Allows for multiple textures on the same prop.
  • Custom gib support
  • $keyvalues support: cables, particles, and physgun interactions are available.
  • Allows to output multiple models out of one map.
  • LOD support.
  • Bodygroup support.

Allows to configure several of the prop's surface, usage, and mesh properties from within Hammer.

Displacement support — Outputs any displacement surfaces that are created (the end mesh will not be solid).
Setting up Propper for Hammer Editor
First off, you’re gonna need a game that runs on the Source engine. I’ll show you how to set up Propper using Garry's Mod as an example.

So go ahead and open up your Steam library, right-click on Garry's Mod, and then hit Properties:



In the Installed Files tab, hit the Browse... button to check out the local folder with the game:



You’ll see the Garry's Mod local folder pop up in front of you. Open the bin folder, it’s right at the top:



Now grab Propper from Google Drive and move the files into the bin folder:
https://drive.google.com/file/d/1Rg8xN67IrF7wTczkLQQkssmFoz_6W-lQ/view?usp=sharing

The files you gotta move from the archive into the bin folder are:
  • Propper.exe
  • Propper.fgd



Once you move the files, you can delete the archive. Then, navigate to the bin folder, locate and launch the Hammer Editor:



After you launch the Hammer Editor, you gotta add propper.fgd to the editor's stuff. This is needed so the editor can recognize new class values like propper_model and all etc.

Hit up Tools and pick Options:



You'll see a little settings window pop up in front of ya:



Ya gotta add Propper.fgd to the editor's database. You'll need this field: Game Data files — here it is:



Hit the Add button, select the file propper.fgd, and add it to the Hammer Editor database:



Once you chuck that file into the editor's database, you'll see it pop up in the list:



Setting up Propper for Hammer Editor is done!

Now you can totally start making models right in Hammer Editor and use 'em in the game.
Create a model via Propper
Since this is just a regular example, let’s whip up a little box for the test and turn it into a model.

Later on, you'll make your own models using your imagination. Let’s get started!

To get started in Hammer Editor, hit: File → New:



Now make a brush that's square and paint it to look like a box. Like this:



Using the object selection tool (default: Shift+S), click the left mouse button on this brush and hit the ‘toEntity’ button:



Okay, let’s turn this box into a class entity. Make it a class entity — propper_model and give it these values:



Here's what the main values for the class entity proper_model parameters look like:



Next, you gotta build the model. Hit F9 and the editor’s gonna ask you to save the file as a map source file (VMF). Save it wherever’s easy for you on your drive.

Then you need to set up the build configuration using Propper.

Hit the F9 key and a map build window will pop up. Click on the Expert button to switch to Advanced mode in the compiler:



To add Propper to the model build option through Hammer, hit the Edit button, then in the second window, click New, like you see down below:



You’ll get a box pop up asking you to enter a name for the new build setup. Type in "Propper" and hit OK:



Pick your newly made Propper setup from the list and hit the New button.

1. In the Commands box, type: Propper.exe

2. In the Parameters box, type these parameters: -game $gamedir $path\$file

3. Check the box: Use Process window

4. Make sure the box is checked in the Compile/run commands section



To compile the model into the right format for the game, hit the Go button.

When you click the Go! button, a separate window will pop up showing the model-building process. It looks like this:



Building the model together is quite fast if it's not too large, but it can slow down significantly if your model is bigger than usual.

The model is complete! The build went smoothly. Now, let me show you where your model files are located !



First up — The Model's Source Files
The source files for the model are QC and SMD files. You can find them on your C: drive in the 'propsource' folder. Just go to Computer → C Drive → propsource, and that's where the source files for your model will appear once you're done building it in Hammer Editor:



These are the source model files. Once you’re done building the model in Hammer Editor, people usually discard the source files, but you can keep them for later editing. For example, you can modify them in Blender and other software.

Second up — The model files (inside the game folder)
The model you made with Hammer is in a totally different spot. Hope you still remember how to open the Garry's Mod folder? The model files are gonna be in the Garry's Mod → garrysmod folder, in two subfolders: models and materials:





Using custom textures for the model
One way or another, you're gonna be bugged by this question eventually. Let me show you how to handle funky textures to make models right.

Alright, let’s create a custom texture. We’ll use Paint NET for that. This tutorial's just an example! You can totally use any graphic editor you like.

To get started, simply click on: File → New. A small window for setting up the canvas will appear. For the Source Engine, the smallest texture file size you can use is 64 by 64 pixels. As you might have guessed, that is not a large image size, so I will go ahead and show you:



Using the color palette window, let’s pick a blue shade:



Using the Fill tool, we’re gonna paint our canvas all blue:



Now we’re saving this pic in Source Engine texture format:



Note!
To save images in VTF format, download a plug-in for Paint.NET with VTF support at this link:
https://drive.google.com/file/d/1OB8l__Q06TpdWrwDNWMMkFDr8mX7rNfv/view?usp=sharing

If you have Photoshop, here's a plugin to support VTF for Photoshop:
https://drive.google.com/file/d/1eLMi3HNa5pRGuHtVv6tx7m9kCp6yQ57J/view?usp=sharing

Next, we need a app called VTF Edit. If you don’t want to download it, you can create a text document and write this down:

"LightmappedGeneric" { "$basetexture" "blue" }

Then save the file and name it blue.vmt. After that, just drop it in the folder: Garry's Mod → garrysmod → materials.

If it’s easier for you to work with VTF Edit, feel free to use that app. You can download VTF Edit right here:
https://drive.google.com/file/d/1vr6IGFQq72x9ZClKZIlIRbmcgj1iez0J/view?usp=sharing

Install and start VTF Edit. Open the blue.vtf file, and a window will pop up in front of you:



Click on: Tools → Create VMT File:



Type in: blue — then hit Create (down below):



Now, both the blue.vtf and blue.vmt files should be placed in the folder: Garry's Mod → garrysmod → materials



We added a new custom texture to the game folder. Now the Hammer Editor can recognize that texture, allowing us to use it on our model. For example, let’s create a brush shaped like a box with a blue texture and compile it as a model.



Now, let’s transform that brush into a model with some metal properties and adjust it like this:



Let me go over the points with the meanings again in case you forgot anything:

Name — The model’s name.

Origin (X Y Z) — The model's bone position.

Model Name — The location of the model file in the game directory (models/your model).

Material path — The path to your model's texture files (materials/models/model textures).

Scale — How big the model is in the game. If you set it above 1.0, like 2.0, the model's gonna be huge.



Surface property — So we’re talking about the physical traits of a model: Metal, Wood, Wall, Brick. Basically, these are the features that define how the model acts physically.

Like, if you built a brick wall and set it to Brick, you wouldn’t be making it have metal properties, right? That would be super weird. You hit that wall with a crowbar, and it sounds like metal? Doesn’t really make sense, does it?



Physics mesh — It’s like the physics grid for your model. Without it, your model ain’t gonna work right. If you skip this setting, your model's gonna be like a prop in Garry's Mod. It looks cool but doesn’t do any real physics stuff, so you can only use it for visuals.

Just to make it a bit clearer: So, you know I sometimes whip up these Props Packs for Garry's Mod?

Well, in them, I end up making houses and stuff. If I whip up a house model as an effect, it ain't gonna be a real, physical house. You’ll just walk right through it, and you won’t be able to move it around with physics like you normally do with other physical models.



Mass — That's the weight of your model in kilos. For this setting, always put in this value: 0 — If you set it to zero, the editor will figure out the weight for ya. Super handy if you're making big models.



What do we do next? I showed you how to create your first model and where all the files and textures are saved. Now, I'm going to show you how to work with the custom textures we created earlier. After you assembled the model, two files appeared in the texture folder:



One of the files is just a standard texture, so it'll show up by default even if someone else downloads your model. The second texture, though, is a custom one since we made it together manually and moved it to the materials folder.

You've got this texture, and you'll see the blue color on your model, but other users won't have it. So, to share it, we need to copy the texture file into this folder:



Now we gotta tweak the line in the VMT file that's chillin' in your model's texture folder:



Only 1 line needs to be changed:



This path to your model's texture files:





Before: "blue"
After: "models\props\small_metal_box\blue"

Now the custom texture is in the correct folder. If you want to publish that model by packaging the custom texture first, then when others download it, they will be able to see that texture too.

Don’t forget to delete those old files that you don’t need anymore. We’ve made some changes and moved all the important stuff to the right folders.

We've got some old files just chillin' in the materials folder without any subfolders, and they're not linked to any models. Go ahead and delete 'em so you don't get confused later on.



After we finish making the model, we gotta check it out in the game. So, fire up Garry's Mod, hop onto the gm_construct map, and use this console command to create your model:

prop_physics_create props/small_metal_box

Let's see what we got, yeah?



The model with that custom texture for the Source game is all done!

If you’re having any issues, just go ahead and read that part again, alright?
Packing files for publishing to the Internet or Workshop
You made a little model, checked it out in the game, and suddenly you want to publish it on a site or in the Workshop. What do you need to do before you put it up?

Open the Garry's Mod folder and navigate to the 'garrysmod' folder. From there, copy or move the 'materials' and 'models' folders to your desktop or any location that is convenient for you:



Make sure the models and materials folders ain’t got any other subfolders or random files that don’t have nothin’ to do with your model.



For example (redundant folders):
  • materials/texture/
  • models/test/box/



If you copied the materials and models folders and they’ve got other subfolders inside, just delete everything except for your model.

Otherwise, you’ll end up uploading files to the site that are totally unrelated to your model.

So, to pack your files correctly, you need to get an archiving app. I'd recommend heading over to 7-zip.org to grab the 7-Zip tool from there.

Once you’ve downloaded and installed 7-Zip, simply select both of the folders that you moved to your desktop or wherever you’ve placed them, and add them to the 7-Zip archive:



In the settings window for File Compression, type the name of the archive at the top, then just pick the settings you need or hit OK:



After you zip up the files, you can share your model with a buddy or put your first model up on a user site.
Creating the correct physical mesh (collision) for the model
The physical mesh of the model essentially serves as the collision model, allowing objects such as boxes, cabinets, and nightstands to interact with each other. For example, imagine a player climbing on a box and simply resting there.

But when you're putting together the model in Hammer Editor, you might run into issues with the collision being messed up. No problem, resolving a complicated model collision is quite straightforward.

If you've whipped up a big ol' model, like a building model, kinda like what I do in my Props Packs — but then, when you check it in the game, you find the collision's all messed up? Well, let’s fix that!

Model collision fix
  1. Open the folder containing the source model files located at: C:\propsource
  2. Open the *.qc file with a text editor like Notepad++

If you haven't made any changes to the *.qc model file, it should look like this:



Attention!
Gotta add one line to the collision settings for the model: "$maxconvexpieces 999"



Before:
$collisionmodel "test_home_phys" {
$concave
$automass
}

After:
$collisionmodel "test_home_phys" {
$concave
$automass
$maxconvexpieces "999"
}





Save that *.QC file and use the Crowbar app to build your model.

This setting will widen the collision area for your model so that the collision fully covers the whole thing, including all the corners and edges.

Make sure to remember this setting if you’re planning on making big physics models. It’ll help you make the right collision for any model you work on.

Get the Crowbar app here:
https://steamproxy.com/groups/CrowbarTool



You created something out of the ordinary that exceeds the limit of the physical grid (maximum of 40 fragments):



Since the Hammer Editor has a limit of 40 fragments, the model's physics grid (in blue) is not going to come together correctly:



How do fix it?
  1. Open the model source folder: C:\propsource
  2. Use any text editor (such as Notepad++) to open the *.QC file
  3. Just toss in this setting: $maxconvexpieces "999" in the model collision settings.



With the Crowbar app, build your model, and then you'll see a properly set up collision for it, like, right after:



Don't be scared to try new things and run some tests!
Making a prop — Extra Info
To use Propper, open the map in Hammer and then turn some brushes into a propper_model entity.

There are several important properties of 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 enables easily aligning the prop.
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 the selected mod or game. The .mdl extension is not needed.
Material path
Location of the model's textures. Relative to <yourmod>/materials. Make sure this folder exists before running! Propper extracts material files from the 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 no is selected, the model will be 'shrink-wrapped'.
Smoothing mode
Determines how vertex normals are computed for lighting.
Source folder
Location of source .qc and .smd files. The final directory will be <sourcefolder>/<modelname>. This folder path may be anywhere on the hard drive that is convenient.
Smoothing threshold
If auto-smooth is enabled, edges flatter than this angle will appear smooth. Pick from 0 to 180.
Snap to Hammer
Every vertex will 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 the 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 when using -StaticPropLighting to light props.
Don't warp displacement textures
In Hammer, when moving a displacement point, the texture moves with it. If yes is selected, the texture will stay in place.

Compiling
You run Propper just like you would compile a map with vbsp. Pass it the current game directory and your vmf file.

Command:
Write propper in the command field. You can browse to the propper executable with the Cmds button.

Important: If propper doesn't start and instead write Running command: cd "", use an absolute path to propper.exe for it to work.

Launch Parameters:
-game
The path to the 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 the props. must come last

Propper can be run 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 there is in the map, it should create a new model. Hammer may have to be restarted to see the new models.

Additional options
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. For example, if you have a propper_model entity called myModel1, any of the following entities should use myModel1 here.

propper_physics: If this entity is used, Propper will configure your model as a physics prop.

See Prop data for documentation on the following: https://developer.valvesoftware.com/wiki/Prop_data

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 the prop. If multiple textures on the model are necessary, this entity can be used more than once.

NOTE: 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 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 picking skin #.

Other Class Entity:
  • 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 & later only)
  • propper_gibs — Pick custom physics models to use as gibs when the prop breaks
  • propper_lod — A brush entity that can be used to create low-poly versions of the model.
propper_bodygroup — Bodygroups allows swaps between parts of a mesh. For example, the model could have a door with several different knobs and allow the mapper to pick one.

propper_physgun_interactions — Add custom behavior to physics props — eg. stick to wal
Outro
If you liked this tutorial, don’t forget to give it a thumbs up!

If you have any questions, don’t hesitate to drop them in the comments.

I or other Steam users will definitely get back to you!

Thanks and Have fun!