GameBanana shows no ads to members. Sign up now!
Ads keep us online. Without them, we wouldn't exist. We don't have paywalls or sell mods - we never will. But every month we have large bills and running ads is our only way to cover them. Please consider unblocking us. Thank you from GameBanana <3

Single-teleport Checkpoint System

A Map Prefab for Counter-Strike: Source

An efficient system to allow a player's checkpoint to be saved, and teleported to with a single trigger. This is useful for maps in which the layout is less linear, with multiple checkpoints near eachother. This also solves the old 'fall-back' issue, in which players go the wrong way and fall back a checkpoint.

The system comes with 2 types: One which keeps velocity during teleport, and one which stops the player upon teleport without use of clips.

WARNING:
This system comes with 2 main caveats:
The first is that you cannot keep a player's angles through teleports with this system, due to how point_teleport functions.
The other is that this system requires some extra work to function alongside other systems that use the player's 'targetname'. This means that systems such as https://gamebanana.com/prefabs/6785 or https://gamebanana.com/prefabs/6845 cannot be used immediately with this system, but there is probably a way to make these compatible with some tweaking.

USAGE:
Setup:
This system requires an entity, 'player_tp', before any checkpoints are created. This entity serves as a way to 'declare' checkpoints. When it is called by any teleporting trigger_multiples, it tests the player against all declared checkpoints, and teleports the player to their specified checkpoint. The existing 'player_tp' in the map has two checkpoints declared, 'keepvelocity' and 'nullvel'.

Keep Velocity:
To create a keep velocity checkpoint, copy the entities 'fn_keepvelocity' and 'tp_keepvelocity' to your desired checkpoint location. Make sure that 'tp_keepvelocity' is above the ground by a few units, like a regular teleport. Rename these to something more organised for your map, such as 'fn_cp1' and 'tp_cp1', making sure that these names do not overlap with others. Assuming that these were the names you used, you would need to tweak these entities to work with the new names as such:

  • Set the 'Filter Name' entry in fn_cp1 to "cp1" (no quotes)
  • Set the 'Target Entity' of the 'OnPass' output in fn_cp1 to "tp_cp1" (no quotes)
  • In the 'player_tp' entity, add an entry: OnTrigger | fn_cp1 | TestActivator | | 0.00 | No
  • Create a trigger_multiple that encompasses your checkpoint with an output: OnTrigger | !activator | AddOutput | targetname cp1 | 0.00 | No

To rotate the teleporter, create an info_teleport_destination and rotate it to your desired angles. Then copy the 'angles' parameter from this entity, delete the entity, and paste them into the point_teleport. The player will then be teleported with these angles.

Null Velocity:
To create a null velocity checkpoint, copy the entities 'fn_nullvel' and 'tp_nullvel' (which is in the brush under fn_nullvel), as well as the trigger containing tp_nullvel. Move these to the desired checkpoint location, making sure that 'fn_nullvel' is touching the ground, and both the trigger and 'cp_nullvel' are under the ground, with the trigger not poking out of the ground. Rename the point_teleport and filter_activator_name entities to something more organised for your map, such as 'fn_cp1' and 'tp_cp1', making sure that these names do not overlap with others. A name is not required for the trigger_teleport under the ground. Assuming these names were used, some more work needs to be done to make these function:

  • Set the 'Filter Name' entry in fn_cp1 to "cp1" (no quotes)
  • Set the 'Target Entity' of the 'OnPass' output in fn_cp1 to "tp_cp1" (no quotes)
  • Set the 'Filter Name' entry in the trigger_teleport under the ground to "fn_cp1" (no quotes)
  • Set the 'Remote Destination' entry in the trigger_teleport under the ground to "fn_cp1" (no quotes)
  • Set the 'Local Destination Landmark' entry in the trigger_teleport under the ground to "tp_cp1" (no quotes)
  • In the 'player_tp' entity, add an entry: OnTrigger | fn_cp1 | TestActivator | | 0.00 | No
  • Create a trigger_multiple that encompasses your checkpoint with an output: OnTrigger | !activator | AddOutput | targetname cp1 | 0.00 | No

To rotate the teleporter, create an info_teleport_destination and rotate it to your desired angles. Then copy the 'angles' parameter from this entity, delete the entity, and paste them into the point_teleport. The player will then be teleported with these angles.

Teleporter:
To teleport the player, copy the largest trigger and transform it to your needs or create a trigger_multiple with an output:
OnTrigger | player_tp | Trigger | | 0.00 | No

There is an example map outside of the cordon of the map that shows how this can be used / how the system functions.

Files

Sign up to access this!

No comments yet

Embed

Share banner
Image URL
HTML embed code
BB embed code
Markdown embed code

Credits

Key Authors
Smaed
Smaed Joined 4y ago
Offline
397 points Ranked 49,501st

Submitter

Smaed avatar
Smaed Joined 4y ago
Offline
397 points Ranked 49,501st
Smaed
Creator
Sign up to access this!
Sign up to access this!
Sign up to access this!

Game

Sign up to access this!

Category

License

Share

  • Share on Reddit
  • Share on Twitter
  • Share on Facebook
  • 2
  • 3
  • 234
  • 14d

More Other/Misc Prefabs