TF2C/Creating a VIP Map

From Valve Developer Community
Jump to: navigation, search

VIP is a game mode involving BLU escorting the "VIP", a randomly chosen player playing as the Civilian, a special class specifically designed to be weak but required to complete the objective, while the opposite team tries to prevent and/or assassinate them.

Despite VIP looking like a Control Points-based game mode, it is actually a fully modular game mode, and in theory can be applied to any kind of goal systems.

The prefix for VIP maps is simply "vip_".

Creating the base VIP logic

The minimum required entity for VIP is tf_logic_vip:

  • Is BLU escorting: Yes.
  • Switch teams on map win: Yes, if only one team has a VIP.
  • Bonus crit time: Set this to a few seconds, if you're making a normal VIP map.

This entity alone will already force one VIP on the BLU team.

Assuming your map has a round timer, you might also want to remove time whenever the VIP dies. To achieve this, you need to set up an output in your tf_logic_vip to your team_round_timer.

My Output > Target Entity Target Input Parameter Delay Only Once
Io11.png OnBlueVIPDeath team_round_timer Remove Time 30 0.00 No

Creating the control points

See Creating a Capture Point.

The tf_logic_vip entity already handles the control point logic perfectly well, it will force the VIP to be the only one that can capture control points on their team. You can build the control point logic as you would for any other Control Points maps.

The final control point, which would cause BLU to win, should be linked to a game_round_win entity, with the following settings:

  • Name: bluwin
  • Team: Blue
  • Switch teams on map win: Yes
  • Win reason: VIP escaped

team_control_point outputs:

My Output > Target Entity Target Input Parameter Delay Only Once
Io11.png OnCapTeam2 bluwin RoundWin 0.00 No

If you wish, you can set the control point's prop_dynamic model to be a small collision-less capture point model. This is what's used in vip_badwater, for example.

  • Model: models/props_doomsday/cap_point_small.mdl

Side points

Your map can offer "side points" which instead of advancing the team's path to the goal, only exists to grant additional time. Although none of the stock VIP maps uses it, a special hologram model exists for this type of control point, which shows a timer icon instead of the regular team icons. These are theoretically much more balanced in VIP maps than in non-VIP Control Points maps, since only one player can capture control points.

  • RED Model: models/effects/cappoint_hologram_vip.mdl
  • BLUE Model: models/effects/cappoint_hologram_vip.mdl
My Output > Target Entity Target Input Parameter Delay Only Once
Io11.png OnCapTeam2 team_round_timer Add Time 120 0.00 No

Permadeath

If you want the RED team to instantly win whenever the VIP gets killed, like for example vip_trainyard, you can simply link the tf_logic_vip entity to a new game_round_win entity:

  • Name: redwin
  • Team: Red
  • Switch teams on map win: Yes
  • Win reason: VIP eliminated

tf_logic_vip outputs:

My Output > Target Entity Target Input Parameter Delay Only Once
Io11.png OnBlueVIPDeath redwin RoundWin 0.00 No

Device

A VIP map can also feature a device that requires the VIP to carry it to the end of the map, like in vip_mineside. This is helpful to prevent cheesing caused by instantly transporting the VIP to the end of the map via a teleporter, for example.

If you want to implement this, create an item_teamflag entity with the following settings:

  • Name: flag_power
  • Game Type: VIP
  • Team: BLU
  • Return time (in seconds): 8
  • Use Trail Effect: None
  • Limit To Class: Civilian

In vip_mineside, the device also explodes whenever it despawns after getting dropped:

  • Explode on return: Yes
  • Explode particle: ExplosionCore_buildings
  • Explode sound: weapons/mirv_explode.wav
  • Explode damage: 100
  • Explode radius: 290

You may display a message whenever the VIP forgets to grab it. This can be achieved using a game_text_tf. You may display it via a trigger and the Display input.

  • Message Text: Grab the Device!
  • Icon: vip_icon
  • Audience: BLU
  • Background Panel Color: Blue

At this point, you can set up a func_capturezone, with the following outputs:

My Output > Target Entity Target Input Parameter Delay Only Once
Io11.png OnCapture flag_power Disable 0.00 No

Through this func_capturezone, you may make BLU instantly win, or temporarily unlock a control point via tf_logic_hybrid_ctf_cp and tf_logic_cp_timer like in vip_mineside for example. Remember to reenable the item_teamflag!

VIP Race

The tf_logic_vip entity supports more than one team with a VIP. When this happens, the map becomes a VIP Race map. There are no standards for a VIP Race map, since there are no official maps with this game mode, so go wild designing your own logic for this. It even supports 4team!

Community VIP Race logic includes:

  • Capturing the center control point to win
  • Capturing the opposing team's control point to win
  • Life system, if a VIP dies too many times, the other team wins

The prefix for VIP Race maps is "vipr_".