Difference between revisions of "TF2/Making an Arena map"

From Valve Developer Community
< TF2
Jump to: navigation, search
(Removed area, simply because prefabs are freakin gay.)
(Removed the instruction to recreate pointless broken I/O connection from lumberyard.)
Line 272: Line 272:
 
| [[Image:Io11.png]] || OnCapTeam2 || prop_cap_1 || Skin || 2 || 0.00 || No
 
| [[Image:Io11.png]] || OnCapTeam2 || prop_cap_1 || Skin || 2 || 0.00 || No
 
|-
 
|-
| [[Image:Io11.png]] || OnEndCap || relay_resettimer || Trigger || <none> || 0.00 || No
+
 
|-
 
 
|}
 
|}
  
{{note|The last output will show as a broken one}}
+
 
  
  

Revision as of 07:53, 13 September 2008

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 article will tell you how to set up the Arena gamemode.


Arena gamemode entities

First we'll need an entity to check when a team captures the center control point.

Property Name Value
Name master_control_point
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnWonByTeam1 counter_red_win Add 1 0.00 No
Io11.png OnWonByTeam2 counter_blu_win Add 1 0.00 No

This adds the value of 1 to the math_counters we're about to make. It makes sure the game ends after the amount of wins you want in your map.

This entity will make sure your team wins the match after the specified amount of rounds. It also triggers a text on-screen that tells you your team want. Change the Maximum Legal Value to the amount of wins required to win the match. Don't forget to change it on the second math_counter too.

Property Name Value
Name counter_red_win
Maximum Legal Value 3
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnHitMax text_red_game_win Display <none> 0.00 No
Io11.png OnHitMax end_game EndGame <none> 6.00 No


This is the same as above, but for the blue team.

Property Name Value
Name counter_blu_win
Maximum Legal Value 3
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnHitMax text_blu_game_win Display <none> 0.00 No
Io11.png OnHitMax end_game EndGame <none> 6.00 No


This text will be displayed when the red team wins.

Property Name Value
Name text_red_game_win
Message Text Red Wins the Game!
Color2 240 0 6
  • Check the "All players" flag.


This text will be displayed when the blue team wins.

Property Name Value
Name text_blu_game_win
Message Text Blue Wins the Game!
Color2 0 0 240
  • Check the "All players" flag.

This entity ends the game when your team has reached the score limit.

Property Name Value
Name end_game


You probably already have this entity in your map. This enables stalemate to be triggered when the time limit is up.

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn tf_gamerules SetStalemateOnTimeLimit 1 0.00 No
Note:This will display as a broken output.

This entity will be used to send an output when a round starts and when the control point is enabled. Specify the amount of seconds you want before it's activated here. 60 is the default setting.

Property Name Value
CapEnableDelay 60
Note:This entity does not exist in the tf.fgd file, so you'll have to enter the keyvalues and outputs manually.


  • Save your map, close it in hammer and open it in notepad.
  • Press ctrl+F and search for tf_logic_arena
  • 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"
}


  • Save the vmf and close notepad.
  • Open the modified vmf in Hammer

Now the outputs in the tf_logic_arena should look like this:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnCapEnabled cap_flag ShowModel <none> 0.00 No
Io11.png OnArenaRoundStart relay_round_start Trigger <none> 0.00 No
Io11.png OnCapEnabled relay_cap_enable Trigger <none> 0.00 No

The first output displays the model for the control point when it has been enabled. The other two triggers the relays for the round start and control point activation.

This will be used for outputs when the round starts. The reason we made the tf_logic_arena trigger a relay, instead of having the outputs in itself, is because it's easier to change the relay outputs than the tf_logic_arena outputs in notepad.

Property Name Value
Name relay_round_start


This will be used for outputs when the control point is enabled.

Property Name Value
Name relay_cap_enable

That's about it for the basic gamemode.

Control point setup

Now we'll set up the center control point entities.

This is the base model for the control point. It will be configured to change skin when a team captures it.

Property Name Value
World Model models/props_gameplay/cap_point_base.mdl
Name prop_cap_1

This is the control point.

Property Name Value
Name cap_flag
Print Name #Arena_cap
Index 3
BLUE model bodygroup 0
  • Check the "Start with model hidden" flag. This is because it will be displayed when the control point is enabled


This is the trigger area, that will let the teams capture it after it's enabled. You can modify these values to suit your map.

Property Name Value
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
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnCapTeam1 prop_cap_1 Skin 1 0.00 No
Io11.png OnCapTeam2 prop_cap_1 Skin 2 0.00 No



That's it! It should be working now. Don't forget to add a spawnroom if you want to try it out.

What you might want to add, is for the relay_round_start to trigger the spawndoors to open.

Now, if you test your map, you will notice the server will wait for players. Open up the console and write sv_cheats 1;bot. This will add a bot to the server and lets you play the map.