Posted on :: Min Read :: 600 Words :: ::

Note: If you do not have a TF2 Classic server running yet, use this dedicated server guide.

SourceMod on TF2 Classic is not fully drag-and-drop like official SourceMod games (for example TF2 and CS:Source). TF2 Classic is a Source SDK 2013 mod, so game name (tf2classic), signatures, and offsets are different.

The information in Discord pins is scattered and sometimes outdated. This post is a single walkthrough for the full setup process.

1. Download SourceMod and MetaMod

Go to SourceMod stable builds and get the latest Linux build.

Download it directly to the server:

curl -L -O https://sm.alliedmods.net/smdrop/1.10/sourcemod-1.10.0-git6502-linux.tar.gz
# or
wget https://sm.alliedmods.net/smdrop/1.10/sourcemod-1.10.0-git6502-linux.tar.gz

Warning: This archive URL can go out of date. Get the newest direct download URL yourself and replace it as needed.

You also need a stable Linux build of Metamod:Source from sourcemm.net.

Place both archives in your tf2classic game folder:

location_of_sdk2013ds/tf2classic

Extract both archives there:

tar -xf sourcemod-1.10.0-git6502-linux.tar.gz
tar -xf mmsource-1.11.0-git1144-linux.tar.gz

Feel free to remove the archives.

2. Replace metamod.vdf

After extraction, you should have an addons folder:

Addons folder after extracting SM and MM

metamod.vdf is required for game detection. Since TF2 Classic is a mod, create one that points to tf2classic.

  1. Delete the existing addons/metamod.vdf.
  2. Open sourcemm.net/vdf.
  3. Leave Game blank (or ---).
  4. Set Game Folder to tf2classic.

Metamod generator page example

Download the generated file, upload it to your server, and place it in addons:

Addons folder after adding the new metamod.vdf

3. Import custom gamedata

To make features like showmenu, radio menu, and HUD messages work, import custom gamedata.

Do not edit common.games.txt anymore. That approach is unreliable and can require disabling auto-updates. Use custom subdirectories instead.

If your server has git, go to your tf2classic directory and clone:

git clone https://github.com/Scags/TF2Classic-Tools.git

If you do not have git, download the repo archive:

wget https://github.com/Scags/TF2Classic-Tools/archive/master.zip
# or
curl -L -O https://github.com/Scags/TF2Classic-Tools/archive/master.zip
# then unzip it
unzip master.zip
# if you do not have unzip, install it using: sudo apt install unzip

Then cd into either TF2Classic-Tools or TF2Classic-Tools-master (depends on download method).

Copy the sourcemod directory into your addons folder:

cp -r sourcemod/ ../addons/

Now SourceMod and MetaMod should have the TF2C gamedata they need.

4. Set yourself as the "root" admin user

To use admin commands, add your Steam ID to SourceMod's admin config.

  1. Find your Steam ID using steamid.io (enter custom URL or SteamID64 and copy the steamID line).

Example Steam lookup

  1. Open tf2classic/addons/sourcemod/configs/admins_simple.ini.
  2. Add this line at the bottom:
"steamID" "99:z"

99:z means all permissions. Only grant this to trusted server operators.

Example:

Example admins_simple.ini

For reduced permissions, use the comments in that file plus the AlliedModders wiki: Adding Admins (SourceMod)

Save the file, then start your server up and have fun!

5. Troubleshooting

Map voting note

You should not need to delete nextmap.smx. If map voting fails, try disabling/removing that plugin and test again. There are other map voting plugins available.

Missing dhooks.ext

You might see an error about missing dhooks.ext. It is usually safe to ignore if no installed plugin depends on DHooks.

If you use something like Scags' TF2C Crash Exploit Fixes, install DHooks with Detours:

Original post: AlliedModders forum post

Table of Contents