Exploits
Source has been around for over a decade. Half-Life was in a previous millennium. No doubt, games that have existed that long usually have a long list of known bugs, glitches, and tricks by now, and any speedrun video will show you that people know how to use them (but, most speedrunners use older versions of the games, cause many bugs have been patched by Valve). If you're the by-the-book kind of modder/mapper, take a look at some unfixed things a smart (or absentminded) player can do to break your maps, escape/become trapped, or skip gameplay. Any mapper might be interested in reading this, as some exploits can literally give a player a bird's eye view of a map, which could mean more visual work for you.

General
2 units of water is enough to cancel all fall damage.
A possible solution is to use trigger_hurt
s. Appropriate damage amounts depends on the height of the fall and the depth of the water. Unless the height of the fall from would kill the player instantly, use an OnHurt
output to disable the trigger after hurting the player once, and also add necessary logic to disable the trigger when the water is approached safely, and to enable it again when the player reaches a dangerous height.
As you can imagine, this can quickly become an unfavorable solution when multiple height levels or bodies of water are involved.
Half-Life 2
Vehicles
Wheeled vehicles tend to allow the player to stand on the right spot and then punt the vehicle at the right angle, which will send the player flying high in the air, sometimes over 1200 units! (For reference, that's a bit more than the maximum antlion jump distance.)
This can be a major issue when your level design is vertical, and could also allow the player to jump or shoot over some obstacles. Falling from heights like this can do major fall damage, but see above about water. Damage can also be alleviated by entering the vehicle before hitting the ground, or landing the right way on a slope. Possible fixes are simply designing your maps to accompany for this, or making vehicles less jumpy, possibly by increasing their mass in scripts\vehicles\
. (This can also affect acceleration and jumping abilities, so don't increase it too much.)
The airboat's shape makes it a very quick and useful ramp.
The best fix for this is simply to design your map to accompany that height (about 200 units, including jumping and crouching).
The airboat is rather light. It is very easy to push out of reach with the gravity gun.
With the vehicle out of reach, a player would have to load from a previous save, or possibly start over an entire chapter. Increase the airboat's mass in scripts\vehicles\
.
Standing on a large vehicle outsmarts some NPCs, especially ones that cannot use bullets or other projectiles.
NPCs do not consider vehicles to be ground that can be stood on, meaning the player is out of their reach.
When a player enters a vehicle, they aren't actually sliding into the vehicle how it appears. They are teleported from where they were before entering into the driver's seat/final camera destination. This allows a poorly-placed trigger to skipped, also known as Enter Clipping.
Unless your trigger needs to be a very specific size, just make the trigger larger, or have it detect vehicles too. Only change code
Weapons
Players can stand on physics objects, punt them downwards with the gravity gun, and be propelled upward.
This is probably preventable by having moving objects ignore the gravity gun when a player is standing on them. If you cannot alter code in your situation, careful level design is the next best bet.
NPCs that can be moved via the gravity gun can be used to clear medium-sized gaps if the player stands on one, and jumps at the same time as they punt the NPC.
This only concerns headcrabs and antlions. This can probably be fixed similar to the last issue, by having NPCs ignore the gravity gun when a player is standing on them. If you cannot alter code in your situation, careful level design is the next best bet.
NPCs such as striders, helicopters, and gunships can be hurt by more than just rockets. A player killing one of these in an unintended time and place can have unwanted consequences depending on the situation.
This isn't really a bug, in fact, Valve intended this. Any of these can be used to hurt large enemies:
- frag grenades (which can be aided by the gravity gun)
- SMG grenades
- any Combine energy ball (also aimable with the gravity gun)
- Physics damage
Confirm:seen in Transmissions: Element 120 on striders. check to make sure that was genuine damage, not scripted.
Problems with this aren't usually encountered in Half-Life 2 because Valve accounted for it as best as possible, but imagine how this could have affected playing on d3_c17_12b
and d3_c17_13
where progression relies heavily on strider NPCs dying and using scripted cannon shots. If Valve did not consider that a player could kill a strider before reaching the place they wanted the player to go, the player could potentially be trapped.