Secrets a la Quake

How to make Quake style secrets in Hexen II maps

You found a secret area!

Who never experienced a delicious feeling of jubilation when discovering a secret area in Quake?
It has always been one of my main pleasures while playing that game, and that's something sadly missing in Hexen II. Sure there do are secrets as well, but as you go from one level to another within each hub, keeping focused on your objectives, you can miss the secrets more easily and well... even when you find them there is not that satisfactory "You found a secret area!" message throughout the screen, and there is no secrets count at the end of the level to estimate your skills as secrets hunter either. Too bad! :°-(

The good news is that you can absolutely have secrets a la Quake with their indispensable secrets counter in your Hexen II maps, and that with relatively few efforts. Some ways to do that include coding: Quake's trigger_secret code is still there is triggers.hc, commented out but easy to reactivate. I tried this method but it's always risky to play with HexenC code because things can go south very quickly in such unexpectable ways that you probably want to pass coding when you can (on my computer, for some reason resurrecting the trigger_secret made any fight crash the game!).
So let's go for an easy 100% map trick! :)

A key point of this technique (and its main drawback) is that you must know your secrets count in advance. If that count changes over the mapping process because you find a new cool idea for a secret along the way, you'll have to redo your configuration.
Let's say you have N secrets in your map.
  1. Equip each of them with a trigger
    or a button, or whatever whose activation is supposed to count the secret as "found".

  2. Give all those triggers the same "secret_found" target.

  3. Edit the strings.txt file
    It's where most of the game's messages are stored. You can find it in the game's data1 sub-directory (Portals for Portal of Praevus). There are less than 600 lines in the file so we can add our own custom messages at line 600 and followings without overriding anything. Add the following lines:

    (Line #600) You found a secret!@@Congratulations, you found them all!
    (Line #601) You found a secret!@@Only 1 more to find...
    (Line #602) You found a secret!@@Only 2 more to find...
    (Line #603) You found a secret!@@Only 3 more to find...
    (Line #604) You found a secret!@@There are more to find...

    A few remarks here:

    • Starting at line #600 makes things easy to remind because the line number is six-o-the_remaining_secrets_number. Simple and efficient.
    • It's not exactly the Quake message "You found a secret area!": sometimes secrets are not "areas", strictly speaking, so this wording is more flexible.
    • The "@" things are just line returns for player's reading comfort.
    • Hexen II maps have no intermission screen when you leave for the next level. So you have to warn the player about their progress in finding secrets in-game each time they discover a new one (which is actually even better than Quake's way).
    • You may go on with more messages (4 more to find, 5 more to find, etc.). Here I just followed what they did for trigger_counter: if there are more than 3 left to go, the standard message is "There are more to go...", no matter how many.

  4. Add N trigger_counter to your map:

    • All with the "secret_found" targetname.
    • All with their spawnflags value 1 (No message) checked to prevent collision with the usual built in trigger_counter messages.
    • The count property for the first one is set to 1, for the second one set to 2, and and so on until the Nth set to N.
    • The message property for the Nth one is set to 600, for the (N-1)th one set to 601, and and so on until the first one set to 600+N-1. If this progression would normally make a message number exceed 604 along the way, then that message number is stuck to 604 (several triggers may have that message #604, no worries). Of course the remark is valid only if you faithfully transposed the example above with 5 messages in strings.txt. If you decided to put more messages (4 more to find, 5 more to find, etc.), the threshold value will be higher.

You found a secret area in Hexen II!

You found a secret... in Hexen II!

That's it!
Now, no matter the order in which the player discovers the secrets, they will always be warned that they found an official one through a rewarding message and been told how many there are left, or simply that there are more to find in case the remaining number is higher than 3.

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.