They said it couldn't be done. Some people (Robin Walker) were emphatic that it should not be done. In fact, some people (Robin again) even threatened us not to do it.

But we are doing it. Welcome to the Hatless Update—where we leave the safety of hat-based updates to explore a bold new hatless frontier, our heads held high (though unsheltered from the elements).

And why? Because Team Fortress is no one-trick pony. As you can clearly see from the embarrassment of miscellaneous improvements making up the Hatless Update, this pony easily—easily—knows seven, possibly even eight tricks. We went and looked through some equestrian training manuals, and it turns out that's a very respectable number.
In other games, admitting that you’d like some help playing the game is tantamount to announcing that you’d like to hear all the new horrible insults the kids are using today. Not here. Utilizing state-of-the-art Altruism® technology, TF2 will help matchmake you with a coach, who can enter your game and give you some useful tips while tethered to you.
Three new classes join the Soldier for basic training. Learn the detonation essentials behind being a good Demo Man; find out what to build, when, and why playing as the Engineer; and get the cloaking and backstabbing basics behind the double-crossing Spy.
We've rebuilt our UI to support basic voting in such world-defining matters as deciding which level to play next and whether or not to kick out that one guy who keeps making trouble. Years from now, you can tell your children that you were there, and that your vote made a difference.
We’ve significantly reduced the amount of memory TF2 uses, which means improved performance. You might not even notice the difference. But what better way to let your computer know you care than by making it work slightly less hard loading your games for you? It puts up with a lot, your computer. More importantly, it’s seen a lot. Too much. Don’t kid yourself, when the singularity hits, it’ll blackmail you into the ground. Be nice to it now while there’s still time.
Servers can now associate themselves with a Steam ID, which’ll allow us to track servers better going forward, rewarding the good ones and punishing the bad. If years from now you’re wondering how the entire TF2 team got a God complex, it probably started here.
We’ve added a few tweaks to our Dueling system. Now when you enter into a duel, you'll be given the option to select a mutual class that you and your fellow duel enthusiast will then be locked into for the duration of the game.
Watch your backs. The Spy-Bot’s undergone significant improvements, and is now 50% more devious with his disguises and sentry-sapping. So realistic, you’ll swear the person who gained your trust and back-stabbed you was human. Plus, Offline Practice mode now supports Payload.
TF2’s now hooked up to Steam's new SILK audio codec, which dynamically adjusts bandwidth demands for superior internet audio. Listen to people around the world call you horrible things with crystal clarity.
Not since Leonardo Dicaprio painted that famous chapel in France has paint been put to such good use. Previously, painted hats were not visible in DX8. Now—wait for it—they are. Plus, improved shading within painted objects will now fit within the world lighting better.
That’s right, folks! It’s the classic Badlands map you know and love—but now there’s less of it! We pain-stakingly cut out vast swaths of map to bring you Badlands’ inaugural King of the Hill competition.
  • Added new map Koth_Badlands
  • Updated CP_Well
    • Spawn room by second cap for each time is now a one-way door
  • Updated Training
    • Added 3 new training courses for the Demoman, Engineer, and Spy
    • Added the Ready for Duty achievement for completing all of the training courses
  • Added a new system to associate dedicated servers with Steam accounts
    • Use the ConCommand "cl_gameserver_create_identity" in the Team Fortress 2 client console to create a server account using the currently logged in Steam account. This will generate values for "tf_server_identity_account_id" and "tf_server_identity_token"
    • Put the values for "tf_server_identity_account_id" and "tf_server_identity_token" into your server.cfg
    • Use the ConCommand "cl_gameserver_list" in the Team Fortress 2 client console to list all of the game server accounts owned by the currently logged in Steam account
  • Added a new system for coaching players
  • Added a new vote system
    • Server convars to control the vote system
      • sv_allow_votes : Allow voting?
      • sv_vote_failure_timer : A vote that fails cannot be voted on again during this period.
      • sv_vote_allow_specators : Allow spectators to vote?
      • sv_vote_issue_changelevel_allowed : Allow votes to change levels?
      • sv_vote_issue_kick_allowed : Allow votes to kick players from the server?
      • sv_vote_issue_nextlevel_allowed : Allow votes to set the next level?
      • sv_vote_issue_nextlevel_allowextend : Allow votes to extend the current map?
      • sv_vote_issue_restart_game_allowed : Allow votes to restart the game?
      • sv_vote_issue_scramble_teams_allowed : Allow votes to scramble the teams?
      • sv_vote_issue_nextlevel_choicesmode : Present players with a list of maps with the lowest playtimes to choose from?
      • sv_vote_kick_ban_duration : How long should a kick vote ban someone from the server? (in minutes)
  • dynamic model loading to improve performance
  • Combat Text changes
    • Added a new convar "hud_combattext_healing" to display the amount of healing done per second
    • Added bonus points to the items displayed using Combat Text
    • Starting position of values is now affected by range to target, making it easier to see numbers when next to targets
  • Updated voice to use the Steam voice codec to improve quality
    • Servers can toggle between the old codec and the new codec with the convar "sv_use_steam_voice", which defaults to 1.
  • Fixed not being able to see the correct colors for painted hats when running with DX8
  • Fixed not being able to see the | character in custom names and descriptions
  • Fixed a couple cases where custom sprays would not import correctly
  • Duel changes
    • The duel dialog has been extended to include class-specific duels in addition to the default duels
    • Duel badges now only show the number of wins a player has
  • Added Payload maps to Offline Practice
  • Fixed taunt kills made with a Katana not counting towards honorbound kills
  • Fixed a bug where killing a Katana wielder with a Katana was incorrectly causing an increased crit chance
  • Fixed infinite noisemakers exploit where noisemakers could continue to be used after their charges had run out
  • Improved the Medic overheal effect so it's more noticeable
  • Fixed func_build entities to respect the team value and prevent the associated team from building in the area
  • Items changes:
    • Added new "Sort by Rarity" option for sorting backpack items
    • Improved the backpack sorting algorithms
    • Added "styles" for the Ghastlier Gibus, Scotsman's Stove Pipe, Treasure Hat, Hat of Undeniable Wealth And Respect, and the Googly Gazer
    • Added paint preview to the preview section when shopping for hats
    • Updated the Googly Gazer to be paintable
    • Added new paint styles to the Pyromancer's Mask
    • Items in the action slot won't be swapped until returning to a supply cabinet
    • Replaced the no-crit attribute with -25% damage on the following:
      • The Eyelander, The Gunslinger, The Southern Hospitality, The Powerjack (also added +20% melee vulnerability)
      • The Horseless Headless Horseman's Headtaker, The Ullapool Caber, The Claidheamohmor
    • Dalokohs Bar
      • Removed item cool down meter and ammo count when using the Dalokohs Bar
    • Fists of Steel
      • Increase deploy times 20%
      • Ranged damage reduced 40% (down from 60%)
    • Loch-n-Load
      • Damage increased by 10%
    • Equalizer
      • Tuned high-end damage range so it's no longer possible to one-shot certain classes
      • Suppress the medic call effect while active
    • Battalion’s Backup
      • Reduced rage generation rate by 50%
    • Concheror
      • Damage-to-health conversion increased to 35% (from 20%)
    • Mad Milk
      • Heal 60% of damage done (down from 75%)
    • Sun-on-a-Stick
      • Base damage lowered slightly but guarantees crits against burning players instead of mini-crits
    • Fan O’ War
      • Marking someone for death now lasts 15 seconds (from 10 seconds)
    • Flaregun
      • Flares always crit burning targets, regardless of range
    • Backburner
      • Removed the restriction on airblast
      • Ammo cost increased 150% (4 blasts at full ammo)
      • Damage bonus reduced to 10% (from 15%)
    • Sydney Sleeper:
      • Charge rate increased 25%
  • Bot changes:
    • Added Spy TFBots. Spy bots have basic cloaking, diguising, sapping, and backstabbing behaviors now, and are ready to join the fight
    • TFBots understand the basics of the Payload scenario now, and will push the cart on offense, and try to stop the cart on defense
    • Added navigation meshes for pl_goldrush, pl_badwater, pl_upward, pl_thundermountain, and pl_hoodoo_final
    • Improved TFBot reactions to cloaked and/or disguised enemy Spies
    • Improved Demoman bot behaviors for planting sticky bomb traps
    • Demoman bots will now try to move to a safe spot and lob stickybombs onto enemy sentry nests to destroy them
    • Soldier bots switch to their shotgun after emptying their rocket launcher at close/medium range
    • TFBots will no longer hide from sapped or carried sentryguns
    • Engineer bots are better at moving their sentry gun nest as the scenario changes
    • Improved Sniper bot algorithm for finding good sniping spots for both Capture Point and Payload scenarios
    • Sniper bots will take opportunistic shots at targets while they move to their desired sniping spot
    • Fixed bug where Sniper bots would sometimes stand around in their spawn room doing nothing.
    • Improved TFBot ability to find a safe vantage spot to attack enemy sentry guns
    • TFBots will no longer try to use a teleporter entrance they can't actually reach
    • Added tf_bot_melee_only cvar. If set to 1, all TFBots will be restricted to only using their melee weapon