"What does _a1 mean?": A Guide to Version Strings

Katsu! :3

Veteran Cat
aa
Jul 30, 2021
822
515
So, you've finally managed to create your very first map! Good on you, layouting is something that most veteran mappers struggle with even. You're ready to test, pl_awesomesauce is on the bot and... "!gf needs an _a1 at the end of the filename." What on earth does '_a1' mean? Don't fret, in this guide you'll learn many different types of these little suffixes to your map files; We call these Version Strings.

"So what does _a1 actually mean?"
"_a1" is a common version string known as Alpha 1. In the alpha phase of designing your map, you should primarily focus on developing your map's layout and gameplay, as you want to have it primarily figured out by the end of the Alpha stage. There is no limit to how many Alphas someone can create for a map, as map development can take a long, long time to get your map into the best spot it can be! With each consecutive version of your map, you should be naming your map from pl_awesomesauce_a1 to pl_awesomesauce_a2, pl_awesomesauce_a3, and so forth until you're finally ready for the next stage.

The Beta Stage! ("pl_awesomesauce_b1" and onward)
So, you've pretty much gotten your gameplay down pat after going through and iterating your map for however long you needed to. Great job! Now here you are, you're finally ready to hit the phase where a majority of development can be spent detailing your map. If you still have some kinks in your layout, that's okay! Just make sure to try and iron them out in the earlier betas so you can truly focus on detailing your map and making it look as awesome as the name pl_awesomesauce implies! Similar to the alpha stage, you can take as much time in beta as you need to in order to fine-tune your map and make it the prettiest and best-playing you can. During the later parts of beta development, you'll want to optimize the hell out of your map; Remember that a well-optimized map is an easy to enjoy map, as it means the map isn't fighting back against your gameplay. Depending on your layout, optimizing your map will either be a walk in the park or a logistical nightmare, so keep it in mind when designing your layout!

The Polishing Stage ("pl_awesomesauce_rc1" and onward)
Now, everything is set: You have your layout complete, your detailing looks fantastic, everything is awesome! ...except you forgot to pack in your custom skybox. The Polishing Stage is all about quashing bugs, errors, and other weird little issues like lighting problems! Hopefully if you've designed your map well, you won't need to iterate through a whole lot of _rc# editions, but if you do then that's still okay. Just make sure you're taking care of as many errors as you can!

Finalization ("pl_awesomesauce_final")
Once your map is finally complete, you're ready for a "final version." Like the name suggests, your "final version" should be the last version you ever create for the map unless valve picks up your map miraculously. So, when you get to this point (if you choose to make a "final" release), be absolutely sure you are happy with the map in its current form. Good luck!

"What does a3a or b1c mean?"
Both of these different version strings are what we call sub-versions. These versions of a map exist to fix bugs that affect the map in a severe way, such as a spawn door refusing to open or a Control Point not being capturable. Whenever you find yourself encountering one of these issues, be sure to append your current version string with a corresponding iterative letter! (ex: a, b, c, etc.)
 

Idolon

they/them
aa
Feb 7, 2008
2,123
6,137
I like to use "p" as a prefix for prerelease versions, e.g. pl_mapname_a3_p1. When I'm ready to publish, I just take off the _p# at the end.
For example:

1712446402008.png
 

Tiftid

the Embodiment of Scarlet Devil
aa
Sep 10, 2016
602
465
I do a similar thing, but with "test" instead of "p".
It also helps me preserve history better - the moment I start making bugfixes to a VMF (e.g. cp_bruhstbowl_b6), I save it as "cp_bruhstbowl_b6a_test1", so that I don't absent-mindedly hit Ctrl-S and override the original cp_bruhstbowl_b6 with a version that isn't actually identical.