L4D2 Mission Files
Left 4 Dead 2 mission files are metadata scripts that describes the structure and content of a campaign. They are used by the game UI, matchmaking, and the game server.
Mission files are .txt files that are stored in the missions
directory, for example left4dead2\addons\deadline2\missions\mycampaign.txt
. It is strongly recommended that the file is given an unique name to avoid conflicts with other campaigns.
Official mission files can be found in List of L4D2 Missions Files and Deadline_Mission_File
Debugging
To debug mission files the game needs to be started with the -allowdebug
command line option. Running the mission_reload
console command will attempt to load all mission files, and will print information about any errors encountered.
File Structure
"mission" { // This name identifies the campaign for the matchmaking system. It is not visible in the game UI and can't contain spaces or special characters. "Name" "myCampaign" // This is also used by the matchmaking system for identification. It has to be an integer (1, 2, 3 etc.). "Version" "1" // These values control how the campaign shows up in the campaign list and the in-game UI. "DisplayTitle" "My Campaign!" "Description" "An epic tale of zombies getting shot in the head." "Author" "Me!" // This URL is shown for players trying to join a game running the campaign. It should point to a place where players can download it. (Not required for workshop submissions) "Website" "http://media.steampowered.com/apps/513/deadline2.html" // Material VMT file shown behind the end credits when your campaign completes. // Note: This item needs to have "vgui\" at the front. It is assumed for the poster and the map thumbnails. "OuttroImage" "vgui/outroTitle_DeadCenter" // A list of melee weapons that are allowed to spawn in the campaign. // Custom melee weapons can be added by using the melee weapon script name in this list, such as "My_custom_melee.txt" at the end of this string. "meleeweapons" "fireaxe;frying_pan;machete;baseball_bat;crowbar;cricket_bat;tonfa;katana;electric_guitar;knife;golfclub;pitchfork;shovel;My_custom_melee" // Set these options to "1" to enable the effects. "allow_cola" "0" // Allows the Dead Center cola bottles to spawn. "no_wpn_restore" "0" // On player wipe, don't keep any weapons. "no_female_boomers" "0" // Disables spawning of the Boomette. "no_cs_weapons" "0" // Disables spawning of the German version CS weapons. AS of the "The LAst Stand" Css weapons are available for every version of the game. It is unsure if this strinng is still in use. "allow_diesel" "0" // Allows the Hard Rain Diesel cans to be used. "survivor_set" "2" // Which set of survivors should be used. 1 for L4D1, 2 for L4D2 // Loading screen poster settings. "poster" { // This sets the material used for the loading screen. The path is relative to materials/vgui/ "posterImage" "LoadingScreen_MyCampaign" // This sets an optional material used for widescreen resolutions with the 16:9 and 16:10 aspect ratios. "posterImage_widescreen" "LoadingScreen_MyCampaign_widescreen" // This stretches out the loading screen material over the entire screen. "fullscreen" "1" // This determines which survivor set names to use in the loading screen. "l4d2_names" "1" // This determines what order the survivors names are listed. "character_order" "coach;mechanic;gambler;producer" // These options relate to L4D1 loading screen text. Unused in L4D2 // "posterTitle" "#L4D360UI_CampaignTitle_C1" // "posterTitle_y" "320" // "posterTagline" "#L4D360UI_CampaignTagline_C1" // "posterTagline_y" "380" // "gambler_player_name_x" "9999" // "gambler_player_name_y" "9999" // "producer_player_name_x" "9999" // "producer_player_name_y" "9999" // "coach_player_name_x" "9999" // "coach_player_name_y" "9999" // "mechanic_player_name_x" "9999" // "mechanic_player_name_y" "9999" } // The modes section lists each of your campaign maps and each mode they support. // Depending on how you set up your campaign maps, you can reuse the same bsp for different modes as is the case with coop and versus in this example. // This requires setting up entities that show up or operate differently for different modes. // // Any game mode or mutation can be specified here. // Mutations will automatically inherit map entries if they are set for their base mode. // // Number each map section starting with "1" // // "Map" is the name of the bsp of the starting map. (do not include an extension or path) // "DisplayName" is the name to use for the chapter of the map. // "Image" is the image used for the chapter in the lobby and settings. "modes" { "coop" //tells the game these maps are in Co-Op mode { "1" { "Map" "my_map1" "DisplayName" "Map 1!" "Image" "maps/my_map1" // "TankVariant" "models/infected/hulk_dlc3.mdl" // Sets a custom tank to be used for all tanks in this map. in this case the "Train Car" tank from "The Sacrifice" // "revisitable" "1" // Saves spawned items so they can be recreated in subsequent levels (used in Hard Rain). } "2" { "Map" "my_map2" "DisplayName" "Map 2!" "Image" "maps/my_map2" // "revisit_source" "my_map1" // Recreates spawned items from an earlier level. "TankVariant" "models/infected/hulk_l4d1.mdl" //Since TLS all L4D1 maps can use the L4D1 SI, which needs to be specified here "HunterVariant" "models/infected/hunter_l4d1.mdl" "SmokerVariant" "models/infected/smoker_l4d1.mdl" "BoomerVariant" "models/infected/boomer_l4d1.mdl" "TankArmsVariant" "models\v_models\weapons\v_claw_hulk_L4D1.mdl" //These change all viewmodel arms for those SI aswell. "HunterArmsVariant" "models\v_models\weapons\v_claw_hunter_l4d1.mdl" "SmokerArmsVariant" "models\v_models\weapons\v_claw_smoker_l4d1.mdl" "BoomerArmsVariant" "models\v_models\weapons\v_claw_boomer_l4d1.mdl" //To do: Are other options such as "SpitterVariant" also possible? } } "versus" { "1" { "Map" "my_map1" "DisplayName" "Map 1!" "Image" "maps/my_map1" // "TankVariant" "models/infected/hulk_dlc3.mdl" "VersusCompletionScore" "500" // How many distance points the survivors will get in the map. "versus_boss_spawning" // Used to control spawn chances and positions of bosses. { "spawn_pos_min" "0.30" "spawn_pos_max" "0.90" "tank_chance" "1.00" "witch_chance" "0.00" "witch_and_tank" "0" } } "2" { "Map" "my_map2" "DisplayName" "Map 2!" "Image" "maps/my_map2" "VersusCompletionScore" "600" "versus_boss_spawning" { "spawn_pos_min" "1.00" "spawn_pos_max" "1.00" "tank_chance" "0.50" "witch_chance" "1.00" "witch_and_tank" "1" } } } "survival" { "1" { "Map" "my_map2" "DisplayName" "Map 2!" "Image" "maps/my_map2" } } "scavenge" { "1" { "Map" "my_scavenge_map" "DisplayName" "My Scavnege only map!" "Image" "maps/my_scavenge_map" } } // Mutations are defined the same way as normal modes. "holdout" { "1" { "Map" "my_map1" "DisplayName" "Map 1!" "Image" "maps/my_map1" } } "mutation15" //This is Versus-Survival. { "1" { "Map" "my_map1" "DisplayName" "Map 1!" "Image" "maps/my_map1" } } } }
Usable official Mutations
As mentioned, you can use mutations to force your maps to be played in that specific gamemode.
Here is a list of all official mutation script names, with their official names
This Left4Dead fan wikipedia page explains what each of those mutations do
Script name | Official name |
---|---|
mutation1 | Last Man On Earth |
mutation2 | Headshot! |
mutation3 | Bleed Out |
mutation4 | Hard Eight |
mutation5 | Four Swordsmen |
mutation6 | Nothing |
mutation7 | Chainsaw Massacre |
mutation8 | Ironman |
mutation9 | Last Gnome On Earth |
mutation10 | Room For One |
mutation11 | Healthpackalypse! |
mutation12 | Realism Versus |
mutation13 | Follow the Liter |
mutation14 | Gib Fest |
mutation15 | Versus Survival |
mutation16 | Hunting Party |
mutation17 | Lone Gunman |
mutation18 | Bleed Out Versus |
mutation19 | Taaannnkk! |
mutation20 | Healing Gnome |
community1 | Special Delivery |
community2 | Flu Season |
community3 | Riding My Survivor |
community4 | Nightmare |
community5 | Death's Door |
community6 | Confogl |
dash | Dash |
l4d1 | Left 4 Dead 1 Coop |
l4d1vs | Left 4 Dead 1 Versus |
l4d1survival | Left 4 Dead 1 Survival |
gunbrain | GunBrain |
holdout | Holdout |
shootzones | Shootzones |
tankrun | Tank Run |
rocketdude | RocketDude |