HARBOR OF
COMPETITIVE
TF2 CLASSIC

TECH MANUAL

Disclaimer: TF2 Classic is announced to be released on Steam in 2025. The way of installing and running the game, as well as various details related to dedicated servers, plugins, convars and vscript described on this page are due change after the planned Steam release.

Installing TF2 Classic

Follow the steps in the official download page to download, install and play the game: TF2 Classic – Download (before the Steam release).
Add the game already to your Wishlist on Steam to download and play after the planned Steam release in 2025: Steam Store: Team Fortress 2 Classic

Setting Up a Dedicated Competitive Server

Warning: Until the planned Steam release of TF2C in 2025, if the Source SDK Base 2013 Dedicated Server installation is done via SteamCMD, the tf2classic.txt (used by the startscript.bat batch file) should have the line app_update 244310 -beta previous2021 validate instead of app_update 244310 validate or other variations.
If the installation is done via Steam, then the “previous 2021” build can be chosen from the related menu on Steam (right click on the application in Steam library > Properties > Betas).
This is because TF2C is not yet compatible with the latest version of SDK Base, until the Steam release planned in 2025.
Warning: For the SourceMod TF2Classic Tools plugin, download and use the one that is forked and more recently updated by Azzy, rather the outdated one by Scags referred in the external guides below.

To set up a TF2C server on a Windows system instead, follow either of the guides in the links below instead of the Linux server set up above.
Installing TF2Classic (Server) | Vault F4 Gaming
How to setup a Team Fortress 2 Classic server – (Windows)

CompTF2C Official Server Plugin, Config Pack and VScript Map Logic

The required SM server plugin, config pack and vscript to run an official game with CompTF2C ruleset and settings. Install it by copying the folders in the latest release of the repository linked below into the related directory (“…/tf2classic”) of the dedicated server. Credited to Jaws, and gwonam, with contribution from Güven.

Competitive PUG Server Plugin, Config Pack and VScript Map Logic

The SM plugin, configs and vscript for running a PUG (pick-up game) server is shared in the link below. It is tailored for the specific needs of PUGs: Includes additional features and different settings in comparison to the official CompTF2C pack. Installed the same way as described for the official plugin above. Credited to Jaws, and gwonam, with contribution from Güven.

Important Console Commands

TF2C exclusive console commands can be found on the following wiki page: List of TF2 Classic exclusive commands – TF2 Classic Wiki.

Commands most commonly used for competitive are tabulated below.
Note that the rcon and sm_rcon (in case the authority is granted to the player’s Steam ID via the SourceMod plugin) additions for the in-game console are the same as in live TF2.

exec <filename>To execute a config file, such as an official CompTF2C config for the game mode currently being played. For instance, exec comptf2c_HLplus_vipr
mp_restartgame <value>To start the match after the input amount of seconds. For instance, mp_restartgame 5 starts the game in 5 seconds.
Note that the tournament mode is not yet fully integrated to TF2C with all features, such as the “Ready/Not Ready” GUI. This is due change with the planned Steam release of TF2C in 2025.
For the time being, mp_restartgame is used.
mp_tournament_restartRestarts the tournament mod (to the “Not Ready” state).
tf2c_allow_special_classes <0/1/2/3/4>0: Civilian class selection is disabled. (default)
1: Civilian class selection is enabled outside VIP/R maps; disabled on VIP/R maps. Spy disguise as Civilian is disabled.
2: Civilian class selection is enabled outside VIP/R maps; disabled on VIP/R maps. Spy disguise as Civilian is enabled with a command/bind (no GUI).
3: Civilian class selection is enabled on all maps. Spy disguise as Civilian is disabled.
4: Civilian class selection is enabled on all maps. Spy disguise as Civilian is enabled with a command/bind (no GUI).

Note that in competitive, the VIP role is assigned to the Civilian player by the server plugin. Therefore, a value of 3 or 4 is suitable for this command on VIP/R maps.
tf2c_vip_autoassign <0/1>0: Disables auto assignment of the VIP role.
1: Enables auto assignment of the VIP role.
In competitive, a value of 0 is required for this command for the teams to determine their own VIP (Civilian) player.
tf2c_vip_switchteams <0/1>0: VIP does not switch teams on round end.
1: VIP switches teams on round end.
In competitive, a value of 1 is required for this command.
tf2c_domination_comeback <-1/0/1>-1: Total Domination is set to map default
0: Disables Total Domination
1: Enables Total Domination
sm_unclassA command defined by the official SM server plugin.
Makes the player who types it leave their class.
Because of the way TF2C is built, using this command is the only way for a VIP player (BLU Civilian in VIP maps or any Civilian in VIPR) to change class.
Typing !unclass in chat performs the same action.

Modding and Mapping for TF2 Classic

Team Fortress started as a mod of Quake (1996). TF2 Classic is a mod of Team Fortress 2. CompTF2C uses plugins and scripts to modify the way TF2 Classic is played. Valve games and their mods have always been highly compatible and encouraging for modding. TF2 Classic and its community is no different in that sense. Below, useful resources for modding and mapping are shared for the interested new comer.

VScript Modification for TD Logic

In this section, CompTF2C’s modification to the default TD (Territorial Domination) maps vscript to fix the spawn points at round start, and how it can be further modified for custom TD maps is explained.

The TD maps in TF2C, if they use the official prefab, trigger a vscript logic file named tcdom_logic.nut which, by default, randomizes the spawn point for each (BLU/RED) team at round starts. The logic file in the official plugin/cfg/vscript pack of CompTF2C (linked above) with the same name, alters this logic to fix the spawn points for teams by overriding the original file. Different logics are applied for td_sunnyside and td_caper, while keeping the random logic for other possible TD maps. Fixed point logic for custom maps can also be applied by editing between lines 242-255 in this file, with little prior knowledge of Squirrel (or C++) programming language.