HARBOR OF
COMPETITIVE
TF2 CLASSIFIED

The technical revolution competitive TF2 Classified needs in the Steam era

We have witnessed the breakthrough of Steam-released TF2 “Classified” (first time we call that name here) on January 31, 2026 together with the rest of the world, where its number of concurrent online players peaked at almost ten thousand. More than a month passed, and there is still a steady number of about one thousand that plays TF2C any time of the day. Technically, our game is now based on the inherited live TF2 code. An immediate consequence of it is working tournament HUD for some of the game modes, and A/D (or PL) stopwatch for some other, as was prophesied. We are closer than ever to get rid of the need for the manual entries of mp_tournament_restart and mp_restartgame X to start a match, the presence of an admin in the server, or dependency on an SM plugin (efforts of rainwyre and Jaws) to count the time. (Yes, we know it sounds puzzling for the live TF2 folk who had a fully functional tournament mode since 2008.)

Of course, we are still missing out on a seamless experience on any game mode. Nevertheless, it is the beginning of a new era for competitive TF2C where all the ugly workarounds can be made native to the game. Commands PuG runners are trained for, configs made by carefully picking the not-server-crashing cvars from ETF2L‘s (special thanks to them), custom SM plugin for proper VIP-assignment (by Jaws), another custom stopwatch-like SM plugin as mentioned above, VIPR-specific scripts using Stripper SM plugin (with help from Dynamilk), vscript to regulate the respawn behaviour of Territorial Domination at round-starts (a short code by Güven)… all are now archived in our old Tech Manual page. Thanks to these old warhorses, and to anyone who contributed and played, CompTF2C managed to organize various events and competitions throughout 2025.

While TF2C competitive community keeps organizing pick-up games regularly on its Discord server, the development team EMINOMA is still working hard to make sure the game is running smooth for everyone. After that, there will likely be a time for when they finally roll up their sleeves to improve competitive. The rest of this article lists what TF2 Classified will need when that time comes.

silvan’s POV stream replay of A Full Match, showcasing how TF2C-unique modes play competitively (map in the image: vipr_drizzle)

Priority Essentials

The developments listed below are the bare minimum required to have a proper competitive TF2 Classified experience.

  • Tournament HUD: Tournament HUD and UI allows the game to start with the configured win condition when both teams Ready Up. So far, this has been handled with a server admin entering mp_restartgame in competitive TF2C, which is impractical.
    The tournament HUD should also show the remaining map time even outside the scoreboard view when mp_timelimit is set, which is the case for 5CP and VIPR. Its missing proved to be confusing for new players.
    The team status HUD on top of the screen (showing dead players) annihilated the “press TAB” motto of the early years of competitive live TF2. The ease it brings can not be excluded considering the amount of information players need to process while playing in such speeds.

  • Manual VIP selection/unselection: TF2C servers auto-assign the VIP player, which can then be changed with a server vote. This has no practicality for a competitive match. Once assigned VIP (given the Civilian class), the players then are not allowed to change class, since the game is hard-coded to have at least one VIP in an escorting team (such as the BLU team in VIP maps, or both teams in VIPR). Taking the VIP role and leaving it manually should be available to the escorting teams in TF2C tournament mode.

    CompTF2C made all these possible with an SM plugin. Auto-assignment of VIP was disabled. Civilian class selection was enabled for both teams with the standard cvar tf2c_allow_special_classes 3. The plugin assigned the VIP role for Civilian players. Leaving the Civilian class was enabled by the plugin with the custom command sm_unclass. If the team was not escorting (such as the RED team in VIP maps), selecting the Civilian class made its players act like dead and spectate their team mates only. Although worked, these workaround solutions looked and felt nothing like a native function, and had many exploits.

  • Stopwatch: Stopwatch with proper HUD and functionality is essential for playing A/D, PL and VIP, where teams take turns in being the attacker/defender and try to beat each other’s score and/or time. The tests so far showed the standard TF2 modes to be compatible with stopwatch, but not VIP, the signature mode of the game.

    The related CompTF2C plugin printed the times spent capturing points on the chat window. After two rounds, it made a comparison of the teams’ captures and times, and printed the winner. There was no countdown, no tension if a team was coming close to the previous time achieved by the other, and the game did not end when the time ran out. The native stopwatch function and HUD is essential for a confusion-free player experience and streamable gameplay.
Source: TF2Classified.com

Future-Proofing TD and VIPR

The unique TF2 Classified game modes of Territorial Domination (TD) and VIP Race needed customization, and that was made possible by CompTF2C in its server pack with a .nut (vscript) file, and 2 .cfg files working in collaboration with Stripper SM plugin, covering the existing map pool. Unfortunately, every additional custom TD or VIPR map would need editing of the vscript code or an addition of a config file, respectively.

  • Fixed TD respawns: TD has 3 CPs which are available to capture to both teams at all times. If using the official prefab, TD maps triggers a vscript logic that randomizes the respawn points (next to each CP) the teams will start a round. TD maps are asymmetric. Randomization is as close as it can get to be fair for a public game. For a competitive game, however, that is not enough.

    CompTF2C made it possible by fixing a respawn (either A, B or C) to BLU and RED, with a customized vscript logic file. After a fixed time limit, or a half, the teams changed sides (colors), and played the second half, making it fair opportunity. The main drawback of this logic is that the vscript code needs specific map names. For the time being, with the only common TD maps being td_caper and td_sunnyside, this is workable.

    On the long run, though, fixing respawns to teams should be made possible with cvars or another solution that does not require server file customization for each new custom map. A competitive server should be “plug-and-play” as much as possible, as in live TF2, working with a standardized set of plugins and configs.

  • Adjustable setup timer of VIPR: Official VIPR map logic involves round setup timer (as in A/D CP or PL) which hinders the competitive gameplay in various ways such as causing mid fights without rollouts and with instant über exchange, and setup timer using up the map time at every round start, sometimes making the last round irrelevant. This is already discussed in a previous article.

    CompTF2C made it possible with Stripper SM plugin scripts, however, as in the previous workaround, it works with specific map names (a config file is created for each map), and that should not be the case in the long run.
Fireside Casts’ stream of the Grand Final between Witness Gaming EU and Like A G6 at Physgun Fireside Denver 2025, one of the greatest TF2 events of all time where the Australians, with Witness Gaming AU, also made it across the Pacific to participate in an inter-continential after eight years and got the bronze medal.

Future Essentials

If all the above is incorporated, it is possible to have competitive up and running the same as live TF2 in the year 2010. But if a competitive scene is to promise player development, growth, glory, reward and longevity all in itself in the current era, it is necessary to support the following features.

  • CastingEssentials: CastingEssentials presents tons of improvements to the STV system of live TF2, whose incompetences and issues most likely persist in TF2C. Before the popularization of Twitch, it was common for hundreds of TF2 players to watch a competitive match in STV while listening to a Mumble cast. That does not work today: Video streaming goes above any alternative. To have streamable competitive content, it is a non-negotiable to ensure CastingEssentials fixes work. Its functions can even be made native to the game itself.
  • Match logs (logs.tf): Match logs might require a TF2C-unique, alternative system to logs.tf. Nevertheless, it is an absolute essential for post-match assessment in today’s live TF2 or even in older Fortress games such as TFC and QWTF.
  • Competitive server pool (serveme.tf): It is still common for individual players and teams to host their own competitive servers, but the new possibility serveme.tf introduced to competitive live TF2, namely the players being able to borrow a dedicated server for some time for PuGs and scrims, is better not missed in TF2C, either through a collaboration with the existing effort, or creation of an alternative. This improvement is more likely to be supplied according to the demand, but the supply can create its own demand as well.
  • MGE: MGE is the way to improve one’s deathmatch skills and keep them warm. TF2C has already managed to make the MGE plugin work in different instances of time, the last one being by the hands of CompTF2C last year.
    Soap DM can also be made work in TF2C, which is a warm up mode for players once tournament mode is enabled in the server.
No comments yet.

Leave a comment

Your email address will not be published.