L4D2 Level Design/Choreographed Scenes

From Valve Developer Community
Jump to: navigation, search

In this tutorial you will learn how to easily create a choreographed scene for Left 4 Dead 2.

The essentials

  • A box with the nodraw texture outside your map.
  • An actor for your scene to refer to.
  • A logic_choreographed_scene with the scene file you want to use.

How do I do it?

First create a hollowed out box outside your level with the nodraw texture. Then place inside of it a generic_actor, this will be the actor your scene will refer to, It won't work without it. After you do this, open up its properties menu and under its name type in something like "left4dead_actor" and then you can close the properties tab. Choose a common world model, something that isn't very big at all is that we try using the f18_placeholder. Last but certainly not least, place down a logic_choreographed_scene somewhere in your map, it doesn't really matter where you put it, but its the best to place it near where you trigger it. The scene that you choose from the scene list in the sound browser is completely up to you. The sound will come from the actual person being used, so if its Francis it will come from him and his lips will move as well. If you want to make a character such as Whitaker from the gun shop, place the actor in the room you want the sound to come from, but notice how Valve never clearly let you see the actor. Just for the purpose of the tutorial to be through, we'll show you how to trigger it and how to make complex scenes. (Not the sounds themselves, just some tips on how to make a scene with mutiple actors flow correctly.)

Triggering It

You will need to make a brush the size you want with the Trigger texture somewhere where players will trigger it and not skip over it. Press Ctrl+T together to make the brush an entity and open its class tab, make it a trigger_once. Go back to your choreographed scene and name it something appropriate, such as Ellis1, Ellis2 or Ellis_interrupt which could be used for one of Ellis' many Keeth stories. After that, you can go back to the trigger entity and under its properties menu enter the outputs tab and click the Add.. button, do it something like this:


  • MyOutputNamed: OnTrigger
  • TargetsEntitiesNamed: "Your scenes name"
  • ViaThisInput: Start


Otherwise, ff you're making a conversation, make in every choregraphed scene used make an output basically saying when its done before making the next one start (a good start time is with a delay of 1.5 to 2 seconds)

You can experiment with the rest, hope this helped and good luck!