NOTE! This will be updated as time goes on! Feel free to suggest things and I might add them!
Most of this information has not been tested recently, most of it being done around 8/19/15.
Special thanks to MugWench for figuring out some of this!
New Point Entities:
passtime_logic
New Brush Entities:
trigger_catapult
This was in Portal 2!
You must have all of the following, or the map will crash/not load:
For the game to be played you'll also need goals and noball areas, but you need these to prevent crashes.
The Ball Itself:
The dynamic entity that is the Jack (that's the name of the ball) is conveniently named passtime_ball, and you can spawn them with ent_create. Ones not spawned by the info_passtime_ball_spawn can't be picked up, and do not trigger trigger_passtime_ball s and cannot score in goals. They also do not have the white ring around them that the "real" ones have. They can, however, still be shot around.
Interactions with trigger_teleport
The Jack bounces off of all clip brushes, including PlayerClip.
Ball Team Claiming
The ball can be in one of three states: Claimed for Red, Claimed for Blue, or Neutral.
A neutral ball cannot be scored.
A claimed ball can be scored for the claimed team.
A ball can only switch states through 4 ways:
There is no time limit for possession, but you can steal from your own team after a while. If you drop the ball into the void, it will never lose its claimed status. (Also you can't pick the ball up if its in the void due to angry vphysics gods.) If it is neutral, however, it will respawn like normal.
Since trigger_catapult prevent the ball from actually TOUCHING the ground surface, you can throw a ball at them without it losing its claimed state. This means boosting to the goal is possible.
What if it goes in a death pit?
What about Bumper Carts?
That's everything I've figured out at the moment. Please share anything else you find below! If I made a mistake or got something completely wrong, let me know so I can fix it!
Most of this information has not been tested recently, most of it being done around 8/19/15.
Special thanks to MugWench for figuring out some of this!
New Point Entities:
passtime_logic
- Handles HUD, Ball respawning time
- Outputs for ball events (picked up by team, spawned, etc.)
- You need to send it TimeUp when the round timer reaches zero.
- You can force it to spawn a ball by sending it SpawnBall.
- You can send it signals for JumPadUsed and SpeedBoostUsed. Untested, but appears to be used to disable the jumpads right after they fire for a short bit. This is just speculation.
- SpawnBall can be used to get rid of the ball and start the countdown to respawn the ball, it doesn't spawn it immediately. (Useful in combination with trigger_passtime_ball to respawn it after going off of cliffs or something)
- Issues can arise with this as firing it won't cancel previous fires.
- It has a keyvalue called "Section" and an associated input called "SetSection." Use is unknown at this time, and the decomplied version of pass_warehouse doesn't seem to use it.
- Section breaks the HUD if it's not zero.
- If you send it SetSection, the game immediately crashes.
- This is the ball's spawn location!
- Multiple ball spawners don't give you more balls.
- Fires OnSpawnBall
- Automatically places start point on HUD properly (i.e. closer to one side actually puts it closer)
- Spawns IMMEDIATELY (you need to make a box so players can't get it during setup)
- Start disabled doesn't work (as far as I can tell)
- Team just sets the starting team.
- SetTeam does not appear to function at all.
- NOTE! You can't pick up the ball unless the map's prefix is pass_. It will still spawn if it isn't, though.
New Brush Entities:
trigger_catapult
This was in Portal 2!
- To fire the ball, the "Physics Objects" flag must be set!
- Trigger that detects the ball. Has OnBallEnter/Exit as well as generic StartTouchingAll and others.
- Team is what team can score here!
- Any team goals (i.e. team set to any) don't work.
- You can say how many points are given for scoring at a particular goal
- By default, you can only score by throwing it in, but there is a flag to let carried balls score
- If set so that ball carriers can score, you can still throw it in.
- BUT if you set "DO NOT let the ball score here" flag, you can't throw it in.
- Together, you can make goals that can only be scored on by running into them!
- You can set a flag to make the goal an instant win instead of giving points with a flag
- Has a fancy visual effect!
- Non-integer score values are rounded down to the nearest integer.
- Multiple goals for a team completely breaks the HUD.
- Multiple brushes tied to the same goal work fine, except for the fancy goal target. It stays at the entity's origin.
- Setting Points to 0 will reset the ball properly and award no points. You do get capture crits.
- You drop the ball if you try to walk through it.
- If you try to pick up the ball while in it, nothing happens. (It stays on the ground)
- Cannot be enabled/disabled
- As far as I can tell in my tests, it doesn't do anything.
- They are placed around the goal zones in pass_warehouse, so they probably do something.
You must have all of the following, or the map will crash/not load:
- team_round_timer
- passtime_logic
- info_passtime_ball_spawn.
- "Setup timer length" to 15
- Configure an output like so: OnFinished <passtime_logic's name you gave it> TimeUp
- "Show timer in HUD" must be enabled, or the map will crash.
For the game to be played you'll also need goals and noball areas, but you need these to prevent crashes.
The Ball Itself:
The dynamic entity that is the Jack (that's the name of the ball) is conveniently named passtime_ball, and you can spawn them with ent_create. Ones not spawned by the info_passtime_ball_spawn can't be picked up, and do not trigger trigger_passtime_ball s and cannot score in goals. They also do not have the white ring around them that the "real" ones have. They can, however, still be shot around.
Interactions with trigger_teleport
- The ball can be teleported with trigger_teleports if they have the "Physics Objects" flag checked.
- If a ball is thrown into the trigger_teleport, it teleports to the target and loses all velocity.
- If you are holding the Jack and enter a trigger_teleport that only affects the Jack, it remains in your hand.
- If you are holding the Jack while inside of a trigger_teleport that only affects the Jack and you try to throw it, the Jack is immediately teleported to the target, but retains the velocity of the throw!
The Jack bounces off of all clip brushes, including PlayerClip.
Ball Team Claiming
The ball can be in one of three states: Claimed for Red, Claimed for Blue, or Neutral.
A neutral ball cannot be scored.
A claimed ball can be scored for the claimed team.
A ball can only switch states through 4 ways:
- If a player picks it up it will become claimed by that team.
- If the ball is scored it will return to Neutral and start the respawn sequence.
- If the ball touches a GROUND OR FLOOR SURFACE it will become Neutral. ( This does not include walls.)
- If the player carrying the ball enters a func_passtime_no_ball_zone it will IMMEDIATELY return to Neutral.
There is no time limit for possession, but you can steal from your own team after a while. If you drop the ball into the void, it will never lose its claimed status. (Also you can't pick the ball up if its in the void due to angry vphysics gods.) If it is neutral, however, it will respawn like normal.
Since trigger_catapult prevent the ball from actually TOUCHING the ground surface, you can throw a ball at them without it losing its claimed state. This means boosting to the goal is possible.
What if it goes in a death pit?
There are a couple ways of dealing with this.
First, you can respawn the ball:
The next method is to use a trigger catapult to launch it back into play space.
This one would work well, but the next is my favorite.
Use a teleporter!
I like this one because you can make the ball pop out of a nearby pipe or hole in the ground!
First, you can respawn the ball:
- Create a trigger_passtime_ball in the pit
- Use it to fire SpawnBall on the passtime_logic entity. This will get rid of the ball and get start the countdown by the announcer, then the ball will respawn at the center.
The next method is to use a trigger catapult to launch it back into play space.
- Make a trigger_catapult set to affect only physics objects.
- You can also use a filter_activator_class set to filter for passtime_ball if you want.
This one would work well, but the next is my favorite.
Use a teleporter!
- Create a trigger_teleport with the "Physics Objects" flag checked.
- Use a filter_activator_class set to filter for passtime_ball to make sure only the ball is teleported.
- Link the telporter to an info_target somewhere near the edge of the pit.
- Optional step: put a trigger_catapult the only affects the ball around the info_target to make it pop up/out from somewhere!
I like this one because you can make the ball pop out of a nearby pipe or hole in the ground!
What about Bumper Carts?
- You can pick up the ball!
- You can't throw the ball!
- You can score on goals set to let carrier score.
- If you don't include the pass_ prefix on the map name (in order to make it so you can't pick up the ball) the bumper carts do not collide with the Jack.
That's everything I've figured out at the moment. Please share anything else you find below! If I made a mistake or got something completely wrong, let me know so I can fix it!
Last edited: