---
sidebar_position: 3
---

# 🎥 Demos

import {YouTube} from 'mdx-embed';

## What are demos?
Demos are a lightweight in-game recording of your inputs and information your game receives from the server. They can be played back ingame, or parsed with external tools to assist in verification. Demos are **ONLY** recorded while loaded into a level, they do not record while on the main menu as there is no game server running.

:::info Video Tutorial
<YouTube youTubeId="eBsnp7pES1M"/>
:::

## Demo recording basics
* To record a demo, write `record speedrun` in the developer console while in-game. If [SST](https://mikes.software/sst) is installed, it can also be done from the main menu (other demo recording differences related to SST are listed [below](#sst)).
  * Demo recording must begin before the intro cutscene begins at the start of the run in order for the run to be valid. Make sure to start recording before loading the first map of the run (either from the main menu or in-game) or restart the campaign after starting the recording.
* One demo will be recorded for each map, and the game will automatically continue to record demos through level transitions and votes to restart/change campaigns. The first demo will be named `speedrun`, the second one `speedrun_2`, then `speedrun_3`, etc etc.
* **If you stop and restart demo recording with the same demo name, the demo number/counter will reset, and it will automatically overwrite existing demo files.**
* If you run the `record` command while demos are already recording, it will be ignored and the console will print `Already recording.`
* To stop recording demos, simply type `stop` in the console.
* Demos can be watched by using the playdemo command in the console, or by pressing Shift and F2 to open `demoui`.

## SST
Recording demos changes slightly depending on whether you are using [SST](https://mikes.software/sst) or not. I'll briefly explain the differences:

* **Without SST:**
  * `record` and `stop` commands **only work when you are loaded into a level**
  * Demo recording will stop any time you leave the game (go to the main menu, use `disconnect` command, etc).
  * Demo recording will silently fail if attempting to record to a folder that doesn't exist.
* **With SST:**
  * `record` and `stop` commands **work from the main menu**
  * Once demo recording begins, it will continue to record demos upon loading into a new server even if you go to the main menu, disconnect, etc. It will only stop if you run `stop` command, or close the game.
  * Attempting to record to a nonexistent folder will produce a warning in the console.

:::info
SST comes prepackaged with our old version game downloads, so you only need to manually install it if you intend to run on Newest and want to take advantage of the extra features.
:::
:::caution WARNING
Currently if you want to run multi-campaign categories which involve disconnecting to the main menu at any point during the run and/or use the `map` command to switch campaigns (L4D1 Original Campaigns, L4D2 All Campaigns Legacy), **you will need SST to be installed in order to have a valid run**, as demos need to be recorded for the entire duration you are ingame, which is not possible to achieve without SST due to the fact that demo recording is normally interrupted any time you go to the main menu.
:::

## Suggested practices/binds/methods
* Put `record speedrun` in your `autoexec.cfg` (located in left4dead2/cfg) - **this will require SST to be loaded automatically in order for it to work.** This will automatically queue demo recording to start upon loading into the map.
* Have a general bind for recording demos. For example, `bind backspace "record speedrun"` - this is redundant if you put `record speedrun` in your autoexec and don't ever intentionally run `stop` while playing.
* Have another bind that calls a restart vote and also restarts demo recording.
  * For example, `bind 0 "stop; callvote restartgame; record speedrun"`
* This way, when doing attempts, it should be pretty much impossible to fail to record demos. 

## Where do demos record to, and how do I include them in a submission?
* Demos record to the lowercased `left4dead2` folder (or `left4dead` in the case of L4D1) which can be found in your game files.
  * You can specify a subdirectory but the folder must already be created for it to work. 
* When you finish a run, put the demos into a zip file (7z/rar is also fine) and upload them to a permanent file host (such as Google Drive), **make sure the file/link is openable by anyone**, and put the link in the description of your run on speedrun.com when you submit.