Source SDK Mapping: Automating the Propper Pipeline with SyncBack

sdk2007-syncback-csgosdk

Note: This isn’t a guide to setting up Propper. For that, check out the SourceSDK documentation and TopHatWaffle’s guide. This is a guide on automating your workflow so that you can spend more time iterating on meshes and your map, and not worrying about the locations of dozens of files.

A Propper Introduction

While getting into some nitty gritty model creation and map optimization on de_boardroom, one of my go-to tools is Propper. But for several years now, propper has only worked via a fairly simple yet annoying work-around. SyncBack is a dead simple tool you can use to automate part of the process.

With OLD propper, you would make an element of a map using bsp brushes, then decide it’s worthy of being a model instead. It could be that you planned for it to be a model from the start, and just used primitives to block it into your level. At this point, you might install propper, hit build, and use it like any other model.

But with “new propper” you couldn’t do this. You make an entirely separate mod, just for propper. You have to get all of your content into that mod, and mapped correctly. That part is pretty drawn out yet it’s simple. The problem I ran up against is in the actual using of the pipeline.

Take my map de_boardroom.  stats_de_boardroom_2015040102

I redefined the feel of the outside of the building, and at the same time proppering the new modular pieces so that I’m not wasting tons of detail brushes on exterior walls which won’t really be seen. So in CSGO, I prototype a few modular wall pieces that I’ll use. I even built out a basic version of the entire building in a side copy of the map, to see if it was really the direction I wanted to go. Once saved in my map, I usually copy and paste out individual pieces into their own vmf’s. Previously, this is where you’d just ‘propper’ the brushes into a model and be done. Now, I have to get my vmf’s into my Propper Mod first.

I’ve got dozens of models, which equals hundreds of files. My eyes glaze over at the sight.

Once in propper mod, I grab it, name it, and build to propper. Repeat dozens of times for little pieces. Now – grab all of those files, which are in proppermod/models/ and proppermod/materials/.. and move them to the corresponding location, back in CSGO.

This is the part that kills me.

  1. I’ve got dozens of models, which equals hundreds of files. My eyes glaze over at the sight.
  2. I’m iterating multiple times on each model- nothing is perfect the first time anyway.
  3. And now I’m in windows explorer, moving files around at 3am, between folders with names like source/prop mod/source sourceSDK/source, and materials/models/props.

This is time consuming, highly error prone, and annoying. 

So – automation.

The Proper Propper-Source in SourceSDK (say that 10 times fast)

I could write a batch file that would do the same thing I’m about to describe. It would copy anything in X folder and put it into Y. But then I don’t really know if it worked (paranoia), I can’t see it happening, I don’t have a record of what happened without writing even more junk into the batch file, and if I want to change the way I’m copying files, I’ve got to edit the batch file.

Instead, I chose SyncBackFree. This is a great little backup application that I have used personally and at a former employer to do the local back ups on various servers and repositories. It’s free, and stupidly powerful.

Here’s the steps to automation:

0. Grab SyncBackFree, and install it.

1. Set up a profile for your map’s model folder and a profile for the map’s materials folder. My profile names are Boardroom Propper Models and Boardroom Propper Materials. SyncBack will ask you if you want to Backup, Synchronize, or Mirror. For this task I chose Backup. I don’t want to complicate things by synchronizing or mirroring, since I’ll have other models that are totally unrelated to Propper. This is only about moving the latest files into a different directory, which is the definition of a backup.

2. Drill in and set up the full source and destination paths for the Propper Mods Models and the CSGO Models. Hit OK.models-rule

 

3. Now do the same for your Propper Mod Materials and the CSGO Materials paths. Hit OK.

materials-rule

4. Once finished, review your setup in SyncBack. Really awesome so far, right?

mainwindow

5. Now, go into SourceSDK 2007, in your Propper Mod. Make a model using propper. Hit F9 and build to the Propper target. Don’t even look in your directories for the vtf’s, vmt’s, vtx’s, etc. Just go straight to Syncback.

6. In SyncBack, Hit RUN on both of your tasks. You’ll see a nice GUI pop up with the files, press Continue Run to confirm it.

modelwindow

7. Now close Source SDK hammer, and open CSGO hammer (or whatever game you are mapping for).

8. Open a map and hit Shift+E, Enter. Select prop_static. Open the model viewer using the Browse button in the World Model field. Type a few characters of your model name – voila. You should see the model you created.

What if I don’t see the model? Pink checkerboard?

  • You typed in all of the source and destination paths correctly, right?
  • You made sure to set up syncback profiles for both models and materials?
  • You hit RUN and both profiles finished?

Most errors with the Source art pipeline end up being incorrectly typed path names and file names. Triple-dog-check them.

I’m not a dirty CounterStrike mapper, I make Portal maps! Cake!

Use SyncBackFree to set up any number of Profiles. Remember, a profile in SyncBack always consists of a point A and a point B. Any time you end up religiously copying files over and over, think about automating it.

Other Benefits to SyncBack

  • Note that since we set this up as Backup, it will only affect files that have changed. If your models share textures, you will end up overwriting certain materials multiple times, but that’s no biggie. It totally works fine.
  • SyncBack has Simulated Run, a feature that lets you see the changes that will happen when you actually run the current sync rules. The ultimate gut check!
  • SyncBack also has a log, so you can see the last action that happened. A couple of times I made naming mistakes in Propper that I didn’t catch. Rather than sift through hundreds of files, I checked the SyncBack log and noticed my mistake quickly, out of only the handful of files that were actually changed.
  • You can also create another SyncBack profile and set it on a daily timer, which will copy your entire mod, or specific files, over to another hard drive for backup. I also suggest something like CrashPlan for general PC backup.
  • While we’re at it, since I know that most mappers aren’t using version control – get a clue- be professional! Real gamedevs use version control. Start with SVN, or even better, GIT. I say to roll-your-own Git, but you can also use the popular GitHub.

simulate-run

SyncBack is a free, full featured backup tool which can make your life much easier. Hope this works for you too.

What other tools like SyncBack are out there? Is there a better way you’ve found to use Propper in a full scale level with dozens of props? Hit me up!