TF2C/Creating a VIP Map

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
	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
	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
	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
	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
	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_".
Category:Level Design
Category:Team Fortress 2 Classic