ZIPLINE
Simple Titanfall / Apex Legends style VScript ziplines for CS:GO
GIF of ziplines in action.
Features:
Simple usage, make a move_rope, name it with '_s' as a postfix, make another, name it the same but with '_e' as the postfix, you've got a zipline.
Can choose if they work in both directions or only one ('_e' for both ways, '_ee' for one way).
Ability to instantiate ziplines on the fly (if you know what you're vscripting, check main.nut).
Can be configured (speed, height, func_button distance, jumping off / dropping manually).
Ability to Jump off the zipline or Detach (Crouch) like in Titanfall/Apex.
Quadratic movement for rope slacking (thanks ficool).
Template zipline pole and arm models.
Uses existing Danger Zone sounds.
Very lite game string table impact.
Anti player stuck.
Example map
Usage:
Unzip to the location of your choice (CS:GO folder or Project folder)
Insert the zipline_core.vmt instance in your map, set the Entity Name Fix Up to None
Create a zipline with two move_rope, one named yourzipline_s, the other yourzipline_e or yourzipline_ee
Turn off SmartEdit on the '_s' and add a KeyValue named health with a value corresponding to your curvature
Test it in-game
You can test new health curve values with this console command until it's right:
script zip_setCurve("yourzipline", X)
Assign the new health value
Make more ziplines
Pack your BSP
How does it works?
The VScript will find every move_rope corresponding to the start of a zipline ('_s' suffix) and will find its exit ('_e'), then will spawn func_buttons along that rope.
It gets the direction of each starting move_rope, their curvature value, etc.. then stores them afterwards.
Once a player press Use on a spawned func_button, that button will retrieve its zipline parameters and make the player move toward their desired direction (forward or backwards) in a loop until they press Jump / Crouch or arrive at their destination.
Players that were on a zipline check if there's a player inside them until there isn't, if there is, they'll be pushed backwards on the zipline to get unstuck.
Tips:
Be careful where you put ziplines, players are 32 HU large and 72 HU high, if they're placed too low they'll get stuck inside the floor.. ziplines have a height offset too, then there's the curvature on top of that.
You can change the speed and other settings in scripts/vscripts/zool/zipline/config.nut
Issues:
There's no animations for players on a zipline, they'll just float bellow them.
No clue if hitboxes are correct while being teleported but they're likely fine.
It's possible to miss the zipline if you're inside the func_button you're trying to press.
Enjoy!
Zipline.zip