L4D2 Level Design/Custom Finale
A custom finale reads automatically off of a vscript containing a list of stages, <map name>_finale.nut. The system features the ability to increment finale stages with arbitrary conditions (mainly the onslaught stage type). Something elaborate as a custom boss is possible, for example, where a certain amount of damage advances the finale to the next stage. Once the stages listed are finished, trigger_finale fires a FinaleEscapeStarted output.
None of the official L4D2 maps use the Standard
finale option. Custom finale maps include c2m5_concert, c3m4_plantation, c4m5_milltown_escape, c7m3_port, and it is assumed that L4D1 finales do the same (No Mercy is confirmed to use custom).
Components
VScript
As discussed in the L4D2 vscript article, there are four stage types, additional custom finale-specific director options, and special functions available.
Map
At the very least, all that needs to be changed is trigger_finale Finale Type, from Standard
to Custom
. There are other options and details you should consider:
- The onslaught stage type does end unless the director is given the input EndCustomScriptedStage via script or direct in-game I/O.
- info_director: OnCustomPanicStageFinished, OnPanicEventFinished (maybe just for crescendo), and OnUserDefinedScriptEvent(1-4) outputs are available, linked to vscript stage states or methods such as .UserDefinedEvent1()-.UserDefinedEvent4().
- trigger_finale: AdvanceFinaleState input is available.
Sacrifice finale
The sacrifice finale is based off of custom finale with additional hard-coded modifications introduced in The Sacrifice update.
← L4D2 Level Design/Gauntlet Finale | Return to L4D2 Level Design |