Left 4 Dead 2

Left 4 Dead 2

Not enough ratings
Replacing your finale hint in Hammer
By Shadowysn
Valve didn't provide a way to replace the finale hint properly.
This is a problem as gauntlets always use The Parish's hint that refers to a helicopter, and the CUSTOM finale type still uses the generic 'Rescue is coming! Defend yourselves!' which isn't appropriate if you want to do something different other than holding out.
Here is a way around that.
   
Award
Favorite
Favorited
Unfavorite
Pre-requisites
This is a Hammer Editor translation of the entity and outputs setup used in the Custom Map Finale Hint Fix mod, which uses VScript.

This guide assumes you have experience in using the Hammer Editor and already know how to set up maps in Left 4 Dead 2, including finales.

If not, you should learn how to use Hammer as well as how to design maps for L4D(2).

If you don't intend to go into map-making, you can safely ignore this guide.
The Entities
First entity - info_game_event_proxy (Name hint_clearer)



This entity fires a client-sided game event that prompts the game to clear all current instructor hints.
There are no side-effects to this despite the name of the event being "game_newmap" which is appropriately fired when starting a new map.

This should NOT have any spawnflags set.


Second entity - env_instructor_hint (Name hint_finale_custom)

Keyvalues for recreating the game's vanilla finale hint's style

These keyvalues are not necessary to be exact and the hint can be modified to anything you like, as long as it gets the point across to your players.

This entity does not have any spawnflags.


The trigger_finale entity (or entities) at this point should be set up somewhere in the level.
The only changes needed for trigger_finale is to add additional outputs to them in order to use these entities.
The Outputs

In order of what they do:

  1. Fires the game event entity which in turn fires the game_newmap event.
  2. On a delay of 0.1 seconds, fire our hint entity.
  3. (Garbage collection)
    On a delay of 0.1 seconds, remove the game event entity as we no longer have any purpose for it.
  4. (Garbage collection)
    On a delay of 8.1 seconds which is the same length as the hint's timeout delay plus an additional 0.1 seconds because of the previous output, remove the hint entity.

The 0.1 delay on hint_finale_custom is necessary to stop our game event entity's game_newmap event from erasing this hint. game_newmap WILL erase any and all hints indiscriminately!
(This is not a problem as finale hints are one-time pop-ups and already erase other hints anyway)

(Garbage collection) outputs are optional and serve to remove the entities after they won't ever be used again.
If you intend to use the same entity again, the output that removes the entity should be cleared.
Testing
If done correctly, the result should be your custom hint appearing



without Valve's dumb hint popping up before or after it to ruin the vibe.

6 Comments
Shadowysn  [author] 20 Jun @ 11:47pm 
@eddywhite89
What do you mean by mini-finales? If you mean panic events like the car alarm or a holdout spot you might be able to do a similar setup with the panic event there.
eddywhite89 1 Mar @ 9:43am 
Will this work for mini-finales too?
7ᴇᴍᴘᴇsᴛᴲ 1 Feb @ 8:46am 
👀👌
Shadowysn  [author] 15 Apr, 2024 @ 10:59pm 
why the fudge did Steam have two images disappear entirely? i'm going to try and reupload them
Shadowysn  [author] 20 Mar, 2024 @ 9:59pm 
@Kyle H. McCloud
To everyone's credit, it is a very niche interaction in an already obscure mapping tool that took well-knowledgeable scripters (Nescius and me) to find and utilize properly.
Thanks for the guide idea as well. :lunar2019coolpig:
Kyle H. McCloud 17 Mar, 2024 @ 8:45am 
It's wild that it took so long to find this fix when you only need two in-game entities to do it. Excellent guide! It's well organized and the pictures are really helpful. I'm already using the vscript method for my upcoming campaign, but this guide will be invaluable for new modders.