Install Left 4 Dead 2 server mods by placing each download in the dedicated server’s own left4dead2 folder, using the path and loader that match its type, then restarting and verifying the result. Workshop campaigns normally go in left4dead2/addons/workshop/; ordinary or non-Workshop VPK addons go in left4dead2/addons/. MetaMod:Source and SourceMod plugins are a separate system: MetaMod loads first, and compiled SourceMod .smx files belong in SourceMod’s plugin tree. A Workshop subscription in your personal game client does not copy files to the dedicated server.
This guide covers SteamCMD installation, Workshop and non-Workshop campaigns, VPK addons, MetaMod:Source, SourceMod, hosting panels, Docker deployments, verification, and recovery when a mod does not load.
What do I need before installing a mod?
Prepare the dedicated server before copying any files. You need a working Left 4 Dead 2 Dedicated Server installation, access to its filesystem (direct shell/file access, a hosting control panel, or a mounted container volume), and the mod’s complete release files. Stop the server before changing its game tree so that files are not locked or overwritten during startup.
- Install or update the server with SteamCMD using application ID
222860. - Identify the active installation’s
left4dead2directory. This is authoritative; the copy inside a personal Steam client is not. - Read the release notes for the addon’s required game mode, map names, dependencies, engine build, and client-side files.
- Keep an untouched backup of the current
left4dead2directory or at least the existingaddons,cfg, and plugin folders.
Valve’s Left 4 Dead Team states that Left 4 Dead 2 custom content is delivered in VPK files. A download can still include documentation, configuration, gamedata, translations, or extensions in addition to its VPK, so classify the contents before copying anything.
How do I install or update the dedicated server with SteamCMD?
Run SteamCMD once to create or update the server files, then install mods inside that same location. The following sequence uses anonymous login and application ID 222860:
login anonymous
force_install_dir /path/to/left4dead2-server
app_update 222860
quit
Replace /path/to/left4dead2-server with the directory used by your host. On Windows, use the path syntax accepted by your SteamCMD build; on Linux, use the absolute directory mounted for the service. After the update completes, locate left4dead2 below that installation and stop the server before adding content.
Updating the application does not make a Workshop subscription from another computer appear on the server. The server must contain its own files, whether you copied them manually, installed them through a provider panel, or used a supported collection-loading mechanism.
Where is the server’s active game folder?
Find the directory that the running service uses, not merely a similarly named folder on the machine. The path you need ends in left4dead2 and contains folders such as addons, cfg, and the game binaries.
Direct filesystem or SSH access
Check the service’s launch script, working directory, or SteamCMD force_install_dir value. If several server copies exist, start the service with one test change and confirm that its logs reflect the same tree before installing a large mod set.
Hosting control panel
Use the panel’s file manager or SFTP connection and open the server’s left4dead2 directory. Panels may hide the parent installation directory, so navigate by looking for the existing addons and cfg folders rather than guessing a path.
Docker
Install into the host volume mapped to the container’s game tree. A file copied into an unmounted directory inside a temporary container layer can disappear when the container is recreated. Keep the game port published for both TCP and UDP, as required by the container deployment, or players may be unable to connect even when the mod itself loads.
Which folder should each kind of mod use?
Choose the destination from the mod’s distribution and loading system. Do not treat a VPK and a SourceMod plugin as interchangeable.
| Content type | Typical server destination | Loading system | Who may need files | Basic verification |
|---|---|---|---|---|
| Workshop campaign VPK | left4dead2/addons/workshop/ |
Game addon system | Server; clients may need the author’s required subscription or files | Campaign appears and its maps load |
| Non-Workshop campaign or ordinary VPK addon | left4dead2/addons/, unless the author specifies another path |
Game addon system | Server; client requirements vary by release | Addon or campaign loads without parse errors |
| MetaMod:Source | Merge its supplied addons tree into left4dead2 |
MetaMod loader | Server | meta version or meta list |
| SourceMod | Merge its addons and cfg trees into left4dead2 |
SourceMod through MetaMod:Source | Server; clients may need content for a particular plugin | SourceMod startup logs and plugin status |
| SourceMod plugin | SourceMod’s plugins directory, normally under left4dead2/addons/sourcemod/plugins/ |
SourceMod | Server, plus every required support file | Plugin loads and its feature works in a private test |
The paths above are the normal layout. A release author can document a different location or dependency, and that instruction takes precedence.
How do I install a Workshop campaign?
- Stop the server completely. Wait for the process to exit before changing files.
- Inspect the download. Confirm that the campaign includes server-ready VPK file(s) and read its map, mode, dependency, and client-subscription notes.
- Open the active game tree. Navigate to
left4dead2/addons/workshop/. Create theworkshopsubfolder only if the installation does not already contain it. - Copy the VPK files intact. Preserve the author’s filenames and do not unpack the VPK unless the release explicitly instructs you to do so.
- Check dependencies. Install any companion files or required addons in the locations specified by the author.
- Restart and test privately. Start a local or password-protected server, use the documented campaign or map name, and watch the startup log for errors.
A client-side Workshop subscription is not a substitute for these server files. Players may also need to subscribe to or obtain files identified by the campaign author; server installation and client distribution are separate requirements.
Can a public Workshop collection install the campaign automatically?
Some hosting documentation describes starting the server with +host_workshop_collection <COLLECTION_ID> -authkey <YOUR_STEAM_API_KEY>. That approach requires a public collection and depends on the server image and current Valve behavior. Treat it as a provider-specific alternative: confirm that your host supports the parameters, protect the API key, and verify that the files actually appear in the active game tree before relying on it.
How do I install a non-Workshop campaign or VPK addon?
- Stop the server and open its active
left4dead2directory. - Place the campaign or addon VPK in
left4dead2/addons/, unless the release author gives another path. - Leave the VPK intact. Do not extract its contents into loose folders unless the release explicitly requires extraction.
- Copy documented dependencies and any required configuration files.
- Restart the server and load the author’s map or campaign name in the required game mode.
Keep different versions from coexisting. A duplicate or partially uploaded VPK can produce an addon parse error or make troubleshooting ambiguous, so remove an older version when the author says the new file replaces it.
How do I install MetaMod:Source and SourceMod plugins?
Gameplay plugins use a loader chain rather than the game’s VPK addon scanner. MetaMod:Source must load before SourceMod. SourceMod’s documentation requires MetaMod:Source 1.9.0 or newer and recommends using the latest version available for the server.
Install MetaMod:Source
- Stop the server.
- Extract the MetaMod:Source release according to its directory structure and merge its supplied
addonstree into the server’sleft4dead2directory. - Confirm that the L4D2-specific MetaMod VDF file is inside
left4dead2/addons/. A VDF placed in another game installation will not load this server. - Start the server fully; do not rely on a map change alone after installing the loader.
- Run
meta versionormeta listfrom the server console and inspect the startup log.
Install SourceMod
- With MetaMod:Source working, merge SourceMod’s
addonsandcfgdirectories into the server’sleft4dead2tree. - Copy each compiled plugin’s
.smxfile into SourceMod’s plugins directory, normallyleft4dead2/addons/sourcemod/plugins/. - Install every dependency named by the plugin: gamedata, translations, extensions, configuration files, and any companion plugin.
- Add one plugin at a time and restart or reload as the release documentation directs. This makes the first failing file identifiable.
- Read SourceMod logs and test the feature on a private server before exposing it to players.
Installing only an .smx file is often insufficient. The plugin can fail when its gamedata, extension, translation, or configuration file is missing even though the file appears in the correct plugins directory.
How do I verify that a mod loaded?
Verification should prove both that the server recognized the files and that players can use the intended feature.
- VPK campaign: start the documented campaign or map in its required game mode. A missing map name, wrong mode, dependency failure, or corrupt VPK can all look like a missing campaign.
- MetaMod: run
meta versionormeta list. If neither command exists, the loader is not available to the running server. - SourceMod: inspect startup and SourceMod logs, then exercise the plugin’s command or feature in a private session.
- Docker: confirm that the container sees the files in its mounted
left4dead2tree and that the advertised game port is published on both TCP and UDP.
Always perform a complete stop-and-start after adding a loader or changing server files. A map change can leave an incorrectly loaded component undetected.
Why does a mod work locally but not on my server?
The usual cause is that the local test and the dedicated server are reading different files, paths, or versions. Compare the active server tree with the machine where the mod worked, then isolate one change at a time.
The campaign does not appear
- Move Workshop campaign VPKs to
left4dead2/addons/workshop/and non-Workshop VPKs toleft4dead2/addons/. - Confirm the VPK is complete and retains the author’s filename.
- Check the documented map name, game mode, dependencies, and any client subscription requirement.
- Restart fully and review the startup log.
An addon parse error appears
- Remove the newest file and restart to see whether the error disappears.
- Check for an incomplete upload, a VPK made for another game, a duplicate version, or a missing dependency.
- Restore files one at a time until the offending release is identified.
meta version or meta list is unavailable
- Verify that MetaMod:Source and the L4D2 VDF are under the active server’s
left4dead2/addonstree. - Ensure the server is running the installation you edited, not a second copy.
- Perform a complete restart after correcting the path.
A SourceMod plugin fails to load
- Confirm the
.smxfile is in the SourceMod plugins directory. - Install every required gamedata file, translation, extension, and configuration file.
- Add only one plugin at a time and use the logs to identify missing or incompatible components.
Docker players cannot connect
- Publish the game port for both TCP and UDP.
- Check container-to-host mappings and the host firewall.
- Verify that the advertised port matches the one players are using.
What should I check before opening the server to the public?
- Confirm that the server starts cleanly with no new parse or loader errors.
- Run the campaign or plugin in the intended game mode and complete enough of a round to test its actual behavior.
- Check whether the author requires clients to subscribe, download companion files, or use a specific engine build.
- Test with a clean client and a client that has the required Workshop subscription, when applicable.
- Record the exact filenames and versions you installed so you can roll back one change without deleting unrelated addons.
- For containers, reconnect after a container restart to verify that the mounted files and TCP/UDP port mappings persist.
What are the practical differences between installation choices?
The choice is determined by how the author distributes the content, not by whether the mod is called a campaign, mutation, or plugin.
| Decision | Use this when | Main risk | Best test |
|---|---|---|---|
| Workshop directory | The release supplies a server-ready Workshop campaign VPK | Wrong folder, missing client subscription, or private collection | Load the documented campaign after a full restart |
| Regular addons directory | The release is a non-Workshop campaign or ordinary VPK | Extracting or duplicating the VPK | Launch its map and inspect startup output |
| MetaMod/SourceMod | The release is a gameplay plugin with an .smx file |
Loader order or missing support files | meta list, logs, then a private feature test |
| Provider collection startup | Your host explicitly supports +host_workshop_collection and a public collection |
Unsupported server image or changed Valve behavior | Verify downloaded files and logs before going public |
Frequently Asked Questions
Do players have to install every server mod themselves?
Not always. The server can load its own VPK or plugin files, but an addon author may require clients to subscribe to a Workshop item or obtain separate client-side content. The release notes are the authority for that audience requirement.
Can I rename a VPK to make it easier to identify?
Keep the author’s filename unless the release explicitly permits renaming. Filenames can be tied to update instructions, duplicate detection, or documented troubleshooting, and changing them makes support harder.
Is a map change enough after installing MetaMod or SourceMod?
Use a complete server stop and start after installing or repairing either loader. A full restart ensures the VDF and binaries are read during initialization instead of leaving an old process state in place.
What information should I give an addon author when requesting help?
Provide the server platform, game and engine build, exact addon filenames, required dependencies, the startup or SourceMod log excerpt, and the map or game mode used for the test. Also state whether the files are on a direct installation, hosting panel, or Docker volume.