You shall not pass!
How to prevent monsters from going somewhere
What if you want the player to be able to go somewhere but not the monsters?
Several techniques exists...
Those of you familiar with the countryside probably know what a "cattle guard" is: a ditch across the road with parallel metal bars letting you pass on foot or by car, but frightening the cattle because their hooves would slip between the bars. So it acts like an invisible yet very efficient barrier for cows.
Funnily enough this technique can work in Hexen II as well with walking monsters like golems or archers: they will stop if they think they may fall into a ditch in the ground, even if that ditch 1°) is narrow enough to let the player pass without even noticing its existence 2°) is invisible thanks to a func_illusionary making a smooth visual connection between the two sides of the ditch.
The following picture sums it up:
Owner 1The cattle guard technique only works with walking monsters. Flying, swimming and teleporting monsters don't care about cattle guards, which is an interesting way to make selective barriers depending on the monster type. But what if you want to prevent ANY TYPE of monster to come in?
It's even simpler actually: make a func_wall entity with the CLIP texture. Having that specific hardcoded texture means the func_wall will be invisible but impossible to pass through. Now set its owner property to 1. Entity #1 always corresponds to the player, and if the player is the owner of an entity, then both of them are mutually no clipping. Typically the owner is automatically set to 1 by the game for projectiles fired by the player to prevent them from being hurt by their own weapons.
That's it: your func_wall is now a barrier for everybody but the player.
Of course this technique implicitly suppose we are talking about a singleplayer map where there are monsters and only one player (entity #1) to take care about.
If you want to go further about technical insights concerning this technique, you can read in-depth explanations by Preach here and there.
Want to ask for clarification, report an issue with this trick or propose another one? Drop me an email If you use the trick please credit me and put a link to this website.