Player Destruction
What is Player Destruction?
Player Destruction is a spin on Robot Destruction which focuses on bringing team objectives to a deathmatch foundation. In this gamemode players will drop flags if they were killed or ‘finished off’ by another player. The objective is to bring these flags to the capture zone to score. Whoever has the most amount of flags on each team is given a dispenser, an outline, and a number above their heads indicating the number of flags they are carrying. The capture zone can be toggled on and off, and in Watergate it scrolls across the map shown on a timer on the HUD.
Entities needed to set up the gamemode
In order to set up the player destruction gamemode, the following entities are needed:
tf_logic_player_destruction
- Name: pd_logic
func_capturezone
- Name: capzone
- Start Disabled: Yes
My Output | Target Entity | Target Input | Parameter | Delay | Only Once | |
---|---|---|---|---|---|---|
OnCapTeam1_PD | pd_logic | ScoreRedPoints | 0.00 | No | ||
OnCapTeam2_PD | pd_logic | ScoreBluePoints | 0.00 | No |
logic_timer
- Name: pd_timer
- Refire Interval: time up to you. should be countdown time (X) plus capturing period (Y).
logic_auto
Other things you can do with tf_logic_player_destruction:
- OnRedScoreChanged <float> Sent when score changes, and is a value representing total progress from [0..1].
- OnBlueScoreChanged <float> Sent when score changes, and is a value representing total progress from [0..1].
- OnCountdownTimerExpired Sent when the countdown timer expires.
- SetCountdownTimer <integer> Set the countdown time and start the timer.
- SetCountdownImage <string> Set the countdown image.
Editing the HUD
The tf_logic_player_destruction entity includes the keyvalue ‘res_file’ which allows you to set the map up with an edited version of the existing PD HUD.
You can find the existing PD HUD in the tf/tf2_misc_dir.vpk file at resource/UI/HudObjectivePlayerDestruction.res. To make your own version of this (and custom maps can use the original) you will first need to make a copy of it and rename it for your map (“ExampleHUD.res”). Then inside add a few lines at the start and type:
#base "HudObjectivePlayerDestruction.res"
Inside of your map you can put the name of your custom .res file in the logic entity as so:
resource/UI/ExampleHUD.res
In your ExampleHUD.res file you can edit anything at all and it will show up in your map. You can change all the icons with custom packed icons, you can disable any element, you can change the background color of any element, etc.
Here is the .res file Watergate uses for example:
#base "HudObjectivePlayerDestruction.res" "Resource/UI/WatergateHUD.res" { "CarriedContainer" { "CarriedImage" { "image" "../hud/hud_invasion_bottle" } "TeamLeaderImage" { //"image" "<your image name>" } } "CountdownContainer" { "Background" { "image" "../hud/hud_invasion_greenbg" "teambg_2" "../hud/hud_invasion_greenbg" "teambg_3" "../hud/hud_invasion_greenbg" } "CountdownImage" { "xpos" "117" "ypos" "15" } } "ScoreContainer" { "ProgressBarContainer" { "FlagImageBlue" { "image" "../hud/hud_invasion_bottle" "zpos" "100" } "FlagImageRed" { "image" "../hud/hud_invasion_bottle" "zpos" "100" } } } }
Design Theory
Player Destruction is a mode that opens the door to more dynamic gameplay. It allows you to ‘turn off’ the capturezone and let the potential points build up in the map, before turning back on the capturezone to frantically spit points onto the HUD. It seems to necessitate places around the capturezone for teams to push and pull out of, rather than always fighting for the capturezone itself. Chasing after the team leaders (who have the most amount of points) when the capturezone was closed resulted in some of the most fun moments.
Watergate is a map with a layout like Hightower - a wider map that lets combat manifest at more places to give the map a more hectic pace, however this means that there is less teamplay because players can be farther apart from each other. In this sense it may be worth looking into a less wide layout like Viaduct that has teammates closer more often (teamplay in Watergate was a bit of an issue unless it came from some other source - like a veteran on the microphone).
In previous versions of Watergate there was a control point at the top of the tower that spawned extra pickups to the team that controlled it. This was really good for leading the players who weren’t good at deathmatch somewhere to feel like they could help their team, however it became the best option for all players including the team leaders which nullified the importance of holding any other section of the map - hence its removal. The focus on a dynamic objective means that holding points can manifest anywhere making combat feel fresh often.
External links
- Creating a PD map on TF2Maps
- PD Prefab example .vmf on TF2Maps