Create a invade and defend map for Team Fortress Classic

== Introduction ==
In a Sequential Control map one team are the Attackers and the other the Defenders. The Attacking team must eventually capture the Defending team's HQ by first securing other command points. Examples of this style of map are Dustbowl and Avanti.
== Game Setup Entities ==
Every Team Fortress Classic map requires an info_tfdetect entity so that it can be distinguished from a normal Half-Life map. The other entities that are required are seperate spawn-points for each team - these will be covered later. There also needs to be one info_player_start.
info_tfdetect 
Attribute 	Value
Team 1 VGUI menu name (team1_name/)	#Dustbowl_team1
Team 2 VGUI menu name (team2_name) 	#Dustbowl_team2
The above controls the name of teams 1 & 2. The Dustbowl_team1 and Dustbowl_team2 come from the titles.txt in the halflife/tfc directory. Red is team 1 and Blue is team 2
info_player_start
This can be placed anywhere in the map.
A player entering the game starts here, before joining a team. Use the Angle: and the Pitch Yaw Roll (Y Z X) to point towards whatever you want the player to see.
== State Goals ==
The below goals are all info_tfgoal_timer's.
They give the defenders points every minute and inform the players how much time is left.
Defenders Points
This goal gives the Defenders 5 points every minute. The map lasts for 26 minutes, but this goal is not activated when the gates are down (when the attackers are not allowed out), so the total points given out will be the same as the total points the attackers can get from capturing all command points.
Attribute 	Value
Goal # (goal_no) 	22
Red point gain (increase_team2) 	5
Time between activations (search_time)	60
5 Minutes Left
The goals below are activated near the end of the game, telling the players how long is left.
Attribute 	Value
Activation Message-center print (broadcast)	#dustbowl_five_minutes_left
Speak (global) 	!dust_5min
Time between activations (search_time) 	1260
4 Minutes Left
Attribute 	Value
Activation Message-center print (broadcast)	#dustbowl_four_minutes_left
Time between activations (search_time) 	1320
3 Minutes Left
Attribute 	Value
Activation Message-center print (broadcast)	#dustbowl_three_minutes_left
Time between activations (search_time) 	1380
2 Minutes Left
Attribute 	Value
Activation Message-center print (broadcast)	#dustbowl_two_minutes_left
Time between activations (search_time) 	1440
60 Seconds Left
Attribute 	Value
Activation Message-center print (broadcast)	#dustbowl_sixty_seconds_left
Time between activations (search_time) 	1500
30 Seconds Left
Attribute 	Value
Activation Message-center print (broadcast)	#dustbowl_thirty_seconds_left
Time between activations (search_time) 	1500
== Starting Entities ==
This part of the tutorial focuses on the entities that control the opening of the gates at the start of the map.
These gates will stop the Attackers from getting out straight away, giving the Defenders a chance to set up a defense.
trigger_auto
Attribute 	Value
Target (target) 	gate_1_mm
Trigger State (triggerstate)	On
This entity is activated as soon as the map starts because its Trigger State is set to on.
multi_manager
Attribute 	Value
Name (targetname)(targetname)	gate_1_mm
gate_1 	90
start 	90
90_second_warning 	5
60_second_warning 	30
30_second_warning 	60
10_second_warning 	80
== Warning sounds ==
These info_tfgoals set up the sounds that tell the players how long it is until the gates open.
They are basically identical, but with different activation messages.
90 Seconds
Attribute 	Value
Name (targetname)(targetname) 	90_second_warning
Play Sound Path/name.wav (noise) 	misc/talk.wav
Activation Message-center print (broadcast)	#dustbowl_90_secs
Goal Effects bitfields (goal_effects) 	9
60 Seconds
Attribute 	Value
Name (targetname)(targetname) 	60_second_warning
Play Sound Path/name.wav (noise) 	misc/talk.wav
Activation Message-center print (broadcast)	#dustbowl_60_secs
Goal Effects bitfields (goal_effects) 	9
30 Seconds
Attribute 	Value
Name (targetname)(targetname) 	30_second_warning
Play Sound Path/name.wav (noise) 	misc/talk.wav
Activation Message-center print (broadcast)	#dustbowl_30_secs
Goal Effects bitfields (goal_effects) 	9
10 Seconds
Attribute 	Value
Name (targetname)(targetname) 	10_second_warning
Play Sound Path/name.wav (noise) 	misc/talk.wav
Activation Message-center print (broadcast)	#dustbowl_10_secs
Goal Effects bitfields (goal_effects) 	9
Gates Open
This goal activates the multi_manager that controls the message that is played as the gates open.
Attribute 	Value
Name (targetname)(targetname) 	start
Target entity with this targetname (target)	sirensound_mm
Play Sound Path/name.wav (noise) 	misc/talk.wav
Activation Message-center print (broadcast)	#dustbowl_gates_open
Goal Effects bitfields (goal_effects) 	9
== Sirensound Setup ==
These entities set up the sound that tells the players that the gates are open.
A normal door sound will only play in a certain radius; any player outside of that radius will not hear the door open. Doing it this way means that all the players in the game will know when the gates open.
multi_manager
Attribute 	Value
Name (targetname)(targetname)	sirensound_mm
sirensound 	0
sirensound#1 	4
gatestart 	0
gatestop 	0.9
ambient_generic 1
Attribute 	Value
Name (targetname)(targetname) 	sirensound
WAV Name (message) 	ambience/siren.wav
Fade out time (0-100) (fadeout)	50
Flags: Play Everywhere & Start Silent are ticked.
ambient_generic 2
Attribute 	Value
Name (targetname)(targetname)	gatestart
WAV Name (message) 	doors/doormove8.wav
Flags: Play Everywhere, Start Silent & Is NOT Looped are ticked.
ambient_generic 3
Attribute 	Value
Name (targetname)(targetname) 	gatestop
WAV Name (message) 	doors/doorstop8.wav
Fade out time (0-100) (fadeout)	50
Flags: Play Everywhere, Start Silent & Is NOT Looped are ticked.
func_door
These are the gates that open after 90 seconds, letting play begin!
Attribute 	Value
Name (targetname)(targetname) 	gate_1
Angle: 	Up
Goal Activation bitfields (goal_activation)	1
delay before close, -1 stay open (wait) 	-1
Lip (lip) 	-1
Speed (speed) 	150
== Capture Point 1 ==
This part of the tutorial focuses on the first capture point and the events that happen after that.
These events are the respawns being changed, everybody being forced to respawn and stopping the Defenders from scoring.
i_t_g
This is the place where the first flag must be brought to.
Attribute 	Value
Entity Reference name (for logging) (netname)	Capture Point 1
Goal # (goal_no) 	11
Team allowed to use goal (team_no) 	Blue
Has item # (items_allowed) 	1 (the Goal # of the first flag)
Stay active(sec), -1 stays (wait) 	10
Remove item from APA (axhitme) 	1 (The first flag)
Target entity with this targetname (target) 	cap1
Add/Subtract frags (frags) 	30
Add/Subtract health (health) 	100
Armor Value % (armor_value) 	300
Blue point gain (increase_team1) 	30
Owned by-for msg & item glow (owned_by) 	Blue
Message to A.Player-center print (message) 	#dustbowl_you_secure_one
Console msg, %s = AP name (netname_broadcast)	#dustbowl_blue_secures_one
Global Speak (speak) 	!DUST_CP1
Goal Result bitfields (goal_result) 	1 - remove immediately
multi_manager
This controls all the goals that move spawn points etc.
Attribute 	Value
Name (targetname)(targetname)	cap1
gate_2 	4
gate_3 	90
move_spawns_1 	0
force_respawn 	4
pause_scoring 	0
resume_scoring 	90
90_second_warning 	4
60_second_warning 	30
30_second_warning 	60
10_second_warning 	80
=== Gates ===
These are the gates (func_door) that were targetted by the above multi_manager.
Gate 2
This gate stops the players from getting to the first area of the map.
Place this door where you want it to be when it is closed ie. so it stops the players. The Starts open flag is ticked so it will start open at the start of the game so players can get past it.
Attribute 	Value
Name (targetname)(targetname) 	gate_2
Angle: 	Down
delay before close, -1 stay open (wait)	-1
Lip (lip) 	-32
Damage inflicted when blocked (dmg) 	10000(so the player would not be able to block the door without dying instantly)
Speed (speed) 	300
Flags: Starts Open is ticked.
Gate 3
This gate stops the attackers from attacking straight away so that the Defenders have time to set up.
Attribute 	Value
Name (targetname)(targetname) 	gate_3
Angle: 	Up
delay before close, -1 stay open (wait)	-1
Lip (lip) 	-32
Speed (speed) 	150
=== Capture Point 1 Goals ===
These are the goals that are activated by the multi_manager above, when the attacking team secure cap point 1.
Move Spawns 1
Attribute 	Value
Name (targetname)(targetname) 	move_spawns_1
Remove Spawn group # (remove_spawngroup)	1
Restore Spawn group (restore_spawngroup)	2
Force Respawn 1
This goal removes the first flag from the player holding it, respawns all the players, and since the spawns have been moved, they respawn at new places. 
Attribute 	Value
Name (targetname)(targetname) 	force_respawn
Remove item from APA (axhitme) 	1
Goal Effects bitfields (goal_effects)	9
Goal Result bitfields (goal_result) 	112
Stop Defenders Scoring
This goal stops the Defenders from scoring during the time that the gates are closed.
Attribute 	Value
Name (targetname)(targetname) 	pause_scoring
Remove goal # (remove_goal_no)	22
Restart Defenders Scoring
This goal lets the Defenders start scoring again, since the gates are now open.
Attribute 	Value
Name (targetname)(targetname) 	resume_scoring
Remove goal # (remove_goal_no)	22
== Capture Point 2 ==
This part of the tutorial focuses on the second capture point and the events that happen after that.
These events are, as before, the respawns being changed, everybody being forced to respawn and stopping the Defenders from scoring.
i_t_g
This is the place where the second flag must be brought to.
Attribute 	Value
Entity Reference name (for logging) (netname)	Capture Point 2
Goal # (goal_no) 	12
Team allowed to use goal (team_no) 	Blue
Has item # (items_allowed) 	2 (the Goal # of the first flag)
Stay active(sec), -1 stays (wait) 	10
Remove item from APA (axhitme) 	2 (The second flag)
Target entity with this targetname (target) 	cap2
Add/Subtract frags (frags) 	30
Add/Subtract health (health) 	100
Armor Value % (armor_value) 	300
Blue point gain (increase_team1) 	30
Owned by-for msg & item glow (owned_by) 	Blue
Message to A.Player-center print (message) 	#dustbowl_you_secure_two
Console msg, %s = AP name (netname_broadcast)	#dustbowl_blue_secures_two
Global Speak (speak) 	!DUST_CP2
Goal Result bitfields (goal_result) 	1 - remove immediately
multi_manager
This controls all the goals that move spawn points etc.
Attribute 	Value
Name (targetname)(targetname)	cap2
gate_2 	4
gate_3 	90
move_spawns_1 	0
force_respawn 	4
pause_scoring 	0
resume_scoring 	90
90_second_warning 	4
60_second_warning 	30
30_second_warning 	60
10_second_warning 	80
=== Gates ===
These are the gates (func_door) that were targetted by the above multi_manager.
Gate 4
This gate stops the players from getting to the first area of the map.
Place this door where you want it to be when it is closed ie. so it stops the players. The Starts open flag is ticked so it will start open at the start of the game so players can get past it.
Attribute 	Value
Name (targetname)(targetname) 	gate_4
Angle: 	Down
delay before close, -1 stay open (wait)	-1
Lip (lip) 	-32
Speed (speed) 	150
Flags: Starts Open is ticked.
Gate 5
This gate stops the attackers from attacking straight away so that the Defenders have time to set up.
Attribute 	Value
Name (targetname)(targetname) 	gate_5
Angle: 	Up
delay before close, -1 stay open (wait)	-1
Lip (lip) 	-32
Speed (speed) 	150
=== Capture Point 2 Goals ===
These are the goals that are activated by the multi_manager above.
The only ones not shown here are the warning sounds and the goals that Stop/Restart Defenders scoring since these are already made.
Move Spawns 2
Attribute 	Value
Name (targetname)(targetname) 	move_spawns_2
Remove Spawn group # (remove_spawngroup)	2
Restore Spawn group (restore_spawngroup)	3
Force Respawn 2
Attribute 	Value
Name (targetname)(targetname) 	force_respawn_2
Remove item from APA (axhitme) 	2
Goal Effects bitfields (goal_effects)	9
Goal Result bitfields (goal_result) 	112
== Capture Point 3 == 
This part of the tutorial focuses on the third capture point and the end of the map, where either the attackers win by capturing the base, or the defenders win by keeping the attackers away.
i_t_g
This is the place where the final flag must be brought to. 
Attribute 	Value
Entity Reference name (for logging) (netname)	Capture Point 3
Goal # (goal_no) 	13
Team allowed to use goal (team_no) 	Blue
Has item # (items_allowed) 	3 (the Goal # of the third flag)
Stay active(sec), -1 stays (wait) 	10
Remove item from APA (axhitme) 	3 (The third flag)
Target entity with this targetname (target) 	cap3
Add/Subtract frags (frags) 	50
Add/Subtract health (health) 	100
Armor Value % (armor_value) 	300
Blue point gain (increase_team1) 	50
Owned by-for msg & item glow (owned_by) 	Blue
Goal Result bitfields (goal_result) 	1 - remove immediately
multi_manager
The target of the 3rd capture point. 
Attribute 	Value
Name (targetname)(targetname)	cap3
end_game 	3
win_message 	1
info_tfgoal_timer
After 1560 seconds (26 mins) this goal is activated, which means that the Defenders have won.
If the Attackers had won, then the map would have already finished so this goal would not have been activated.
Attribute 	Value
Target entity with this targetname(target)	lose_mm
Time between activations (search_time) 	1560
multi_manager
The target of the above info_tfgoal_timer.
Attribute 	Value
end_game 	2
lose_message	0
== End Game Goals ==
Defenders Win
This goal is activated by the above multi_manager, if the Attackers have not captured the final base.
Attribute 	Value
Name (targetname)(targetname) 	lose_message
Activation Message-center print (broadcast)	#dustbowl_red_defends
Global speak (speak) 	!DUST_HOLD
Attackers Win
This informs the teams that the Attackers have won.
Attribute 	Value
Name (targetname)(targetname) 	win_message
Console msg, %s = AP name (netname_broadcast)	#dustbowl_blue_caps
Global speak (speak) 	!DUST_CAP
End Game
Attribute 	Value
Name (targetname)(targetname) 	end_game
Goal Result bitfields (goal_result)	4 - scores, intermission, end
== Flags ==
This part of the tutorial shows you how to make each of the three flags.
=== Flag 1 ===
item_tfgoal
The first flag. 
Attribute 	Value
Entity reference name (for logging) (netname)	Flag 1
Item # (goal_no) 	1
Model Path/name.mdl (mdl) 	models/flag.mdl
Model skin-varies per model (skin) 	2
Team allowed to use goal (team_no) 	Blue
Owned by-for msg & item glow (owned_by) 	Blue
Goal Activation Bitfields (goal_activation) 	676 (This value is determined by adding up the correct bit-fields)
Percentage of full speed (pausetime) 	75
Pause (stays on ground) seconds (pausetime) 	75
Activate/Restore goal on return (impulse) 	300 (the goal # of the first flag info_tfgoal)
Goal Result bitfields (goal_result) 	16 - Prevent Spy disguise (This will cause an enemy spy to lose their disguise when they pick up the flag)
Highlight HUD items bitvalue (items) 	Blue Logo
Message to A.Player-center print (message) 	#dustbowl_take_flag_one
Return to start msg, team (noise3) 	#2fort_your_flag_returned
Return to start msg, owners (noise4) 	#2fort_enemy_flag_returned
info_tfgoal
This info_tfgoal controls the messages that are printed on screen when the second flag is returned after being dropped by a player.
Attribute 	Value
Goal # (goal_no) 	300
Team allowed to use goal (team_no) 	Red
If goal # inactive (if_goal_is_inactive) 	11 (This is the goal # of the first capture spot. This goal will only work when the first capture spot is inactive.)
Owned by-for msg & item glow (owned_by) 	Blue
Activation Message-center print (broadcast)	#dustbowl_flag_returned
Speak (non AP team) (non_team_speak) 	!CTF_EFLAGBACK
Speak (owners team) (team_speak) 	!CTF_FLAGBACK
=== Flag 2 ===
item_tfgoal
The second flag. 
Attribute 	Value
Entity reference name (for logging) (netname)	Flag 2
Item # (goal_no) 	2
Model Path/name.mdl (mdl) 	models/flag.mdl
Model skin-varies per model (skin) 	2
Team allowed to use goal (team_no) 	Blue
Owned by-for msg & item glow (owned_by) 	Blue
Goal Activation Bitfields (goal_activation) 	676 (This value is determined by adding up the correct bit-fields)
Percentage of full speed (pausetime) 	75
Pause (stays on ground) seconds (pausetime) 	75
Activate/Restore goal on return (impulse) 	301 (the goal # of the first flag info_tfgoal)
Goal Result bitfields (goal_result) 	16 - Prevent Spy disguise (This will cause an enemy spy to lose their disguise when they pick up the flag)
Highlight HUD items bitvalue (items) 	Blue Logo
Message to A.Player-center print (message) 	#dustbowl_take_flag_two
Return to start msg, team (noise3) 	#2fort_your_flag_returned
Return to start msg, owners (noise4) 	#2fort_enemy_flag_returned
info_tfgoal
This info_tfgoal controls the messages that are printed on screen when the second flag is returned after being dropped by a player.
Attribute 	Value
Goal # (goal_no) 	301
Team allowed to use goal (team_no) 	Red
If goal # inactive (if_goal_is_inactive) 	11 (This is the goal # of the second capture spot. This goal will only work when the second capture spot is inactive.)
Owned by-for msg & item glow (owned_by) 	Blue
Activation Message-center print (broadcast)	#dustbowl_flag_returned
Speak (non AP team) (non_team_speak) 	!CTF_EFLAGBACK
Speak (owners team) (team_speak) 	!CTF_FLAGBACK
=== Flag 3 ===
item_tfgoal
The third flag. 
Attribute 	Value
Entity reference name (for logging) (netname)	Flag 3
Item # (goal_no) 	3
Model Path/name.mdl (mdl) 	models/flag.mdl
Model skin-varies per model (skin) 	2
Team allowed to use goal (team_no) 	Blue
Owned by-for msg & item glow (owned_by) 	Blue
Goal Activation Bitfields (goal_activation) 	676 (This value is determined by adding up the correct bit-fields)
Percentage of full speed (pausetime) 	75
Pause (stays on ground) seconds (pausetime) 	75
Activate/Restore goal on return (impulse) 	302 (the goal # of the first flag info_tfgoal)
Goal Result bitfields (goal_result) 	16 - Prevent Spy disguise (This will cause an enemy spy to lose their disguise when they pick up the flag)
Highlight HUD items bitvalue (items) 	Blue Logo
Message to A.Player-center print (message) 	#dustbowl_take_flag_HQ
Return to start msg, team (noise3) 	#2fort_your_flag_returned
Return to start msg, owners (noise4) 	#2fort_enemy_flag_returned
info_tfgoal
This info_tfgoal controls the messages that are printed on screen when the third flag is returned after being dropped by a player.
Attribute 	Value
Goal # (goal_no) 	302
Team allowed to use goal (team_no) 	Red
If goal # inactive (if_goal_is_inactive) 	13 (This is the goal # of the second capture spot. This goal will only work when the second capture spot is inactive.)
Owned by-for msg & item glow (owned_by) 	Blue
Activation Message-center print (broadcast)	#dustbowl_flag_returned
Speak (non AP team) (non_team_speak) 	!CTF_EFLAGBACK
Speak (owners team) (team_speak) 	!CTF_FLAGBACK
== Spawnpoints ==
This part of the tutorial shows how to set up the spawn points that are needed.
They are a slightly different setup than a CTF map. You will need 6 sets of spawnpoints altogether, 3 for the Defenders and 3 for the Attackers. The spawnpoints change after the first and second flags are captured.
All the spawnpoints are the info_player_teamspawn entity.
=== Spawn Points 1 ===
These spawn points are where the players start for the first capture point, at the start of the game.
Make at least 12 per team.
Blue 1
Attribute 	Value
Entity reference name (for logging) (netname)	Blue Spawn 1
Spawn Group # (group_no) 	1
Team allowed to spawn here (team_no) 	Blue
Activate goal # (activate_goal_no) 	100
Goal activation (goal_activation) 	3 - all get item/messages
Pass AP to Activated Goals? (goal_result) 	Yes
Red 1
Attribute 	Value
Entity reference name (for logging) (netname)	Red Spawn 1
Spawn Group # (group_no) 	1
Team allowed to spawn here (team_no) 	Blue
Activate goal # (activate_goal_no) 	200
Goal activation (goal_activation) 	3 - all get item/messages
Pass AP to Activated Goals? (goal_result) 	Yes
=== Spawn Points 2 ===
These spawn points are where the players start for the second capture point, after the first Cap Point was captured.
Make at least 12 per team.
Blue 2
Attribute 	Value
Entity reference name (for logging) (netname)	Blue Spawn 2
Spawn Group # (group_no) 	2
Initial State (goal_state) 	Removed
Team allowed to spawn here (team_no) 	Blue
Activate goal # (activate_goal_no) 	100
Goal activation (goal_activation) 	3 - all get item/messages
Pass AP to Activated Goals? (goal_result) 	Yes
Red 2
Attribute 	Value
Entity reference name (for logging) (netname)	Red Spawn 2
Spawn Group # (group_no) 	2
Initial State (goal_state) 	Removed
Team allowed to spawn here (team_no) 	Blue
Activate goal # (activate_goal_no) 	200
Goal activation (goal_activation) 	3 - all get item/messages
Pass AP to Activated Goals? (goal_result) 	Yes
=== Spawn Points 3 ===
These spawn points are where the players start for the third capture point, after the second Cap Point was captured.
Make at least 12 per team.
Blue 3
Attribute 	Value
Entity reference name (for logging) (netname)	Blue Spawn 3
Spawn Group # (group_no) 	3
Initial State (goal_state) 	Removed
Team allowed to spawn here (team_no) 	Blue
Activate goal # (activate_goal_no) 	100
Goal activation (goal_activation) 	3 - all get item/messages
Pass AP to Activated Goals? (goal_result) 	Yes
Red 3
Attribute 	Value
Entity reference name (for logging) (netname)	Red Spawn 3
Spawn Group # (group_no) 	2
Initial State (goal_state) 	Removed
Team allowed to spawn here (team_no) 	Blue
Activate goal # (activate_goal_no) 	200
Goal activation (goal_activation) 	3 - all get item/messages
Pass AP to Activated Goals? (goal_result) 	Yes
== Spawn Stuff ==
These info_tfgoal's are activated when a player spawns, giving each player their starting armor & ammo.
Goal 100
Attribute 	Value
Entity reference name (for logging) (netname)	Blue Team Spawn Stuff
Goal # (goal_no) 	100
Armor Value % (armorvalue) 	200
Armor Class (armortype) 	Normal
Add/Subtract shells (ammo_shells) 	200
Add/Subtract nails (ammo_nails) 	200
Add/Subtract rockets (ammo_rockets) 	30
Add/Subtract cells (ammo_cells) 	50
Add/Subtract grenades #1 (no_grenades_1) 	4
Add/Subtract grenades #2 (no_grenades_2) 	-4
Message to A.Player-center print (message) 	#dustbowl_bring_flag
Goal 200
Attribute 	Value
Entity reference name (for logging) (netname)	Red Team Spawn Stuff
Goal # (goal_no) 	200
Armor Value % (armorvalue) 	200
Armor Class (armortype) 	Normal
Add/Subtract shells (ammo_shells) 	200
Add/Subtract nails (ammo_nails) 	200
Add/Subtract rockets (ammo_rockets) 	30
Add/Subtract cells (ammo_cells) 	50
Add/Subtract grenades #1 (no_grenades_1) 	4
Add/Subtract grenades #2 (no_grenades_2) 	-4
Message to A.Player-center print (message) 	#dustbowl_protect_HQ
== Miscellaneous ==
In Dustbowl, when a capture point is captured, the signs around it change to show the Blue logo, and the actual cap-point changes - a Blue logo rises up and the poles disappear into the ground.
Most of the things that you want to happen when a capture point is captured can be controlled by the multi_manager that is targetted, eg. cap1
For this part of the tutorial there will be signs that change team, and a block that comes up covering the 1st capture point. (like in Dustbowl) These can easily be changed to work for the other capture points and can be changed for the effect you want.
=== Signs ===
Each sign consists of 2 func_wall_toggle, one that starts invisible.
Create a func_wall_toggle with the Red Team texture :
Attribute 	Value
Name (targetname) (targetname)	cap1sign
Now, create another one, in exactly the same position as the other, but with the Blue Team texture:
Attribute 	Value
Name (targetname) (targetname)	cap1sign
Flags: Starts Invisible is ticked.
Now in the cap1 multi_manager add this:
Attribute	Value
cap1sign 	0
When the cap-point is captured, the multi_manager is targetted, which then targets the cap1sign func_wall_toggle's, one which turns invisible (Red Texture) and one which appears (Blue Texture).
=== Moving Capture Point ===
This is done using a func_door.
Create a func_door in the place that you want it to end up ie. covering the cap-point. Change these properties:
Attribute 	Value
Name (targetname) (targetname) 	cap1move
Angle: 	Down
Delay before close, -1 stay open (wait)	-1
Lip (lip) 	-16
Damage inflicted when blocked (dmg) 	-1
Lip (lip) 	1000 (So that a player blocking it dies instantly)
Speed (speed) 	30
Move Sound (movesnd) 	Large rollers
Stop Sound (stopsnd) 	Light airbrake
Flags: Starts Open is ticked.
Lastly, in the cap1 multi_manager, add this:
Attribute	Value
cap1move 	0
When the multi_manager is activated it immediately targets the func_door (which starts open) making it move to cover the cap-point.
Other effects can be created in the same way. Make the effect that you want eg. ambient_generic to add sound, env_sprite to add explosions. Just call these a certain name and add that name to the multi_manager.
=== Spawnpoints ===
 In Dustbowl, after the first cap-point is captured the Attackers spawn in what was, previously, the Defenders respawn room.
This is not hard to make, just have 2 sets off spawnpoints in the same room, 1 for Defenders (spawn group 1) and 1 for Attackers (spawn group 2).
However, flag 2 starts in this room, and the Defenders should not be able to see it during round 1.
This is simply overcome by making a func_wall_toggle which covers the flag during round 1, when the Defenders spawn there, but which disappears when the Attackers spawn there for round 2.
Just call it cap1sign and it will disappear at the same time as the signs, above, change.
=== Timer Bar ===
In the respawns in Dustbowl, there are red bars which decrease showing how much time is left. They are simply func_doors which move very slowly.
Make a func_door 144 units long and change these:
Attribute 	Value
Name (targetname) (targetname) 	timerbar
delay before close, -1 stay open (wait)	-1
Damage inflicted when blocked (dmg) 	10000
Speed (speed) 	0.1
This works for a 26 minute game. If your map lasts longer then change the speed or the length of the bar to suit.
The timerbar must also be targetted as soon as the map starts, so add a trigger_auto:
Attribute 	Value
Target (target) 	timerbar
Trigger State (triggerstate)	On
This will target the timerbar as soon as the map starts.
== Messages ==
These are the text and voice messages that could be heard in the game.
===Text Messages===
These are some of the entries from the titles.txt in the halflife/tfc folder.
dustbowl_you_secure_one
You secured Command Point ONE!!
dustbowl_you_secure_two
You secured Command Point TWO !!
dustbowl_protect_HQ
Protect your HQ from the Blue Team !!
dustbowl_bring_flag
Bring your flag to Red's HQ !!
dustbowl_take_flag_one
Take the flag to Command Point ONE.
dustbowl_take_flag_two
Take the flag to Command Point TWO.
dustbowl_take_flag_HQ
Take the flag to Red's HQ!
dustbowl_grenades
Grenades!!
dustbowl_blue_secures_one
Blue Team Secures
Command Point ONE !!
dustbowl_blue_secures_two
Blue Team Secures
Command Point TWO !!
dustbowl_flag_returned
Flag has returned to base
dustbowl_blue_caps
Blue team captured
Red's Headquarters!
	dustbowl_90_secs
90 seconds till gates open.
dustbowl_60_secs
60 seconds till gates open.
dustbowl_30_secs
30 seconds till gates open.
dustbowl_10_secs
10 seconds till gates open.
dustbowl_gates_open
Gates are open !!.
dustbowl_red_defends
Red team successfully
defended their Headquarters!
dustbowl_five_minutes_left
Time remaining:
Five minutes
dustbowl_four_minutes_left
Time remaining:
Four minutes
dustbowl_three_minutes_left
Time remaining:
Three minutes
dustbowl_two_minutes_left
Time remaining:
Two minutes
dustbowl_sixty_seconds_left
Time remaining:
Sixty seconds
dustbowl_thirty_seconds_left
Time remaining:
Thirty seconds 
=== Voice Messages ===
These are some of the entries from the sentences.txt in the halflife/tfc/sound folder.
DUST_CP1
Blue team secured
command point one
DUST_CP2
Blue team secured
command point two
DUST_HOLD
red team holds
red base
DUST_CAP
Blue team captured
red base
DUST_5MIN
time remaining,
five minutes
	DUST_4MIN
time remaining,
four minutes
DUST_3MIN
time remaining,
three minutes
DUST_2MIN
time remaining,
two minutes
DUST_60SEC
time remaining,
sixty seconds
DUST_30SEC
time remaining,
thirty seconds 
Category:Team Fortress Classic Level Design