<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.tf2classified.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Azzy</id>
	<title>TF2 Classified Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tf2classified.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Azzy"/>
	<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/wiki/Special:Contributions/Azzy"/>
	<updated>2026-10-21T19:58:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.0-rc.0</generator>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=MediaWiki:Vector.css&amp;diff=11390</id>
		<title>MediaWiki:Vector.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=MediaWiki:Vector.css&amp;diff=11390"/>
		<updated>2026-09-08T20:17:32Z</updated>

		<summary type="html">&lt;p&gt;Azzy: Reduce font size&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#mw-indicator-mw-helplink a {&lt;br /&gt;
	font-family:&amp;quot;TF2C&amp;quot;,&amp;quot;TF2&amp;quot;,&amp;quot;Linux Libertine&amp;quot;,&amp;quot;Georgia&amp;quot;,&amp;quot;Times&amp;quot;,serif;&lt;br /&gt;
	text-transform: uppercase;&lt;br /&gt;
	color:#D2CDC8 !important;&lt;br /&gt;
	font-size:38px;&lt;br /&gt;
	margin-top:0.4em;&lt;br /&gt;
	padding-right:0.3em;&lt;br /&gt;
	padding-left:0.8em;&lt;br /&gt;
	height:auto;&lt;br /&gt;
	line-height:49.4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-indicator-mw-helplink a .mw-helplink-icon {&lt;br /&gt;
	background-color: var(--color-base,#D2CDC8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family:&amp;quot;TF2C&amp;quot;,&amp;quot;TF2&amp;quot;,&amp;quot;Linux Libertine&amp;quot;,&amp;quot;Georgia&amp;quot;,&amp;quot;Times&amp;quot;,serif;&lt;br /&gt;
	text-transform: uppercase;&lt;br /&gt;
	font-size:2.4em;&lt;br /&gt;
	border-bottom:0.2em dotted;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen {&lt;br /&gt;
	#firstHeading {&lt;br /&gt;
		padding-left:0.3em;&lt;br /&gt;
		margin-left:0.1em;&lt;br /&gt;
		padding-top:0.4em;&lt;br /&gt;
		color: #D2CDC8;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	#content {&lt;br /&gt;
		background-color:#583A31;&lt;br /&gt;
		color:#D2CDC8;&lt;br /&gt;
		padding:0;&lt;br /&gt;
		border:none;&lt;br /&gt;
		box-shadow:0 0px 10px rgba(0,0,0,0.5);&lt;br /&gt;
		border-radius:0 0 0 8px;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	#bodyContent {&lt;br /&gt;
		background-color:#D2CDC8;&lt;br /&gt;
		color:black;&lt;br /&gt;
		padding:0.01em 1em 1em 1em;&lt;br /&gt;
		border-radius:0 0 0 8px;&lt;br /&gt;
		background-image:linear-gradient(rgba(0,0,0,0.5),transparent 10px);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	#contentSub, #contentSub2 {&lt;br /&gt;
		margin: 1em 0 1.4em 0;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
	background-image: linear-gradient(rgba(0,0,0,0.5),transparent 50%),repeating-linear-gradient(120deg,#292526,#292526 4px,#34312C 4px,#34312C 15px);&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-size: 100% 160px;&lt;br /&gt;
	background-color: #292526;&lt;br /&gt;
	border-bottom: 2px solid #84756b;&lt;br /&gt;
	height: 160px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media print {&lt;br /&gt;
	body, #content {&lt;br /&gt;
		background-color: white;&lt;br /&gt;
		color: black;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-bottom:12px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs-legacy ul {&lt;br /&gt;
	margin-left:-1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs-legacy li {&lt;br /&gt;
	background:none;&lt;br /&gt;
	margin-right:0.25em;&lt;br /&gt;
	padding-top:10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs-legacy {&lt;br /&gt;
	background: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs-legacy li a,#mw-head .vector-menu-dropdown .vector-menu-heading {&lt;br /&gt;
	font-family:&amp;quot;TF2C Build&amp;quot;,&amp;quot;TF2 Build&amp;quot;,sans-serif;&lt;br /&gt;
	text-transform: uppercase;&lt;br /&gt;
	font-size:16px;&lt;br /&gt;
	height:29px;&lt;br /&gt;
	padding:6px 8px;&lt;br /&gt;
	background:#1F1B1A;&lt;br /&gt;
	background-image:none;&lt;br /&gt;
	border-radius:8px 8px 0 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-dropdown .vector-menu-heading::after {&lt;br /&gt;
	background-image: url(/misc/arrow-down.svg);&lt;br /&gt;
	top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs-legacy .selected a,.vector-menu-tabs-legacy .selected a:visited {&lt;br /&gt;
	background:#583A31;&lt;br /&gt;
	color:#D2CDC8;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs-legacy .mw-watchlink.icon a::before {&lt;br /&gt;
	top:0.3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-dropdown {&lt;br /&gt;
	padding-top:10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-head .vector-menu-dropdown .vector-menu-heading {&lt;br /&gt;
	height:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-dropdown h3::after {&lt;br /&gt;
	top:0;&lt;br /&gt;
}&lt;br /&gt;
.vector-menu-tabs-legacy .mw-watchlink.icon a {&lt;br /&gt;
	padding-top:29px;&lt;br /&gt;
	width:31.7px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs-legacy .mw-watchlink.icon a span {&lt;br /&gt;
	visibility:hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs-legacy .selected {&lt;br /&gt;
	background:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-page-base {&lt;br /&gt;
	background:none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-legacy-sidebar .vector-menu-portal .vector-menu-heading {&lt;br /&gt;
	color: #D2CDC8;&lt;br /&gt;
	background:none;&lt;br /&gt;
	border-bottom:0.2em dotted;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-legacy-sidebar .vector-menu-portal .vector-menu-content li a,.mw-footer ul li a,#p-personal div ul li a {&lt;br /&gt;
	color:#e8d18c;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-legacy-sidebar .vector-menu-portal .vector-menu-content li a:visited,.mw-footer ul li a:visited,#p-personal div ul li a:visited {&lt;br /&gt;
	color:#ae9573;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-personal div ul li a.new {&lt;br /&gt;
	color:#dd3333;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-personal div ul li a.new:visited {&lt;br /&gt;
	color:#a55858;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-footer li,.vector-menu-portal h3,.vector-menu-tabs-legacy li a,.vector-menu-dropdown .vector-menu-heading {&lt;br /&gt;
	color:#D2CDC8;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs-legacy #ca-unwatch.icon a::before {&lt;br /&gt;
	background-image: url(/misc/unwatch.svg);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs-legacy #ca-watch.icon a::before {&lt;br /&gt;
	background-image: url(/misc/watch.svg);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs-legacy #ca-unwatch.icon a:hover::before, .vector-menu-tabs-legacy #ca-unwatch.icon a:focus::before {&lt;br /&gt;
	background-image: url(/misc/unwatch-hl.svg);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs-legacy #ca-watch.icon a:hover::before, .vector-menu-tabs-legacy #ca-watch.icon a:focus::before {&lt;br /&gt;
	background-image: url(/misc/watch-hl.svg);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-dropdown .vector-menu-content {&lt;br /&gt;
	top: 39px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen {&lt;br /&gt;
	.toc,.toccolours,.catlinks,div.thumbinner,.wikitable {&lt;br /&gt;
		background-color:#E5E0DC;&lt;br /&gt;
	}&lt;br /&gt;
	.wikitable &amp;gt; * &amp;gt; tr &amp;gt; th {&lt;br /&gt;
		background-color: #583A31;&lt;br /&gt;
		color: #D2CDC8;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pre, code, .mw-code {&lt;br /&gt;
	background-color: #eaeaea;&lt;br /&gt;
	color: #000;&lt;br /&gt;
	border: 0px solid;&lt;br /&gt;
}&lt;br /&gt;
.page-Main_Page .firstHeading&lt;br /&gt;
{&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
.page-Main_Page .mp-topheader&lt;br /&gt;
{&lt;br /&gt;
	background-color: #583A31;&lt;br /&gt;
	color: #D2CDC8;&lt;br /&gt;
	margin: -19.7px -14px 0 -14px;&lt;br /&gt;
	padding-bottom: 5px;&lt;br /&gt;
}&lt;br /&gt;
.page-Main_Page .mp-topheader p&lt;br /&gt;
{&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
.page-Main_Page .mp-topheader p:first-child&lt;br /&gt;
{&lt;br /&gt;
	margin-top: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
.page-Main_Page .mp-topheader p:last-child&lt;br /&gt;
{&lt;br /&gt;
	border-bottom: 0.2em dotted;&lt;br /&gt;
	margin-bottom: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mp-container&lt;br /&gt;
{&lt;br /&gt;
	background-color: #B3A9A2;&lt;br /&gt;
	border-radius: 8px;&lt;br /&gt;
	padding: 8px;&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	font-size: 16px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mp-classContainer&lt;br /&gt;
{&lt;br /&gt;
	background-color: #B3A9A2;&lt;br /&gt;
	border-radius: 8px;&lt;br /&gt;
	padding: 8px;&lt;br /&gt;
	display: flex;&lt;br /&gt;
	justify-content: space-around;&lt;br /&gt;
	font-size: clamp(8px, 1vw, 20px);&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen {&lt;br /&gt;
  .vector-body {&lt;br /&gt;
    font-size: 0.8rem;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=Creating_translations&amp;diff=11389</id>
		<title>Creating translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=Creating_translations&amp;diff=11389"/>
		<updated>2026-09-08T20:12:45Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;i&amp;gt;If you wanted to change your in-game language and not help translate yourself, go to [[Changing languages]]&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read these instructions in order to start translating TF2 Classic into your own language.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re looking to start or update a translation, contact the developers first. This avoids the problem of wasting your time updating a translation that&#039;s already been submitted by someone else.&lt;br /&gt;
&lt;br /&gt;
This guide will assume you know a minimum in file editing and modding in the Source Engine.&lt;br /&gt;
&lt;br /&gt;
== Setting in-game language ==&lt;br /&gt;
&lt;br /&gt;
Under your Steam library, make sure you are viewing &amp;quot;Games and Tools&amp;quot;. Then, right click on &amp;quot;Source SDK Base 2013 Multiplayer&amp;quot; (&#039;&#039;not&#039;&#039; &amp;quot;Team Fortress 2 Classic&amp;quot;) and click the &amp;quot;Properties...&amp;quot; button. You will see a language tab. Select your language, and &#039;&#039;then&#039;&#039; launch Team Fortress 2 Classic. The game will launch in your selected language.&lt;br /&gt;
&lt;br /&gt;
For a more in-depth guide, go to go to [[Changing languages#Changing In-Game Language|Changing languages]]&lt;br /&gt;
&lt;br /&gt;
[[File:Language selection menu.webp|none|left|800px|alt=Steam&#039;s language selection menu, under &amp;quot;Source SDK Base 2013 Multiplayer&amp;quot;.]]&lt;br /&gt;
&lt;br /&gt;
== Picking the language ==&lt;br /&gt;
&lt;br /&gt;
TF2 Classic can only support languages that are supported by the Source Engine. Any other languages would be unable to load. Here are the currently supported languages their update status.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable grid&amp;quot; style=&amp;quot;margin-top:1em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! class=&amp;quot;header&amp;quot; | Name of Language&lt;br /&gt;
! class=&amp;quot;header&amp;quot; | Supported Version&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:bg|{{PAGELANGUAGE}}}} || Partially Supported up to Version [[2.2.0]] (missing some content)&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:de|{{PAGELANGUAGE}}}} || Fully Supported&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:en|{{PAGELANGUAGE}}}} || Fully Supported&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:es|{{PAGELANGUAGE}}}} || Fully Supported&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:fi|{{PAGELANGUAGE}}}} || Fully Supported&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:fr|{{PAGELANGUAGE}}}} || Fully Supported&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:hu|{{PAGELANGUAGE}}}} || Fully Supported&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:it|{{PAGELANGUAGE}}}} || Supported up to Version [[2.0.0]]&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:pl|{{PAGELANGUAGE}}}} || Fully Supported&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:pt|{{PAGELANGUAGE}}}} || Fully Supported&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:pt-br|{{PAGELANGUAGE}}}} || Fully Supported &amp;lt;!-- the long string of code just makes the language name change for translations of this article --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:ro|{{PAGELANGUAGE}}}} || Supported up to Version [[2.1.0]]&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:ru|{{PAGELANGUAGE}}}} || Fully Supported&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:th|{{PAGELANGUAGE}}}} || Fully Supported&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:uk|{{PAGELANGUAGE}}}} || Supported up to Version [[2.1.0]]&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:zh-hans|{{PAGELANGUAGE}}}} || Fully Supported&lt;br /&gt;
|-&lt;br /&gt;
| {{#language:zh-hant|{{PAGELANGUAGE}}}} || Supported up to Version [[2.1.0]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Source Engine currently supports 27 total languages however &#039;&#039;Team Fortress 2 Classic&#039;&#039; does not. The languages without translation are: {{#language:ar|{{PAGELANGUAGE}}}}, {{#language:cs|{{PAGELANGUAGE}}}}, {{#language:da|{{PAGELANGUAGE}}}}, {{#language:el|{{PAGELANGUAGE}}}}, {{#language:es-419|{{PAGELANGUAGE}}}}, {{#language:ja|{{PAGELANGUAGE}}}}, {{#language:ko|{{PAGELANGUAGE}}}}, {{#language:nl|{{PAGELANGUAGE}}}}, {{#language:no|{{PAGELANGUAGE}}}}, {{#language:sv|{{PAGELANGUAGE}}}}, {{#language:tr|{{PAGELANGUAGE}}}} and {{#language:vi|{{PAGELANGUAGE}}}}.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re looking to start or update a translation, contact the developers first. This avoids the problem of wasting your time updating a translation that&#039;s already been submitted by someone else.&lt;br /&gt;
&lt;br /&gt;
== Starting the translation ==&lt;br /&gt;
To start, we&#039;ll be using the Live TF2 translation as base, using a homemade utility: [https://drive.google.com/uc?export=download&amp;amp;id=1POrx--ym_MhqvlKGwpfU3H8DsMo8Ji1O the Translatron.]&lt;br /&gt;
&lt;br /&gt;
It is a command prompt utility made in C# to generate a bare translation base using other game lines as a base.&lt;br /&gt;
&lt;br /&gt;
To use it, you must first configure the config.json file to make it point to your games&#039; locations. Then, open a command prompt in the location of the utility, and type the following, with {{code|&amp;lt;langcode&amp;gt;}} replaced with the language name according to the file name (see above, for example {{code|schinese}}).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Translatron tf2classic &amp;lt;langcode&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the command finishes successfully, a {{code|translation}} folder should appear within the custom folder of your game, containing your language file. At this point, you can start translating any missing lines marked with &amp;quot;TODO&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
List of different possible situations:&lt;br /&gt;
&lt;br /&gt;
* New line: means the line does not exist in Live TF2, and must be translated from scratch&lt;br /&gt;
* Line differs from original: means the line does exist, but is different between TF2 Classic and Live TF2. You should then check the difference between it and the original Live TF2 line to make a consistent translation with the proper differences.&lt;br /&gt;
&lt;br /&gt;
== Translation tips ==&lt;br /&gt;
&lt;br /&gt;
* Be sure to stay as consistent as possible. If you make up a rule somewhere while translating something, the entire file should follow the said rule.&lt;br /&gt;
** Additionally, please stay as consistent as possible to the original TF2 translations. You do not want to confuse newcomers that uses your language in both TF2 and TF2 Classic. You may however fix any small translation quirks, but be sure that most of the game (including weapon names, classes…) would be recognisable to a player that played live TF2 in your language.&lt;br /&gt;
* Check your grammar.&lt;br /&gt;
* Don&#039;t be afraid to ask for help for certain translations. Translating can be hard.&lt;br /&gt;
* For weapon names and informal descriptions, you can use alternatives as long as it fits (e.g. Shock Therapy &amp;gt; Electroshock, same medical meaning or Beat your maker &amp;gt; Destructive Criticism, that one&#039;s a cool pun). If you came up with an alternative but you&#039;re unsure about it, you can ask.&lt;br /&gt;
* If there&#039;s any font quirks, tell us about it. We use a custom version of TF2&#039;s font in order to support more languages.&lt;br /&gt;
* Try to keep the line count identical to the English file if you can.&lt;br /&gt;
* If you&#039;re done, test out your translation in-game. Quickly recheck each lines for any problems or grammar errors.&lt;br /&gt;
* Certain weapon descriptions are direct quotes from in-game voicelines. If your language got the voicelines translated, use those.&lt;br /&gt;
* {{code|TF_Unique_Prepend_Proper}} contains the translation for &amp;quot;The&amp;quot;, but it does not support multiple translations for different genders. If this is the case for your language, you might want to leave it empty, and instead not have &amp;quot;The&amp;quot; at all.&lt;br /&gt;
* The loading screen tips were shuffled a bit between TF2 Classic and Live TF2. If a tip at a number seems to be entirely different in Live TF2, check if the tip itself exists on another line before translating it.&lt;br /&gt;
&lt;br /&gt;
== Submitting ==&lt;br /&gt;
As of right now, the only way to submit a translation is to contact the developers directly. Either send the translation via an email to [mailto:tf2classic@pm.me tf2classic@pm.me] or by contacting Technochips on the [https://discord.gg/3zMk4vn official Discord] (send us your Steam profile too!). You can also use this to send an issue about an existing translation, or the Discord to ask for tips when making a new translation.&lt;br /&gt;
&lt;br /&gt;
After submission, and your translation is officially in the game, you may be contacted later in case the translation needs updating. If a translation did not get updated after an update, it might get marked as unfinished.&lt;br /&gt;
&lt;br /&gt;
[[Category:Legacy Guides]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=Setting_up_Hammer&amp;diff=11388</id>
		<title>Setting up Hammer</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=Setting_up_Hammer&amp;diff=11388"/>
		<updated>2026-09-08T20:12:21Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will walk you through setting up Hammer++ with our custom tools for TF2 Classified map development.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Step 1: Installing Hammer++ ==&lt;br /&gt;
&lt;br /&gt;
# Make sure Team Fortress 2 Classified is installed on Steam.&lt;br /&gt;
# Download the latest [https://ficool2.github.io/HammerPlusPlus-Website/download.html Team Fortress 2 build of Hammer++].&lt;br /&gt;
# Copy the files of the Team Fortress 2 build of H++ into the {{code|steamapps\common\Team Fortress 2 Classified}} folder, as if you were installing it for Live TF2.&lt;br /&gt;
# Navigate to the {{code|steamapps\common\Team Fortress 2 Classified\bin\x64}} folder, and run {{code|hammer_tf2c_setup.bat}} (this should be right next to {{code|hammerplusplus.exe}} if you have installed everything correctly).&lt;br /&gt;
# Run {{code|hammerplusplus.exe}}.&lt;br /&gt;
&lt;br /&gt;
As of the Steam release (3.0.0) we include new customized versions of the compilers with the game. Older versions of TF2C&#039;s VBSP, VRAD, and VVIS are no longer compatible. ficool2&#039;s compilers [https://ficool2.github.io/HammerPlusPlus-Website/tools.html (VBSP++/VVIS++/VRAD++)] have a superset of our compiler&#039;s functionality, however some features like ambient occlusion may need to be retuned, as VRAD++ takes different parameters than ours.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Configuring VRAD ==&lt;br /&gt;
&lt;br /&gt;
When preparing a final compile of your map, you need to make sure that the parameters you&#039;re passing to VRAD are supported by our custom build. Some, such as -staticproplighting, are now enabled by default and will produce an error if you include them. The default VRAD settings we use for most official TF2C maps are:&lt;br /&gt;
&lt;br /&gt;
{{pre|-final -hdr -softencosine -ao -aoradius 2 -LargeDispSampleRadius -worldtextureshadows -StaticPropIndirectMode 2 -choptexlights}}&lt;br /&gt;
&lt;br /&gt;
You can add these to your final compile settings in H++ by going to the the &amp;quot;Run Map...&amp;quot;/F9 dialog, click the &amp;quot;Expert...&amp;quot; button in the bottom-left corner of the panel to view your configurations, and add those the parameters to the $light_exe command in your final compile configuration.&lt;br /&gt;
 &lt;br /&gt;
[[Category:Legacy Guides]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=User:Webb/New_linux_server&amp;diff=11387</id>
		<title>User:Webb/New linux server</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=User:Webb/New_linux_server&amp;diff=11387"/>
		<updated>2026-09-08T20:11:33Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:&#039;&#039;This article is based on a guide written by Raizo, the original of which can be found [https://blog.raizo.dev/posts/tf2-classic-linux-server-tutorial/ here].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Reading this article ==&lt;br /&gt;
&amp;lt;!-- Originally from https://wiki.teamfortress.com/wiki/Linux_dedicated_server#Reading_this_article --&amp;gt;&lt;br /&gt;
A command prefixed by &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; is meant to be run as &#039;&#039;&#039;root&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A command prefixed by &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; is meant to be run as a &#039;&#039;&#039;regular user&#039;&#039;&#039; without root permissions. In this case the &amp;lt;code&amp;gt;srcds&amp;lt;/code&amp;gt; user.&lt;br /&gt;
&lt;br /&gt;
A command prefixed by &amp;lt;code&amp;gt;Steam&amp;gt;&amp;lt;/code&amp;gt; is meant to be run inside of a SteamCMD shell.&lt;br /&gt;
&lt;br /&gt;
Some commands are listed in-line with the rest of a paragraph and lack this symbol, in which case you should run the command as whichever account you&#039;re currently logged in with.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* A Linux server running Ubuntu Server&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; on an x86_64 CPU&amp;lt;sup&amp;gt;**&amp;lt;/sup&amp;gt; with root access&lt;br /&gt;
* At least 20GB of free storage&lt;br /&gt;
* A minimum of a 10Mbps upload speed if you intend on hosting a server over the Internet, more will be needed if you host custom content&lt;br /&gt;
* An opened port on your firewall for the server&lt;br /&gt;
* &#039;&#039;Optional&#039;&#039;: An SSH/SFTP client if doing remote access/file management&lt;br /&gt;
* &#039;&#039;Optional&#039;&#039;: A port that&#039;s been forwarded for the server if you wish to have it accessible over the internet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; This guide was written for and tested on Ubuntu Server 24.04 LTS Minimal. Other distros may use different package names and conventions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;**&amp;lt;/sup&amp;gt; Using an x86 compatibility layer like Box86 for another architecture is unsupported and may not work.&lt;br /&gt;
&lt;br /&gt;
== Preparing for install ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
We&#039;ll need to install some required packages and tools for our server to work, as well as for installation.&lt;br /&gt;
&lt;br /&gt;
Since the legacy TF2C branch, Source SDK, and SteamCMD are built for 32-bit, we&#039;ll need to enable 32-bit packages. We&#039;ll also add the &amp;lt;code&amp;gt;multiverse&amp;lt;/code&amp;gt; repository which has SteamCMD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# add-apt-repository multiverse&lt;br /&gt;
# dpkg --add-architecture i386&lt;br /&gt;
# apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, we&#039;ll install the &amp;lt;code&amp;gt;dialog&amp;lt;/code&amp;gt; package so the Steam Subscriber Agreement dialog works, and then the rest of the packages we need.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt install dialog&lt;br /&gt;
# apt install steamcmd p7zip aria2 tilde lib32z1 libbz2-1.0:i386 lib32gcc-s1 lib32stdc++6 libcurl3-gnutls:i386 libsdl2-2.0-0:i386 wget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your version of Ubuntu doesn&#039;t come with a text editor, you may install one now. For this guide we&#039;ll use &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt install nano&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating a user for the server ===&lt;br /&gt;
&lt;br /&gt;
Pick a directory to install your server into. Many put it under a directory in &amp;lt;code&amp;gt;/opt&amp;lt;/code&amp;gt;, but for this guide we&#039;ll be using &amp;lt;code&amp;gt;/home/srcds&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Create a disabled user with a home directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# useradd -s /bin/false -mr srcds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-m&amp;lt;/code&amp;gt; creates a home directory for the new user, &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt; specifies that it&#039;s a system account that will not have a password, and &amp;lt;code&amp;gt;-s /bin/false&amp;lt;/code&amp;gt; prevents the account from having a default shell. &lt;br /&gt;
&lt;br /&gt;
=== Installing Source SDK Base 2013 Dedicated Server (SDK 2013) ===&lt;br /&gt;
&lt;br /&gt;
Switch to the new &amp;lt;code&amp;gt;srcds&amp;lt;/code&amp;gt; user you made, and run SteamCMD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sudo -Hu srcds bash&lt;br /&gt;
$ cd ~&lt;br /&gt;
$ . /etc/environment&lt;br /&gt;
$ steamcmd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should be dropped into a SteamCMD shell. We can install the SDK 2013 now. Note that &amp;lt;code&amp;gt;force_install_dir&amp;lt;/code&amp;gt; must be ran before &amp;lt;code&amp;gt;login anonymous&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Steam&amp;gt;force_install_dir /home/srcds/sdk&lt;br /&gt;
Steam&amp;gt;login anonymous&lt;br /&gt;
Steam&amp;gt;app_update 244310 -beta previous2021&lt;br /&gt;
Steam&amp;gt;quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If everything went well, &amp;lt;code&amp;gt;srcds&amp;lt;/code&amp;gt; should be installed and you should be back at your user shell.&lt;br /&gt;
Before we continue we&#039;ll need to fix some files.&lt;br /&gt;
&lt;br /&gt;
Valve changed some shared object file names in the SDK, but the objects included with our install of SDK 2013 have not adopted the new names. &lt;br /&gt;
Since these are simply renames, we can symlink them. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your server will not start without doing this.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ~/sdk/bin&lt;br /&gt;
$ ln -s datacache_srv.so datacache.so&lt;br /&gt;
$ ln -s dedicated_srv.so dedicated.so&lt;br /&gt;
$ ln -s engine_srv.so engine.so&lt;br /&gt;
$ ln -s materialsystem_srv.so materialsystem.so&lt;br /&gt;
$ ln -s replay_srv.so replay.so&lt;br /&gt;
$ ln -s scenefilecache_srv.so scenefilecache.so&lt;br /&gt;
$ ln -s shaderapiempty_srv.so shaderapiempty.so&lt;br /&gt;
$ ln -s studiorender_srv.so studiorender.so&lt;br /&gt;
$ ln -s vphysics_srv.so vphysics.so&lt;br /&gt;
$ ln -s soundemittersystem_srv.so soundemittersystem.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we&#039;ll also symlink &amp;lt;code&amp;gt;steamclient.so&amp;lt;/code&amp;gt; to a special directory to prevent bugs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir -p ~/.steam/sdk32&lt;br /&gt;
$ ln -s ~/sdk/bin/steamclient.so ~/.steam/sdk32/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing TF2C ==&lt;br /&gt;
&lt;br /&gt;
We&#039;ll be downloading the archived verison of TF2C, since it&#039;s unlikely to get updates. You have the option of using TF2CDownloader, but we won&#039;t cover it here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget https://wiki.tf2classic.com/kachemak/tf2classic.zip -O /tmp/tf2classic.zip&lt;br /&gt;
$ mkdir ~/sdk/tf2classic&lt;br /&gt;
$ cd ~/sdk/tf2classic&lt;br /&gt;
$ 7z x /tmp/tf2classic.zip &amp;amp;&amp;amp; rm /tmp/tf2classic.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will download the latest archive, create its directory, and extract it. If extraction succeeds it will also delete the downloaded archive.&lt;br /&gt;
&lt;br /&gt;
We&#039;ll also need to do a quick symlink in TF2C&#039;s bin folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ~/sdk/tf2classic/bin&lt;br /&gt;
$ ln -s server.so server_srv.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the server ==&lt;br /&gt;
&lt;br /&gt;
Before proceeding, we can manually run the server to make sure the install was successful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ~/sdk&lt;br /&gt;
$ ./srcds_run -game tf2classic +map ctf_2fort +sv_password changethis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If all goes well, it should start.&lt;br /&gt;
&lt;br /&gt;
== Server Configuration ==&lt;br /&gt;
&lt;br /&gt;
For a basic, private server, you should only need to set a password in &amp;lt;code&amp;gt;sdk/tf2classic/cfg/server.cfg&amp;lt;/code&amp;gt; by appending the file with &amp;lt;code&amp;gt;sv_password yourpassword&amp;lt;/code&amp;gt;.&lt;br /&gt;
You can also make it LAN-only by appending &amp;lt;code&amp;gt;sv_lan 1&amp;lt;/code&amp;gt; in the same file.&lt;br /&gt;
&lt;br /&gt;
If you want a more complicated setup, consider using [https://cfg.tf/ cfg.tf]. If you don&#039;t need this you can skip to the next section.&lt;br /&gt;
&lt;br /&gt;
Make sure the server type is set to “Internet and LAN” if you want players outside your LAN to be able to join (you may need to port forward if you’re on consumer broadband or open ports on your firewall).&lt;br /&gt;
&lt;br /&gt;
Upload the generated ZIP file to your server, perhaps using SFTP, and unzip the folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /tmp&lt;br /&gt;
$ unzip $PATH_TO_ARCHIVE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And merge the &amp;lt;code&amp;gt;cfg&amp;lt;/code&amp;gt; folder with &amp;lt;code&amp;gt;/home/srcds/sdk/tf2classic/cfg/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rsync /tmp/cfg ~/srcds/sdk/tf2classic/cfg&lt;br /&gt;
$ rm -rf /tmp/cfg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Managing the server via Systemd ==&lt;br /&gt;
&lt;br /&gt;
Systemd is a program that will automatically handle things like logging, restarts, and starting your server when your machine boots. We&#039;ll use this to run our server, instead of manually running commands.&lt;br /&gt;
&lt;br /&gt;
=== Creating an SDK 2013 update script ===&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to create a script that will update SDK 2013 for us instead of typing it out manually each time. Later, we&#039;ll optionally use this script to check and update SDK 2013 on our server automatically when the server starts. &lt;br /&gt;
&lt;br /&gt;
First, let&#039;s create a directory for the script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir ~/bin&lt;br /&gt;
$ nano ~/bin/update-sdk.steamcmd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fill the file with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@ShutdownOnFailedCommand 1 //set to 0 if updating multiple servers at once&lt;br /&gt;
@NoPromptForPassword 1&lt;br /&gt;
force_install_dir /home/srcds/sdk&lt;br /&gt;
login anonymous&lt;br /&gt;
app_update 244310 -beta previous2021&lt;br /&gt;
quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can execute this script manually by using the +runscript argument on SteamCMD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ . /etc/environment&lt;br /&gt;
$ steamcmd +runscript /home/srcds/bin/update-sdk.steamcmd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating a service file ===&lt;br /&gt;
&lt;br /&gt;
Create a service file in &amp;lt;code&amp;gt;/etc/systemd/system/&amp;lt;/code&amp;gt; as root. For this guide we&#039;ll use &amp;lt;code&amp;gt;/etc/systemd/system/tf2c.service&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=TF2C Server&lt;br /&gt;
After=network-online.target&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=srcds&lt;br /&gt;
StandardError=journal&lt;br /&gt;
StandardOutput=journal&lt;br /&gt;
WorkingDirectory=/home/srcds/sdk&lt;br /&gt;
RemainAfterExit=no&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +runscript /home/srcds/bin/update-sdk.steamcmd # Exclude or comment this if you don&#039;t want to check for an update on each restart&lt;br /&gt;
Environment=&amp;quot;LD_LIBRARY_PATH=&amp;quot;.:bin:$LD_LIBRARY_PATH&amp;quot;&amp;quot;&lt;br /&gt;
ExecStart=/usr/bin/script -e -c &amp;quot;/home/srcds/sdk/srcds_linux +map ctf_2fort -game tf2classic +maxplayers 24&amp;quot; /dev/null&lt;br /&gt;
TimeoutStartSec=infinity&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, enable the service to start with Systemd on boot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl enable tf2c.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may create as many services as you have TF2C servers but remember to name the service files uniquely. When modifying service files, remember to run &amp;lt;code&amp;gt;systemctl daemon-reload&amp;lt;/code&amp;gt; before restarting the service.&lt;br /&gt;
&lt;br /&gt;
=== Automatic restarts using crontab ===&lt;br /&gt;
&lt;br /&gt;
Cron is a program built into most Linux distros that runs scheduled commands.&lt;br /&gt;
&lt;br /&gt;
As root, execute &amp;lt;code&amp;gt;crontab -e&amp;lt;/code&amp;gt;. This will open a special file in your editor where you can declare what jobs you want to run and when. Let&#039;s add a job to run at 04:00 that will restart our server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 4 * * * systemctl restart tf2c.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manually managing services ===&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t wish to use the service files above to automatically boot servers, or you need to perform these actions for maintenance: you may issue commands to manually &#039;&#039;start&#039;&#039;, &#039;&#039;stop&#039;&#039;, &#039;&#039;restart&#039;&#039;, or &#039;&#039;update&#039;&#039; the server(s) through systemd. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart tf2c # in case you need to restart manually or to grab updates!! &lt;br /&gt;
# systemctl stop tf2c # in case you need to stop the server manually&lt;br /&gt;
# systemctl start tf2c # in case you need to start the server manually&lt;br /&gt;
# systemctl disable tf2c # in case you need to stop the server from booting as your system initializes &lt;br /&gt;
# systemctl enable tf2c # in case you need to start the server to boot as your system initializes &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;/br&amp;gt;See also [[Dedicated_Linux_server_extras|Dedicated Linux Server Extras]].&#039;&#039;&lt;br /&gt;
[[Category:Legacy Guides]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=Troubleshooting/zh-hans&amp;diff=11386</id>
		<title>Troubleshooting/zh-hans</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=Troubleshooting/zh-hans&amp;diff=11386"/>
		<updated>2026-09-08T20:10:44Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:故障排查}}&lt;br /&gt;
本页面记录了《军团要塞2经典》的常见问题及其解决方案。&lt;br /&gt;
&lt;br /&gt;
在尝试依靠此列表进行修复前，请确保您已经按照[[Installation|安装]]页面的步骤进行了操作。&lt;br /&gt;
&lt;br /&gt;
== 当前的主要问题 ==&lt;br /&gt;
=== 阀门公司游戏开场图标播放后无法进入！/无法应用客户端补丁！ ===&lt;br /&gt;
这是由于最近的SDK2013更新，而非《军团要塞2经典》未更新的问题。要暂时解决此问题，请右键单击 Steam 上的 Source SDK Base 2013 Multiplayer，单击“属性”，转到“测试版”，然后选择&amp;lt;code&amp;gt;previous2021&amp;lt;/code&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
每当《军团要塞2经典》更新到新的 SDK2013 版本时，您都需要重复此步骤。&lt;br /&gt;
&lt;br /&gt;
=== 无法加载库客户端。尝试重新启动。如果这不起作用，请验证缓存。 ===&lt;br /&gt;
这是 2.0.4 的新问题，由我们的 crashpad 处理程序需要并非所有用户都拥有的库引起。&lt;br /&gt;
&lt;br /&gt;
需要从 Microsoft 下载并安装此可再发行组件：&lt;br /&gt;
&lt;br /&gt;
* https://aka.ms/vs/16/release/vc_redist.x86.exe&lt;br /&gt;
&lt;br /&gt;
=== 轻微卡顿/网络不稳 ===&lt;br /&gt;
这是 2.0.4 的一个新问题，目前原因尚不清楚，但我们正在调查它。如果您遇到这种情况，请告知我们，并提供任何相关信息。&lt;br /&gt;
&lt;br /&gt;
== TF2CDownloader已出现的问题 ==&lt;br /&gt;
&lt;br /&gt;
=== (Windows) SmartScreen阻止了TF2CDownloader! ===&lt;br /&gt;
其对每个未签名的应用程序执行此举动。签署它每年将花费我们大约 800 美元，所以我们不这样做。在 SmartScreen 弹出窗口中，单击“更多信息”，然后单击“无论如何坚持运行”。&lt;br /&gt;
&lt;br /&gt;
=== (Windows) 其说TF2CDownloader缺少库! ===&lt;br /&gt;
Th这发生在 Windows 7 上。我们不会也不能支持 Windows 7，您必须手动安装游戏。&lt;br /&gt;
&lt;br /&gt;
=== (Linux) TF2CDownloader跟我说“加载 Python 库时出错”! ===&lt;br /&gt;
当应用程序是使用比您的发行版更新的 glibc 版本构建的时，就会发生这种情况。目前，我们支持 Ubuntu 20.04 和任何其他带有 glibc 2.31 或更高版本的发行版。&lt;br /&gt;
&lt;br /&gt;
=== (Linux) TF2CDownloader下载了一个 .meta4 文件，然后在找不到 .tar.zst 文件时崩溃 ===&lt;br /&gt;
如果您的 aria2 版本是在没有元链接支持的情况下编译的，就会发生这种情况。如果你使用的是基于 Gentoo Linux 的发行版，你可以通过为 aria2 设置&amp;lt;code&amp;gt;metalink&amp;lt;/code&amp;gt;USE标志来重组并修复。&lt;br /&gt;
&lt;br /&gt;
=== 为什么运行 TF2CDownloader 时会出现这么多错误？ ===&lt;br /&gt;
这些都是正常的。输出非常冗长。TF2CDownloader 做的第一件事是检查游戏文件是否已经存在以验证它。它通常不存在，这会导致它产生“校验和错误”。然后，如果任何镜像出现故障、超时、丢失或其他问题，当它尝试联系它们时也会产生错误。这些&#039;&#039;不是&#039;&#039;致命的错误，并且在其运行过程中是预期的。&lt;br /&gt;
=== &amp;quot;PermissionError: [Errno 13] Permission denied: ...&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
如果您正在更新，请确保游戏和启动器已关闭，然后重试。如果游戏已关闭，请打开任务管理器，然后终止“hl2.exe”。游戏无法自行正确终止是一个错误。&lt;br /&gt;
&lt;br /&gt;
=== 我找不到 TF2CDownloader 解压的文件夹！ ===&lt;br /&gt;
如果您没有解压到 sourcemods 中，您的解压目录是一个大而杂乱的文件夹，并且您按修改日期排序，您可能无法轻松找到它提取的文件夹。相反，您应该按字母顺序对文件夹进行排序，然后滚动直到找到“tf2classic”文件夹，以便将其移动到您的 sourcemods。按 F5 刷新文件夹的内容也可能有用。&lt;br /&gt;
&lt;br /&gt;
== 杂项问题 ==&lt;br /&gt;
&lt;br /&gt;
=== RaiseJSException: 方法调用失败: Installs.OpenInstallWizard... ===&lt;br /&gt;
尝试启动 TF2 Classic 但未安装 Source SDK Base 2013 Multiplayer 时，很可能会出现此错误。[[Installation#Step 1: Downloading SDK 2013 Multiplayer|阅读安装说明的第一步]]来安装。&lt;br /&gt;
&lt;br /&gt;
=== 我无法连接到任何服务器，所有文本都以 #TF 开头！ ===&lt;br /&gt;
游戏的文件夹(包含一个&amp;lt;code&amp;gt;gameinfo.txt&amp;lt;/code&amp;gt;文件)应被命名为&amp;lt;code&amp;gt;tf2classic&amp;lt;/code&amp;gt;。I如果其被命名为&amp;lt;code&amp;gt;tf2classic-latest&amp;lt;/code&amp;gt; 或者您的所有文件都零散地转储在&amp;lt;code&amp;gt;sourcemods&amp;lt;/code&amp;gt;中，这种情况就会发生。请注意，如果 Steam 正在运行，请在重命名文件夹后重新启动它，否则如果您尝试通过 Steam 启动游戏，则会出现错误。&lt;br /&gt;
&lt;br /&gt;
=== 启动器告诉我SDK2013没有安装，但它已经安装了！===&lt;br /&gt;
如果 Source SDK Base 2013 Multiplayer 安装到与 Steam 客户端不同的驱动器上，则可能会发生这种情况。正确的驱动器几乎总是在&amp;lt;code&amp;gt;C:\&amp;lt;/code&amp;gt;，任何其他驱动器号都必然会导致问题。您可以按如下图移动它：&lt;br /&gt;
[[File:MoveSDK.png|400px|center]]&lt;br /&gt;
对于高级用户，还可以创建符号链接，从驱动器上通用文件夹中的预期位置&amp;lt;code&amp;gt;C:\&amp;lt;/code&amp;gt; 到另一个驱动器上，有关如何创建，请参阅[[#Creating_a_symlink_on_Windows|此处]]。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 启动器说SDK2013需要更新，但已经更新好了！ ===&lt;br /&gt;
您应该尝试从 Steam 启动一次SDK2013。即使 Steam 声称它已完全安装，它可能仍然需要验证或其他工作，而 Steam 只会在您尝试运行它时执行这些工作。启动并再次关闭后，重新启动启动器。&lt;br /&gt;
&lt;br /&gt;
=== 启动器不好使！ ===&lt;br /&gt;
如果您在使用启动器时遇到任何问题，您可以完全忽略它。如果安装正确，游戏应该会出现在您的 Steam 库中，您可以通过那里启动它。&lt;br /&gt;
&lt;br /&gt;
=== 我的游戏没有出现在我的 Steam 库中！===&lt;br /&gt;
首先，如果您在安装游戏后还没有完全重新启动 Steam。右键单击系统托盘中的 Steam，然后从出现的菜单中单击“退出”。或者单击窗口左上角的 Steam 按钮，然后单击下拉列表中的“退出”。然后再次启动 Steam，看看它是否出现。&lt;br /&gt;
&lt;br /&gt;
如果这不起作用，请确保您的文件夹结构正确。在您的&amp;lt;code&amp;gt;sourcemods&amp;lt;/code&amp;gt;文件夹中， 应该有一个&amp;lt;code&amp;gt;tf2classic&amp;lt;/code&amp;gt;文件夹，其应包含一个&amp;lt;code&amp;gt;gameinfo.txt&amp;lt;/code&amp;gt;文件。如果这不完全一致，则说明您提取错了。如果您的路径看着像&amp;lt;code&amp;gt;sourcemods/tf2classic-2.0.3/tf2classic&amp;lt;/code&amp;gt;或者所有文件都被零散的放在&amp;lt;code&amp;gt;sourcemods&amp;lt;/code&amp;gt;中，就会导致其无法检测到。&lt;br /&gt;
&lt;br /&gt;
如果Steam和&#039;&#039;TF2 Classic&#039;&#039;没有安装在同一磁盘内(打比方说，Steam在你的&amp;lt;code&amp;gt;C:&amp;lt;/code&amp;gt; 盘而&#039;&#039;TF2 Classic&#039;&#039;在你的&amp;lt;code&amp;gt;E:&amp;lt;/code&amp;gt;盘)。解决方案是创建一个“符号链接”，即 Steam 安装中的一个文件夹，可重定向到外部磁盘上的文件夹。执行此作的步骤因您的系统而异。&lt;br /&gt;
==== 在Windows上创建符号链接 ====&lt;br /&gt;
# 找到您的&amp;lt;code&amp;gt;sourcemods&amp;lt;/code &amp;gt;文件夹，如果找不到，您可在命令指示符&amp;lt;code&amp;gt;reg query HKCU\Software\Valve\Steam /v SourceModInstallPath&amp;lt;/code&amp;gt;内查看其路径。&lt;br /&gt;
# 删除您的&amp;lt;code&amp;gt;sourcemods&amp;lt;/code&amp;gt;文件夹，否则符号链接将无法被创建。如果那里还有其他模组，请将他们转移到您喜欢的位置。&lt;br /&gt;
# 以管理员身份打开命令指示符。&lt;br /&gt;
# 输入以下命令：&amp;lt;code&amp;gt;mklink /d /j &amp;quot;path to steam sourcemods&amp;quot; &amp;quot;path to your sourcemods&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
替换&amp;lt;code&amp;gt;&amp;quot;path to steam sourcemods&amp;quot;&amp;lt;/code&amp;gt; 为您的&amp;lt;code&amp;gt;sourcemods&amp;lt;/code&amp;gt;Steam路径。比如：&amp;lt;code&amp;gt;&amp;quot;C:\Program Files (x86)\Steam\steamapps\sourcemods&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
替换&amp;lt;code&amp;gt;&amp;quot;path to your sourcemods&amp;quot;&amp;lt;/code&amp;gt; 为您所需要的任何路径，比如&amp;lt;code&amp;gt;&amp;quot;D:\Games\sourcemods&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====在Linux上创建符号链接 ====&lt;br /&gt;
# 删除您的&amp;lt;code&amp;gt;sourcemods&amp;lt;/code&amp;gt; 文件夹，通常位于&amp;lt;code&amp;gt;~/.steam/steam/steamapps/sourcemods&amp;lt;/code&amp;gt;&lt;br /&gt;
# 打开终端并运行 &amp;lt;code&amp;gt;ln -s /path/to/your/sourcemods ~/.steam/steam/steamapps/sourcemods&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
与 Windows 一样，交换&amp;lt;code&amp;gt;/path/to/your/sourcemods&amp;lt;/code&amp;gt; 为您希望在外部磁盘上使用的文件夹的完整路径。&lt;br /&gt;
&lt;br /&gt;
请注意，用于运行游戏的任何外部磁盘&#039;&#039;&#039;都必须是用户可读和可写的，并且您必须具有执行权限&#039;&#039;&#039;。如果这是 NTFS 磁盘，请按照 Valve 的准备指南进行：https://github.com/ValveSoftware/Proton/wiki/Using-a-NTFS-disk-with-Linux-and-Windows.&lt;br /&gt;
&lt;br /&gt;
=== (Linux) 我的游戏无法连接到服务器！/我的游戏内覆盖层不起作用！ ===&lt;br /&gt;
在 Linux 上，&#039;&#039;TF2C&#039;&#039; 需要一个特殊的启动选项才能正常运行。右键单击 Steam 库中的游戏，单击“属性”，然后将其粘贴到启动选项字段中：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LD_PRELOAD=&amp;quot;$HOME/.steam/steam/ubuntu12_32/gameoverlayrenderer.so&amp;quot; %command% -steam -steam&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这应该会修复覆盖，并允许您连接到游戏服务器。&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;您尝试连接的服务器正在运行旧版本的游戏。&amp;quot; ===&lt;br /&gt;
此错误为部分错误。最常见的是，服务器没有运行旧版本的游戏，您是。如果您自己下载了旧版本的游戏，则在连接到官方服务器时会收到此错误。因此，您需要使用最新版本的游戏从存档中重新安装游戏。&lt;br /&gt;
=== 我游戏里的玩家是隐形的！ ===&lt;br /&gt;
如果您的网络不可靠或游戏卡顿，则往往会发生这种情况。可以运行命令来修复此问题，但每次发生时都需要运行此命令。&lt;br /&gt;
&lt;br /&gt;
# 在游戏设置中启用开发者控制台。&lt;br /&gt;
# 按键盘上的 ~（波浪号）键打开控制台。&lt;br /&gt;
# 运行&amp;lt;code&amp;gt;record demo;stop&amp;lt;/code&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
=== 游戏卡在“检索服务器信息”上，但我可以听到游戏内的声音！===&lt;br /&gt;
&lt;br /&gt;
如果您使用英特尔显卡而不是使用专用 GPU 运行游戏，则会出现此问题。&lt;br /&gt;
&lt;br /&gt;
解决方案是降低图形设置，直到问题不再出现。&lt;br /&gt;
== 其他 ==&lt;br /&gt;
* [[Installation|安装]]&lt;br /&gt;
* [https://discord.gg/3zMk4vn Discord服务器] (如果您的问题无法在此处解决，请在 #technical-issues 频道中发布）&lt;br /&gt;
&lt;br /&gt;
[[Category:Legacy Guides]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=Troubleshooting&amp;diff=11385</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=Troubleshooting&amp;diff=11385"/>
		<updated>2026-09-08T20:10:32Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page attempts to document common problems with &#039;&#039;TF2 Classic&#039;&#039;, and their solutions.&lt;br /&gt;
&lt;br /&gt;
Make sure you&#039;ve completely followed the instructions listed at the [[Installation]] page before attempting to solve your problem here.&lt;br /&gt;
&lt;br /&gt;
== Current major issues ==&lt;br /&gt;
=== Game crashes after the Valve intro/&amp;quot;Failed to apply client patches!&amp;quot; ===&lt;br /&gt;
This is a new issue caused by the recent SDK2013 update, and TF2 Classic not having been updated yet. To temporarily fix this, right click &#039;&#039;Source SDK Base 2013 Multiplayer&#039;&#039; on Steam, click Properties, go to Beta, and select &amp;lt;code&amp;gt;previous2021&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Whenever TF2 Classic updates to the new SDK2013 version, you&#039;ll need to revert this.&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Could not load library client. Try restarting. If that doesn&#039;t work, verify the cache.&amp;quot; ===&lt;br /&gt;
This is a new 2.0.4 issue caused by our crashpad handler requiring libraries that not all users have.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll need to download and install this redistributable from Microsoft:&lt;br /&gt;
* https://aka.ms/vs/16/release/vc_redist.x86.exe&lt;br /&gt;
&lt;br /&gt;
=== Microstuttering/Network judder ===&lt;br /&gt;
This is a new 2.0.4 issue, the cause is currently unknown but we&#039;re looking into it. Let us know if you encounter this, along with any relevant information.&lt;br /&gt;
&lt;br /&gt;
== TF2CDownloader-related issues ==&lt;br /&gt;
&lt;br /&gt;
=== (Windows) SmartScreen blocked TF2CDownloader! ===&lt;br /&gt;
It does this for every unsigned application. To sign it would cost us somewhere around $800 per year, so we don&#039;t. On the SmartScreen pop-up, click &amp;quot;More info&amp;quot;, then &amp;quot;Run anyways&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== (Windows) It says TF2CDownloader is missing libraries! ===&lt;br /&gt;
This happens on Windows 7. We do not and cannot support Windows 7, you must install the game manually.&lt;br /&gt;
&lt;br /&gt;
=== (Linux) TF2CDownloader gives me an &amp;quot;Error loading Python lib&amp;quot;! ===&lt;br /&gt;
This happens when the application was built with a version of glibc that&#039;s newer than what your distribution carries. Currently, we support Ubuntu 20.04 and any other distribution with glibc 2.31 or newer.&lt;br /&gt;
,&lt;br /&gt;
=== (Linux) TF2CDownloader downloads a .meta4 file, then crashes when it can&#039;t find a .tar.zst file ===&lt;br /&gt;
This happens if your version of aria2 was compiled without metalink support. If you&#039;re on a Gentoo Linux-based distribution, you can fix it by setting the &amp;lt;code&amp;gt;metalink&amp;lt;/code&amp;gt; USE flag for aria2 and then rebuilding it.&lt;br /&gt;
&lt;br /&gt;
=== Why are there so many errors when I run TF2CDownloader? ===&lt;br /&gt;
Those are normal. The output is extremely verbose. The first thing TF2CDownloader does is check if the game file already exists for the purpose of verifying it. It usually doesn&#039;t exist, which causes it to produce a &amp;quot;Checksum error&amp;quot;. Then, if any mirrors are failing, timing out, missing, or otherwise having issues, it&#039;ll produce an error when it attempts to contact them as well. These are &#039;&#039;not&#039;&#039; fatal errors, and are expected in its course of operation.&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;PermissionError: [Errno 13] Permission denied: ...&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re updating, make sure the game and the launcher are closed, then try again. If the game is already closed, open task manager, and terminate &amp;quot;hl2.exe&amp;quot;. The game not properly terminating by itself is a bug.&lt;br /&gt;
&lt;br /&gt;
=== I can&#039;t find the folder TF2CDownloader extracted! ===&lt;br /&gt;
If you&#039;re not extracting into your sourcemods, your extraction directory is a large and cluttered folder, &#039;&#039;and&#039;&#039; you&#039;re sorting by the modified date, you likely won&#039;t find the folder it extracted easily. You should instead sort the folder alphabetically, and then scroll until you find the &amp;quot;tf2classic&amp;quot; folder, so you can move it to your sourcemods. Pressing F5 to refresh the folder&#039;s contents may also be useful.&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous issues ==&lt;br /&gt;
&lt;br /&gt;
=== RaiseJSException: Method call failed: Installs.OpenInstallWizard... ===&lt;br /&gt;
This error most likely comes up when trying to launch TF2 Classic but Source SDK Base 2013 Multiplayer isn&#039;t installed. [[Installation#Step 1: Downloading SDK 2013 Multiplayer|Read the first step of the instructions]] to install it.&lt;br /&gt;
&lt;br /&gt;
=== I can&#039;t connect to any servers and all of the text starts with #TF! ===&lt;br /&gt;
The folder of your game (which should contain a &amp;lt;code&amp;gt;gameinfo.txt&amp;lt;/code&amp;gt; file) should be named &amp;lt;code&amp;gt;tf2classic&amp;lt;/code&amp;gt;. If it is named &amp;lt;code&amp;gt;tf2classic-latest&amp;lt;/code&amp;gt; or if all of your files are dumped loosely in &amp;lt;code&amp;gt;sourcemods&amp;lt;/code&amp;gt;, that will cause this to happen. Note that if Steam&#039;s running, restart it after renaming the folder, or else an error will occur if you attempt to launch the game via Steam.&lt;br /&gt;
&lt;br /&gt;
=== The launcher tells me that SDK2013 isn&#039;t installed, but it is! ===&lt;br /&gt;
This can happen if Source SDK Base 2013 Multiplayer is installed onto a separate drive from the Steam client. The correct drive will almost always be &amp;lt;code&amp;gt;C:\&amp;lt;/code&amp;gt;. Any other drive letters are bound to cause issues. You can move it as shown below:&lt;br /&gt;
[[File:MoveSDK.png|400px|center]]&lt;br /&gt;
For advanced users, it&#039;s also possible to create a symlink from its expected location in the common folder on your &amp;lt;code&amp;gt;C:\&amp;lt;/code&amp;gt; drive to its real location on another drive. See instructions [[#Creating_a_symlink_on_Windows|here]] for how to create one.&lt;br /&gt;
rest&lt;br /&gt;
=== The launcher says that SDK2013 needs to be updated, but it is! ===&lt;br /&gt;
You should try to launch SDK2013 from Steam once. Even if Steam claims it&#039;s fully installed, it may still require validation or other work, which Steam will only perform when you try to run it. After launching and closing it again, restart the launcher.&lt;br /&gt;
&lt;br /&gt;
=== The launcher doesn&#039;t work! ===&lt;br /&gt;
If you run into any issues with the launcher, you&#039;re safe to ignore it entirely. The game should appear in your Steam library if it was installed correctly, and you can launch it through there instead.&lt;br /&gt;
&lt;br /&gt;
=== My game doesn&#039;t appear in my Steam library! ===&lt;br /&gt;
First, restart Steam completely if you haven&#039;t since installing the game. Right-click Steam in your system tray, then click &amp;quot;Exit&amp;quot; from the menu that appears. &#039;&#039;Or&#039;&#039; click the Steam button in the top-left of the window, and click &amp;quot;Exit&amp;quot; from the dropdown. Then start Steam again, and see if it appears.&lt;br /&gt;
&lt;br /&gt;
If that doesn&#039;t work, make sure your folder structure is correct. Inside your &amp;lt;code&amp;gt;sourcemods&amp;lt;/code&amp;gt; folder, there should be a &amp;lt;code&amp;gt;tf2classic&amp;lt;/code&amp;gt; folder, which should contain a &amp;lt;code&amp;gt;gameinfo.txt&amp;lt;/code&amp;gt; file. If this doesn&#039;t perfectly line up, you extracted it incorrectly. If you have a path that looks like &amp;lt;code&amp;gt;sourcemods/tf2classic-2.0.3/tf2classic&amp;lt;/code&amp;gt; or if all of your files are dumped loosely in &amp;lt;code&amp;gt;sourcemods&amp;lt;/code&amp;gt;, that will cause it to be undetectable.&lt;br /&gt;
&lt;br /&gt;
This issue can also appear if Steam and &#039;&#039;TF2 Classic&#039;&#039; are installed on separate disks (for instance, Steam on your &amp;lt;code&amp;gt;C:&amp;lt;/code&amp;gt; drive and &#039;&#039;TF2 Classic&#039;&#039; on your &amp;lt;code&amp;gt;E:&amp;lt;/code&amp;gt; drive). The solution is to create a &amp;quot;symlink&amp;quot;, a folder in your Steam installation that redirects to a folder on your external disk. The steps to do this vary depending on your system.&lt;br /&gt;
&lt;br /&gt;
==== Creating a symlink on Windows ====&lt;br /&gt;
# Locate your &amp;lt;code&amp;gt;sourcemods&amp;lt;/code&amp;gt; folder. If you can&#039;t find it, you can run &amp;lt;code&amp;gt;reg query HKCU\Software\Valve\Steam /v SourceModInstallPath&amp;lt;/code&amp;gt; in Command Prompt to see the path.&lt;br /&gt;
# Delete your &amp;lt;code&amp;gt;sourcemods&amp;lt;/code&amp;gt; folder, otherwise the symlink can&#039;t be made. If any mods are still in there, transfer them over to your preferred new location.&lt;br /&gt;
# Open Command Prompt as administrator.&lt;br /&gt;
# Enter this command: &amp;lt;code&amp;gt;mklink /d /j &amp;quot;path to steam sourcemods&amp;quot; &amp;quot;path to your sourcemods&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;&amp;quot;path to steam sourcemods&amp;quot;&amp;lt;/code&amp;gt; with your Steam &amp;lt;code&amp;gt;sourcemods&amp;lt;/code&amp;gt; path, for instance: &amp;lt;code&amp;gt;&amp;quot;C:\Program Files (x86)\Steam\steamapps\sourcemods&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;&amp;quot;path to your sourcemods&amp;quot;&amp;lt;/code&amp;gt; with whatever path you require, for instance: &amp;lt;code&amp;gt;&amp;quot;D:\Games\sourcemods&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating a symlink on Linux ====&lt;br /&gt;
# Delete your Steam &amp;lt;code&amp;gt;sourcemods&amp;lt;/code&amp;gt; folder, usually found at &amp;lt;code&amp;gt;~/.steam/steam/steamapps/sourcemods&amp;lt;/code&amp;gt;&lt;br /&gt;
# Open a terminal and run &amp;lt;code&amp;gt;ln -s /path/to/your/sourcemods ~/.steam/steam/steamapps/sourcemods&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Like you would Windows, exchange &amp;lt;code&amp;gt;/path/to/your/sourcemods&amp;lt;/code&amp;gt; with the full path to the folder you wish to use on your external disk. &lt;br /&gt;
&lt;br /&gt;
Note that any external disk used for running games &#039;&#039;&#039;must be readable and writable by your user, and you must have execute permissions.&#039;&#039;&#039; If this is an NTFS disk, follow Valve&#039;s guide on preparing it: https://github.com/ValveSoftware/Proton/wiki/Using-a-NTFS-disk-with-Linux-and-Windows.&lt;br /&gt;
&lt;br /&gt;
=== (Linux) My game can&#039;t connect to servers!/My in-game overlay doesn&#039;t work! ===&lt;br /&gt;
On Linux, &#039;&#039;TF2C&#039;&#039; requires a special launch option to function properly. Right-click the game in your Steam library, click &amp;quot;Properties&amp;quot;, then paste this into the Launch Options field:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LD_PRELOAD=&amp;quot;$HOME/.steam/steam/ubuntu12_32/gameoverlayrenderer.so&amp;quot; %command% -steam -steam&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should fix the overlay, and allow you to connect to game servers.&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;The server you are trying to connect to is running an older version of the game.&amp;quot; ===&lt;br /&gt;
This error is partially erroneous. Most commonly, the server isn&#039;t running an older version of the game, you are. If you downloaded an older version of the game yourself, you&#039;ll receive this error when connecting to official servers. Hence, you&#039;ll need to reinstall the game from an archive using the latest version of the game.&lt;br /&gt;
&lt;br /&gt;
=== Players are invisible in my game! ===&lt;br /&gt;
This tends to happen if your network is unreliable or your game stutters. It&#039;s possible to run a command to fix this, though you&#039;ll need to run this command every time it happens.&lt;br /&gt;
&lt;br /&gt;
# Enable the Developer Console in the game settings.&lt;br /&gt;
# Press the ~ (tilde) key on your keyboard to open the console.&lt;br /&gt;
# Run &amp;lt;code&amp;gt;record demo;stop&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== The game is stuck on &amp;quot;Retrieving server info&amp;quot; but I can hear in-game sounds! ===&lt;br /&gt;
&lt;br /&gt;
This problem happens if you&#039;re running the game with Intel Graphics instead of using a dedicated GPU.&lt;br /&gt;
&lt;br /&gt;
The solution is to lower the graphic settings until the problem no longer shows up.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [https://discord.gg/3zMk4vn Discord server] (post in the #technical-issues channel if your issue could not be resolved here)&lt;br /&gt;
&lt;br /&gt;
[[Category:Legacy Guides]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=Installation/fa&amp;diff=11384</id>
		<title>Installation/fa</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=Installation/fa&amp;diff=11384"/>
		<updated>2026-09-08T20:09:55Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;این راهنما را برای دانلود و نصب بازی Team Fortress 2 Classic انجام داده‌اید. عالی!&lt;br /&gt;
&lt;br /&gt;
قبل از دانلود، چند نکته را به یاد داشته باشید:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Team Fortress 2 Classic&#039;&#039; یک ابداع طرفداری است و هیچ ارتباطی با شرکت Valve Corporation ندارد. &#039;&#039;TF2 Classic&#039;&#039; جدا از نصب Team Fortress 2 شما اجرا می‌شود و نمی‌تواند به طور مستقیم بر روی آن تأثیر بگذارد.&lt;br /&gt;
* با دانلود &#039;&#039;Team Fortress 2 Classic&#039;&#039;، شما می‌پذیرید که این نرم‌افزار &amp;quot;همانند آنچه است،&amp;quot; بدون هیچ گونه ضمانتی ارائه شده است. Eminoma (تیم توسعه &#039;&#039;TF2 Classic&#039;&#039;)، Valve Corporation، Steam و دیگر افراد مربوطه مسئول هیچ گونه آسیب (مستقیم یا غیر مستقیم) ناشی از نصب یا استفاده از نرم‌افزار ارائه شده نیستند.&lt;br /&gt;
&lt;br /&gt;
== مرحله 1: دانلود SDK 2013 Multiplayer ==&lt;br /&gt;
برای اجرای &#039;&#039;TF2 Classic&#039;&#039;، باید Source SDK Base 2013 Multiplayer را نصب کنید. اگر این برنامه را قبلاً نصب کرده‌اید، می‌توانید این مرحله را برای رد شدن بپردازید.&lt;br /&gt;
&lt;br /&gt;
* [steam://install/243750 دانلود SDK 2013 Multiplayer]&lt;br /&gt;
&lt;br /&gt;
اگر لینک کار نمی‌کند، می‌توانید به کتابخانه Steam خود مراجعه کرده و &amp;quot;Source SDK Base 2013 Multiplayer&amp;quot; را در نوار جستجو تایپ کنید و زمانی که ظاهر می‌شود آن را نصب کنید.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;توجه: Source SDK Base 2013 دارای دو نسخه است - یکی برای حالت یک نفره و یکی برای چند نفره. اطمینان حاصل کنید که نسخه چند نفره را نصب کرده‌اید، در غیر این صورت بازی کار نخواهد کرد.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== مرحله 2: دریافت برنامه دانلود کننده ==&lt;br /&gt;
برای قابلیت دانلود و استخراج بازی، می‌توانید از ابزار اختصاصی ما، TF2CDownloader استفاده کنید. این برنامه [https://github.com/tf2classic/TF2CDownloader رایگان و متن‌باز] است.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/tf2classic/TF2CDownloader/releases/latest/download/TF2CDownloaderWindows.exe دانلود برای ویندوز (۶۴ بیت)]&lt;br /&gt;
* [https://github.com/tf2classic/TF2CDownloader/releases/latest/download/TF2CDownloaderLinux دانلود برای لینوکس (دسکتاپ و سرور)]&lt;br /&gt;
&lt;br /&gt;
علاوه بر این، می‌توانید همچنین یک فایل فشرده zip از بازی را برای نصب دستی دانلود کنید.&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.tf2classic.com/kachemak/tf2classic-latest.zip دانلود فایل فشرده zip]&lt;br /&gt;
&lt;br /&gt;
== م&lt;br /&gt;
&lt;br /&gt;
رحله 3: نصب &#039;&#039;TF2 Classic&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;در ویندوز&#039;&#039;، فقط فایل &amp;lt;code&amp;gt;TF2CDownloaderWindows.exe&amp;lt;/code&amp;gt; را اجرا کنید. ممکن است نیاز به عبور از یک هشدار داشته باشید که یک برنامه غیرقابل اعتماد است. این یک خط فرمان باز خواهد کرد که در آن می‌توانید مکان پوشه sourcemods خود را تأیید کنید و انتخاب کنید که بازی را نصب کنید.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;در لینوکس&#039;&#039;، شما باید برنامه دانلود کننده را از ترمینال اجرا کنید. با کلیک راست در پوشه حاوی فایل دانلود شده، بر روی &amp;quot;باز کردن در ترمینال&amp;quot; کلیک کنید و دستور &amp;lt;code&amp;gt;chmod +x ./TF2CDownloaderLinux &amp;amp;&amp;amp; ./TF2CDownloaderLinux&amp;lt;/code&amp;gt; را اجرا کنید. اجازه دهید اجرا شود.&lt;br /&gt;
&lt;br /&gt;
زمانی که انجام شد، باید یک پوشه &amp;quot;tf2classic&amp;quot; در داخل پوشه sourcemods خود داشته باشید.&lt;br /&gt;
&lt;br /&gt;
== مرحله 4: اجرای بازی ==&lt;br /&gt;
در نهایت، Steam را کاملاً دوباره راه‌اندازی کنید. در کلاینت Steam، بر روی دکمه &amp;quot;Steam&amp;quot; در بالای چپ کلیک کنید، سپس از منوی پایینی &amp;quot;خروج&amp;quot; را انتخاب کنید. دوباره Steam را راه‌اندازی کنید، و &#039;&#039;TF2 Classic&#039;&#039; باید اکنون در کتابخانه Steam شما ظاهر شود.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;در لینوکس&#039;&#039;، بر روی &#039;&#039;TF2 Classic&#039;&#039; کلیک راست کنید، بر روی &amp;quot;ویژگی‌ها&amp;quot; کلیک کنید، و در قسمت گزینه‌های اجرا -steam -steam را در فیلد گزینه‌های اجرا تایپ کنید، و سپس پنجره را ببندید.&lt;br /&gt;
&lt;br /&gt;
تبریک! &#039;&#039;Team Fortress 2 Classic&#039;&#039; اکنون آماده بازی است!&lt;br /&gt;
&lt;br /&gt;
== راهنمایی و پشتیبانی اضافی ==&lt;br /&gt;
مشکلاتی در دانلود دارید؟ صفحه [[troubleshooting|مشکلات راه‌حل‌پذیری]] ما را بررسی کنید یا به جامعه [https://discord.gg/3zMk4vn Discord] ما بپیوندید و در کانال #technical-issues سوال کنید.&lt;br /&gt;
&lt;br /&gt;
[[Category:Legacy Guides]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=Installation&amp;diff=11383</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=Installation&amp;diff=11383"/>
		<updated>2026-09-08T20:09:37Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So, you&#039;ve chosen to prove your worth in the world of Team Fortress 2 Classic. Great!&lt;br /&gt;
&lt;br /&gt;
It is important to note a few things before downloading:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Team Fortress 2 Classic&#039;&#039; is a fan creation and is not affiliated with Valve Corporation. &#039;&#039;TF2 Classic&#039;&#039; runs separate from your &#039;&#039;Team Fortress 2&#039;&#039; installation, and cannot directly impact it.&lt;br /&gt;
* By downloading &#039;&#039;Team Fortress 2 Classic&#039;&#039;, you accept that the software is provided &amp;quot;as is,&amp;quot; without warranty of any kind. Eminoma (the &#039;&#039;TF2 Classic&#039;&#039; development team), Valve Corporation, Steam, and other affiliated parties are not responsible for any damages (direct or indirect) caused by installation or usage of the supplied software.&lt;br /&gt;
&lt;br /&gt;
== Step 1: Downloading SDK 2013 Multiplayer ==&lt;br /&gt;
To run &#039;&#039;TF2 Classic&#039;&#039;, you must have Source SDK Base 2013 Multiplayer installed. You can skip this step if you already have it installed.&lt;br /&gt;
&lt;br /&gt;
* [steam://install/243750 Download SDK 2013 Multiplayer]&lt;br /&gt;
&lt;br /&gt;
If the link doesn&#039;t work, you can enter your Steam library and type &amp;quot;Source SDK Base 2013 Multiplayer&amp;quot; in the search bar and install it when it appears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: Source SDK Base 2013 has two versions - one for singleplayer and one for multiplayer. Ensure you have the multiplayer version installed, or the game will not work.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Step 2: Getting the Downloader ==&lt;br /&gt;
To be able to download and extract the game, you can use our dedicated utility, TF2CDownloader. This program is [https://github.com/tf2classic/TF2CDownloader free and open-source].&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/tf2classic/TF2CDownloader/releases/latest/download/TF2CDownloaderWindows.exe Download for Windows (64-bit)]&lt;br /&gt;
* [https://github.com/tf2classic/TF2CDownloader/releases/latest/download/TF2CDownloaderLinux Download for Linux (desktop &amp;amp; server)]&lt;br /&gt;
&lt;br /&gt;
Additionally, you can also download a zip archive of the game for manual installation.&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.tf2classic.com/kachemak/tf2classic.zip Download zip archive]&lt;br /&gt;
&lt;br /&gt;
== Step 3: Installing &#039;&#039;TF2 Classic&#039;&#039; ==&lt;br /&gt;
&#039;&#039;&#039;On Windows&#039;&#039;&#039;, simply run &amp;lt;code&amp;gt;TF2CDownloaderWindows.exe&amp;lt;/code&amp;gt;. This may require bypassing a warning that it&#039;s an untrusted app. It will open a command prompt where you can confirm the location of your sourcemods folder and choose to install the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Linux&#039;&#039;&#039;, you must run the downloader from the terminal. Right-click in the folder containing the downloaded file, click &amp;quot;Open in Terminal&amp;quot;, and run &amp;lt;code&amp;gt;chmod +x ./TF2CDownloaderLinux &amp;amp;&amp;amp; ./TF2CDownloaderLinux&amp;lt;/code&amp;gt;. Let it run.&lt;br /&gt;
&lt;br /&gt;
When it finishes, you should then have a &amp;quot;tf2classic&amp;quot; folder inside of your sourcemods folder.&lt;br /&gt;
&lt;br /&gt;
== Step 4: Running the Game ==&lt;br /&gt;
Finally, restart Steam completely. In the Steam client, click the &amp;quot;Steam&amp;quot; button at the top-left, then &amp;quot;Exit&amp;quot; from the dropdown. Launch Steam again, and &#039;&#039;TF2 Classic&#039;&#039; should now appear in your Steam library.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;On Linux&#039;&#039;&#039;, right-click on &#039;&#039;TF2 Classic&#039;&#039;, click &amp;quot;Properties&amp;quot;, and type -steam -steam in the launch options field, and then close the window.&lt;br /&gt;
&lt;br /&gt;
Congratulations! &#039;&#039;Team Fortress 2 Classic&#039;&#039; should now be ready to play!&lt;br /&gt;
&lt;br /&gt;
== Additional Help and Support ==&lt;br /&gt;
Have problems downloading? Check out our [[troubleshooting]] page or join our [https://discord.gg/3zMk4vn Discord] community and ask in the #technical-issues channel for help.&lt;br /&gt;
&lt;br /&gt;
[[Category:Legacy Guides]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=11382</id>
		<title>End of Linux Client support</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=11382"/>
		<updated>2026-09-08T20:09:04Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Patch [[2.1.3]] will mark the end of Linux client support. We will instead pivot towards supporting &#039;&#039;&#039;Proton (also known as Steam Play)&#039;&#039;&#039;, Valve&#039;s compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it. Proton&#039;s Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users.&lt;br /&gt;
&lt;br /&gt;
This wiki page serves as a guide on how to migrate to Proton to continue playing.&lt;br /&gt;
&lt;br /&gt;
== Important note for Proton users ==&lt;br /&gt;
We have shipped some visual fixes regarding font rendering on Proton. &#039;&#039;&#039;However, this may break support for some custom HUDs.&#039;&#039;&#039; For backwards compatibility, you may run the game using the &amp;lt;code&amp;gt;-defaultscheme&amp;lt;/code&amp;gt; launch option.&lt;br /&gt;
&lt;br /&gt;
== Enabling Proton ==&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
Locate &#039;&#039;&#039;Source SDK Base 2013 Multiplayer&#039;&#039;&#039; in your Steam library, &#039;&#039;&#039;right-click&#039;&#039;&#039;, and go to &#039;&#039;&#039;Properties&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:sdk2013.png|800px]]&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
Select the &#039;&#039;&#039;Compatibility&#039;&#039;&#039; tab, and enable &#039;&#039;&#039;Steam Play&#039;&#039;&#039;. Select &#039;&#039;&#039;Proton Experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Sdk2013 3.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Legacy Guides]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=Dedicated_legacy_Linux_server_extras&amp;diff=11381</id>
		<title>Dedicated legacy Linux server extras</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=Dedicated_legacy_Linux_server_extras&amp;diff=11381"/>
		<updated>2026-09-08T20:08:44Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ambox|contents=This article is based on a guide written by Raizo, the original of which can be found [https://blog.raizo.dev/posts/tf2-classic-linux-server-tutorial/ here].}}&lt;br /&gt;
{{Ambox|contents=This guide is written for the old &#039;&#039;Team Fortress 2 Classic&#039;&#039; non-Steam builds. This guide will not work for the modern &#039;&#039;Team Fortress 2 Classified&#039;&#039; Steam builds as it requires special steps.}}&lt;br /&gt;
&lt;br /&gt;
== SourceMod+Metamod setup ==&lt;br /&gt;
&lt;br /&gt;
SourceMod+Metamod is powerful administrator tool for dedicated server owners and operators. SourceMod lets you add administrators easily based on SteamID, control and authenticate to the server securely and even add additional functionality to everyone on server like extended map voting functionality.&lt;br /&gt;
&lt;br /&gt;
SourceMod isn’t necessarily drag-and-drop like supported SM games are such as live TF2 and CS:Source due to this simply being a mod built off of Source SDK 2013 with things like a different game name (&amp;lt;code&amp;gt;tf2classic&amp;lt;/code&amp;gt;), offsets, signatures, etc.&lt;br /&gt;
&lt;br /&gt;
While the process of getting SM to work isn’t that hard, generic source server guides do not cover few unique factors that come with setting up fully working MM+SM for mods like TF2 Classic.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
This guide assumes you already have a dedicated Linux server installed that can run without issues. If not you should follow [[Dedicated Linux server|this guide]] to setup your server first.&lt;br /&gt;
&lt;br /&gt;
This guide will use a &amp;lt;code&amp;gt;/opt/&amp;lt;/code&amp;gt;-based installation, so feel free to follow this guide directly if you use the same directory too. We&#039;ll refer to it as &amp;lt;code&amp;gt;/opt/tf2classic/server/&amp;lt;/code&amp;gt;, sometimes just &amp;lt;code&amp;gt;../server/&amp;lt;/code&amp;gt;. Otherwise remember to use your own path instead.&lt;br /&gt;
&lt;br /&gt;
=== Getting SourceMod and MetaMod ===&lt;br /&gt;
Visit the Stable builds section of [https://www.sourcemod.net/downloads.php?branch=stable sourcemod.net] and grab the latest Linux build and upload it to your server using SFTP. If you do not have SFTP on your server, download it to your server using wget or similar tool.&lt;br /&gt;
&lt;br /&gt;
Using Terminal or SSH instead of SFTP, first navigate to your server tf2classic folder. We&#039;ll navigate to &amp;lt;code&amp;gt;/opt/tf2classic/server/tf2classic/&amp;lt;/code&amp;gt; first.&lt;br /&gt;
&amp;lt;br&amp;gt;Then you can run wget to download SourceMod archive to your current directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$ wget https://sm.alliedmods.net/smdrop/1.11/sourcemod-1.11.0-git6917-linux.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You’ll also need stable [https://www.sourcemm.net/downloads.php?branch=stable Metamod:Source]. Download it with one of the ways you did.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$ wget https://mms.alliedmods.net/mmsdrop/1.11/mmsource-1.11.0-git1148-linux.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These links in wget examples may be outdated. You can check both SourceMod &amp;amp; metamod:source downloads page for the newest version and replace any outdated URL&#039;s from there.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can now extract both inside your &amp;lt;code&amp;gt;tf2classic&amp;lt;/code&amp;gt; folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$&amp;lt;/nowiki&amp;gt; tar -xf sourcemod-1.11.0-git6917-linux.tar.gz&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$&amp;lt;/nowiki&amp;gt; tar -xf mmsource-1.11.0-git1148-linux.tar.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can delete the archive files after the extracted files are in correct place.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$&amp;lt;/nowiki&amp;gt; rem sourcemod-1.11.0-git6917-linux.tar.gz&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$&amp;lt;/nowiki&amp;gt; rem mmsource-1.11.0-git1148-linux.tar.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Replacing &amp;lt;code&amp;gt;metamod.vdf&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Correct &amp;lt;code&amp;gt;metamod.vdf&amp;lt;/code&amp;gt; is necessary for metamod:source to start correctly. Since this is a third party mod, we can use a web tool to generate a custom metamod.vdf file that points to &amp;lt;code&amp;gt;tf2classic&amp;lt;/code&amp;gt;. Otherwise, we create one from scratch in text editor.&lt;br /&gt;
&lt;br /&gt;
You should navigate to your &amp;lt;code&amp;gt;../server/tf2classic/addons/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You can now delete &amp;lt;code&amp;gt;metamod.vdf&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;metamod_x64.vdf&amp;lt;/code&amp;gt; in this directory. No need to back up these or anything, they are less than useless for TF2C server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$&amp;lt;/nowiki&amp;gt; rem metamod.vdf&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$&amp;lt;/nowiki&amp;gt; rem metamod_x64.vdf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Head over to [https://www.sourcemm.net/vdf sourcemm.net/vdf].&lt;br /&gt;
You’re going to leave the “Game:” blank, or as “—”. In the “Game Folder” box, enter &amp;lt;code&amp;gt;tf2classic&amp;lt;/code&amp;gt;. After downloading generated file with these variables, use SFTP to transfer it to your server&#039;s &amp;lt;code&amp;gt;../server/tf2classic/addons/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
If you currently do not have SFTP available on your game server, you can alternatively do everything from Command Line/SSH, provided you have a text editor like &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
&lt;br /&gt;
Make sure that you are working in &amp;lt;code&amp;gt;../server/tf2classic/addons&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
First create a &amp;lt;code&amp;gt;metamod.vdf&amp;lt;/code&amp;gt; file in this directory with following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$&amp;lt;/nowiki&amp;gt; touch metamod.vdf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Followed by opening the file in your favorite command line text editor, &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt; in this example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$&amp;lt;/nowiki&amp;gt; nano metamod.vdf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And type in the following to this blank file:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;quot;Plugin&amp;quot;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;file&amp;quot;	&amp;quot;../tf2classic/addons/metamod/bin/server&amp;quot;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
before saving and exitting.&lt;br /&gt;
&lt;br /&gt;
===Importing custom gamedata===&lt;br /&gt;
To fix many functions of SourceMod when running under Team Fortress 2 Classic, we need to import custom gamedata.&lt;br /&gt;
&amp;lt;br&amp;gt;Move first to work under &amp;lt;code&amp;gt;../server/tf2classic/&amp;lt;/code&amp;gt; directory.  (&amp;lt;code&amp;gt;/opt/tf2classic/server/tf2classic/&amp;lt;/code&amp;gt;) &lt;br /&gt;
&lt;br /&gt;
If you are working with Ubuntu Server, you might have &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; installed. Try first the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$&amp;lt;/nowiki&amp;gt; git clone &amp;lt;nowiki&amp;gt;https://github.com/tf2classic/SM-TF2Classic-Tools.git&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you do not have &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt;, download the repo with wget directly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;wget https://github.com/tf2classic/SM-TF2Classic-Tools/archive/master.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then unzip it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$&amp;lt;/nowiki&amp;gt; unzip master.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; into the directory, being either &amp;lt;code&amp;gt;SM-TF2Classic-Tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;SM-TF2Classic-Tools-master&amp;lt;/code&amp;gt; depending on how you downloaded it.&lt;br /&gt;
&amp;lt;br&amp;gt;Run the following command to copy &amp;lt;code&amp;gt;sourcemod&amp;lt;/code&amp;gt; directory to your server&#039;s &amp;lt;code&amp;gt;addons&amp;lt;/code&amp;gt; folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$&amp;lt;/nowiki&amp;gt; cp -r sourcemod/ ../addons/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, we need to stop sourcemod from auto-updating its gamedata. Locate the sourcemod &amp;lt;code&amp;gt;core.cfg&amp;lt;/code&amp;gt; config file (located in &amp;lt;code&amp;gt;addons/configs&amp;lt;/code&amp;gt;) and change:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;quot;DisableAutoUpdate&amp;quot;			&amp;quot;no&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;quot;DisableAutoUpdate&amp;quot;			&amp;quot;yes&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we have the necessary gamedata for plugins and core SM and MM functions to work with TF2C.&lt;br /&gt;
&lt;br /&gt;
===Setting yourself as the “root” admin user and finalizing.===&lt;br /&gt;
&lt;br /&gt;
To register yourself as an administrator on your server&#039;s SourceMod, we have to add people to &amp;lt;code&amp;gt;admins_simple.ini&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
You want to find out your and/or your to-be administrator&#039;s SteamID using a website like [https://steamid.io/ steamid.io]. Enter your steam community URL to the site and you should get set of info that includes your &amp;lt;code&amp;gt;steamID&amp;lt;/code&amp;gt;, which should be in &amp;lt;code&amp;gt;STEAM_0:1:16&amp;lt;/code&amp;gt; format.&lt;br /&gt;
&lt;br /&gt;
Open the file &amp;lt;code&amp;gt;../server/tf2classic/addons/sourcemod/configs/admins_simple.ini&amp;lt;/code&amp;gt; with a text editor, &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt; for example. The file will be full of guidance and additional information about how the file works after slashes. Do not worry about leaving it all in as every line beginning with number of slashes are simply ignored, so this filled looking file is empty as it comes to how SourceMod handles it. Punch a new line at the bottom of this file and enter the following:&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;quot;STEAM_0:1:16&amp;quot;		&amp;quot;99:z&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;STEAM_0:1:16&amp;lt;/code&amp;gt; with your own or your master administrator&#039;s steamID that you extracted with afformentioned [https://steamid.io steamid.io] for example. &amp;quot;99:z&amp;quot; in this case assigns high immunity level and root (full) access for administration and server control. You can add more people to &amp;lt;code&amp;gt;admins_simple.ini&amp;lt;/code&amp;gt; file but you should limit their access to the server appropriately by using examples within the file itself and documentation from SourceMod&#039;s wiki: https://wiki.alliedmods.net/Adding_Admins_(SourceMod)&lt;br /&gt;
&lt;br /&gt;
Save, exit and start/restart your server and everything should be running fine. You can test this by typing &amp;lt;code&amp;gt;meta version&amp;lt;/code&amp;gt; in your server console (or RCON). You should see a line like &amp;lt;code&amp;gt;&amp;quot;Loaded As: Valve Server Plugin.&amp;quot;&amp;lt;/code&amp;gt;. Additionally, if you assigned yourself as an administrator for the server, typing &amp;lt;code&amp;gt;!admin&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/admin&amp;lt;/code&amp;gt; in chat should bring up administrative menu on player hud. &amp;lt;code&amp;gt;sm_admin&amp;lt;/code&amp;gt; should additionally work when typed in to your client console window, and you can use &amp;lt;code&amp;gt;sm_rcon&amp;lt;/code&amp;gt; to use SourceMod to relay any console command to the server, if you set yourself up with &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; flag. &lt;br /&gt;
&lt;br /&gt;
Further tweaking of SourceMod to suit your needs is out of scope for this guide. You can get familiar with SourceMod&#039;s other functions and configuration in their wiki: [https://wiki.alliedmods.net/Category:SourceMod_Documentation wiki.alliedmods.net/Category:SourceMod_Documentation]&lt;br /&gt;
&lt;br /&gt;
Additionally, if you have setup RCON on your server before setting up SourceMod, you should disable it by wiping &amp;lt;code&amp;gt;rcon_password &amp;quot;&amp;quot;&amp;lt;/code&amp;gt; empty in &amp;lt;code&amp;gt;server.cfg&amp;lt;/code&amp;gt;. After it is working, using SourceMod and &amp;lt;code&amp;gt;sm_rcon&amp;lt;/code&amp;gt; for RCON commands is more secure for publicly hosted servers.&lt;br /&gt;
&lt;br /&gt;
[[Category:Legacy Guides]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=Dedicated_legacy_Linux_server&amp;diff=11380</id>
		<title>Dedicated legacy Linux server</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=Dedicated_legacy_Linux_server&amp;diff=11380"/>
		<updated>2026-09-08T20:08:20Z</updated>

		<summary type="html">&lt;p&gt;Azzy: Move to legacy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ambox|contents=This article is based on a guide written by Raizo, the original of which can be found [https://blog.raizo.dev/posts/tf2-classic-linux-server-tutorial/ here].}}&lt;br /&gt;
{{Ambox|contents=This guide is written for the old &#039;&#039;Team Fortress 2 Classic&#039;&#039; non-Steam builds. For the latest &#039;&#039;Team Fortress 2 Classified&#039;&#039; on Steam see [[Dedicated Linux server|this guide]].}}&lt;br /&gt;
&lt;br /&gt;
== Reading this article ==&lt;br /&gt;
&amp;lt;!-- Originally from https://wiki.teamfortress.com/wiki/Linux_dedicated_server#Reading_this_article --&amp;gt;&lt;br /&gt;
A command prefixed by &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; is meant to be run as &#039;&#039;&#039;root&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A command prefixed by &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; is meant to be run as a &#039;&#039;&#039;regular user&#039;&#039;&#039; without root permissions. In this case the &amp;lt;code&amp;gt;srcds&amp;lt;/code&amp;gt; user.&lt;br /&gt;
&lt;br /&gt;
A command prefixed by &amp;lt;code&amp;gt;Steam&amp;gt;&amp;lt;/code&amp;gt; is meant to be run inside of a SteamCMD shell.&lt;br /&gt;
&lt;br /&gt;
Some commands are listed in-line with the rest of a paragraph and lack this symbol, in which case you should run the command as whichever account you&#039;re currently logged in with.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* A Linux server running Ubuntu Server&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; on an x86_64 CPU&amp;lt;sup&amp;gt;**&amp;lt;/sup&amp;gt; with root access&lt;br /&gt;
* At least 20GB of free storage&lt;br /&gt;
* A minimum of a 10Mbps upload speed if you intend on hosting a server over the Internet, more will be needed if you host custom content&lt;br /&gt;
* An opened port on your firewall for the server&lt;br /&gt;
* &#039;&#039;Optional&#039;&#039;: An SSH/SFTP client if doing remote access/file management&lt;br /&gt;
* &#039;&#039;Optional&#039;&#039;: A port that&#039;s been forwarded for the server if you wish to have it accessible over the internet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; This guide was written for and tested on Ubuntu Server 24.04 LTS Minimal. Other distros may use different package names and conventions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;**&amp;lt;/sup&amp;gt; Using an x86 compatibility layer like Box86 for another architecture is unsupported and may not work.&lt;br /&gt;
&lt;br /&gt;
== Preparing for install ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
We&#039;ll need to install some required packages and tools for our server to work, as well as for installation.&lt;br /&gt;
&lt;br /&gt;
Since the legacy TF2C branch, Source SDK, and SteamCMD are built for 32-bit, we&#039;ll need to enable 32-bit packages. We&#039;ll also add the &amp;lt;code&amp;gt;multiverse&amp;lt;/code&amp;gt; repository which has SteamCMD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# add-apt-repository multiverse&lt;br /&gt;
# dpkg --add-architecture i386&lt;br /&gt;
# apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, we&#039;ll install the &amp;lt;code&amp;gt;dialog&amp;lt;/code&amp;gt; package so the Steam Subscriber Agreement dialog works, and then the rest of the packages we need.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt install dialog&lt;br /&gt;
# apt install steamcmd p7zip aria2 tilde lib32z1 libbz2-1.0:i386 lib32gcc-s1 lib32stdc++6 libcurl3-gnutls:i386 libsdl2-2.0-0:i386 wget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your version of Ubuntu doesn&#039;t come with a text editor, you may install one now. For this guide we&#039;ll use &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt install nano&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating a user for the server ===&lt;br /&gt;
&lt;br /&gt;
Pick a directory to install your server into. Many put it under a directory in &amp;lt;code&amp;gt;/opt&amp;lt;/code&amp;gt;, but for this guide we&#039;ll be using &amp;lt;code&amp;gt;/home/srcds&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Create a disabled user with a home directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# useradd -s /bin/false -mr srcds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-m&amp;lt;/code&amp;gt; creates a home directory for the new user, &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt; specifies that it&#039;s a system account that will not have a password, and &amp;lt;code&amp;gt;-s /bin/false&amp;lt;/code&amp;gt; prevents the account from having a default shell. &lt;br /&gt;
&lt;br /&gt;
=== Installing Source SDK Base 2013 Dedicated Server (SDK 2013) ===&lt;br /&gt;
&lt;br /&gt;
Switch to the new &amp;lt;code&amp;gt;srcds&amp;lt;/code&amp;gt; user you made, and run SteamCMD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sudo -Hu srcds bash&lt;br /&gt;
$ cd ~&lt;br /&gt;
$ . /etc/environment&lt;br /&gt;
$ steamcmd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should be dropped into a SteamCMD shell. We can install the SDK 2013 now. Note that &amp;lt;code&amp;gt;force_install_dir&amp;lt;/code&amp;gt; must be ran before &amp;lt;code&amp;gt;login anonymous&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Steam&amp;gt;force_install_dir /home/srcds/sdk&lt;br /&gt;
Steam&amp;gt;login anonymous&lt;br /&gt;
Steam&amp;gt;app_update 244310 -beta previous2021&lt;br /&gt;
Steam&amp;gt;quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If everything went well, &amp;lt;code&amp;gt;srcds&amp;lt;/code&amp;gt; should be installed and you should be back at your user shell.&lt;br /&gt;
Before we continue we&#039;ll need to fix some files.&lt;br /&gt;
&lt;br /&gt;
Valve changed some shared object file names in the SDK, but the objects included with our install of SDK 2013 have not adopted the new names. &lt;br /&gt;
Since these are simply renames, we can symlink them. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your server will not start without doing this.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ~/sdk/bin&lt;br /&gt;
$ ln -s datacache_srv.so datacache.so&lt;br /&gt;
$ ln -s dedicated_srv.so dedicated.so&lt;br /&gt;
$ ln -s engine_srv.so engine.so&lt;br /&gt;
$ ln -s materialsystem_srv.so materialsystem.so&lt;br /&gt;
$ ln -s replay_srv.so replay.so&lt;br /&gt;
$ ln -s scenefilecache_srv.so scenefilecache.so&lt;br /&gt;
$ ln -s shaderapiempty_srv.so shaderapiempty.so&lt;br /&gt;
$ ln -s studiorender_srv.so studiorender.so&lt;br /&gt;
$ ln -s vphysics_srv.so vphysics.so&lt;br /&gt;
$ ln -s soundemittersystem_srv.so soundemittersystem.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we&#039;ll also symlink &amp;lt;code&amp;gt;steamclient.so&amp;lt;/code&amp;gt; to a special directory to prevent bugs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir -p ~/.steam/sdk32&lt;br /&gt;
$ ln -s ~/sdk/bin/steamclient.so ~/.steam/sdk32/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing TF2C ==&lt;br /&gt;
&lt;br /&gt;
We&#039;ll be downloading the archived verison of TF2C, since it&#039;s unlikely to get updates. You have the option of using TF2CDownloader, but we won&#039;t cover it here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget https://wiki.tf2classic.com/kachemak/tf2classic.zip -O /tmp/tf2classic.zip&lt;br /&gt;
$ mkdir ~/sdk/tf2classic&lt;br /&gt;
$ cd ~/sdk/tf2classic&lt;br /&gt;
$ 7z x /tmp/tf2classic.zip &amp;amp;&amp;amp; rm /tmp/tf2classic.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will download the latest archive, create its directory, and extract it. If extraction succeeds it will also delete the downloaded archive.&lt;br /&gt;
&lt;br /&gt;
We&#039;ll also need to do a quick symlink in TF2C&#039;s bin folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ~/sdk/tf2classic/bin&lt;br /&gt;
$ ln -s server.so server_srv.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing the server ==&lt;br /&gt;
&lt;br /&gt;
Before proceeding, we can manually run the server to make sure the install was successful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ~/sdk&lt;br /&gt;
$ ./srcds_run -game tf2classic +map ctf_2fort +sv_password changethis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If all goes well, it should start.&lt;br /&gt;
&lt;br /&gt;
== Server Configuration ==&lt;br /&gt;
&lt;br /&gt;
For a basic, private server, you should only need to set a password in &amp;lt;code&amp;gt;sdk/tf2classic/cfg/server.cfg&amp;lt;/code&amp;gt; by appending the file with &amp;lt;code&amp;gt;sv_password yourpassword&amp;lt;/code&amp;gt;.&lt;br /&gt;
You can also make it LAN-only by appending &amp;lt;code&amp;gt;sv_lan 1&amp;lt;/code&amp;gt; in the same file.&lt;br /&gt;
&lt;br /&gt;
If you want a more complicated setup, consider using [https://cfg.tf/ cfg.tf]. If you don&#039;t need this you can skip to the next section.&lt;br /&gt;
&lt;br /&gt;
Make sure the server type is set to “Internet and LAN” if you want players outside your LAN to be able to join (you may need to port forward if you’re on consumer broadband or open ports on your firewall).&lt;br /&gt;
&lt;br /&gt;
Upload the generated ZIP file to your server, perhaps using SFTP, and unzip the folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /tmp&lt;br /&gt;
$ unzip $PATH_TO_ARCHIVE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And merge the &amp;lt;code&amp;gt;cfg&amp;lt;/code&amp;gt; folder with &amp;lt;code&amp;gt;/home/srcds/sdk/tf2classic/cfg/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rsync /tmp/cfg ~/srcds/sdk/tf2classic/cfg&lt;br /&gt;
$ rm -rf /tmp/cfg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Managing the server via Systemd ==&lt;br /&gt;
&lt;br /&gt;
Systemd is a program that will automatically handle things like logging, restarts, and starting your server when your machine boots. We&#039;ll use this to run our server, instead of manually running commands.&lt;br /&gt;
&lt;br /&gt;
=== Creating an SDK 2013 update script ===&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to create a script that will update SDK 2013 for us instead of typing it out manually each time. Later, we&#039;ll optionally use this script to check and update SDK 2013 on our server automatically when the server starts. &lt;br /&gt;
&lt;br /&gt;
First, let&#039;s create a directory for the script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir ~/bin&lt;br /&gt;
$ nano ~/bin/update-sdk.steamcmd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fill the file with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@ShutdownOnFailedCommand 1 //set to 0 if updating multiple servers at once&lt;br /&gt;
@NoPromptForPassword 1&lt;br /&gt;
force_install_dir /home/srcds/sdk&lt;br /&gt;
login anonymous&lt;br /&gt;
app_update 244310 -beta previous2021&lt;br /&gt;
quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can execute this script manually by using the +runscript argument on SteamCMD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ . /etc/environment&lt;br /&gt;
$ steamcmd +runscript /home/srcds/bin/update-sdk.steamcmd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating a service file ===&lt;br /&gt;
&lt;br /&gt;
Create a service file in &amp;lt;code&amp;gt;/etc/systemd/system/&amp;lt;/code&amp;gt; as root. For this guide we&#039;ll use &amp;lt;code&amp;gt;/etc/systemd/system/tf2c.service&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=TF2C Server&lt;br /&gt;
After=network-online.target&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=srcds&lt;br /&gt;
StandardError=journal&lt;br /&gt;
StandardOutput=journal&lt;br /&gt;
WorkingDirectory=/home/srcds/sdk&lt;br /&gt;
RemainAfterExit=no&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +runscript /home/srcds/bin/update-sdk.steamcmd # Exclude or comment this if you don&#039;t want to check for an update on each restart&lt;br /&gt;
Environment=&amp;quot;LD_LIBRARY_PATH=&amp;quot;.:bin:$LD_LIBRARY_PATH&amp;quot;&amp;quot;&lt;br /&gt;
ExecStart=/usr/bin/script -e -c &amp;quot;/home/srcds/sdk/srcds_linux +map ctf_2fort -game tf2classic +maxplayers 24&amp;quot; /dev/null&lt;br /&gt;
TimeoutStartSec=infinity&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, enable the service to start with Systemd on boot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl enable tf2c.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may create as many services as you have TF2C servers but remember to name the service files uniquely. When modifying service files, remember to run &amp;lt;code&amp;gt;systemctl daemon-reload&amp;lt;/code&amp;gt; before restarting the service.&lt;br /&gt;
&lt;br /&gt;
=== Automatic restarts using crontab ===&lt;br /&gt;
&lt;br /&gt;
Cron is a program built into most Linux distros that runs scheduled commands.&lt;br /&gt;
&lt;br /&gt;
As root, execute &amp;lt;code&amp;gt;crontab -e&amp;lt;/code&amp;gt;. This will open a special file in your editor where you can declare what jobs you want to run and when. Let&#039;s add a job to run at 04:00 that will restart our server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 4 * * * systemctl restart tf2c.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manually managing services ===&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t wish to use the service files above to automatically boot servers, or you need to perform these actions for maintenance: you may issue commands to manually &#039;&#039;start&#039;&#039;, &#039;&#039;stop&#039;&#039;, &#039;&#039;restart&#039;&#039;, or &#039;&#039;update&#039;&#039; the server(s) through systemd. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart tf2c # in case you need to restart manually or to grab updates!! &lt;br /&gt;
# systemctl stop tf2c # in case you need to stop the server manually&lt;br /&gt;
# systemctl start tf2c # in case you need to start the server manually&lt;br /&gt;
# systemctl disable tf2c # in case you need to stop the server from booting as your system initializes &lt;br /&gt;
# systemctl enable tf2c # in case you need to start the server to boot as your system initializes &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;/br&amp;gt;See also [[Dedicated_Linux_server_extras|Dedicated Linux Server Extras]].&#039;&#039;&lt;br /&gt;
[[Category:Legacy Guides]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=Dedicated_Linux_server&amp;diff=11262</id>
		<title>Dedicated Linux server</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=Dedicated_Linux_server&amp;diff=11262"/>
		<updated>2026-07-31T22:53:14Z</updated>

		<summary type="html">&lt;p&gt;Azzy: dont disable autoupdate&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ambox|contents=This article is based on a guide written by Raizo, the original of which can be found [https://blog.raizo.dev/posts/tf2-classic-linux-server-tutorial/ here].}}&lt;br /&gt;
&lt;br /&gt;
== Reading this article ==&lt;br /&gt;
&amp;lt;!-- Originally from https://wiki.teamfortress.com/wiki/Linux_dedicated_server#Reading_this_article --&amp;gt;&lt;br /&gt;
A command prefixed by &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; is meant to be run as &#039;&#039;&#039;root&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A command prefixed by &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; is meant to be run as a &#039;&#039;&#039;regular user&#039;&#039;&#039; without root permissions. In this case the &amp;lt;code&amp;gt;srcds&amp;lt;/code&amp;gt; user.&lt;br /&gt;
&lt;br /&gt;
A command prefixed by &amp;lt;code&amp;gt;Steam&amp;gt;&amp;lt;/code&amp;gt; is meant to be run inside of a SteamCMD shell.&lt;br /&gt;
&lt;br /&gt;
Some commands are listed in-line with the rest of a paragraph and lack this symbol, in which case you should run the command as whichever account you&#039;re currently logged in with.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* A Linux server running Ubuntu Server&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; on an amd64 CPU&amp;lt;sup&amp;gt;**&amp;lt;/sup&amp;gt; with root access&lt;br /&gt;
* At least 25GB of free storage&lt;br /&gt;
* A minimum of a ten megabit upload speed if you intend on hosting a server over the Internet, more will be needed if you host custom content&lt;br /&gt;
* An opened port on your firewall for the server if you want a persistent IP address (unless using SDR, see [[#Enabling the Steam Datagram Relay|this section on enabling the Steam Datagram Relay]])&lt;br /&gt;
* &#039;&#039;Optional&#039;&#039;: An SSH/SFTP client if doing remote access/file management&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; This guide was written for and tested on Ubuntu Server 24.04 LTS Minimal. Other Linux distributions may use different package names and conventions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;**&amp;lt;/sup&amp;gt;Architectures other than amd64 (including 32-bit x86) are unsupported. Compatibility layers like FEX or Box64 may not work or cause unexpected problems.&lt;br /&gt;
&lt;br /&gt;
== Preparing for install ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
We&#039;ll need to install some required software and tools for our server first. Let&#039;s start with SteamCMD, which we&#039;ll use to download and update the server software.&lt;br /&gt;
&lt;br /&gt;
Since SteamCMD is built for 32-bit, we&#039;ll need to enable 32-bit packages. We&#039;ll also add the &amp;lt;code&amp;gt;multiverse&amp;lt;/code&amp;gt; repository which has SteamCMD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# add-apt-repository multiverse&lt;br /&gt;
# dpkg --add-architecture i386&lt;br /&gt;
# apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, we&#039;ll install the &amp;lt;code&amp;gt;dialog&amp;lt;/code&amp;gt; package so the Steam Subscriber Agreement dialog works, and then the rest of the packages we need.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt install dialog&lt;br /&gt;
# apt install steamcmd p7zip aria2 tilde lib32z1 libbz2-1.0:i386 lib32gcc-s1 lib32stdc++6 libcurl3-gnutls:i386 libsdl2-2.0-0:i386 wget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your version of Ubuntu doesn&#039;t come with a text editor, you may install one now. For this guide we&#039;ll use &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt install nano&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating a user for the server ===&lt;br /&gt;
&lt;br /&gt;
Pick a directory to install your server into. Many put it under a directory in &amp;lt;code&amp;gt;/opt&amp;lt;/code&amp;gt;, but for this guide we&#039;ll be using &amp;lt;code&amp;gt;/home/srcds&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Create a disabled user with a home directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# useradd -s /bin/false -mr srcds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-m&amp;lt;/code&amp;gt; creates a home directory for the new user, &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt; specifies that it&#039;s a system account that will not have a password, and &amp;lt;code&amp;gt;-s /bin/false&amp;lt;/code&amp;gt; prevents the account from having a default shell.&lt;br /&gt;
&lt;br /&gt;
=== Installing the live TF2 server ===&lt;br /&gt;
&lt;br /&gt;
The live version of TF2&#039;s dedicated server is required to run a Classified server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sudo -Hu srcds bash&lt;br /&gt;
$ cd ~&lt;br /&gt;
$ . /etc/environment&lt;br /&gt;
$ steamcmd&lt;br /&gt;
Steam&amp;gt;force_install_dir /home/srcds/tf&lt;br /&gt;
Steam&amp;gt;login anonymous&lt;br /&gt;
Steam&amp;gt;app_update 232250 validate&lt;br /&gt;
Steam&amp;gt;quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing the dedicated server ==&lt;br /&gt;
&lt;br /&gt;
Ensure you&#039;ve quit SteamCMD before continuing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ~&lt;br /&gt;
$ . /etc/environment&lt;br /&gt;
$ steamcmd&lt;br /&gt;
Steam&amp;gt;force_install_dir /home/srcds/classified&lt;br /&gt;
Steam&amp;gt;login anonymous&lt;br /&gt;
Steam&amp;gt;app_update 3557020 validate&lt;br /&gt;
Steam&amp;gt;quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before continuing, we&#039;ll need to symlink the install&#039;s &amp;lt;code&amp;gt;steamclient.so&amp;lt;/code&amp;gt; to a special directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir -p ~/.steam/sdk64&lt;br /&gt;
$ ln -s ~/classified/linux64/steamclient.so ~/.steam/sdk64/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing the server ===&lt;br /&gt;
&lt;br /&gt;
Before proceeding, we can manually run the server to make sure the install was successful.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ~/classified&lt;br /&gt;
$ ./srcds.sh -port 27015 -tf_path ~/tf +map ctf_2fort +sv_password changethis&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If all goes well, it should start and be accessible over the internet.&lt;br /&gt;
&lt;br /&gt;
== Server configuration ==&lt;br /&gt;
&lt;br /&gt;
For a basic, private server, you should only need to set a password in &amp;lt;code&amp;gt;classified/tf2classified/cfg/server.cfg&amp;lt;/code&amp;gt; by appending the file with &amp;lt;code&amp;gt;sv_password yourpassword&amp;lt;/code&amp;gt;.&lt;br /&gt;
You can also make it LAN-only by appending &amp;lt;code&amp;gt;sv_lan 1&amp;lt;/code&amp;gt; in the same file.&lt;br /&gt;
&lt;br /&gt;
If you want a more complicated setup, consider using [https://cfg.tf/ cfg.tf]. If you don&#039;t need this you can skip to the next section.&lt;br /&gt;
&lt;br /&gt;
Make sure the server type is set to “Internet and LAN” if you want players outside your LAN to be able to join (you may need to port forward if you’re on consumer broadband or open ports on your firewall).&lt;br /&gt;
&lt;br /&gt;
Upload the generated ZIP file to your server, perhaps using SFTP, and unzip the folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /tmp&lt;br /&gt;
$ unzip $PATH_TO_ARCHIVE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And merge the &amp;lt;code&amp;gt;cfg&amp;lt;/code&amp;gt; folder with &amp;lt;code&amp;gt;/home/srcds/classified/tf2classified/cfg&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rsync /tmp/cfg ~/classified/tf2classified/cfg&lt;br /&gt;
$ rm -rf /tmp/cfg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Managing the server via Systemd ==&lt;br /&gt;
&lt;br /&gt;
Systemd is a program that will automatically handle things like logging, restarts, and starting your server when your machine boots. We&#039;ll use this to run our server, instead of manually running commands.&lt;br /&gt;
&lt;br /&gt;
=== Creating an update script ===&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to create a script that will update the dedicated server for us instead of typing it out manually each time. Later, we&#039;ll optionally use this script to check and update our server automatically when the server starts. &lt;br /&gt;
&lt;br /&gt;
First, let&#039;s create a directory for the script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir ~/bin&lt;br /&gt;
$ nano ~/bin/update-classified.steamcmd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fill the file with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@ShutdownOnFailedCommand 1 //set to 0 if updating multiple servers at once&lt;br /&gt;
@NoPromptForPassword 1&lt;br /&gt;
force_install_dir /home/srcds/classified&lt;br /&gt;
login anonymous&lt;br /&gt;
app_update 3557020&lt;br /&gt;
quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can execute this script manually by using the +runscript argument on SteamCMD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ . /etc/environment&lt;br /&gt;
$ steamcmd +runscript /home/srcds/bin/update-classified.steamcmd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similarly, we will create one for the live TF2 server as that will need to be updated occasionally. We&#039;ll put&lt;br /&gt;
it at &amp;lt;code&amp;gt;/home/srcds/bin/update-tf.steamcmd&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@ShutdownOnFailedCommand 1 //set to 0 if updating multiple servers at once&lt;br /&gt;
@NoPromptForPassword 1&lt;br /&gt;
force_install_dir /home/srcds/tf&lt;br /&gt;
login anonymous&lt;br /&gt;
app_update 232250&lt;br /&gt;
quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating a service file ===&lt;br /&gt;
&lt;br /&gt;
Create a service file in &amp;lt;code&amp;gt;/etc/systemd/system/&amp;lt;/code&amp;gt; as root. For this guide we&#039;ll use &amp;lt;code&amp;gt;/etc/systemd/system/tf2c.service&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=TF2C Server&lt;br /&gt;
After=network-online.target&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=srcds&lt;br /&gt;
StandardError=journal&lt;br /&gt;
StandardOutput=journal&lt;br /&gt;
WorkingDirectory=/home/srcds/classified&lt;br /&gt;
RemainAfterExit=no&lt;br /&gt;
ExecStartPre=-/usr/games/steamcmd +runscript /home/srcds/bin/update-tf.steamcmd&lt;br /&gt;
ExecStartPre=-/usr/games/steamcmd +runscript /home/srcds/bin/update-classified.steamcmd&lt;br /&gt;
Environment=&amp;quot;LD_LIBRARY_PATH=&amp;quot;.:bin/linux64:$LD_LIBRARY_PATH&amp;quot;&amp;quot;&lt;br /&gt;
ExecStart=/usr/bin/script -e -c &amp;quot;/home/srcds/classified/srcds_linux64 -port 27015 -tf_path /home/srcds/tf +map ctf_2fort +maxplayers 24&amp;quot; /dev/null&lt;br /&gt;
TimeoutStartSec=infinity&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, enable the service to start with Systemd on boot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl enable tf2c.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may create as many services as you have TF2C servers but remember to name the service files uniquely. When modifying existing service files, remember to run &amp;lt;code&amp;gt;systemctl daemon-reload&amp;lt;/code&amp;gt; before restarting the service.&lt;br /&gt;
&lt;br /&gt;
=== Automatic restarts using crontab ===&lt;br /&gt;
&lt;br /&gt;
Cron is a program built into most Linux distros that runs scheduled commands.&lt;br /&gt;
&lt;br /&gt;
As root, execute &amp;lt;code&amp;gt;crontab -e&amp;lt;/code&amp;gt;. This will open a special file in your editor where you can declare what jobs you want to run and when. Let&#039;s add a job to run at 04:00 that will restart our server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 4 * * * systemctl restart tf2c.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Manually managing services ===&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t wish to use the service files above to automatically boot servers, or you need to perform these actions for maintenance: you may issue commands to manually &#039;&#039;start&#039;&#039;, &#039;&#039;stop&#039;&#039;, &#039;&#039;restart&#039;&#039;, or &#039;&#039;update&#039;&#039; the server(s) through systemd. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart tf2c # in case you need to restart manually or to grab updates!! &lt;br /&gt;
# systemctl stop tf2c # in case you need to stop the server manually&lt;br /&gt;
# systemctl start tf2c # in case you need to start the server manually&lt;br /&gt;
# systemctl disable tf2c # in case you need to stop the server from booting as your system initializes &lt;br /&gt;
# systemctl enable tf2c # in case you need to start the server to boot as your system initializes &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extras ==&lt;br /&gt;
&lt;br /&gt;
=== Enabling the Steam Datagram Relay ===&lt;br /&gt;
&lt;br /&gt;
Servers can use the Steam Datagram Relay. It masks your server&#039;s IP address, helps prevent DDoS attacks, and allows you to run a server without port forwarding or configuring firewalls. However, this comes at the cost of added latency and using ephemeral IP addresses for your server, the latter breaking server favoriting and IP bans.&lt;br /&gt;
&lt;br /&gt;
You can enable this by adding &amp;lt;code&amp;gt;sv_use_steam_networking 1&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;classified/tf2classified/cfg/default.cfg&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you want your server to appear on the server browser with SDR enabled you will need to supply a GLST token. You can acquire a key by going to [https://steamcommunity.com/dev/managegameservers this page]. Once you&#039;ve got it, put &amp;lt;code&amp;gt;sv_setsteamaccount $KEY&amp;lt;/code&amp;gt; in your configuration, replacing $KEY with the token from the page.&lt;br /&gt;
&lt;br /&gt;
=== Installing SourceMod ===&lt;br /&gt;
&lt;br /&gt;
SourceMod is a server modding platform that provides admin tools, permissions, and plugin support. Installing it is strongly recommended if you plan to run a public-facing server.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll need to install the &#039;&#039;&#039;a development version&#039;&#039;&#039; of SourceMod, as well as MetaMod which SourceMod depends on to work. &#039;&#039;&#039;It will not work with stable releases currently&#039;&#039;&#039;. As of writing this article, the latest known working development build is 7301 and 1389 respectively.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ~&lt;br /&gt;
$ wget https://mms.alliedmods.net/mmsdrop/2.0/mmsource-2.0.0-git1389-linux.tar.gz -O /tmp/mm.tar.gz&lt;br /&gt;
$ wget https://sm.alliedmods.net/smdrop/1.13/sourcemod-1.13.0-git7301-linux.tar.gz -O /tmp/sm.tar.gz&lt;br /&gt;
$ tar -xf /tmp/mm.tar.gz&lt;br /&gt;
$ tar -xf /tmp/sm.tar.gz&lt;br /&gt;
$ mv addons ~/classified/tf2classified&lt;br /&gt;
$ mv cfg/sourcemod ~/classified/tf2classified/cfg&lt;br /&gt;
$ rm -r cfg&lt;br /&gt;
$ rm /tmp/mm.tar.gz&lt;br /&gt;
$ rm /tmp/sm.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the server starts it should work. A good way to test if everything is running properly is to use the &amp;lt;code&amp;gt;!motd&amp;lt;/code&amp;gt; command in chat. If the MOTD pops up after the command that means SourceMod is working. For further information on setting up SourceMod, read [https://wiki.alliedmods.net/Category:SourceMod_Documentation the documentation].&lt;br /&gt;
&lt;br /&gt;
Existing SourceMod plugins are not guaranteed to work and may require special steps or patching to get working.&lt;br /&gt;
&lt;br /&gt;
==== Installing the patched TF2 Tools extension ====&lt;br /&gt;
&lt;br /&gt;
Many plugins depend on the built-in TF2 Tools extension that comes with Sourcemod. This isn&#039;t compatible with TF2C. Instead, we can use a patched version of the extension which enables the use of many plugins.&lt;br /&gt;
&lt;br /&gt;
There&#039;s currently no public download link for this extension. After joining the Team Fortress 2 Classified Discord server you can find the files you need in [https://discordapp.com/channels/196337717267791874/1011914229307166780/1467172013637636327 this message]. Specifically, you need &amp;lt;code&amp;gt;game.tf2.ext.2.tf2.so&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sm-tf2.games.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Next we&#039;ll add both the gamedata file and the plugin to our installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mv $WHEREVER_YOU_PUT_IT/sm-tf2.games.txt ~/classified/tf2classified/addons/gamedata/custom/sm-tf2.games.txt&lt;br /&gt;
$ mv $WHEREVER_YOU_PUT_IT/game.tf2.ext.2.tf2.so ~/classified/tf2classified/addons/extensions/x64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, create an empty file so that the extension is automatically loaded.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ touch ~/classified/tf2classified/addons/sourcemod/extensions/game.tf2.autoload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Sounds are missing/only stock weapons are usable ===&lt;br /&gt;
&lt;br /&gt;
This is likely due to a problem with &amp;lt;code&amp;gt;libvstdlib.so&amp;lt;/code&amp;gt;. It&#039;s possible it wasn&#039;t updated or is corrupted. Validate your install.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ~&lt;br /&gt;
$ . /etc/environment&lt;br /&gt;
$ steamcmd&lt;br /&gt;
Steam&amp;gt;force_install_dir /home/srcds/classified&lt;br /&gt;
Steam&amp;gt;login anonymous&lt;br /&gt;
Steam&amp;gt;app_update 3557020 validate&lt;br /&gt;
Steam&amp;gt;quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Server not showing up on the server browser while using SDR ===&lt;br /&gt;
&lt;br /&gt;
This is likely happening because you enabled use of the SDR but didn&#039;t supply a game key. Read [[#Enabling the Steam Datagram Relay|the last paragraph of this section]] for more information.&lt;br /&gt;
&lt;br /&gt;
=== Server using high levels of CPU when ran via the service file ===&lt;br /&gt;
&lt;br /&gt;
The service file included in this guide has a workaround for Source servers refusing to log without a TTY present. There has been at least one report of this causing unusually high CPU usage. It&#039;s believed this happens on servers with slower SSDs and spinning hard drives. You can disable it, but it will mean there will be no journald logs for your server and you can&#039;t use features like Systemd sockets.&lt;br /&gt;
&lt;br /&gt;
To disable it, unwrap the &amp;lt;code&amp;gt;srcds_linux64&amp;lt;/code&amp;gt; command from &amp;lt;code&amp;gt;script&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ExecStart=/usr/bin/script -e -c &amp;quot;/home/srcds/classified/srcds_linux64 -port 27015 -tf_path /home/srcds/tf +map ctf_2fort +maxplayers 24&amp;quot; /dev/null&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;ExecStart=/home/srcds/classified/srcds_linux64 -port 27015 -tf_path /home/srcds/tf +map ctf_2fort +maxplayers 24&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=TF2Classic_Wiki:About&amp;diff=11196</id>
		<title>TF2Classic Wiki:About</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=TF2Classic_Wiki:About&amp;diff=11196"/>
		<updated>2026-07-09T21:08:57Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Tf2classified logo.svg|thumb|right|The TF2 Classified logo.]]&lt;br /&gt;
Welcome to the official TF2 Classified Wiki! This wiki serves as a knowledge base for the the sourcemod &#039;&#039;Team Fortress 2 Classified&#039;&#039;, developed by EMINOMA. Anyone may contribute to this wiki and ensure that it remains a reliable resource for anyone who wants to know more about &#039;&#039;TF2 Classified&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== How to contribute ==&lt;br /&gt;
&lt;br /&gt;
Anyone is invited to contribute to the wiki. However, as of right now, registration is closed due to security-related issues. That doesn&#039;t mean you cannot get an account.&lt;br /&gt;
&lt;br /&gt;
If you wish to contribute, feel free to ask a staff on the [https://discord.gg/3zMk4vn TF2 Classified Discord] to get yourself an account!&lt;br /&gt;
&lt;br /&gt;
=== See also ===&lt;br /&gt;
&lt;br /&gt;
* [[Help:Language translation]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=TF2Classic_Wiki:About&amp;diff=11195</id>
		<title>TF2Classic Wiki:About</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=TF2Classic_Wiki:About&amp;diff=11195"/>
		<updated>2026-07-09T21:08:37Z</updated>

		<summary type="html">&lt;p&gt;Azzy: tf2classified&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Tf2classified logo.svg|thumb|right|The TF2 Classified logo. We do not have a wiki logo yet if you have not noticed.]]&lt;br /&gt;
Welcome to the official TF2 Classified Wiki! This wiki serves as a knowledge base for the the sourcemod &#039;&#039;Team Fortress 2 Classified&#039;&#039;, developed by EMINOMA. Anyone may contribute to this wiki and ensure that it remains a reliable resource for anyone who wants to know more about &#039;&#039;TF2 Classified&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== How to contribute ==&lt;br /&gt;
&lt;br /&gt;
Anyone is invited to contribute to the wiki. However, as of right now, registration is closed due to security-related issues. That doesn&#039;t mean you cannot get an account.&lt;br /&gt;
&lt;br /&gt;
If you wish to contribute, feel free to ask a staff on the [https://discord.gg/3zMk4vn TF2 Classified Discord] to get yourself an account!&lt;br /&gt;
&lt;br /&gt;
=== See also ===&lt;br /&gt;
&lt;br /&gt;
* [[Help:Language translation]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=5368</id>
		<title>End of Linux Client support</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=5368"/>
		<updated>2025-01-18T17:48:39Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Patch [[2.1.3]] will mark the end of Linux client support. We will instead pivot towards supporting &#039;&#039;&#039;Proton (also known as Steam Play)&#039;&#039;&#039;, Valve&#039;s compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it. Proton&#039;s Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users.&lt;br /&gt;
&lt;br /&gt;
This wiki page serves as a guide on how to migrate to Proton to continue playing.&lt;br /&gt;
&lt;br /&gt;
== Important note for Proton users ==&lt;br /&gt;
We have shipped some visual fixes regarding font rendering on Proton. &#039;&#039;&#039;However, this may break support for some custom HUDs.&#039;&#039;&#039; For backwards compatibility, you may run the game using the &amp;lt;code&amp;gt;-defaultscheme&amp;lt;/code&amp;gt; launch option.&lt;br /&gt;
&lt;br /&gt;
== Enabling Proton ==&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
Locate &#039;&#039;&#039;Source SDK Base 2013 Multiplayer&#039;&#039;&#039; in your Steam library, &#039;&#039;&#039;right-click&#039;&#039;&#039;, and go to &#039;&#039;&#039;Properties&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:sdk2013.png|800px]]&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
Select the &#039;&#039;&#039;Compatibility&#039;&#039;&#039; tab, and enable &#039;&#039;&#039;Steam Play&#039;&#039;&#039;. Select &#039;&#039;&#039;Proton Experimental&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:sdk2013_2.png|800px]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4025</id>
		<title>End of Linux Client support</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4025"/>
		<updated>2023-12-03T22:02:05Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As announced in [https://tf2classic.com/?id=6192 a previous blog post], update [[2.1.3]] will mark the end of Linux client support. &#039;&#039;&#039;We will instead pivot towards supporting Proton (also known as Steam Play)&#039;&#039;&#039;, Valve&#039;s compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it. Proton&#039;s Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This wiki page serves as a guide on how to migrate to Proton to continue playing.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Important note for Proton users ==&lt;br /&gt;
We have shipped some visual fixes regarding font rendering on Proton. &#039;&#039;&#039;However, this may break support for some custom HUDs.&#039;&#039;&#039; For backwards compatibility, you may run the game using the &amp;lt;code&amp;gt;-defaultscheme&amp;lt;/code&amp;gt; launch option.&lt;br /&gt;
&lt;br /&gt;
== Enabling Proton ==&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
Locate &#039;&#039;&#039;Source SDK Base 2013 Multiplayer&#039;&#039;&#039; in your Steam library, &#039;&#039;&#039;right-click&#039;&#039;&#039;, and go to &#039;&#039;&#039;Properties&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:sdk2013.png|800px]]&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
Select the &#039;&#039;&#039;Compatibility&#039;&#039;&#039; tab, and enable &#039;&#039;&#039;Steam Play&#039;&#039;&#039;. We typically recommend selecting the latest version of Proton available.&lt;br /&gt;
&lt;br /&gt;
[[File:sdk2013_2.png|800px]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4024</id>
		<title>End of Linux Client support</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4024"/>
		<updated>2023-12-03T22:01:16Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As announced in [https://tf2classic.com/?id=6192 a previous blog post], update [[2.1.3]] will mark the end of Linux client support. &#039;&#039;&#039;We will instead pivot towards supporting Proton (also known as Steam Play)&#039;&#039;&#039;, Valve&#039;s compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it. Proton&#039;s Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This wiki page serves as a guide on how to migrate to Proton to continue playing.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Important note for Proton users ==&lt;br /&gt;
We have shipped some visual fixes regarding fonts. &#039;&#039;&#039;However, this may break support for some custom HUDs.&#039;&#039;&#039; For backwards compatibility, you may run the game using the &amp;lt;code&amp;gt;-defaultscheme&amp;lt;/code&amp;gt; launch option.&lt;br /&gt;
&lt;br /&gt;
== Enabling Proton ==&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
Locate &#039;&#039;&#039;Source SDK Base 2013 Multiplayer&#039;&#039;&#039; in your Steam library, &#039;&#039;&#039;right-click&#039;&#039;&#039;, and go to &#039;&#039;&#039;Properties&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:sdk2013.png|800px]]&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
Select the &#039;&#039;&#039;Compatibility&#039;&#039;&#039; tab, and enable &#039;&#039;&#039;Steam Play&#039;&#039;&#039;. We typically recommend selecting the latest version of Proton available.&lt;br /&gt;
&lt;br /&gt;
[[File:sdk2013_2.png|800px]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4023</id>
		<title>End of Linux Client support</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4023"/>
		<updated>2023-12-03T21:59:30Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As announced in [https://tf2classic.com/?id=6192 a previous blog post], update [[2.1.3]] will mark the end of Linux client support. &#039;&#039;&#039;We will instead pivot towards supporting Proton (also known as Steam Play)&#039;&#039;&#039;, Valve&#039;s compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it. Proton&#039;s Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This wiki page serves as a guide on how to migrate to Proton to continue playing.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Important note for Proton users ==&lt;br /&gt;
We have shipped some visual fixes regarding fonts. &#039;&#039;&#039;However, this may break support for some custom HUDs.&#039;&#039;&#039; For backwards compatibility, you may run the game using the &amp;lt;code&amp;gt;-defaultscheme&amp;lt;/code&amp;gt; launch option.&lt;br /&gt;
&lt;br /&gt;
== Enabling Proton ==&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
Locate Source SDK Base 2013 in your Steam library, right-click, and go to Properties&lt;br /&gt;
&lt;br /&gt;
[[File:sdk2013.png|800px]]&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
Select the Compatibility tab, and enable Steam Play. We typically recommend selecting the latest version of Proton available.&lt;br /&gt;
&lt;br /&gt;
[[File:sdk2013_2.png|800px]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=File:Sdk2013_2.png&amp;diff=4022</id>
		<title>File:Sdk2013 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=File:Sdk2013_2.png&amp;diff=4022"/>
		<updated>2023-12-03T21:58:50Z</updated>

		<summary type="html">&lt;p&gt;Azzy: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=File:Sdk2013.png&amp;diff=4021</id>
		<title>File:Sdk2013.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=File:Sdk2013.png&amp;diff=4021"/>
		<updated>2023-12-03T21:57:01Z</updated>

		<summary type="html">&lt;p&gt;Azzy: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4018</id>
		<title>End of Linux Client support</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4018"/>
		<updated>2023-12-02T20:19:57Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As announced in [https://tf2classic.com/?id=6192 a previous blog post], update [[2.1.3]] will mark the end of Linux client support. &#039;&#039;&#039;We will instead pivot towards supporting Proton (also known as Steam Play)&#039;&#039;&#039;, Valve&#039;s compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it. Proton&#039;s Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This wiki page serves as a guide on how to migrate to Proton to continue playing.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Important Note for Proton Users ==&lt;br /&gt;
We have shipped some visual fixes regarding fonts. &#039;&#039;&#039;However, this may break support for some custom HUDs.&#039;&#039;&#039; For backwards compatibility, you may run the game using the &amp;lt;code&amp;gt;-defaultscheme&amp;lt;/code&amp;gt; launch option.&lt;br /&gt;
&lt;br /&gt;
== Enabling Proton ==&lt;br /&gt;
=== Step 1: Locate Team Fortress 2 Classic in your Steam library, right-click, and go to Properties ===&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
[[File:tf2classicsdk2013.png|800px]]&lt;br /&gt;
=== Step 2: Select the Compatibility tab, and enable Steam Play ===&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;We typically recommend selecting the latest version of Proton available.&#039;&#039;&#039;&lt;br /&gt;
[[File:tf2classicsdk2013_2.png|800px]]&lt;br /&gt;
=== Step 3: Repeat Step 1 and 2 for Source SDK Base 2013 Multiplayer ===&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
[[File:tf2classicsdk2013_3.png|800px]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4017</id>
		<title>End of Linux Client support</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4017"/>
		<updated>2023-12-02T20:11:59Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As announced in [https://tf2classic.com/?id=6192 a previous blog post], update [[2.1.3]] will mark the end of Linux client support. &#039;&#039;&#039;We will instead pivot towards supporting Proton (also known as Steam Play)&#039;&#039;&#039;, Valve&#039;s compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it. Proton&#039;s Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This wiki page serves as a guide on how to migrate to Proton to continue playing.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Enabling Proton ==&lt;br /&gt;
=== &amp;lt;big&amp;gt;Step 1: Locate Team Fortress 2 Classic in your Steam library, right-click, and go to Properties&amp;lt;/big&amp;gt; ===&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
[[File:tf2classicsdk2013.png|800px]]&lt;br /&gt;
=== &amp;lt;big&amp;gt;Step 2: Select the Compatibility tab, and enable Steam Play&amp;lt;/big&amp;gt; ===&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;We typically recommend selecting the latest version of Proton available.&#039;&#039;&#039;&lt;br /&gt;
[[File:tf2classicsdk2013_2.png|800px]]&lt;br /&gt;
=== &amp;lt;big&amp;gt;Step 3: Repeat Step 1 and 2 for Source SDK Base 2013 Multiplayer&amp;lt;/big&amp;gt; ===&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
[[File:tf2classicsdk2013_3.png|800px]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4016</id>
		<title>End of Linux Client support</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4016"/>
		<updated>2023-12-02T20:08:13Z</updated>

		<summary type="html">&lt;p&gt;Azzy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As announced in [https://tf2classic.com/?id=6192 a previous blog post], update [[2.1.3]] will mark the end of Linux client support. &#039;&#039;&#039;We will instead pivot towards supporting Proton (also known as Steam Play)&#039;&#039;&#039;, Valve&#039;s compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it. Proton&#039;s Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This wiki page serves as a guide on how to migrate to Proton to continue playing.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Step 1: Locate Team Fortress 2 Classic in your Steam library, right-click, and go to Properties ==&lt;br /&gt;
[[File:tf2classicsdk2013.png|800px]]&lt;br /&gt;
== Step 2: Select the Compatibility tab, and enable Steam Play ==&lt;br /&gt;
* &#039;&#039;&#039;We typically recommend selecting the latest version of Proton available.&#039;&#039;&#039;&lt;br /&gt;
[[File:tf2classicsdk2013_2.png|800px]]&lt;br /&gt;
== Step 3: Repeat Step 1 and 2 for Source SDK Base 2013 Multiplayer ==&lt;br /&gt;
[[File:tf2classicsdk2013_3.png|800px]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4015</id>
		<title>End of Linux Client support</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4015"/>
		<updated>2023-12-02T20:07:38Z</updated>

		<summary type="html">&lt;p&gt;Azzy: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support_FAQ&amp;diff=4014</id>
		<title>End of Linux Client support FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support_FAQ&amp;diff=4014"/>
		<updated>2023-12-02T20:05:52Z</updated>

		<summary type="html">&lt;p&gt;Azzy: Removed redirect to End of Linux Client support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As announced in [https://tf2classic.com/?id=6192 a previous blog post], update [[2.1.3]] will mark the end of Linux client support. &#039;&#039;&#039;We will instead pivot towards supporting Proton (also known as Steam Play)&#039;&#039;&#039;, Valve&#039;s compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it. Proton&#039;s Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This wiki page serves as a guide on how to migrate to Proton to continue playing.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Step 1: Locate Team Fortress 2 Classic in your Steam library, right-click, and go to Properties ==&lt;br /&gt;
[[File:tf2classicsdk2013.png|800px]]&lt;br /&gt;
== Step 2: Select the Compatibility tab, and enable Steam Play ==&lt;br /&gt;
* &#039;&#039;&#039;We typically recommend selecting the latest version of Proton available.&#039;&#039;&#039;&lt;br /&gt;
[[File:tf2classicsdk2013_2.png|800px]]&lt;br /&gt;
== Step 3: Repeat Step 1 and 2 for Source SDK Base 2013 Multiplayer ==&lt;br /&gt;
[[File:tf2classicsdk2013_3.png|800px]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=File:Tf2classicsdk2013_3.png&amp;diff=4013</id>
		<title>File:Tf2classicsdk2013 3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=File:Tf2classicsdk2013_3.png&amp;diff=4013"/>
		<updated>2023-12-02T20:05:08Z</updated>

		<summary type="html">&lt;p&gt;Azzy: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=File:Tf2classicsdk2013_2.png&amp;diff=4012</id>
		<title>File:Tf2classicsdk2013 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=File:Tf2classicsdk2013_2.png&amp;diff=4012"/>
		<updated>2023-12-02T19:56:28Z</updated>

		<summary type="html">&lt;p&gt;Azzy: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=File:Tf2classicsdk2013.png&amp;diff=4011</id>
		<title>File:Tf2classicsdk2013.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=File:Tf2classicsdk2013.png&amp;diff=4011"/>
		<updated>2023-12-02T19:51:12Z</updated>

		<summary type="html">&lt;p&gt;Azzy: Azzy uploaded a new version of File:Tf2classicsdk2013.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=File:Tf2classicsdk2013.png&amp;diff=4010</id>
		<title>File:Tf2classicsdk2013.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=File:Tf2classicsdk2013.png&amp;diff=4010"/>
		<updated>2023-12-02T19:42:30Z</updated>

		<summary type="html">&lt;p&gt;Azzy: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support_FAQ&amp;diff=4009</id>
		<title>End of Linux Client support FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support_FAQ&amp;diff=4009"/>
		<updated>2023-12-02T18:36:16Z</updated>

		<summary type="html">&lt;p&gt;Azzy: Azzy moved page End of Linux Client support FAQ to End of Linux Client support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[End of Linux Client support]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4008</id>
		<title>End of Linux Client support</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4008"/>
		<updated>2023-12-02T18:36:16Z</updated>

		<summary type="html">&lt;p&gt;Azzy: Azzy moved page End of Linux Client support FAQ to End of Linux Client support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As announced in [https://tf2classic.com/?id=6192 a previous blog post], update [[2.1.3]] will mark the end of Linux client support. We will instead pivot towards supporting Proton, Valve&#039;s compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it. Proton&#039;s Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users.&lt;br /&gt;
&lt;br /&gt;
This wiki page serves as a guide on how to migrate to Proton to continue playing.&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=Deprecation_of_Linux_Client&amp;diff=4007</id>
		<title>Deprecation of Linux Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=Deprecation_of_Linux_Client&amp;diff=4007"/>
		<updated>2023-12-02T18:29:26Z</updated>

		<summary type="html">&lt;p&gt;Azzy: Azzy moved page Deprecation of Linux Client to End of Linux Client support FAQ&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[End of Linux Client support FAQ]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4006</id>
		<title>End of Linux Client support</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4006"/>
		<updated>2023-12-02T18:29:26Z</updated>

		<summary type="html">&lt;p&gt;Azzy: Azzy moved page Deprecation of Linux Client to End of Linux Client support FAQ&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As announced in [https://tf2classic.com/?id=6192 a previous blog post], update [[2.1.3]] will mark the end of Linux client support. We will instead pivot towards supporting Proton, Valve&#039;s compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it. Proton&#039;s Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users.&lt;br /&gt;
&lt;br /&gt;
This wiki page serves as a guide on how to migrate to Proton to continue playing.&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4005</id>
		<title>End of Linux Client support</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=End_of_Linux_Client_support&amp;diff=4005"/>
		<updated>2023-12-02T18:29:04Z</updated>

		<summary type="html">&lt;p&gt;Azzy: Created page with &amp;quot;As announced in [https://tf2classic.com/?id=6192 a previous blog post], update 2.1.3 will mark the end of Linux client support. We will instead pivot towards supporting Proton, Valve&amp;#039;s compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it. Proton&amp;#039;s Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users.  This wiki page serves as a guide on how to migrate to Proton to co...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As announced in [https://tf2classic.com/?id=6192 a previous blog post], update [[2.1.3]] will mark the end of Linux client support. We will instead pivot towards supporting Proton, Valve&#039;s compatibility layer for Windows games running on Linux, and focus on fixing any bugs that manifest with it. Proton&#039;s Vulkan-based backend renderer, DXVK, should have better performance and fewer issues for Linux users.&lt;br /&gt;
&lt;br /&gt;
This wiki page serves as a guide on how to migrate to Proton to continue playing.&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=2.0.0&amp;diff=2224</id>
		<title>2.0.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=2.0.0&amp;diff=2224"/>
		<updated>2023-05-12T18:47:05Z</updated>

		<summary type="html">&lt;p&gt;Azzy: Redirected page to Death &amp;amp; Taxes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Death &amp;amp; Taxes]]&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
	<entry>
		<id>https://wiki.tf2classified.com/w/index.php?title=User:Azzy&amp;diff=1423</id>
		<title>User:Azzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.tf2classified.com/w/index.php?title=User:Azzy&amp;diff=1423"/>
		<updated>2022-09-26T19:38:36Z</updated>

		<summary type="html">&lt;p&gt;Azzy: ,&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hi&lt;/div&gt;</summary>
		<author><name>Azzy</name></author>
	</entry>
</feed>