Creating CounterStrike (CS) maps


Yes, this is about creating maps for the original Half-Life (HL) mod CounterStrike, released by Valve in 1999. If you're looking for information on CS:Source, this is not for you. This tutorial is for Windows only, sorry. I didn't menage to get CS and the tools running properly under Linux. (Please let me know if you managed that!)



CounterStrike


CS was first released as a Half-Life mod, but a stand-alone version was published later. I'm using the stand-alone version, but you should be able to adapt the stuff in here to the mod easily.

Just install CS from your CD. I installed it to C:\games\counterstrike, but I'll call this path $CSDIR from now on. So if you installed to D:\stuff\cs_hidden_from_my_children\ and you're told to copy a file to $CSDIR\cstrike\maps, copy the file to D:\stuff\cs_hidden_from_my_children\cstrike\maps\. ;)

You may want to download and apply the patches for the game, this isn't needed for this tutorial though. I installed the old CS 1.5 patch that doesn't require you to mess with Steam (should be called cs1005.exe in case you need to search it via google). You won't be able to play on the CS 1.6 servers with that version though (and it seems that 1.6 requires Steam), so you may need to get Steam to play on the internet. I only play against friends via LAN or VPN (or bots).

Ok, now that you've installed the game, let's have a look at creating levels for it. :)



Installing the CS mapping tools


Map Editor


The first thing you need is a proper map editor. There are several editors available. Just google for the files if the links are dead, they should still be mirrored somewhere. Make sure to get the HL entity lists (see the QERadiant link above, HL-entitylists.zip) if you decide to use Radiant.

I prefer Radiant to create Quake* maps, but decided to give Valve's Hammer Editor a try for CS.

Be sure to point your editor to the texture wad files you want to use (Tools -> Options -> Textures in Hammer). You should at least add $SCDIR\cstrike\cstrike.wad. You may also want add the $CSDIR\valve\halflife.wad.



Compiler and Frontend


You'll need a compiler to create the bsp file from your map file. All the command line tools you need (qcsg, qbsp2, vis, qrad) come with Hammer, they are in the /tools/ subdirectory of the Hammer installation directory.

You may want to install a nice guy to make compiling easier though. I recommend The Batch Compiler (TBC) by Ryan Gregg (Nem's Tools). You could also check out the Q2Beaver GUI(q2beaver400.zip) but it had trouble with long filenames when I tried it under Windows XP. Be sure to point your GUI to the tools in your Hammer directory (Options -> Setup -> Stage Paths for TBC).

There are also improved versions of the build tools called Zoner's Half-Life Tools (ZHLT). If you decide to use them, you may also want to get the ZHLT Compiler GUI for them. I tried both the original tools that come with Hammer and ZHLT, both worked.



Map distribution


You can use a tool like PakScape or PakExplorer to manage pak files. You can also get PakExplorer at the QERadiant website (pakexplr.zip).

It's more common to distribute CS maps as simple zip archives though. They are usually directed at the $CSDIR/cstrike directory. Some people distribute only the bsp file, but you should at least add a readme file and place it in a zip imo.





Ok, you should be ready to create your CS map by now. Hammer comes with good documentation that should get you started, read it. :)

The documentation deals with Half-Life rather then CS though, so I made a small sample map that shows you how to create the CS-specific stuff like buyzones, the spawns for the teams (terrorists and counter-terrorists) and a place where the bomb can be placed and armed. You can download the map, the archive includes the bsp, map and rmf file:

download cs_demomap.zip



Bots and Waypoints


There's quite a few bots for CS around, just ask google or check Bots United. I'm using PODBot 2.5 which works fine with CS 1.5 and I'm happy with it so far. I must admit that it's the only one I really tried though, and this bot is rather old and no longer under development. You can get it from betastrike.de atm, seach google for podbot25.exe if the link is dead.

You could also try PODBot MM or EPB.

You'll need to create the waypoints for your map. The procedure differs depending on the bot you chose. Check the documentation of your Bot software. It's usually easy to add the waypoints, but you'll have to do some playtesting to see how the bots behave in the beginning. Download some waypoints for other maps from the bot website and have a look at them to get started.







CS Mapping MiniFAQ


Many things in here can be seen in the CS demo map I released. Go ahead, download it and open the map file in your editor. The explanations here are very short and assume that you are familiar with basic editor functions, read the documentaion of your map editor if you don't know how to apply a texture or to create an entity.

  • Q: How do I create a buyzone?
  • A: Create a brush where you want the zone to be (around the player spawns usually) and apply the AAATRIGGER texture to it. Then choose Tools -> Tie to entity in Hammer and select func_buyzone. Don't forget to specify the team that can use the zone via the Team property.

  • Q: How do I create the zone where the terrors can plant the bomb for defuse maps?
  • A: Create a brush where you want the zone to be (you'll most likely want 2 of these zones per map) and apply the AAATRIGGER texture to it. Then choose Tools -> Tie to entity in Hammer and select func_bomb_target. You may also add an info_map_parameters entity to your map (just place it wherever you want) and set the bomb radius in its properties.

  • Q: The AAATRIGGER and/or SKYtextures are missing!
  • A: I got mine from \valve\halflife.wad that comes with Half-Life, add the wad to the texture resources in your editor.

  • Q: How do I create the spawns for terrorists and counter-terrorists?
  • A: Use the info_player_deathmatch (terrors) and info_player_start (counters) entities. Be sure to add enough of them!

  • Q: How do I create the map info text players see when the map is loaded?
  • A: If your bsp file is called de_mymap.bsp, create a plain text file and name it de_mymap.txt. Put the text in there with your favourite text editor.




Links, Resources and Credits


These websites still have some info on CS and came in handy: