|  |   | 
| Line 1: | Line 1: | 
|  | Arena is a new gamemode for TF2 that came along with the heavy update.
 |  | 
|  | In this gamemode, you don't respawn until your whole team is dead.
 |  | 
|  | The goal is to kill everyone on the enemy team, or to capture the center control point of the map.
 |  | 
|  | The control point is locked for 60 seconds in Valve's Arena maps, and cannot be captured until it's unlocked.
 |  | 
|  | 
 |  | 
 | 
|  | This tutorial will show you how to set up the Arena gamemode exactly as it is in arena_lumberyard.
 |  | 
|  | 
 |  | 
|  | For those of you who doesn't want to go through the tutorial; I've made a prefab with the entities and settings ready, get it [http://www.fileden.com/files/2008/5/7/1901107/gamemode_arena.vmf Here]
 |  | 
|  | 
 |  | 
|  | Place it in this folder: $SteamUserDir\sourcesdk\bin\orangebox\bin\prefabs\
 |  | 
|  | 
 |  | 
|  | == Tutorial ==
 |  | 
|  | 
 |  | 
|  | '''1.''' Add the following entities:
 |  | 
|  | 
 |  | 
|  | '''team_control_point_master'''
 |  | 
|  | 
 |  | 
|  |  Name: master_control_point
 |  | 
|  |  OnWonByTeam1 | counter_red_win | Add | 1
 |  | 
|  |  OnWonByTeam2 | counter_blu_win | Add | 1 
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''math_counter'''
 |  | 
|  | 
 |  | 
|  |  Name: counter_red_win
 |  | 
|  |  Maximum Legal Value: 3
 |  | 
|  |  OnHitMax | text_red_game_win | Display
 |  | 
|  |  OnHitMax | end_game | EndGame | <none> | 6
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''math_counter'''
 |  | 
|  | 
 |  | 
|  |  Name: counter_blu_win
 |  | 
|  |  Maximum Legal Value: 3
 |  | 
|  |  OnHitMax | text_blu_game_win | Display
 |  | 
|  |  OnHitMax | end_game | EndGame | <none> | 6
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''game_text'''
 |  | 
|  | 
 |  | 
|  |  Name: text_red_game_win
 |  | 
|  |  Message Text: Red Wins the Game!
 |  | 
|  |  Color2: 240 0 6
 |  | 
|  |  Check the "All players" flag.
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''game_text'''
 |  | 
|  | 
 |  | 
|  |  Name: text_blu_game_win
 |  | 
|  |  Message Text: Blue Wins the Game!
 |  | 
|  |  Color2: 0 0 240
 |  | 
|  |  Check the "All players" flag.
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''game_end'''
 |  | 
|  | 
 |  | 
|  |  Name: end_game
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''logic_auto'''
 |  | 
|  | 
 |  | 
|  |  OnMapSpawn | tf_gamerules | SetStalemateOnTimelimit | 1 ''(This will appear as a broken Output)''
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''logic_relay'''
 |  | 
|  | 
 |  | 
|  |  Name: relay_round_start
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''logic_relay'''
 |  | 
|  | 
 |  | 
|  |  Name: relay_cap_enable
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''tf_logic_arena'''
 |  | 
|  | 
 |  | 
|  |  CapEnableDelay: 60
 |  | 
|  | 
 |  | 
|  | ''This entity does not exist in the tf.fgd file, so you'll have to enter the keyvalues yourself.''
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''2.''' Save your map, close it in hammer and open it in notepad.
 |  | 
|  | 
 |  | 
|  | '''3.''' Press ctrl+F and search for tf_logic_arena
 |  | 
|  | 
 |  | 
|  | '''4.''' Add this text above "origin":
 |  | 
|  | 
 |  | 
|  |  ''connections
 |  | 
|  |  {
 |  | 
|  |  		"OnCapEnabled" "cap_flag,ShowModel,,0,-1"
 |  | 
|  |  		"OnArenaRoundStart" "relay_round_start,Trigger,,0,-1"
 |  | 
|  |  		"OnCapEnabled" "relay_cap_enable,Trigger,,0,-1"
 |  | 
|  |  }''
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''5.''' Save the vmf and close notepad.
 |  | 
|  | 
 |  | 
|  | '''6.''' Open the map in Hammer and add these control point entities:
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''prop_dynamic'''
 |  | 
|  | 
 |  | 
|  |  World Model: models/props_gameplay/cap_point_base.mdl
 |  | 
|  |  Name: prop_cap_1
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''team_control_point'''
 |  | 
|  | 
 |  | 
|  |  Name: cap_flag
 |  | 
|  |  Print Name: #Arena_cap
 |  | 
|  |  Index: 3
 |  | 
|  |  BLUE model bodygroup: 0
 |  | 
|  |  Check the "Start with model hidden" flag.
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''trigger_capture_area'''
 |  | 
|  | 
 |  | 
|  |  Name: cap_trigger
 |  | 
|  |  Control point: cap_flag
 |  | 
|  |  Number of RED players to cap: 3
 |  | 
|  |  Number of BLUE players to cap: 3
 |  | 
|  |  Time to cap (sec): 4
 |  | 
|  |  OnCapTeam1 | prop_cap_1 | Skin | 1
 |  | 
|  |  OnCapTeam2 | prop_cap_1 | Skin | 2
 |  | 
|  |  OnEndCap | relay_resettimer | Trigger
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | That's it!
 |  | 
|  | It should be working now. Don't forget to add a spawnroom if you want to try it out.
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | == Q & A ==
 |  | 
|  | 
 |  | 
|  | '''How do I make something happen when a round starts? Such as opening spawnroom doors.'''
 |  | 
|  | 
 |  | 
|  | ''The logic_relay named relay_round_start will trigger when a round starts.''
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''How do I make something happen when the control point is activated?'''
 |  | 
|  | 
 |  | 
|  | ''The logic_relay named relay_cap_enable will trigger when the control point is activated.''
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''How do I modify the time it takes before the control point is activated?'''
 |  | 
|  | 
 |  | 
|  | ''In the tf_logic_arena entity, change the CapEnableDelay to the amount of seconds you want.''
 |  | 
|  | 
 |  | 
|  | 
 |  | 
|  | '''How do I test my map? It's waiting for players all the time'''
 |  | 
|  | 
 |  | 
|  | ''Write <code>"sv_cheats 1;bot"</code> in the console and it'll add a player for you, allowing you to test the map''
 |  |