Back
Team Comtress 2 Update - April 12, 2026
The Rematch Update is here!
Casual Mode 2.0
- Pre-match timer reworked to reduce wait times and to be more responsive to player joins
- The timer starts at 150 seconds
- If teams are even, the timer will go down to 30 seconds upon reaching at least a 7v7. Before, there was no timer handling for teams evenly forming, causing lopsided match starts as players loaded in.
- If teams are not even, the timer will go down to 60 seconds upon 12 players joining the game. Before, it was upon 4 players joining the game.
- The match will start immediately upon reaching a 9v9. This requirement is reduced to a 6v6 if players have been waiting for a total of 90 seconds or more. Before, the match only started with a full 12v12.
- Fixed various desync issues in the timer countdown
- New autobalance system improvements
- New autobalance system now activated for all servers by default (mp_autoteambalance 2)
- Autobalance now announces during the round it will be active in 5 seconds, rather than working quietly
- Autobalance now runs instantly at the start of each round, ensuring that teams are balanced before gameplay starts
- Autobalance no longer runs for the first 60 seconds of a round, or the last 60 seconds of the round timer
- Autobalance is now less favored to apply for Engineers with relevant buildings, or Medics with enough UberCharge level
- Autobalance is heavily less favored for players that have been recently autobalanced
- Autobalance is less favored for players that have been playing a long time
- Reworked rebalance scoring metric to be much more intelligent, keeping track of moment-to-moment raw performance, rather than biasing towards players who have been on the server for a long time, or by solely long term / average performance (MMR)
- Casual matches are now restructured into multiple series
- Series are essentially “mini-matches” comprised of the same win conditions as before
- Achieving a win condition gets your team a series point, before moving onto the next series
- Each map will be played for a minimum of 35 minutes
- If time runs out, the current series will run to completion
- If there is a tie in the series points, then another series will be played to break the tie
- Whichever team has the most series points at the end will win the match
- Win difference based on series points is factored into win/loss statistics
- Added Team Shuffle
- Teams will be shuffled at each series intermission between series for the following conditions:
- Team series score is ahead by 2
- Team points are ahead by 50%
- Team shuffling finds an optimal and minimal set of mid-tier players within a performance curve to swap between the dominating and losing teams, rather than randomizing them like Team Scramble
- The goal is to create more even matches without being overly disruptive or punishing players for good performances by switching them onto a losing team
- Added Hybrid Stopwatch
- Stopwatch has been added back to Casual, but with a twist!
- Stopwatch measures which team had the best offense, either by capping more points or the same amount of points in less time.
- Both teams will now play the map to completion, rather than the game ending abruptly when the Stopwatch condition is beaten.
- Successfully defending will award 1 Series Point for defense. Teams on offense need to capture the last point to deny this point from being awarded to the enemy.
- Another point will be awarded to the team with the best offense, as measured by Stopwatch.
- Changed map selection
- Replaced end of match map voting with an in-game vote call for the next map
- If no map was voted on, Casual will automatically choose a map from the map pool at the end of the match
- Reduced preround timer from 10 seconds to 5 seconds
Competitive Mode
- Added pre-match warmup
- Players are spawned randomly around the contested point
- Respawning is instant
- Killing an enemy rewards you with some healing and a weapon refresh
- Improved match ready up
- If at least one person on each team ready up, the match start countdown will start
- In high skill competitive matches, the match will only start when all players ready up
- If a player goes AFK for 30 seconds, they automatically unready
- Improved competitive preround in high skill matches
- Pre-round push from damage is now enabled in high skill matches
- Pre-round countdown period separated into Planning Phase (first 7 seconds) and Rollout Phase (last 3 seconds)
- Fixed projectiles getting removed at the end of the pre-round countdown
- Developer note: Disabling pre-round push adversely affects the early rollout vs. extra overheal tradeoff that heavily impacts play in high skill games. Although this is a non-ideal solution, it’s best that we do not disrupt high level competitive play for now.
- Teammate avoidance collision is now disabled in competitive games, pending a fix to this mechanic
- This prevents teammates from blocking each other during rollouts
- Added prompt for spawn switching in competitive games
- Life recap messages (On the bright side…) no longer show in high skill competitive games
- Item whitelists are now allowed in all games (not just mp_tournament matches)
- Changed high skill competitive matches with rounds to be first to 5 format rather than a best of 5
- Changed normal skill competitive matches with rounds to be best of 5 rather than best of 3
- Added tf_tournament_force_ds 1 to allow server operators to force recording of demos when tournament mode is enabled, to enforce demo recording requirements on community administrated competitive games. If demo recording is stopped by the player in this case, it will be automatically restarted.
- Adjusted First Blood announcer timings in Competitive Mode
- Added new Administrator voicelines for killing most of the enemy team
- Dueling Icons are no longer displayed in competitive games
- Dueling Icons are also now hidden by the tf_tournament_hide_domination_icons ConVar for community servers
- Pyrovision is now blocked in Competitive Mode
- Fixed respawn waves being bypassable in certain cases in 6s
- Fixed various rendering bugs after a map change within a competitive matchmaking server
- Fixed player class not being reset when switching teams in competitive modes
- Fixed competitive post-match drawing being slightly shorter than expected
- Fixed an issue where competitive matches did not wait properly for SourceTV delay
- [BETA] Added overhauled pause feature
- Pause by pressing the F9 key by default
- The new pause feature operates on a game-aware basis, rather than at the engine level
- Pausing will no longer freeze networking and prevent player joins
- Spectators can look and move around during pause
- [BETA] Added online match history for Competitive matches
- [BETA] Added basic class swap request feature for trading classes when a class limit is full
- Currently only works on bots, but will be added for players later
- If a player tries to select a class which is at the class limit, a bot will be requested to swap their class with the player.
- Fixed various cases of team-based tournament mode not being handled properly in competitive systems, causing pre-match and round running states to not be handled correctly, for example, for Administrator voice lines, Demo Support, chat notifications, and more
- Reduced humiliation time from 15 seconds to 10 seconds in competitive (game-ending win time in competitive is still 5 seconds)
- Enabled trade request pop-ups in Casual games, disabled trade requests in all competitive games, rather than the prior behavior of blocking trade requests in matchmaking games
- Fixed player-based ready up not working properly in community competitive
- Added win conditions display to competitive matches
- Fixed desync when enabling mp_tournament and mp_tournament_readymode after loading a map
- Fixed mp_tournament_restart not fully restarting the map
- mp_tournament_stop_and_refresh is available for the legacy behavior
- Fixed competitive ready up voice lines not playing in community competitive
- Fixed payload recede voicelines playing during match summary time
- Added mp_timelimit_added_winlimit and mp_roundtime_override to support community competitive rulesets
- Fixed first blood timer not accounting for setup time length
Class Changes
Scout
- Can now jump while crouched on the ground
- Fixed not being able to fire the Force a Nature during preround
Pyro
- Split off heat system into two parts which measure warmup time and density separately. This allows the heat system to be accurate for both accuracy and warmup, rather than compromising on either.
- Fixed initial flame particle dealing full damage
- Fixed reflected projectiles having an incorrect path if the player was aiming directly at a projectile
- Retuned flame particle damage falloff to more accurately approximate ideal distance
- Fixed the Phlogistinator MMPH! taunt ending early in some cases.
- Fixed the Thermal Thruster status effect not being removed as intended in some cases.
- Fixed being unable to airblast enemies when looking straight down
- Fixed the Backscratcher not reducing healing received from the Crusader’s Crossbow (GitHub fix from JoriKos)
- Gas Passer: cosmetic-only gas dripping effect now lingers after ignition, properly granting assists for the Gas Passer thrower
Demoman
- Added glows for your own stickybombs on all Stickybomb Launchers
- Fixed Stickybomb count not showing “0” initially
- Fixed Demoman Shield Charge meter showing the crit color too late vs. when a crit was actually available
- Fixed the Tide Turner Charge meter turning red even though it cannot provide critical hits
- Possibly fixed Demoman shield rendering incorrectly
- Added more precise detonation selection to the Scottish Resistance
- Now detonates clusters of bombs
- Fixed Scottish Resistance selection radius not taking into account the player’s FOV
- Interval between successful sticky detonations increased from 0.1 seconds to 0.25 seconds. Interval between retries when nothing detonated remains 0.1 seconds.
- This brings intended Stickybomb detonation delays back more in line to what they were previously in effect
Heavy
- Tweaked the Minigun spread pattern to be more consistent, making its effectiveness less dependent on rolling a good seed value during sustained fire.
- The Holiday Punch now uses the same “crit from behind” logic as backstabs
- Fixed Minigun having a slower spin down time if letting go of secondary fire (thanks wgetJane)
- Fixed Fists of Steel not updating max overheal while already being healed (thanks wgetJane)
Engineer
- Building Placement: Removed building placement checks that were causing confusing denied areas.
- Fixed the Pomson 6000 colliding with teammates during its initial lifetime.
- The Wrangler laser now renders the shooting angle more accurately.
- Fixed Dispenser healing getting interrupted in some cases (GitHub fix from bakugo)
- Fixed various building visuals, sounds, and effects not working properly.
Medic
- As a Medic, you will now see outlines for injured teammates and teammates calling for Medic
- Fixed being able to cancel an ÜberCharge by picking up another dropped Medi-Gun
- Medi-Guns now go into an activated state when using ÜberCharge
- When an activated Medi-Gun is picked up, the ÜberCharge is resumed
- An activated Medi-Gun loses charge, when dropped, 2.5x faster than normal (25% per second instead of 10% per second)
- Fixed being able to preserve Vaccinator charge by picking up another dropped Medi-Gun
- Limited Medic auto-call threshold to up to 75% to prevent “radar” exploit for finding non-injured teammates
- Fixed the Backscratcher not reducing healing received from the Crusader’s Crossbow (thanks JoriKos!)
- Fixed Medi-Gun range being effectively shorter if you aimed towards someone’s legs
Sniper
- Added Sniper Rifle “hold to zoom” option
- Sniper Rifle will zoom out when let go, and zoom in when held
- Between shots, the Sniper Rifle will automatically rezoom when held, and zoom out after shot if let go
- Fixed Sniper Rifle crosshair being misaligned with the center of the screen
- Fixed crosshair being blurry and improperly displayed
- Fixed friendly Snipers without a bow being considered as an ignitable target (thanks AndrewBetson!)
- Fixed Jarate splash regression where edges of a hitbox within the spherical radius would not be affected
Spy
- Added cloaking preview to HUD player model panel
- Fixed cloak not having team coloring in some cases
- Fixed a crash when leaving a game at the same time a Spy changed disguises
- Fixed various cases of enemy spies disguised as teammates causing pop-in for team outlines
- Fixed disguised Spies being spotted from far away with team outlines
- Fixed some Spy disguise bugs (thanks seanmcgeehan)
- Fixed Sappers getting stuck in an inactive state on Sentries (thanks bakugo)
- Possibly fixed various cases of Spy disguise items being invisible
General
- Vulkan with Shader Model 3 is now the default and recommended
- For older computers, Shader Model 3 is still required, with DirectX 9.0c (dxlevel 95)
- This GPU spec was introduced in 2006
- This will allow us to streamline certain rendering systems, improve performance, and enable more modern features
- Some quality levels from lower dxlevels will be introduced through graphics settings rather than a separate dxlevel, based upon community feedback
- Optimized various rendering systems to take advantage of the new spec
- HDR map data is now required to be enabled
- This will allow maps to only need HDR lighting rather than also an LDR lit version
- Graphics settings (Post-processing) will now disable HDR visually rather than skipping loading its data
- Extended spawn glows for the initial round start spawn to account for freeze / countdown time
- This should help keep track of how your team is rolling out of spawn
- Added crash and error logging, using Sentry. This will automatically report crashes and errors to the TC2 team, to help us resolve these issues in future updates. If you would like to opt out, please use the -nosentry launch option.
- All talk is now enabled during pre-game and humiliation. Can be disabled by the server operator with sv_alltalk_betweenrounds 0
- Motion blur is now disabled by default, to keep up with modern player expectations
- Fixed dynamic shadows bleeding through thin surfaces (thanks copperpixel!)
- Enhanced blood FX to be more reactive to damage
- Dynamic models now compute full ambient lighting rather than a limited number of samples
- Removed support for r_shader_srgb convar, which was unsupported any GPU that matches the new minimum spec
- Restricted r_pixelfog to be on to prevent a visibility exploit
- Fixed being able to cancel a ready game by disconnecting
- Added shadows to rockets, grenades and stickybombs to better ground them in the world
- Improved loading times when connecting to a server or loading a map
- Added new data to demo log files: map name, game mode, team name, enemy team name, and tick count
- Various server optimizations for damage and kill effect calculations
- Fixed cases of subtick desync
- Fixed some cases of position desync. This was most often encountered during backstab attempts.
- Reduced the frequency of dropped packets during large teamfights
- Fixed player networking data not being initialized properly on join, which could cause dysfunction on some poor quality connections
- Fixed desync between server operator network config values and tickrate changes made in TC2
- Added ability to disable fading props entirely for high quality graphics
- Fixed blood particle effects not appearing if the attacker was holding a Flamethrower but the damage was dealt by another weapon
- Removed various legacy rendering systems that reduced performance
- Server operators can now use the -autoupdate launch option on Linux to check for and install updates upon server quit/restart
- Removed HTML MOTD system
- Various stability fixes
- Fixed cp_degrootkeep (and other maps using SetWinner) saying that the defending team captured all points rather than defended until time is up
- Fixed defender and attacker not being set in attack/defend modes in some cases:
- This fixes some A/D maps not granting the Soviet Block Achievement
- Fixed auto team assignment not assigning to the correct attacking team in some cases
- Fixed stopwatch not being available on some attack/defend maps
- Fixed some cases of incorrect win conditions being detected when a capture point was reset to the defending team on attack/defend maps
- Fixed servers being able to fake cosmetic items on players
- Fixed shadow appearing on Gunboats and other wearables in first person after respawn
- Fixed various cases of weapons becoming invisible
- Fixed various cases of players becoming invisible
- Fixed winner crit sounds lingering after round respawn and in other cases
- Fixed some base conditions not being cleared out correctly
- Fixed a common file integrity bypass
- Reduced initial voice command delay from 0.5 to 0.3 seconds
- Fixed some wobbly jigglebone models disappearing when shot at
- Fixed a crash when joining a server while a player died
- Fixed stat clock not showing properly on world models / dropped weapons (thanks rabscootle!)
- Fixed War Paint items not displaying certain data properly (thanks rabscootle!)
- Reduced executable size slightly on Linux
HUD
- Added a new main menu interface, along with a new server browser
- Added a setting to control max chat lines. Defaults to 15 lines. Previously was unlimited and could cause performance issues after playing the game for a while.
- Added a setting to select your preferred class to feature on the main menu
- Added Main menu FPS limit to settings, 120 by default
- Improved display for hitmarkers, especially for high fire rate weapons
- Fixed ready up, stopwatch and win conditions intersecting with the match HUD
- Fixed overtime display intersecting with the server time display
- Fixed stopwatch label display errors while in the process of switching teams
- Fixed countdown background being the wrong team color
- Developer Console is now enabled by default, as a quality of life change for advanced players
- Large Combat Text is now enabled by default, as it compliments the Individual+Combined damage number mode well
- Added indicator for the Medi-Gun for selecting a heal target
- Fixed some layout issues on the scoreboard
- Fixed missing contracker font on Windows
- Fixed missing TF2 styled numbers in PDA, Disguise Kit, etc (thanks to TF2 HUD Fixes)
- Fixed misaligned Pip Boy PDA background (thanks to TF2 HUD Fixes)
- Fixed Scout and Soldier number not being highlighted on hover in the class selection menu (thanks to TF2 HUD Fixes)
- Fixed various display errors in HUD player models (thanks to TF2 HUD Fixes)
- Fixed various weapon rendering glitches in the HUD and menus (thanks to TF2 HUD Fixes)
- Fixed Team Ready not being localized in Tournament HUD (thanks to TF2 HUD Fixes)
- Fixed some minor positioning issues in the taunt selection menu, spectator health on minmode, main menu, itemtest panel, and killstreak in target ID (thanks to TF2 HUD Fixes)
- Fixed incorrect crosshair being used if view FOV was lower than 90
Bots
- Outside of MvM, Pyro bots will now be affected by reaction time when reflecting projectiles
- Bots now use “fill” quota mode by default: maintains a set player count of humans and bots
- Fixed bots searching for health and ammo packs improperly
- Optimized performance issues with bots, especially in high player count scenarios
- Added Kritzkrieg charge functionality to Medic bots
- Added Vaccinator resist cycling functionality to Medic bots
- Fixed Demoman bots detonating stickies during setup
- Fixed Demoman bots detonating sticky traps on themselves
- Improved behavior and optimized pathing for Sniper and Spy bots
- Fixed bots not having certain user settings set properly
- Fixed bots not balancing team counts properly due to old behavior that tried to allow players to join
- Fixed TFBot crash related to moving control points (thanks TheBetaM!)
- Fixed TF bots not working on some gamemodes without a clear objective (based upon changes from ShowinGrowin, thanks!)
- Bots now spawn during match countdown, rather than on match start, so that bots can keep up with rollouts
- Fixed bot names getting out of sync on the server, which could cause bot commands to fail
- Optimized how bots are assigned items to reduce server lag in some cases
Territorial Control 2
- Added a new beta gamemode, Territorial Control 2
- Territorial Control 2 is a 50v50 gamemode that modifies existing Territorial Control maps to open up the entire play area
- The beta is launching with tc_hydro but more maps may be added
- Maps are dynamically modified through a script file to adjust them for the 50v50 format, rather than requiring direct map edits
- You can capture all the enemy team’s control points to unlock their base control point
- You have 6 minutes to capture the base, or else the enemy team will reclaim their territory
- You cannot capture the enemy team’s territory until all of your own territory is held
- You may select a respawn point upon an uncontested capture point that your team owns, any active friendly teleporters, or the normal spawn points
Spectator
- SourceTV Updates
- SourceTV now transmits local player data, allowing ammo counters, Sniper Rifle charge, and more to display to clients
- Fixed cases of desync due to SourceTV not transmitting various game events to clients
- Renamed tv_allow_camera_man to tv_allow_camera_man_steamid. Now accepts a SteamID in addition to 0/1, allowing only a spectator with the given SteamID to control the camera.
- Changed the default to 0, denying anyone to control the camera
- Enabled map change delay by default, to prevent SourceTV from cutting off with a delay
- Changed default SourceTV delay from 30 seconds to 90 seconds
- Enabled recording SourceTV demos by default
- Reduced time between SourceTV chat messages from 8 seconds to 5 seconds
- Reduced SourceTV timeout time from 30 seconds to 20 seconds to match other timeouts
- Changed the default for mp_spectators_restricted to 1, as used in matchmaking servers. This makes it so switching to spectator is not possible if it would unbalance the teams.
- [BETA] Added drawing feature to tournament observer, to draw lines in 3D space
- Toggle cl_sped_hud_draw 0/1 to enable drawing lines at the crosshair
- Toggle cl_spec_hud_draw_show 0/1 to show / temporarily hide the lines
- Set cl_spec_hud_draw_fade 1 to fade out and remove lines over the next 3 seconds
- Increment/decrement cl_spec_hud_draw_dist to increase the distance the lines are drawn (default 1024 units). If lines intersect with geometry, they will be draw onto the geometry.
- Set cl_spec_hud_draw_color to change the color of the lines. 0 = use the color set in the HUD (default green), 1 = white, 2 = red, 3 = blue
- Added SourceTV recording support feature, replacing tv_autorecord. Use tv_demo_enable to automatically record demos in different contexts.
- tv_demo_rounds_only 1 (default) makes sure that only gameplay is recorded rather than a long prematch warmup
- A JSON file with map name, gamemode, length and team name info is logged alongside the demo
- Spectators can move around during a pause
- Pausing can be configured to have cooldowns and limited pauses per player
- Fixed various issues with pausing responding to inputs improperly
- Fixed various glitches with game / player state becoming corrupted during a pause
- New pause sytem broadly blocks game simulation, but allows for certain systems to continue operating during a pause. Work is ongoing in this area.
- [BETA] Added basic game state integration
- External apps like observer tools can be notified of game state changes, and read/write game state to the game
- Fixed some minor positioning issues in the taunt selection menu, spectator health on minmode, main menu, itemtest panel, and killstreak in target ID (thanks to TF2 HUD Fixes)