So there's been an issue that was plaguing me for a while on cp_sunshine: the fact that, in certain spots, a teleporter exit placed would be destroyed when attempted to teleport to. Examples of this occuring in these spots are demonstrated in this video, and these two consecutive images:
As it turns out, after extensive debugging, I found the problem was in fact NOT with the props (as it sometimes can be), but by the large and daunting func_lod brush that spans this entire indoors area:
This brush entity has what is called a "bounding box" - an invisible area in a cuboid shape, as seen below from the top view in Hammer: (keep in mind this bounding box has a third dimension to it too)
This bounding box is part of what causes the issue, but the main culprit is actually solidity.
It must have been an oversight at Valve HQ: func_lods AND func_brushes, when set to have solidity, will not allow a teleporter exit to function while inside its bounding box.
Func_lods and func_brushes with NO solidity, however, DO allow teleporters to work. I can only assume this is caused by the entire bounding box of the entity being treated as a "solid" in-engine rather than the specific brushes making up the entity!
TL;DR:
A func_lod or func_brush set to HAVE SOLIDITY ("Solid" for lods, "Always Solid" for brushes) will NOT ALLOW teleporter exits to be used.
A func_lod or func_brush set to have NO SOLIDITY ("Nonsolid" for lods, "Never Solid" for brushes) WILL ALLOW teleporter exits to be used.
It's crazy to me that I've never seen this engine bug documented anywhere before. I had no idea this was the cause until now. So, kiddos, learn your lesson: if making a func_lod or func_brush with a bounding box large enough to enclose a teleporter exit, always make them nonsolid.
As it turns out, after extensive debugging, I found the problem was in fact NOT with the props (as it sometimes can be), but by the large and daunting func_lod brush that spans this entire indoors area:
This brush entity has what is called a "bounding box" - an invisible area in a cuboid shape, as seen below from the top view in Hammer: (keep in mind this bounding box has a third dimension to it too)
This bounding box is part of what causes the issue, but the main culprit is actually solidity.
It must have been an oversight at Valve HQ: func_lods AND func_brushes, when set to have solidity, will not allow a teleporter exit to function while inside its bounding box.
Func_lods and func_brushes with NO solidity, however, DO allow teleporters to work. I can only assume this is caused by the entire bounding box of the entity being treated as a "solid" in-engine rather than the specific brushes making up the entity!
TL;DR:
A func_lod or func_brush set to HAVE SOLIDITY ("Solid" for lods, "Always Solid" for brushes) will NOT ALLOW teleporter exits to be used.
A func_lod or func_brush set to have NO SOLIDITY ("Nonsolid" for lods, "Never Solid" for brushes) WILL ALLOW teleporter exits to be used.
It's crazy to me that I've never seen this engine bug documented anywhere before. I had no idea this was the cause until now. So, kiddos, learn your lesson: if making a func_lod or func_brush with a bounding box large enough to enclose a teleporter exit, always make them nonsolid.