TF2/Making an Arena map

From Valve Developer Community
< TF2
Revision as of 14:33, 20 August 2008 by Acegikmo (talk | contribs)
Jump to navigation Jump to search

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 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 "sv_cheats 1" and "bot" in the console and it'll add a player for you, allowing you to test the map