?
?
Spooky Halloween Special!

Weapon Reworks

A few notorious TF2C-exclusive problem weapons have been wildly reworked to encourage more active play, and to further set them apart from the stock weapon in their slot. In part, the Harvester has lost its passive tick healing and is retooled around its crit meter; the Hunting Revolver is now more versatile at middle ranges and while unscoped; and the Mine Layer, well, just have a happy Halloween.

Seasonal Music

Video Frame

Ram99's new track "Fright Fortress", a Halloween-ified remix of the Team Fortress 2 main theme, will trap you in a sonic nightmare every time you land on the TF2 Classified main menu during the Halloween event. You can trap yourself in it right now through this embed!

New Loadout UI

The Loadout menu has been overhauled to match the see-through, tab-based menu style seen elsewhere in TF2 Classified's interface. Players can also hold down their new Loadout Quickswitch button (default Alt) to change their loadouts in a mini-menu without having to pause the game.

CP Manor

Back by popular de-manned is Manor, a gloomy old estate left to moulder so long that even the name of its occupant is lost to time. (No, put your hand down.) Maybe you could ask that polite-looking headless executioner skeleton ghost?

General Changes

  • Added seasonal Halloween masks
  • Added a ghost costume for the Civilian, for use in Halloween maps
    • Ghostly Civilians will periodically scare all enemy players within their immediate line of sight
    • Gameplay mechanics can be controlled by the following server ConVars:
      • tf2c_vip_scary - Enables Ghostly Civilians, if enabled in tf_logic_holiday
      • tf2c_vip_scary_radius (Default 192) - Range in units Ghostly Civilians can scare targets
      • tf2c_vip_scary_angle (Default 45) - Ghostly Civilian view cone angle that targets need to be within to be scared
      • tf2c_vip_scary_stuntime (Default 3) - How long Ghostly Civilians scares targets for
      • tf2c_vip_scary_prestuntime (Default 0.25) - Time it takes before a target is scared
      • tf2c_vip_scary_stuncooldown (Default 1) - Time it takes before a target can be scared again
  • Added 5 new Halloween sprays
  • Added 2 new Main Menu backgrounds
  • Added 1 new Main Menu music track
  • Re-added birthday and Santa hats for the TF2 Birthday and Winter holidays respectively (#456)
  • Re-added Bottle break effects and unique broken swing sounds (#634)
  • Re-added the option to allow ragdolls to be affected by explosions (#235)
    • Controlled by tf2c_explosion_ragdolls (defaults to 0)
  • Re-added the tf2c_nemesis_relationships ConVar for disabling dominations server-side
  • Re-added the tf2c_show_nemesis_relationships ConVar for disabling dominations client-side (#113)
  • Re-enabled randomized projectiles in Randomizer
  • Implemented balance tweaks to the default Randomizer config:
    • Added Mad Milk Syringes, Bleed on Hit, Projectile Penetration and Mini-Crit Boost on Kill as Randomizer attributes
    • Crit rate bonus attribute now only applies to Melee weapons
    • Reduced Projectile Spread Penalty max range (4 degrees, from 10 degrees)
    • Increased Bullets per Shot min range (75%, from 50%)
    • Blast radius have been clamped to less extreme values
    • Max ammo primary/secondary attributes now only appear on their respective slots
    • Damage Bonus, Mad Milk Syringes, Crit Boost on Kill, Mini-Crit Boost on Kill and Can Headshot are now mutually exclusive
  • Added toss suicide command
  • Added tf2c_infinite_ammo 2 for infinite clip
  • Loadout and respawning logic has been adjusted:
    • The server no longer requests your Loadout when you change class
    • The client now sends the server all class Loadout information upon initial spawn
    • Spawns are no longer delayed by a minimum of 0.1s, and instead happen instantly
  • Steam Game Recordings now use varied icons for different events instead of the generic marker
  • Players coated in Jarate are no longer tinted yellow (only affected some weapons and wearables) and instead display a Jarate icon above their heads
    • This change is only noticeable on servers using custom content
    • The YellowLevel material proxy is now non-functional
    • Removed the tf_colorblindassist ConVar, which controlled the display of overhead Jarate icons; the game now always behaves as if it is enabled
  • Player eye and fired bullet angles are now networked with 16-bit float precision
    • Fixes an issue where the Sniper Rifle's dot and tracer wouldn't match where the Sniper was aiming
  • Removed cheat protection from tf_always_deathanim
  • Fixed an issue where "Change VIP" votes could make the target VIP if they switched teams during the vote
  • Fixed model muzzleflashes not also displaying particle muzzleflashes (#1068)
  • Fixed an issue where destroying a building would create an invalid Steam Game Recording event
  • Fixed servers with custom item schemas loaded not using the "Custom Weapons" tag in the Server Browser
  • Fixed non-zero viewmodel_offset_yaw values causing viewmodels to turn when looking up or down (#980)
  • Fixed viewmodels having their normals inverted when flipped viewmodels are enabled (#1053)
  • Fixed players not being counted as on the ground after spawning (#370)
  • Fixed an issue where attempting to switch your observer mode while spectating a Payload or Engineer building would cause camera stuttering (#218)
  • Fixed an issue where you couldn't switch to your current desired class while inside a respawn room
  • Fixed a server crash related to infinite recursion related to calculating the VIP's respawn time
  • Fixed a server crash related to projectiles and Randomizer
  • Fixed a Linux crash caused by overriding Huntsman arrow projectiles (#647)
  • Fixed a rare crash when shutting down the game
  • When trying to type or paste characters past the limit, the chat box's warning sound will no longer stack upon itself
  • Fixed some weapons' bodygroups being mistakenly hidden when dropped (#1196)
  • Fixed the R.P.G.'s rocket appearing in the weapon too early while reloading in third person (#1167)
  • Fixed sniper rifles not zooming out when jumping in shallow water (#1199)
  • Fixed non-local players' Anti-Aircraft Cannons not ejecting shells
  • Fixed local players' disguise weapons casting shadows in third person despite never being visible
  • Fixed the "Show map info" Discord setting in the options menu being non-functional
  • Fixed per-team skins for rockets not being used when present
  • Fixed the Intelligence flickering when cloaking as a Spy (Community fix by shockpast)
  • Fixed taunt camera not zooming in after taunt finishes (Community fix by rawra89)
  • Fixed an issue where you could survive some suicides under certain scenarios (e.g. ÜberCharge, high damage resistance)
  • Fixed an issue where calling for help next to an enemy Payload in PLR would call to help capture it instead of calling to defend it
  • Fixed Sniper Rifle tracers drawing strangely while scoped or zoomed in
  • Fixed "CartMovingForwardDefense..." responses not playing (Community fix from Ashe-tf)
  • Arena mode can now be combined with other gamemodes (#1123)
  • Fixed an issue where the control point resetting upon death in VIPR would be credited to the VIP that died
  • Fixed an issue where damaging a building to 1 health would sometimes erroneously play a kill sound
  • Fixed an issue where weapons would be invisible after being stunned or scared (Community fix from num-get)
  • Fixed an issue where Grenade Launcher viewmodels that don't reload exactly 4 shots don't update correctly without reloading the model (#826)
  • Fixed the Flare Gun projectile world impact sound not playing
  • Fixed chicken eggs' models being replaced with festive large health kit models during holidays
  • Fixed holiday-related models not being precached when changing holidays mid-round
  • Fixed players not using their ConceptPlayerLostPoint responses
  • Fixed being unable to spawn puppet bots assigned to Green and Yellow teams (#454)
  • Fixed flags being invisible in demos (#1173)
  • Updated localization files

Gameplay Changes

  • Increased the Spy's maximum movement speed to 107% (320hu/s), matching Live TF2 and TF2 Classic
  • Updated the Nail Gun:
    • Recent networking changes improved the Nail Gun's performance considerably. We're mostly treating this as a positive, but it made us take another look at its effective range. What we've found is that the most annoying weapons for enemies tend to be the ones that fundamentally change the situations in which you fight that class. We want the Pistol to retain its identity as a better weapon for mid-long range harassment, and the Nail Gun to have similar range tolerances to the Scattergun but to focus on tracking enemies and leading projectiles.
    • Projectile spread increased by 66%
    • Reload time increased from 1.15s to 1.3s
  • Updated the R.P.G.:
    • We really like the idea of leaning into this weapon's identity as a better tool for rocket-jumping, bombing, Anchor slams, etc. to add more depth to its gameplay.
    • You no longer take additional self-damage from rocket-jumps (you still get the additional push force)
    • You now reload 25% faster while rocket-jumping
  • Updated the Harvester:
    • In practice, despite the biggest spike of the weapon being the charged attack, it provided more utility as a hit-and-run weapon. We want this weapon to be for direct confrontation, with the charged attack letting you take risky fights or engage large crowds and still leave healthy if you can land the hit. As such, we wanted a stronger upside and a stronger downside to create more playstyle differentiation.
    • Afterburn ticks no longer heal you directly
    • Charge now builds passively from afterburn, without requiring the weapon to be active
    • Critical attacks now deal damage in a wide sweeping attack synchronized to your viewmodel animation, this can damage multiple enemies
    • While equipped, in addition to the current downside, all applied afterburn lasts for half of its normal duration
  • Updated the Mine Layer:
    • We feel that this weapon's identity is rooted in multitasking, and stronger area denial for players that want to focus on using their Grenade Launcher. We wanted to limit players using the Mine Layer as a spam tool against shutters and objectives, and instead make their placement deliberate and impactful, so Demoman can take other fights instead of watching his traps. We also wanted mines to add an effective "movement cost" to trapped areas by making them obvious and more dangerous, and for Demoman to have information on which of his mines got destroyed so that he knows where an enemy is.
    • Mines no longer detonate based on proximity, and instead shine a visible tripwire that detonates when crossed
    • Mines have substantially increased damage and explosion radius
    • Mines only start arming once they touch the ground, and have a much longer arm time
    • Mines can once again be charged, like stickybombs
    • Your own mines now have a glow outline, visible through walls
    • Mines are restored to their original size
    • Mines once again slide around like pucks instead of using stickybomb physics
    • Mines once again stick to walls and ceilings
    • Mines do not expire after death
    • Mines can be destroyed by enemies immediately after being launched
  • Updated the Hunting Revolver:
    • Our goal, in this case, was to encourage the Hunting Revolver to have a more unique niche between his other two primaries, and to have a solid mid-range identity that rewards skirmishing
    • Added a vignette overlay for zooming
    • Tracers now fire from the center of the screen when zoomed
    • New firing sound effects for both in and out of zoom
    • New zoom sound effect
    • While unzoomed: Full firerate, and headshots mini-crit
    • While zoomed: 25% slower firerate, and headshots are full critical hits
    • Headshots now are affected by falloff
  • Updated the Rejuvenator:
    • Fixed Rejuvenator overheal not being properly calculated for blast hits and with its Über Generator (#1153)
    • Fixed an issue where the Rejuvenator would sometimes not have view punch when shooting (#530)
    • Fixed Rejuvenator healing persisting between rounds and respawns
  • Updated the Überspritze:
    • Removed the ability to taunt when using Alt-Fire
  • Updated the Shock Therapy:
    • Fixed the Shock Therapy not using the intended healing values
    • When fully charged, the Shock Therapy now prioritizes targeting players (and enemy buildings) over friendly buildings when both are in melee range (#1151)
  • Updated the Sniper Rifle:
    • Tracers now fire from the center of the screen when scoped
    • Fixed the scope overlay not distorting the world properly at every edge
  • Movement and attack inputs are now ignored during start round freeze time
    • Latter is controllable via tf2c_attack_during_freeze ConVar
  • Coyote reload will now trigger when holstering your weapon
  • Fixed holding out the Admiralty Anchor not sinking you in water (#1200)
  • Fixed an issue where Flare projectiles could get stuck on the ceiling of the sky
  • Fixed an issue where Heavies could keep their Miniguns revved up while taunting
  • Fixed the Coilgun instantly reloading itself after each shot
  • Fixed the Sapper being unusable in Medieval mode
  • Fixed players automatically switching to their PDA when equipping a new one
  • Fixed an issue where resupplying with the Teleporter PDA while carrying an unbuilt building would switch you to your Wrench (#1226)
  • The buffer between Über deny sounds can no longer potentially delay using ÜberCharge
  • Fixed an issue where Civilians could boost a cloaked enemy Spy that was disguised (#1208)
  • Chickens have been fed quality steroids and now lay eggs at the correct rate

Map Changes

  • Added vipr_drizzle_event
  • Added td_sunnyside_event
  • Added cp_manor_event
  • Updated td_sunnyside:
    • Replaced some rocks around point B with more farm-themed scenery
    • Fixed minor detailing errors

UI Changes

  • Updated the Loadout:
    • New layout and styling
    • Added list and grid display buttons for weapon selection
    • Added team-colored bucket icons
    • Updated team selection icons
    • Updated class icons
    • Loadout modifiers (like Medieval Mode or Randomizer) are now once again denoted
    • Can now be closed in-game by pressing the loadout key again (M by default)
    • Added option to change loadout orientation to horizontal in loadout.res (for custom HUDs)
  • Added the Quickswitch menu:
    • Fully revamped from Live TF2's
    • Added the ability to select class in addition to items
    • Hold Quickswitch key (default ALT) to open menu, select desired loadout; release to respawn (if new class was selected) and to change items (if in respawn room)
  • Updated the Class Selection menu:
    • Restored enhanced class tips
    • Tip board now displays the class' name
    • Tips can now be dynamically sized, can only take up a single line, or more than two
    • Tips can now be configured per-gamemode
      • Scout's 2nd tip will now display "Push payloads faster" in Payload maps instead of "Capture points faster"
      • Game checks for per-gamemode tip strings using the gametype name or map prefix
    • Fixed several issues where class animations would flicker for a brief period
    • Fixed an issue where highlighting a new class will keep the previous class' tips for an extra frame
    • Moved the ruler on the tip board model (Community contribution by dopadream)
  • Updated the mute menu
  • Added many new default crosshairs, across all weapons
    • New crosshairs are more varied and allow a better understanding of what weapon is held and how it functions
  • Crosshairs now properly scale with screen resolution
  • Added new SVG kill feed icons for Dominations and Revenges
  • Weapon selection HUD element will now show current weapons on spawn (as an option, defaulted to showing in Randomizer only)
  • Killing a player with a weapon that has no kill icon defined will now show the weapon's name next to the generic death icon
  • Humans and Bots are now counted separately on the scoreboard
  • Scoreboard next level display now reads the ConVar nextlevel_display to resolve issues in servers that rely on SourceMod map choosers; changing nextlevel will automatically update nextlevel_display
  • Observer crosshairs are no longer enabled by default
    • Can be controlled by cl_observercrosshair
  • Adjusted stalemate UI element being too far to the left
  • Respawn timers of over 99 seconds now display as "Respawning next round"
  • Drop shadows can now have customized color and offset (for custom HUDs)
  • Made the HUD notification panel support GRN and YLW teams, and fade out during an extra second of lifetime
  • Re-added VIP-specific (Mineside) CTF HUD changes
  • Fixed the is_vip condition not applying consistently for CTF HUD elements
    • It now applies whenever one or more flags with the "VIP" type are active
  • Fixed flag position indicators reappearing when carrying the flag in VIP mode (#1137)
  • Fixed the filter field in Options menu not accepting Unicode characters (#428)
  • Fixed the HUD's 3D player model reverting to the player's current team color while disguised (#307)
  • Fixed the Nail Gun using the wrong inventory pickup sound (#1171)
  • Fixed a crash caused by pinning a HUD element to itself; the game will now warn you in the console instead
  • Fixed instances where the Main Menu would sometimes not pick a video background (#1175)
  • Fixed many display issues with Team Fortress 2 fonts

Custom Weapons

  • Added crosshair key to visuals block in item definitions, allows weapons to use custom crosshairs
  • Added drop_bodygroup key to visuals block in item definitions, allows specifying which bodygroup should be set to 1 when dropped
    • Previously, weapons always had their bodygroup at index 1 set to 1 when dropped
  • Added optional precision key to attribute definitions, goes up to 4
    • Ex.: A precision of 1 will have a value of 66.6 show as 66.6% instead of rounding to 67%
  • Added mult_initial_afterburn_duration_mult attribute
  • Added mult_max_afterburn_duration_mult attribute
  • Added ignore_burn_immunity attribute
  • Items in wearable loadout slots can now be made base items
  • Fixed Engineer's helmet not being hideable by custom weapons in-game (#297)
  • Fixed an issue where item tint attributes wouldn't work with viewmodels when attach_to_hands is set to 2
  • Fixed mod_custom_falloff(_crit) attributes not working
  • Removed redundant mult_falloff_distance attribute

Scripting Changes

  • Added void CTFPlayer::GenerateAndWearItem( string strItemName ) script function (previously exposed in CTFBot)
    • It will now also translate item classnames for the player that will wear them
  • Added handle CTFPlayer::EquipWearable( string strModelName ) script function
  • Added void CTFPlayer::RemoveWearable( handle hWearable ) script function
  • Fixed void CBaseEntity::SetMaxHealth( int nHealth ) script function not working on TF players
  • Removed various client-side script functions that could modify entity properties or variables

Material Changes

  • Overhauled pickup03's skins
    • Added missing skins from Team Fortress 2 Classic (and a new gray skin)
    • Changed skin order to match Team Fortress 2 Classic (fixes miscolored trucks on Harbor and Sunnyside)
    • Fixed some mistakes on existing skin textures
  • Restored grain_elevator03's textures from Team Fortress 2 Classic
  • Adjusted $TreeSway of certain tree bark materials to wobble less (Community fix from lazi)
  • Updated various displacement materials' $SurfaceProp for consistency with others
  • Fixed an issue with the Shock Therapy's lightning where it wouldn't properly glow according to charge level
  • Fixed some Egyptian textures having corrupted mipmaps (#47)
  • Removed Frontline zoo sky textures

Model Changes

  • Fixed cp_degrootkeep's B flag model having inverted normals

Animation Changes

  • Fixed the R.P.G.'s third-person reload animations using stock rockets instead of its own (#523)

Sound Changes

  • Added class select theme for Arena
  • Added unique charged shot, distant shot and zoom in/out sounds for the Hunting Revolver
  • Added unique damage feedback sounds for armor
  • Added sounds for picking up and losing armor
  • Civilian now has unique lines for calling a Medic over while under half health
  • When using the "Help!" voice command while pushing the Payload, more appropriate voicelines will be used for most classes
  • "Lost point" responses now have a 25% chance to not play, per-player; 75% in Domination mode
  • Restored "last man standing" voicelines for Arena and Sudden Death (#1177)
  • Fixed Civilian VIP Race cap reset lines not playing
  • Fixed the Civilian being able to insult his own car (#1157)
  • Fixed an issue where Spy could speak lines about capturing or losing a control point that could reveal his true team (Community fix from robbilookatme)
  • Fixed an issue where disguising and undisguising would not play the disguising sound until you complete a disguise action
  • Spectating a player will now let you experience their combat text and hit/kill sounds
    • Controlled by tf2c_spectator_damagefeedback (defaults to 1)
  • Stickybomb Launcher's charge cue now plays for other players
  • Fixed menu soundscape #5 referencing incorrect metalscrape sounds
  • Fixed the Sniper Rifle full charge jingle playing when un-zooming
  • Fixed the Medi Gun playing it's full charge jingle multiple times on re-deploy
  • Fixed the Rejuvenator not playing the "Über Denied" cue (#1115)
  • Fixed flag explosion sounds not playing

Particle Changes

  • Re-added waterline explosion impact effects (#1164)
  • Fixed an issue where redeploying the Medi Gun with ÜberCharge ready wouldn't properly show its muzzle particle