Pdan4's Pipe Paste and Prevention Prefab

Pdan4's Pipe Paste and Prevention Prefab 001b

Pdan4

Still trying to add
aa
Nov 25, 2013
104
246
Now THIS is Computer Science! Some PIPE DOPE from Pdan as an early Christmas present for y'all.

If you want to check out the compiled VMF demo:
  • The Blue block will affix your selection.
  • The Red cube will delete instead.
  • Each Teal pillar sets the filter to stick/remove the embedded projectiles
  • The right Orange pillar starts the cubes moving
  • The left Orange pillar halts the cubes moving
Thanks to @14bit for the Sticky Stopper v1 prefab which I used as a testbed and in which I made this prefab, and thanks to @A Boojum Snark for kicking this all off with their trigger_vphysics_motion method.

The way this works is this:
  1. A func_breakable is flagged as damageable only by physics
  2. It filters damage taken to allow only stickies and/or pills to hurt it (see Quick Notes).
  3. When its health changes, it parents !activator (the projectile) to itself and resets its own health.
If you want to step through the instructions to make this:
  1. Make a func_breakable
  2. Give it a unique NAME
  3. Set its Material Type to one that makes sense (for impact sounds) -- don't use Unbreakable Glass as it locks the health.
  4. Set its Strength to 99999 (five nines)
  5. Set its Physics Impact Damage Scale to 10000 (four zeroes)
  6. Flags: disable Bullet Penetration
  7. Create a filter to specify what you want to target -- use filter_activator_class for moderating pipes/stickies
  8. Set Damage Filter to allow whatever projectile you want (see Quick Notes)
  9. Filter must disallow players otherwise you can brick/crash
  10. To keep from breaking: OnHealthChanged !self SetHealth 99999
  11. To make stick: OnHealthChanged !activator SetParent NAME
  12. To make gone: OnHealthChanged !activator kill
And that's it! Whether this brush moves or stays still, it'll stick or kill any sticky or pill.

Quick Notes:
  • tf_projectile_pipe for pill bombs
  • tf_projectile_pipe_remote for stickies
  • tf_projectile_pipe* for both
Caveats:
  • If too thin, stickies will go through (but still be affixed).
  • This will spam the console with warnings about updating the physics heirarchy on the attached things. You can ignore these.
  • If you SetParent name_of_not_the_func_breakable, there will be a delay before the projectile is frozen and it will embed into the func_breakable, sometimes even enough to disappear from view.
  • This has not been tested on servers. Just Locally.
  • OnDamageTaken does not work.
  • If you use a weird Material Type relative to the visuals of the impact area and I hear, I will :angryduckling: at you.
Thanks, and have fun!
 
Last edited: