Contents

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 when arbitrary conditions are met (i.e. boss monster, Aztec tomb puzzles, feats of strength, etc.). Once all stages are finished, trigger_finale fires a FinaleEscapeStarted output.

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). Official maps do not use the Standard finale type.

Components

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 not end unless the director is given the input EndCustomScriptedStage via script EntFire (direct or indirect) or simply 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.

VScript

As discussed in the L4D2 vscript article, there are four stage types, additional custom finale-specific director options, and special functions available.

Sacrifice finale

The sacrifice finale is based off of custom finale with additional hard-coded modifications introduced in The Sacrifice update.

To do: break it down, explain, tutorialize

c7m3_port_finale.nut

This is more complex than other custom finales but essentially does so to customize the experience. The script suggests that Sacrifice finale types depend mostly on new in-game entities and entity features.