SCTF: Sequential Capture The Flag

This is a tutorial on how to create Sequential Capture the Flag, in TF2 All you need is at least 2 flags per team, this example will show you how to do 4 flags per team.

If you feel comfortable with the basics, or if you'd like to make ctf, more challenging and more complex, then this tutorial will get you in the right direction. Valve has already included the ability for sequential ctf, it's only in how it is setup that it gets confusing.

Before you even try to do this in your map, you have to remember one thing: The players need to know where to go, and when! One flag is easy, when you have up to 4, as this tutorial will show, you can confuse players easily. If you try this concept, you must include identifiers, so players know what flags are active. This is explained in detail as you read this tutorial. The way to identify the active flag can be done by a sign, hud element, and or sound.

The source files, and map can be downloaded here.

Place the .rar in the following directory: C:\Program Files\Steam\steamapps\(my_user_name)

news post image

This will install the .vmf file into your sourcesdk_content/tf/mapsrc folder and the custom images for the ident_signs to their directory. (toy/materials/props... because these are used in the mod i'm working on, feel free to use these images, or change the directory if needed. Normal maps are included as well. By modifying the stock gate overlays, i've included flag number overlays for use at the flag zones, as shown below: 8 total

news post image

You'll need pakrat for adding these files to your map, for distribution purposes.

Also included are 2 prefabs, one for each team:


If you have installed this as shown, you'll have everything in place. Feel free to open up the .vmf file in hammer as we go through this...

The map included has support for up to 4 flags on each team, and it will even revert back to flag 1 for an endless amount of flag captures. I'll use the blue team in this tutorial, you can see everything else, which is the same for red in the map.

This is how the first capturezone ( blue_intel_cap )on blue should look:

news post image

The func_capturezone only needs to disable itself and enable the next on that flag's capture.

This is how the first flag ( blue_flag1 ) on blue should look:

news post image

You'll notice i have a 10 second delay, before the second flag is spawned. This is completely optional, i have made it this way, so the opposing team is not waiting at the second cap, grabbing your intel before you have a chance to at least move in that direction.
I'll get into the _cap_ident outputs once we finish the basics on flags, and capturezones.

This is how the second capturezone ( blue_intel_cap_2 )on blue should look:

news post image

This should be getting alot easier for you now, basically the same thing as before, just going up one, and disabling the prior cap.

This is how the second flag ( blue_flag2 ) on blue should look:

news post image

Remember to make sure you are doing everything in sequence.

This is how the third capturezone ( blue_intel_cap_3 )on blue should look:

news post image

blah, blah, blah

This is how the third flag ( blue_flag3 ) on blue should look:

news post image

Now you'll see i have an extra output. I thought it would be a good feature to have the last flag more difficult to capture. In this example you cannot get near the last flag, untill after the third flag is captured. This allows time for the other team to build up a defense. This is purely optional, i just have it setup this way for the toysoldiersmod, and your map would have to be made to fit this scheme, to work well.

This is how the fourth capturezone ( blue_intel_cap_4 )on blue should look:

news post image

You'll notice here that i call back to the first capturezone, if you wanted to do more than 4 flags per round. If you're only doing 4, don't worry, this will still work.

This is how the fourth flag ( blue_flag4 ) on blue should look:

news post image

A little more going on here, same principle. This also allows the respawnvisualizer to be reenabled. Now you are back to the first flag, or it's the end of the round, your choice in the server config. One thing i would recommend is the following: Don't force the count in your map! If you only have 2 flags for example, make it revolve back to 1 after flag 2.

Now for the flag identifiers. I have included support for spawn room idents in this map. This is based off the included prefabs. The same principle can be added to the flag rooms or other areas of your map, it's all up to you.

Here you'll see the preliminary ident_sign i made up for the spawn rooms, blue ( blue_flag_ident_sign.vmf ) for this example:

news post image

Each of the func_brushes are named:


...and the same for the red sign accordingly.

The sign is made up of brushes, simple and easy to identify. You can use a func_brush as i did, due to the ability to support the Start Disabled function. *You need this function so that when the map starts you can have an active first flag, and have it called by each flag when captured. Remember that this first func_brush needs to be set as: StartDisabled:No In this example, you have a sign that shows the player what flags they currently need to protect. You can take this concept further by adding ident_signs to each flag room, so in case a player goes to that flag, and there is nothing there, he or she could look at the sign and go the active flag.

This is the second func_brush, same as the first, but StartDisabled is Yes!

news post image

The second identifier and all afterwards have to be set to Start Disabled:Yes

There are no outputs to set, you'll see the inputs in the map file, as they are called from the Oncapture event outputs for each flag. What you should do is make the func_brushes color correct, the colors i used, that are the rgb outputs from each team logo's are:

Red: 163 87 75
Blue: 75 113 128

There are other ways to make the identifiers, this is just an example. In a compiled version you'll get a glow effect using the included example. If you use a spotlightfx render, you'll get a flashing func_brush as well. Just remember that you need the StartDisabled option on the brush or ent that you would want to use, for this to work correctly.

Here is an in-game shot using the red ident sign ( prefab ) that's included:

news post image

This is a work in progress, to add more options to standard ctf gameplay. I welcome any thoughts on this concept. This gamemode will hopefuly add more excitement to the standard versions you are used to.

I'd like to have the community add to, and improve this gametype, i'd adds alot to standard ctf. Please contact me if you'd like to collaborate on this. I have also noticed that this is not viewable by, unregistered users. Hopefully this can be added to the regular tutorial thread after some tweaking.

I'm hoping to have a playtest on the first map in http://toysoldiersmod.com available in the next week or so, so you can see this in action.

I'm finishing up a hud system for better "ident" of what flag is active, to further make things easier for players. You can easily add custom sounds, ie: 1-beep, 2-beep... etc for each flag, using an ambient_generic. If you do this, you must include the outputs within the item_teamflag. This gametype promotes more team communication, and a good alternative to standard ctf, i hope you enjoy it. For this to be even easier, i would appreciate some thoughts on how the signs should look, and act. This way mappers can just use the same prefabs. This way there is some type of universal look to them. I would also like to do a collaboration on the hud elements, contact me if you'd like to do some work on a matching hud system for this gametype.

I'm calling this: Version 1.0, as i'm sure there are other options that could be added to this.


View comments ( 4 )

Back to top