How to Install SourceMod and MetaMod on a Left 4 Dead 2 Server
SourceMod runs on top of Metamod:Source, so install them in two checked stages inside the left4dead2 folder, using the build that matches your server’s operating system. Then add yourself as admin and add plugins one at a time, so you always know which layer broke.
Verify Metamod:Source before you add SourceMod. If stage one fails, SourceMod is not the problem.
Windows server uses the .zip build; Linux server uses the .tar.gz build. Your PC’s operating system does not matter.
Files belong in left4dead2, because the dedicated server is launched with -game left4dead2 and reads addons from that game path.
When Valve changes the game, signatures and offsets can move. Check newer MM:S and SourceMod builds first, then gamedata and dependent plugins.
What Metamod:Source and SourceMod each do on a Left 4 Dead 2 server
On a Left 4 Dead 2 server, SourceMod and MetaMod are not interchangeable. Metamod:Source is the loader layer. It loads as a Valve Server Plugin, then loads its own plugins. SourceMod is one of those Metamod plugins, and SourceMod then loads .smx plugins plus any extensions they need. That order matters more than the download itself.
If you remember the chain, every common error becomes narrower. No response to meta version means the break is at the Metamod:Source layer. meta version works but meta list shows nothing useful means Metamod loaded but SourceMod did not. sm version works but one plugin fails means the base install is fine and the fault is with that plugin, its translations, gamedata or extension.
-game left4dead2
check: meta version
check: meta list, sm version
check: sm plugins list, sm exts list
srcds/ the game server: launches the Left 4 Dead 2 dedicated server process.- Metamod:Source: attaches as a Valve Server Plugin. Check it with
meta version. - SourceMod: loads under Metamod:Source. Check it with
meta listandsm version. - Plugins and extensions:
.smxplugins, plus binary extensions when needed. Check them withsm plugins list,sm plugins info <n>andsm exts list.
This also explains why some Left 4 Dead 2 tools do not appear where people expect. L4DToolZ is a Metamod plugin used to unlock the max player limit on L4D and L4D2, so it belongs in the Metamod layer and shows in meta list, not sm plugins list. If you are adding extra survivor slots, ready-up for Versus, or tank announcements, check which layer each component actually uses before you troubleshoot the wrong one.
Before you start: stop the server, back up addons and cfg, and find left4dead2
Stop the server completely before you copy anything. Do not hot-swap loader files, and do not replace extensions while they are in use. At best the new file is ignored until restart; at worst you end up with half-old and half-new binaries loaded together, which makes diagnosis harder and can crash the server, especially on Linux.
Back up the current addons and cfg folders first. Those hold the working state you actually care about: loader files, SourceMod configs, plugin configs, admins and custom additions. A backup lets you roll back one layer instead of rebuilding the whole server.
addons/metamod and addons/metamod.vdf into left4dead2, restart, run meta version.addons and cfg folders into left4dead2, restart fully, run meta list and sm version.admins_simple.ini, run sm_reloadadmins, then add plugins one at a time and check sm plugins list.- Know the server OS: choose Windows or Linux builds by the server’s operating system, not your home PC.
- Find the game folder: Left 4 Dead 2 uses the
left4dead2mod folder inside the dedicated server install. - Use that folder, not the server root: the server is launched with
-game left4dead2, so that is where addons are read from. - Extract locally first if using FTP: upload the extracted folders so paths stay correct.
Some host panels have one-click installers for SourceMod and MetaMod. That can save time, but still run the checks in this guide afterwards. A panel can still install the wrong build, leave an old file behind, or merge into the wrong folder.
If you are still building the server itself, our Left 4 Dead 2 dedicated server setup guide covers the dedicated app, including app 222860 and the -game left4dead2 launch context that makes these paths make sense.
Download the right builds first
SourceMod requires Metamod:Source 1.9.0 or higher, and the latest version is the sensible choice. The current stable branches are SourceMod 1.12 and Metamod:Source 1.12, with SourceMod build 7260 at the time of writing. These are rolling stable releases, so normal updates are usually small rather than disruptive.
The package format tells you the target operating system:
.zip: Windows build.tar.gz: Linux build
Pick by the server’s OS. A rented server often runs Linux even if you administer it from Windows, which is why some host guides tell you to download the Linux build regardless. That is not a special Left 4 Dead 2 rule; it is just the server’s operating system deciding which binary can load.
Why this matters: Metamod, SourceMod and many extensions are compiled binary modules. A Windows binary cannot be loaded by a Linux server process, and the other way round. One common result is meta list showing Listing 0 plugins, because Metamod is present but the SourceMod loader file for that OS never loads properly. If the AlliedModders “Required Versions” notes say a Valve update needs development snapshots, use snapshot builds then; otherwise stick to stable.
Stage one: install Metamod:Source and verify it before you touch SourceMod
- Stop the server.
- Extract Metamod:Source locally.
- Upload it so you end up with
left4dead2/addons/metamodandleft4dead2/addons/metamod.vdf. - Start or restart the server.
- Run
meta versionin the server console or through RCON.
The shipped metamod.vdf is normally enough on Left 4 Dead 2. From Metamod:Source 1.10.0 onward, it is included and already points to the correct loader path:
"Plugin"
{
"file" "addons/metamod/bin/server"
} If meta version works, do not replace that file with a generated custom one. The normal reason for a custom VDF is that the engine is not recognising the shipped loader arrangement on a known edge case. The documented examples are Left 4 Dead 1, third-party Source SDK Base mods and non-English listen servers. Some Left 4 Dead 2 host guides still tell people to generate an L4D2-specific metamod.vdf; treat that as a fallback only if meta version is not recognised.
Success should include this line:
Loaded As: Valve Server Plugin.
That line matters because it proves the first handoff in the chain succeeded: the game server accepted Metamod:Source as a Valve Server Plugin. If you get no reply at all, SourceMod is irrelevant at that point. Re-check the folder path, make sure the files are in left4dead2 rather than the server root, and only consider a custom VDF if the shipped one is not recognised.
Stage two: install SourceMod, merge folders, and verify the next layer
- Stop the server again if your host has already auto-restarted it.
- Extract SourceMod locally.
- Upload the
addonsandcfgfolders intoleft4dead2, merging with the existingaddonsfolder.
When the merge is correct, you should have these main paths:
left4dead2/ ├─ addons/ │ ├─ metamod/ │ │ └─ sourcemod.vdf │ └─ sourcemod/ └─ cfg/ └─ sourcemod/
metamod.vdf and the metamod folder. Inside metamod sits sourcemod.vdf, which tells Metamod to load SourceMod.plugins (and plugins/disabled), extensions, gamedata, translations, configs and logs.The addons/sourcemod/scripting folder is for plugin source and the compiler. It is not required for SourceMod to run, so do not treat that folder as part of runtime troubleshooting.
Restart the server completely. A full quit through RCON is often safe on hosts that auto-restart the process. Then run meta list and sm version. A healthy base install typically looks like this:
Listing 1 plugin: [01] SourceMod (...) by AlliedModders LLC
Why the merge matters: Metamod:Source does not search every folder for SourceMod. It reads left4dead2/addons/metamod/sourcemod.vdf, which tells it to load SourceMod as a Metamod plugin. SourceMod then reads its own tree under addons/sourcemod and its configs under cfg/sourcemod. If sourcemod.vdf is missing from addons/metamod, meta list often shows Listing 0 plugins even though Metamod itself is fine.
Once these checks pass, join from a client and test from in game as well as from the server console. If you need a refresher on the client side, this explains how players join a Left 4 Dead 2 dedicated server.
Make yourself admin cleanly
The quickest server-side method is addons/sourcemod/configs/admins_simple.ini. Get your Steam ID from the client console with status; SourceMod expects the classic STEAM_n:o:p format. Then add a line like this, replacing the placeholder with your own ID from status:
"STEAM_1:0:12345678" "99:z"
Here, 99 is the immunity level and z is the root flag. Root gives all flags and ignores immunity checks, so use it for the owner or a trusted full admin, not for every helper. After editing the file, run sm_reloadadmins. A successful refresh prints [SM] Admin cache has been refreshed.
Now join the server and use sm_admin in the client console to open the admin menu. The default chat triggers from core.cfg are ! for public and / for silent, so !admin or /admin also work if chat triggers are left at their defaults.
| Flag | What it gives | Good use on a co-op or Versus server |
|---|---|---|
b | Generic admin | Basic access; usually the minimum for a helper |
c | Kick | Remove griefers or reconnect loops |
d | Ban | Persistent moderation when kick is not enough |
g | Change map | Useful for campaign rotation testing |
j | Chat | Admin chat and notices |
k | Vote | Map votes and vote management |
z | Root | Full control; ignores immunity |
A limited-rights helper line can be as simple as a "STEAM_..." "bcdk"-style entry instead of z. That is usually better for someone handling kicks, bans and votes without full RCON-level power. SourceMod also supports IP-based auth for LANs, name plus password, the more detailed admins.cfg format, and SQL-backed admin storage, but Steam ID entries in admins_simple.ini are the least error-prone place to start.
Install plugins and extensions without putting files in random places
A simple SourceMod plugin is just a compiled .smx file placed in addons/sourcemod/plugins. SourceMod loads those automatically when it starts, and it reloads plugins on map change if their file changed. That is why a map change is a useful low-friction test after uploading new plugins.
SourceMod also uses a plugins/disabled folder. Files in there do not load. SourceMod ships some official plugins there that you may want, such as rockthevote or mapchooser, and you can move ones you do not want, such as funvotes, into that folder to keep them inactive without deleting them.
| File type | Correct folder | What happens if it is wrong |
|---|---|---|
metamod.vdf | left4dead2/addons/ | Metamod:Source may not load at all, so meta version gives no useful reply |
sourcemod.vdf | left4dead2/addons/metamod/ | meta list can show Listing 0 plugins because Metamod loaded but SourceMod did not |
.smx plugin | left4dead2/addons/sourcemod/plugins/ | Not listed by sm plugins list; if placed in disabled, it stays inactive by design |
Extension files such as *.2.l4d2.dll or *.2.l4d2.so | left4dead2/addons/sourcemod/extensions/ | Plugins that depend on them fail with missing native or required extension errors |
gamedata .txt files | left4dead2/addons/sourcemod/gamedata/ | Plugins may load but fail against the game after updates because signatures or offsets are absent or outdated |
translations .txt files | left4dead2/addons/sourcemod/translations/ | Plugin loads with phrase errors such as Could not find translation file |
.sp source file | left4dead2/addons/sourcemod/scripting/ | No runtime effect; it is optional for compiling or editing source |
Use the checks that match the layer you are working on:
sm plugins list: shows loaded SourceMod plugins.sm plugins info <n>: shows why one listed plugin errored.sm exts list: shows SourceMod extensions.sm plugins refresh,sm plugins reload <n>,sm plugins unload <name>,sm plugins load <name>: useful while iterating.
Typical plugin errors are precise if you read them literally. Could not find translation file means the plugin code loaded but cannot find its phrase file. Native 'xyz' was not found or Required extension ... not running means the plugin asked SourceMod for a function provided by an extension, and that extension is missing, outdated or for the wrong build. Wrong game means the plugin detected that it was written for another Source game.
Extensions belong in addons/sourcemod/extensions. Many have per-engine builds, and Left 4 Dead 2 builds use the .2.l4d2 suffix. They often load only when a plugin actually asks for them, or when you create an empty <name>.autoload file. That behaviour is why an extension can be present on disk but not appear immediately in sm exts list. Do not replace a running extension in place; stop the server or unload it first, because the shared library is already in use and Linux servers in particular are likely to crash if you swap binaries underneath them.
Finally, remember the layer split. A Metamod plugin such as L4DToolZ will not appear in sm plugins list because it is not a SourceMod plugin at all. Check it with meta list instead. Read the logs folder whenever something fails; it is where SourceMod and many plugins tell you exactly which file they could not find.
Linux notes, game updates, and choosing a host that does not get in your way
Short Linux notes for self-hosted servers
If you see wrong ELF class: ELFCLASS64 on a Left 4 Dead 2 dedicated install, that is normal. Left 4 Dead 2 runs as a 32-bit Source server, and Metamod:Source simply skips its 64-bit loader. As long as meta version is recognised, Metamod is installed.
If a load fails with a libgcc_s.so.1 message such as GCC_7.0.0 not found, Valve’s own bundled copy is often the issue. Delete the listed file from the server install’s bin folder, not from the system lib or lib32 path. On a 64-bit OS you may also need 32-bit libraries available; on Debian or Ubuntu that can mean apt install gcc-multilib. If Metamod itself fails to load, check metamod-fatal.log in Metamod’s bin folder.
What usually breaks after a Left 4 Dead 2 update
The usual weak point is gamedata. Those files hold signatures and offsets that plugins and extensions use to find game functions and structures. When Valve updates the game, those signatures can move even if the plugin binary itself is unchanged, so a plugin that worked yesterday can suddenly fail today without any edits on your side.
SourceMod includes an integrated gamedata auto-updater, and core.cfg ships with "DisableAutoUpdate" "no" by default. If that setting is changed to "yes", the updater is blocked and outdated gamedata is far more likely after a game patch. Even so, when a Left 4 Dead 2 update breaks several things at once, check for newer Metamod:Source and SourceMod builds first. Lower layers need to understand the updated game before dependent plugins have much chance.
Upgrade order that avoids mixed files
Stop the server completely. Then upgrade the binaries in sourcemod/bin and sourcemod/extensions, all .txt files in gamedata and translations, and the default .smx plugins. It is extremely important to update all gamedata files. If you update base plugins, update translations too, because plugin code and phrase files are meant to match.
For plugin-heavy servers, the admin experience is also affected by the host itself. You want full file or FTP access to left4dead2/addons and cfg/sourcemod, console or RCON access for the verification commands, and a fast single core for plugin-heavy setups. The reason is simple: the Source server and many plugin hooks run on the main thread, so more event handlers, extra slot logic and ready-up systems tend to press CPU time there first. If you want the wider planning side, our game server hardware requirements guide explains what to prioritise.
If your current panel hides the game files or gives you no proper console access, SourceMod and MetaMod upkeep becomes guesswork. Compare Left 4 Dead 2 server hosts that make file placement, restarts and version checks straightforward.
Compare Left 4 Dead 2 server hostsTroubleshooting flow: use the printed output, not guesswork
Work from the bottom of the chain upward. Do not reinstall plugins when Metamod itself is not loading, and do not regenerate VDF files if SourceMod is already clearly listed under Metamod.
| Symptom or output | Likely cause | First fix |
|---|---|---|
meta version gives no useful reply | Metamod:Source itself is not installed properly | Check left4dead2/addons/metamod and left4dead2/addons/metamod.vdf; only try a generated custom VDF if the shipped VDF is not recognised |
meta version works and shows Loaded As: Valve Server Plugin. | Metamod:Source layer is fine | Move up one layer and test meta list |
meta list shows Listing 0 plugins | sourcemod.vdf missing from addons/metamod, or wrong build for the server OS | Upload the correct SourceMod build for the server OS and confirm left4dead2/addons/metamod/sourcemod.vdf exists |
meta list shows <NOFILE> or FAILED | Files are in the wrong place or a binary could not load | Run meta info 1 for details, then fix the path or build mismatch; on Linux also check metamod-fatal.log |
sm version is not recognised | SourceMod is not loaded, even if Metamod is | Return to meta list and fix the SourceMod layer first |
A plugin is not listed in sm plugins list | The .smx file is not in plugins, or it was put in plugins/disabled | Move it to addons/sourcemod/plugins and change map or restart |
Could not find translation file | Missing translation files | Copy the required files into addons/sourcemod/translations |
Native 'xyz' was not found or Required extension ... not running | Missing, old or wrong extension build | Check sm exts list, then install the needed extension in extensions, using the correct .2.l4d2 build where required |
Wrong game | Plugin was written for another Source game | Remove it and use a Left 4 Dead 2 compatible alternative |
| Everything worked until a game update | MM:S, SourceMod or gamedata no longer match the updated game | Check for newer MM:S and SourceMod builds first, then update gamedata and dependent plugins |
- Run
meta version. If this fails, stay at the Metamod layer. - Run
meta list. If SourceMod is absent, fixsourcemod.vdfor the OS build. - Run
sm version. If this works, the base install is done. - Run
sm plugins listandsm exts list. Only now should you debug individual ready-up, tank announcement or extra-slot plugins.
Left 4 Dead 2 server FAQ
Do I need MetaMod to run SourceMod on Left 4 Dead 2?
Yes. SourceMod loads as a Metamod:Source plugin, so Metamod:Source is the layer that makes SourceMod possible on the server. If meta version is not working, SourceMod cannot load above it.
Which SourceMod download do I need for a Left 4 Dead 2 server?
Choose by the server operating system, not by the computer you use to manage it. A Windows server needs the .zip build; a Linux server needs the .tar.gz build. Many rented servers run Linux, so check your panel or ask your host if you are not sure.
Why does meta list show no plugins?
The usual causes are a missing sourcemod.vdf in left4dead2/addons/metamod or the wrong OS build of SourceMod. In that state, Metamod itself may be fine, but it has nothing valid to load as a Metamod plugin. Check meta version first, then correct the SourceMod layer.
Do I need a custom metamod.vdf for Left 4 Dead 2?
Normally no. The shipped metamod.vdf is meant to work, and if meta version is recognised there is no reason to replace it. A generated custom VDF is a fallback for cases where the shipped loader is not recognised, not a routine step for a standard Left 4 Dead 2 dedicated server.
Why did my SourceMod plugins stop working after a Left 4 Dead 2 update?
Most often, the game update changed offsets or signatures used by gamedata, or the base loader versions now need an update. Check for newer Metamod:Source and SourceMod builds first, then update gamedata, translations and any dependent plugins or extensions. Mixed old and new files are a common cause, so stop the server completely before upgrading.
More Left 4 Dead 2 server help
Once SourceMod is running, finish the server setup, help your group connect, or compare hosts that give you full file and console access.
Version numbers, folder names and console output come from the AlliedModders documentation and the SourceMod and Metamod:Source 1.12 stable packages as of November 2026. Host panels label file managers and restart buttons differently, so follow your host’s current layout where it differs; the same checks and layer order still apply.