TF2/Player Destruction

From Valve Developer Community
< TF2
Jump to: navigation, search
Pd watergate header.jpg


What is Player Destruction?

Player Destruction is a spin on the Robot Destruction entities 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 capturezone 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 captuezone 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


logic_auto

My Output > Target Entity Target Input Parameter Delay Only Once
Io11.png OnMultiNewRound pd_logic EnableMaxScoreUpdating 0.00 No
Io11.png OnMultiNewRound pd_logic DisableMaxScoreUpdating 30.00 No


func_capturezone
Team: Red

My Output > Target Entity Target Input Parameter Delay Only Once
Io11.png OnCapTeam1_PD pd_logic ScoreRedPoints 0.00 No


func_capturezone
Team: Blue

My Output > Target Entity Target Input Parameter Delay Only Once
Io11.png OnCapTeam2_PD pd_logic ScoreBluePoints 0.00 No


Other things you can do with Player Destruction:

tf_logic_player_destruction:
Inputs:
SetCountdownTimer <integer> Set the countdown time and start the timer.
SetCountdownImage <string> Set the countdown image.
Outputs:
OnRedScoreChanged <float> Send when score changes, and is a value representing total progress from [0..1].
OnBlueScoreChanged <float> Send when score changes, and is a value representing total progress from [0..1].
OnCountdownTimerExpired Sent when the countdown timer expires.


Download the prefab: http://tf2maps.net/resources/pd-prefab.858/


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.

Pd watergate hud.jpg


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 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 packaged 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 Stuff

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 I had 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