Neonsstyle recently pointed out to me that my seamless mass teleportation script doesn't seem to work when the setup is rotated, and I realised that the version I linked to in this thread even relies on manually adjusting the script. It was also inefficient because it had two nearly identical script functions for each direction, and it only supported one teleportation setup per map. As this is an old script it was clearly time to rewrite it.
To begin with, the purpose of the script is to enable seamless teleportation without the player noticing that it has happened, giving the illusion that two areas of the map are physically connected. There should be two identical-looking locations, preferrably an S-shaped corridor to limit how much the player can see in the moment he is teleported and thus how much needs to be duplicated. The locations should also be AI-free, since I expect their patrols will break after teleportation.
There are two trigger brushes at either end: a narrow brush that initiates the teleportation procedure, and a larger "zone" trigger_touch brush around it that applies the teleportation to the player and all AIs and moveables in its volume. The narrow brushes are in slightly different positions at either location to avoid that the player gets stuck in an infinite teleportation loop. The teleportation vector is automatically calculated from the origins of the departure and destination zone entity, so it's important you keep this in the same relative position.
The image above shows the setup: the arrow represents the player's expected direction of movement through each location; the narrow box represents the trigger brush which initiates the teleportation; the large box represents the teleportation zone from which everything that can move gets teleported; the red cross represents the origin of the teleportation zone used to calculate the teleportation vector.
To setup, copy the script into your map script or add it to your /script folder. Copy a pair of altogether 4 trigger brushes to your 2 identical-looking locations and change the "zone_departure" and "zone_destination" spawnargs on each of the narrow trigger brushes to point to the trigger zone brushes.
With this new version of the script, it should be possible to have as many mass teleportation setups in your map as you want, and rotation should be no problem given the fully automatic calculation of the teleportation vector.
mass_teleport.scriptmass_teleport.map