[TUTORIAL] Adding a working control point to your map

Brandished

L5: Dapper Member
Jan 19, 2008
234
311
I was trying to make a flash based tutorial out of this, but failed badly, so I'd figure I'd post what I had. Anyways, here's the text portion of the tutorial I was working on, pictures to come later (maybe even a video if I can record it without screwing something up). I also have a tutorial for a three control point based map in the works as well.


How to make a 1 control point map:


This tutorial assumes you already know some hammer basics like how to add entities, make and alter brushes, etc.


(01) In this tutorial we'll be making a map with a single control point for TF2


(02) The Ingredients List


(03) A working 1 control point map needs these 5 entities to function:

- 1 "team_control_point_master"
- 1 "game_round_win"
- 1 "team_round_timer"
- 1 "team_control_point"
- 1 "trigger_capture_area"


(04) The following entity isn't required, but recommended. The control point will work fine without it:

- 1 "prop_dynamic"
world model: "models/props_gameplay/cap_point_base.mdl"
skin: "0"


(05) Intro:

To start out with, I've made a simple boxed shaped map with an info_player_start" entity in the center.


(06) The room is 768 units in width, 1024 units in length, and 512 units in height.

For this tutorial, I recommend using different textures for the floor, walls, and ceiling, it helps to distinguish between the surfaces when working in hammer's 3d view.

I used the "concrete/computerwall002" and "brick/brickwall002c" textures for the walls. For the floor and ceiling I used the "concrete/computerwall004" and "concrete/computerwall006b" textures.


(07) Step 1: Setting up the entities

1st thing I like to do is to set up the required entities for the map, I like to place to place these in the center of the map near the ceiling for easy access.


(08) Lets start with a "team_control_point_master"
Name it "master_control_point"
Close the properties window


(09) Next is the "game_round_win" entity
Name it "game_win_lose"
Close the properties window


(10) Followed by the "team_round_timer"
The timer length (in seconds) is set to "600" (10 minutes) by default.

Since this is a super small test map, change this to "90" (1.5 minutes)


(11) Name it "game_timer"
Change "Start paused" to "No"


(12) Click on the outputs tab and add the following values:

Output named: "OnFinished"
Target Entity: "game_win_lose"
Input: "RoundWin"

Close the properties window


(13) Step 2: Adding the control point


(14) When adding control points, you should place some type of marker on the ground to indicate where the capture area is.

I'm doing this with a small rectangular brush to act as a platform. I'm made mine 384 units by 256 and texturing it with the "METAL/IMETAL005" texture


(15) Clip off a 16 unit wide border from the sides of the brush and texture them with the 'props/hazardstrip001a"


(16) Now select the whole platform and tie it to a "func_detail" (for optimization)


(17) First thing to add for the control point is the base.

- Create a "prop_dynamic" centered over the platform
- Set world model to: "models/props_gameplay/cap_point_base.mdl"
- Click "apply"
- Name it "cap_base_center"

Close the properties window


(18) Now add a "team_control_point" entity centered over the base.
Name it "control_point_center"
For "Print Name" enter "Central Control Point"
Close the window


(19) And lastly, create a rectangular brush over the platform and texture it with the "trigger" texture


(20) - Tie it to the "trigger_capture_area" entity

- Name it "capture_area_center"

- Set "Control point" to "control_point_center"
(what the "team_control_point" was named)


(21) Now click on the Outputs tab and add the following values:

- Output named > "OnCapTeam1"
- Target Entity > "cap_base_center"
- Input > "Skin"
- Parameter override > "1"

(this output changes the bases glow to red when the red team caps the point)


(22) Click add again and use these values:
- Output named > "OnCapTeam2"
- Target Entity > "cap_base_center"
- Input > "Skin"
- Parameter override > "2"

(this output changes the bases glow to blue when the blue team caps the point)

(23) Close the window


(24) And now the control point is done, but not the map. We still need to add an "info_player_teamspawn" so players don't spawn in the void.


(25) Now we're finished with the map, save the map as "cp_test_map"
And go to: File > Run Map
To compile the map into something playable


(26) This concludes the tutorial.
 
Last edited:

LouisArmstrong

L1: Registered
Nov 18, 2008
10
0
Hey guys, so im pretty new to mapping in TF2, and i was trying to follow adding a working control point to your map, but i got lost at "adding a trigger area" to the point and you kept mentioning "just tie it to a func_trigger or something" and i was wondering what those 2 things are? i couldnt find the function in the entities list and i am unsure how to make a trigger area?

any help? thanks guys

:) :)
 

Palamag

L1: Registered
Nov 22, 2009
18
0
Big trouble

Hello, i have big trouble making a 3 cp map.
You start by capturing 1 cp and then the two other are suppose to unlock but i can't manage to make them unlock.
I've tried doing some output on my first cp but nothing will work.
I need help please.
 

Palamag

L1: Registered
Nov 22, 2009
18
0
I've done this but there only a 3 cp gravel pit style map. I don't know how to ajust it to make it different.

In gravel pit you need to cap 2 cp to be able to cap the last one.
I want to make it so you need to cap the first one to be able to cap the two other.
 

cyked

L3: Member
Dec 18, 2009
132
89
You could always ask the guy who made cp_heaven how he went about doing it.
 

my_hat_stinks

L1: Registered
May 26, 2010
20
6

I use "RED/BLUE Previous Required Point" to set the order, I find it easier

You can find this in the team_control_point.
If you don't use "Smartedit" it's called "team_previouspoint_2_0" where 2 is red and can be changed to 3 for blue, and 0 is the first required cap point (can set up to 3 using smartedit, not sure if you could go higher)

Also, set to itself you don't need anything before it
Hope I helped:)