Attack / Defense Pass Time Prefab

Attack / Defense Pass Time Prefab 2020-04-09

Flipy

I like foxes
aa
Jul 20, 2016
170
1,019
Attack / Defense Pass Time Prefab - A setup of entities that enable a 3cp attack/defense map using the passtime jack to score

Download is a .zip with a fast compile bsp, and a vmf for inspection or copy/pasting needs

R E A D M E and E L A B O R A T I O N

To help better explain the setup of the prefab and mode, heres a general rundown of what is inside the prefab
  • 3 blue spawns / 3 red spawns correlating to each current CP
  • 3 goals and matching relays to be run on a scored goal
    • The only output on goals right now is to run the relay, all intended outputs can be seen by checking the relays
  • 3 ball 'spawns' and a ball spawn station outside the standard map
    • Its important to note, multiple ball spawn entities does not seem to function at all, so to get around that a ball spawns outside in a box and a trigger_teleport sends it to the desired location
  • Janky path_tracks for tracking the balls progress in the map for each point
For more specifics of whats going on,
  • Instead of standard capture triggers matched up with a team_control_point, passtime_goal entities are used to control capturing
  • Given the attack/defense setup, each passtime_goal uses an OnScoreBlu to run a relay which SetsOwner, disables the current goal brush / spawns, and enables the next goal / spawns.
  • You ABSOLUTELY have to ensure you disabled old goal triggers after they have been captured
  • Likewise, if you are changing where you want the ball to spawn, you should disable the old teleport and enable the new teleport trigger
  • For the last goal, you simply need to run the effects and capture the final CP / send a RoundWin to the proper entity to end the round.
  • VEEEERY IMPORTANTLY you need to have a passtime_goal set for RED TEAM ONLY that coveres the entirety of your active playspace (how you fit it is up to you, I was lazy for the prefab and just made a big box around everything) and set it for 0 POINTS / BALL HOLDING PLAYERS
    • If you fail to do this, red team can grab the ball and run away completely breaking the entire match. Adding this trigger instantly caps the ball for 0 points when red team grabs it, respawning it for blue team.
    • A knock on effect of this trigger is red team getting crits for ~5 seconds when grabbing the ball. I theorize you could counteract this with a add_player_condition trigger to disable crits on a red capture, but I worry this might interfere with pre-existing crit conditions like frontier justices / kritzkriegs. Experiment with it if you wish
    • Also make sure that wherever the ball respawns is easily defended by blue team and that your ball respawn time is greater than 5 seconds. Otherwise a red player can stand on the ball spawn and have infinite crits.
  • Lastly you'll notice the path tracks around the map branching to each goal. These are how the gamemode determines how far along the path a ball is for the next goal. I only used 4 nodes to demonstrate the concept, but it is a bit jank and could do with refinement in your own use cases. It would work better in a linear progressive map rather than this small square with all the goals next to each-other in space.
    • The documentation for how to use these paths is a bit jank so ill give it a quick explenation
    • Set the number of paths / sections you want in the passtime_logic entity.
    • For 3 cps, set sections to 2. (section 0, section 1, and section 2)
    • When you want to switch what section is being actively tracked, you send a SetSection input to passtime_logic
    • the syntax is <section number> <starting path track name> <ending path track name> seperated by spaces
    • the VDC recommends that you have all your path_tracks in a section connected, though technically you dont need to this.
Recommendations / stuff not in the map currently
  • I think the respawnroomvisualisers used to stop players from entering the goal areas are set to improper respawn rooms right now and dont function? It *should* work but if it doesent for you I recommend experimenting around with what respawnroom they are tied to so that neither team may enter.
    • Very importantly, you have to use visualiers to stop players from entering goal zones since any other type of clip will ALSO block the ball
  • This may not be necessary depending on how you set up your map, but I recommend adding blockers (just a door or something) infront of inactive goals to avoid someone throwing the ball and nobody being able to reach it until its auto reset.
  • If you are going to make a pass a/d map, I recommend trying a more linear progression through the map instead of having some sort of branching paths middle. Passtime will have a much clearer progression if the map continues on linearly because only the person holding the ball is given a visual showing where the goal is.
  • Feel free to add capture points to the map to represent each point, but if you do a linear map you dont need to have a hud element to convey what point you are currently working toward.
  • If you want to do 2 cp instead of 3 cp, adjust the relays on the first capture point to enable point 3 / respawns 3 instead of point 2 / respawns 2. I did 3 CP for this because I felt 2 CP may go by too fast unless youre doing a multi stage experience.
That was a lot of random misc stuff being covered, but ultimately if you copy/paste content and just properly rename inputs / outputs when adapting it to your map, you shouldn't have any issues.

The prefab was slapped together in like 3 hours so if you have any issues or questions let me know and I'll see what I can do to help you troubleshoot

Images:
upload_2020-4-9_18-58-7.png

upload_2020-4-9_18-58-43.png
 

Spipper

Former cheese man Gorgonzola
aa
Feb 18, 2012
246
407
A knock on effect of this trigger is red team getting crits for ~5 seconds when grabbing the ball.

You can prevent the scoring team from getting crits by setting the points keyvalue to -1. However, this might only work with neutral goals, but you can enable/disable the goal with the OnBallGetRed and OnBallRemoved.

Also, you can maybe prevent the red team from picking up the jack at all with player attribute 400, which prevents players from picking up flags AND the jack (its the attribute used for the rocket jumper). I haven't tested this however so I don't know if it works.
 

Flipy

I like foxes
aa
Jul 20, 2016
170
1,019
You can prevent the scoring team from getting crits by setting the points keyvalue to -1. However, this might only work with neutral goals, but you can enable/disable the goal with the OnBallGetRed and OnBallRemoved.

Also, you can maybe prevent the red team from picking up the jack at all with player attribute 400, which prevents players from picking up flags AND the jack (its the attribute used for the rocket jumper). I haven't tested this however so I don't know if it works.


I tried the -1 score actually! I think doing so overrides properties of the trigger though and turns it into a complete no ball zone. Anytime the ball spawned it was instantly deleted, regardless of team or even being held

Ill try to test the player condition when I get the chance, my only lament is I dont dislike the idea of red being able to reset the ball, I just dont want the crits

Iirc theres a server condition that disables crits on flag captures as well I may turn on for a test or two of the mode