Team Fortress 30th Anniversary Update hits TF2 Classified 3.1.0
The Team Fortress 30th Anniversary Update is live now as Team Fortress 2 Classified Version 3.1.0. The event begins today, August 24, 2026, and the update applies automatically when you restart the game. The update page carries expanded patch notes, wallpapers, and cursor skins.
Classic-Vision and the QWTF anniversary
- Classic-Vision is on by default and togglable in Options: it swaps class models and the Sentry model for QuakeWorld Team Fortress versions, replaces the Announcer with Team Fortress Classic's VOX announcer, and switches gib kills and chat notifications to classic sounds.
- A QuakeWorld Team Fortress anniversary holiday runs August 23–25, enabling a QWTF-inspired main menu logo, background video and soundscape, a Quake/Half-Life inspired menu music track, Quake-inspired chicken variants, and a Quake-themed beach ball.
- Holiday windows were also updated: TF Birthday is now October 9–11, Halloween October 15–November 1, and Christmas December 15–January 1.
Core additions
- New Half-Life-style armor for TF30 maps: 80% of damage is absorbed and reduced by 50%.
- 13 achievements return from Team Fortress 2 Classic, plus 6 new QWTF/Quake-inspired sprays.
- A new VPlugins folder (controlled by cfg/vplugins.cfg) gives servers scripts that run automatically on every map.
- The Randomizer mode from TF2 Classic was rebuilt. Instead of one tf2c_randomizer ConVar, it now uses tf2c_randomizer_classes, tf2c_randomizer_items and tf2c_randomizer_attributes. Setting items to 1 randomizes only the current class' weapons; 2 allows weapons from any class. The loadout screen shows randomized weapons and attributes. The config is cleaner too: attribute names replace numeric IDs, filters work and can target weapon slots, and values can be restricted to a single value, forced to integers, or swapped based on if_less_than/if_greater_than.
- New Randomizer CVars: tf2c_randomizer_attributes_roll_count (default 6), roll_fail_chance (default 40), roll_projectile_chance (default 15), and tf2c_randomizer_chickendrops for randomized chicken drops.
Gameplay, maps, and fixes
- Weapon reloads now prefer the scripted ReloadTime like TF2 Classic, with controllable coyote reload via tf2c_coyote_reload (default 0.20).
- The Rejuvenator's ÜberCharge drains only once its generator lands; an unlanded generator self-destructs after 15 seconds.
- Spawn camp protection drops from 6 seconds to 1 second once you leave the spawn room. Medics now prefer their secondary on spawn.
- Stickybomb Launchers no longer detonate non-stickybomb projectiles; nail/syringe and viewmodel fixes landed, and MvM Medic shields now block projectiles, not just hitscan.
- Four temporary maps join the rotation: dom_canalzon (QWTF), rctf_epicenter and 4tdm_gasworks (TFC), and ff_dustbowl (Fortress Forever). vip_avanti and cp_mountainlab got targeted fixes.
UI, sound, and presentation
- The main menu is overhauled with a rotating challenge panel (achievement progress/class stats), an in-game Steam friends list with direct joining, and updated visuals.
- Engineer building status shows low-ammo and low-health icons, and teleporter stats only count teammate uses. Team and class select now support ultrawide.
- Soldier and Engineer headshots have a 1/6 chance to send helmets flying with a special sound. The Brick gets a unique taunt and draw sounds; the Coilgun gets reload sounds; the Sniper Rifle and Hunting Revolver gain zoom, full-charge, near-miss, and distant-fire sounds.
- Medi Gun and Kritzkrieg beams were overhauled, with wobble restored and better muzzle alignment. A fix also makes the Shake UserMessage unreliable to prevent stacking that presented an epileptic concern.
Bot changes
- Payload Race is properly supported: bots split into pushing/defending roles, fall back to defense when behind, and roam when their cart is at max speed.
- Multi-team and VIP behavior are broadly improved, and bots can use flags as primary objectives.
- Bots queue for teleporters, avoid and destroy stickybomb traps, remember sentries that hurt them, reflect projectiles with reaction-time-based timing, and handle more projectile types.
- tf_bot_quota_mode balance adds only enough bots to balance teams.
2,894