You don't want that the players of your map get annoyed by long falls after an unsuccessful sync attempt? You ever wondered how the fuck you can teleports people on their way down but not on their way up? Then this tutorial is for you.
A lot of you probably already know everything I'll cover but if it's not the case, welcome.
I'll cover the 2 ways (that I know at least) to make these anti fall teleporters. A lot of text incoming, so if you prefer, you can find the vmf file at the end.
1st way - The one-way teleportersThe idea is to rename the player who's going up with a trigger_multiple, and use a trigger_teleport below that trigger_multiple that will be activated only when the player touched the trigger_multiple. Imo it's the easiest way for a simple quick reset but if you want something more powerful check the 2nd method
(but I explain some issues on 1st method so read everything actually lmao)So first you make a trigger_multiple with these properties.
When the players touch the trigger, they are renamed "anti_fall_01"
Add a filter_activator_name with these properties.
It will allows people that have the same name in the tab "Filter name", so put the same name that the trigger_multiple gives.
You just need to put a trigger_teleport below the trigger_multiple, far enough so the player doesn't touch both triggers at the same time or they'll be teleported. Just add your filter to the trigger_teleport like that.
Now you've made a one way teleporter! But it's not perfect like this.
First of all, demomen are also teleported, which is bad in many cases. To get rid of this, create a filter_tf_class with these properties.
And add the filter to your trigger_multiple. This way, demoman won't be renamed, and thus won't be teleported.
The other issue right now is if the players are renamed, they'll keep the name and will be teleported directly when they touch the trigger_teleport on his way up. Add a trigger_multiple where the player respawn and rename them to whatever you want.
This is what my respawn area looks like.
Trigger_multiple properties is the same as the other one with a different name given.
Another issue (depending on how is your jump) is that you have to place your triggers like this
Because if the players fall down in the trigger_multiple, they'll be teleported on their way down. In some cases it's not an issue, but if you want that your one way teleporter cover up the whole place, you'll have to change some little things.
You need to put a trigger_multiple at the bottom of your jump that rename the players. Again you can rename them how you want, the important part is that the name given match your filter_activator_name. Add a filter_activator name with the name given by your bottom trigger_multiple and add it to the trigger_multiple that is above the trigger_teleport. Now this trigger_multiple only works if players got renamed at the bottom part, and they won't be teleported when they start the sync. Put the no_demo filter in your bottom trigger_multiple, so demomen are never renamed aswell and thus never teleported by your one-way teleporter.
Currently, you have only one spot where players are teleported, and this cover actually a little area.
You can put extra layers of one way teleporters. If you're using trigger that doesn't cover the whole fall wide space, just copy/paste your triggers, change each time the name given and the properties of your filters accordingly and that's all.
If you're using the big triggers with the trigger_multiple at the bottom, you'll need to be careful with your filter_activator_name. The bottom trigger_multiple activate the next trigger_multiple but rename you so the next one isn't activated anymore but the bottom trigger_multiple etc, and if it's not done correctly only the most down teleporter will work. Tried to do an amazing picture to explain, but also check the vmf.
You can add as many layers as you want but the 2nd method do this way better.
2nd way - The velocity checking triggerFor this one, the idea is to use a trigger_catapult that will do the renaming part under certain conditions. We want to setup the trigger_catapult to check the velocity of the player, rename it when it's matching a value, and the trigger_teleport + filter_activator_name will work only if the player is falling (ie matching the good speed).
So first you add a trigger_catapult that cover the whole area of your sync. Put these properties for the trigger_catapult (ignore the filter_name for the moment).
Launch direction has to be set to down, because we check the negative vertical velocity (If that makes sense). Player speed is linked to the Lower/Upper threshold, here with 100 in Player speed and 0.15/0.30 in my threshold tabs, the speed checked is 15-30u/s (15% of 100 Player speed to 30% of 100 player speed) in the direction checked (so here when people fall to 15-30u/s, it?s how I understand it at least, might need some Hammer geniuses to tell me if I'm wrong).
Basically it also means you can check any direction and any speed you want to do some others things.
We're not done yet with the trigger_catapult, it only checks velocity for now but doesn't rename the player. Here what you need to do.
So the trigger_catapult will rename people that match the defined speed.
Now you can put the trigger_teleport with a filter_activator_name matching the name given by your trigger_catapult, and players will be teleported when they fall (i.e matching the -15/30u/s within the trigger_catapult).
Same as before, reset the name at the spawn, place filter for demomen, and if you want to do a big trigger that cover whole area, put a trigger_multiple at the bottom.
Also, your trigger_catapult check a really precise speed (you can still change the threshold values tho) meaning that if the player goes above the trigger_catapult, and exceed the matching speed before entering the trigger_catapult on the way down, he won't be teleported. You can just extend the catapult to the top of your whole jump, and let the trigger_teleport at the same height of your end platform.
And you're done !
I think I forgot nothing, but if something?s wrong or anything feel free to tell me.
Here's the vmf file https://drive.google.com/file/d/1fx4Bh1A4Q4_yib25B-avYfVwFXHBRpgr/view?usp=sharing