Plugin loader foundation for Source engine servers
| Supported Games: | All Source engine games (CS:S, TF2, L4D, L4D2, CS:GO, DoD:S) |
| Purpose: | Plugin loader layer between game and plugins like SourceMod |
| Config Format: | VDF (Valve Data Format) files |
| Latest Version: | 1.11+ (actively maintained) |
| Website: | sourcemm.net |
| Install Order: | Metamod:Source first, then SourceMod |
| Not Compatible: | Half-Life 1 engine (use original MetaMod) |
Metamod:Source is a plugin loader and abstraction layer for Source engine dedicated servers. It sits between the game server and server plugins (like SourceMod), allowing multiple plugins to hook into game events and functions without conflicting.
| Feature | Metamod:Source | Original MetaMod |
|---|---|---|
| Engine | Source (CS:S, TF2, L4D, etc.) | GoldSrc (CS 1.6, DoD 1.3, etc.) |
| Config Format | VDF (.vdf files) | INI-style (.ini files) |
| Plugin System | VServerPlugin interface | DLL/SO hooking |
| Common Plugins | SourceMod | AMX Mod X |
# Download latest Metamod:Source for Linux
cd /tmp
wget https://mms.alliedmods.net/mmsdrop/1.11/mmsource-1.11.0-git1148-linux.tar.gz
# Extract to server folder
# For CS:S:
cd /path/to/cstrike
tar -xzf /tmp/mmsource-1.11.0-git1148-linux.tar.gz
# For TF2:
cd /path/to/tf
tar -xzf /tmp/mmsource-1.11.0-git1148-linux.tar.gz
# For L4D2:
cd /path/to/left4dead2
tar -xzf /tmp/mmsource-1.11.0-git1148-linux.tar.gz
# Folder structure created:
# addons/
# metamod/
# bin/
# server.so (Linux)
# CS:GO requires slightly different structure
cd /path/to/csgo
tar -xzf /tmp/mmsource-1.11.0-git1148-linux.tar.gz
# Verify structure:
# csgo/addons/metamod/bin/server.so
# Download Windows version:
# mmsource-1.11.0-git1148-windows.zip
# Extract to game folder (CS:S example):
# Extract to: C:\srcds\cstrike\
# Folder structure:
# cstrike\
# addons\
# metamod\
# bin\
# server.dll (Windows)
Create addons/metamod.vdf in the game folder:
"Plugin"
{
"file" "../cstrike/addons/metamod/bin/server"
}
"Plugin"
{
"file" "../tf/addons/metamod/bin/server"
}
"Plugin"
{
"file" "../left4dead2/addons/metamod/bin/server"
}
"Plugin"
{
"file" "addons/metamod/bin/server"
}
# Start server and type in console:
meta version
# Expected output:
# Metamod:Source version 1.11.0-dev+1148
# Built from: https://github.com/alliedmodders/metamod-source
# Loaded As: VServerPlugin (gameinfo.txt)
Metamod:Source can load via VDF or gameinfo.txt. VDF method is preferred.
// Edit gameinfo.txt in game folder
// Add under "SearchPaths":
GameBin |gameinfo_path|addons/metamod/bin
// Example for CS:S (cstrike/gameinfo.txt):
"FileSystem"
{
"SteamAppId" "240"
"SearchPaths"
{
GameBin |gameinfo_path|addons/metamod/bin
Game |gameinfo_path|.
Game cstrike
Game hl2
}
}
Plugins load from addons/metamod/metaplugins.ini:
; Metamod:Source Plugins File
; Each plugin is on its own line
; Format: alias:file
; Example SourceMod entry:
sourcemod:addons/sourcemod/bin/sourcemod_mm
# List loaded plugins
meta list
# Load plugin
meta load path/to/plugin
# Unload plugin
meta unload
# Refresh plugin list
meta refresh
# Version info
meta version
# Plugin info
meta info
SourceMod is built as a Metamod:Source plugin. It cannot run without Metamod:Source as the foundation layer.
# Download SourceMod (Linux example)
wget https://sm.alliedmods.net/smdrop/1.11/sourcemod-1.11.0-git6917-linux.tar.gz
# Extract to game folder (CS:S example)
cd /path/to/cstrike
tar -xzf sourcemod-1.11.0-git6917-linux.tar.gz
# Folder structure:
# addons/
# metamod/ (already exists)
# sourcemod/ (new)
# bin/
# sourcemod_mm.so (auto-loads via Metamod)
# configs/
# plugins/
# scripting/
# In server console:
meta list
# Should show:
# [01] SourceMod (1.11.0-dev+6917) by AlliedModders LLC
# Or use SourceMod command:
sm version
| Game | Game Folder | metamod.vdf Path |
|---|---|---|
| CS:Source | cstrike/ |
../cstrike/addons/metamod/bin/server |
| CS:GO | csgo/ |
addons/metamod/bin/server |
| Team Fortress 2 | tf/ |
../tf/addons/metamod/bin/server |
| Left 4 Dead | left4dead/ |
../left4dead/addons/metamod/bin/server |
| Left 4 Dead 2 | left4dead2/ |
../left4dead2/addons/metamod/bin/server |
| DoD:Source | dod/ |
../dod/addons/metamod/bin/server |
| HL2:DM | hl2mp/ |
../hl2mp/addons/metamod/bin/server |
For multiple servers sharing files:
# Install Metamod once in shared location
/srcds/shared/addons/metamod/
# Symlink to each server
ln -s /srcds/shared/addons /srcds/server1/cstrike/addons
ln -s /srcds/shared/addons /srcds/server2/tf/addons
# Use appropriate metamod.vdf for each game
Edit addons/metamod/metaplugins.ini:
; SourceMod (loads automatically if installed)
sourcemod:addons/sourcemod/bin/sourcemod_mm
; Custom plugin example
customplugin:addons/customplugin/bin/customplugin_mm
Metamod:Source auto-discovers plugins in addons/ folder that contain:
# Check if metamod.vdf exists
ls -la addons/metamod.vdf
# Verify VDF syntax (no syntax errors)
cat addons/metamod.vdf
# Check file permissions (Linux)
chmod 644 addons/metamod.vdf
chmod -R 755 addons/metamod/
# Verify correct path in VDF for your game
# CS:GO uses "addons/metamod/bin/server"
# Others use "../gamefolder/addons/metamod/bin/server"
# Verify Metamod loaded first
meta version
# Check if SourceMod plugin is visible
meta list
# If not listed, verify SourceMod installation:
ls -la addons/sourcemod/bin/
# Check for sourcemod_mm.so (Linux) or sourcemod_mm.dll (Windows)
# Manual load:
meta load addons/sourcemod/bin/sourcemod_mm
# List all loaded plugins
meta list
# Unload problematic plugin
meta unload
# Check server console for error messages
# Common conflicts:
# - Multiple admin systems (AMX Mod X + SourceMod)
# - Outdated plugin versions
# - Incompatible game version
addons/metamod/bin/server (no ../ prefix)-insecure launch parameter# Check server logs for error messages
tail -f logs/L*.log
# Common causes:
# 1. Wrong architecture (32-bit vs 64-bit)
# 2. Corrupted plugin binary
# 3. Incompatible Metamod version for game
# Test with clean Metamod installation (no plugins)
# Remove addons/sourcemod temporarily
# If server starts, issue is with SourceMod or its plugins