There are quite a few bugs in Team Fortress 2. Don't you wish that Valve would take a quick break from adding new hats in order to make a "fix everything" update? ...Heh, yeah, that's pretty improbable. But let's say they did do that. How would it go? Get a little idea of how it'd be in a world without with much less bugs with TF2Fix!
TF2Fix fixes just about everything that can be fixed server-side in TF2; weapon logic, certain sounds, and unused/incorrect kill icons. (Also see here for client-side fixes!)
A sampling of some of the oldest and easiest fixes added to the plugin, better video coming Eventually™:
LIST OF FIXES
General Bugs
Fixed taunting players completing their taunts while dead (e.g. Bat taunt, Minigun taunt)
Fixed Mann vs. Machine Tanks continuing to play their bomb deploy sound after being destroyed
Fixed players being able to call for MEDIC! with the Equalizer/Escape Plan active as a class other than Soldier
Fixed hits on UberCharged players being labeled as Critical Hits
Fixed bots sometimes being able to move while taunting
Fixed players being able to spray their spraypaint image immediately after respawning
Fixed players being able to send metal craft notices to the server, to prevent "PLAYER has crafted: Scrap Metal" spam
Fixed the Halloween taunt override being applied (or not applied) to some weapons incorrectly (requires TF2Attributes)
Scout
Fixed the Flying Guillotine's bleed damage being able to critically hit
Fixed Soda Popper and Baby Face Blaster meters being interchangeable
Fixed the Scout's Home Run taunt kill not filling the Baby Face's Blaster's Boost meter
Fixed the Fan O'War's marked for death status not being removed by resupply lockers
Fixed Bonk! not being useable by taunting
Soldier
Fixed the Rage meter not being reset when switching banners
Fixed Soldiers who swapped away from the Cow Mangler while it was charging being slowed down
Fixed the Original's draw sound not playing to the client using it
Fixed the Beggar's Bazooka being able to be overloaded during Humiliation
Pyro
Fixed the Detonator sounding like the Flare Gun when firing crits
Fixed Pyros not being able to hear their Scorch Shot's firing sound while taunting
Fixed the Phlogistinator's Mmmph not being useable with less than 20 ammo
Demoman
Fixed Demomen using the Eyelander collecting the heads of Bazaar Bargain Snipers that they killed
Fixed the Eyelander's Heads meter showing an incorrect value above 127 heads
Heavy
Fixed Tomislav Heavies blowing their own cover ("I HAVE NEW WEAPON!")
Engineer
Fixed an exploit with the Gunslinger where the user could store combo-punches
Fixed being able to teleport to a sapped Teleporter Exit using the Eureka Effect
Fixed Engineers being stuck momentarily after high fiving
Fixed the Pomson 6000's projectiles having ridiculously large hitboxes
Fixed Engineers saying thanks when taking their own Teleporter
Fixed Teleporters' recharge times being reset when upgraded
Fixed an exploit where Engineers using the Eureka Effect could teleport faster than usual
Fixed the Pomson's projectiles passing through buildings and becoming invisible
Medic
Fixed Taunt: The Meet the Medic spawning doves in water, where they made loud sounds
Fixed an exploit where a Medic could keep the Quick-Fix Uber sound playing on a patient
Fixed a rounding error in the Vitasaw's Uber-maintaining
Sniper
Fixed the Bazaar Bargain's Heads meter not rising above 6
Fixed lit Huntsman arrows not being extinguished by water
Spy
Fixed Spies being able to pick up Intelligence while disguised using Your Eternal Reward
Fixed the Diamondback awarding guaranteed crits for backstabbing invulnerable players
Fixed backstabs not behaving properly on servers with tf_weapon_criticals set to 0
Fixed taunting Dead Ringer Spies not getting their cloak activated when hit
Fixed Spies not hearing the "resource drain" sound when being hit with the Pomson 6000 while cloaked
Fixed Dead Ringer status being unknown in thirdperson or with viewmodels disabled
Kill Icons
Fixed deflected Cow Mangler lasers not having a kill icon
Fixed some Huntsman kill icons not showing
Fixed the Boston Basher's and Three-Rune Blade's kill icons not showing for suicides
Fixed the Sydney Sleeper being able to score headshot kills while crit-boosted
Fixed the kill icon for a Wrangler-controlled Sentry's rocket being that of a level 3 Sentry
Fixed a missing kill icon for deflecting baseballs
Fixed a missing kill icon for deflecting cleavers
Fixed a missing kill icon for the Detonator when the user detonates a deflected flare on themselves
Disabled by default
Fixed an exploit where players could taunt on top of a Teleporter which was then destroyed, continuing their taunt while being able to move - possible crashes? probably not? maybe. someone please test (requires TF2Attributes)
Fixed the Bazaar Bargain falsely incrementing the Heads meter when tf_weapon_criticals is 0 - seems to be buggy
Fixed the Baby Face's Blaster Boost meter never reaching 100% - "Recharge" chime plays, which might be why Valve made it work that way.
Fixed Demomen being able to guarantee a melee crit at any range - It may or may not be a bug.
Fixed being able to move using self-damage right before a round starts - Probably intentional, but brought back as opt-in by request
Fixed the Demoman charge sound being clipped by the weapon crit sound" ~Valve; but now, actually fixed! - Sort of. Most of the time, the sound will be stopped, and a different charging sound will play.
Fixed Bonk! being unusable for half of a minute if the user failed to complete the drink animation (ledges, airblasted, etc.) - Very unstable fix; your mileage may vary
Want to enable some of these red opt-in fixes? See the INSTALLATION section.
DOCUMENTED CHANGES
(Fixed the fix not fixing)
Click to see ->
1.4.8 June 14, 2014
New fixes
Fixed being able to teleport to a sapped Teleporter Exit using the Eureka Effect (there's no way this is intentional...right?)
Fixed an exploit where players could taunt on top of a Teleporter which was then destroyed, continuing their taunt while being able to move (requires TF2Attributes, opt-in fix)
Fixed Engineers being stuck momentarily after high fiving
Fixed the Detonator sounding like the Flare Gun when firing crits
Fixed the Halloween taunt override being applied (or not applied) to some weapons incorrectly (requires TF2Attributes)
Fixed the Bazaar Bargain falsely incrementing the Heads meter when tf_weapon_criticals is 0 (opt-in fix)
tf2fix.cfg is no longer auto-generated, but will still be executed if present
The non-crit backstab fix's cvar is now tf_fix_spy_backstab_noncrit, and is a bitwise selection of parts of the stab to fix: animation (1), crit damage (2), and sound (4)
The "taunt sounds while dead" fix now only stops voice lines triggered within 5 seconds of death
Removed building health fix (fixed by Valve)
1.4.8_01 (not-so-hot-fix) Removed the item cooldown fix to prevent further Persian Persuader weird-auto-health-regen issues
1.4.7 May 4, 2014
New fixes
Fixed level 3 buildings usually having 217 health instead of 216 health
Fixed Bonk! not being useable by taunting
Added a warning for when tf2fix.cfg is out of date
Fixed the Flying Guillotine crit bleed fix outright disabling the entire stun-crit mechanic (oooops ;_;)
Fixed the Bazaar Bargain/Eyelander fake heads meter appearing while dead
1.4.6 March 1, 2014
New fixes
Fixed the Diamondback awarding guaranteed crits for backstabbing invulnerable players
Fixed a missing kill icon for the Detonator when the user detonates a deflected flare on themselves
Removed the Sydney Sleeper Uber fix (fixed by Valve )
1.4.5 January 19, 2014
New fixes
Fixed the Pomson 6000's projectiles having ridiculously large hitboxes (yes!!!)
Fixed the Flying Guillotine's bleed damage being able to critically hit
Fixed players being able to spray their spraypaint image immediately after respawning
Fixed Mann vs. Machine Tanks continuing to play their bomb deploy sound after being destroyed
Fixed the kill icon for a Wrangler-controlled Sentry's rocket being that of a level 3 Sentry
Fix tweaks / Feature additions
Added cvar tf_fix_killicon_logclassname (defaults to 0 for logging compatibility) - When set to 1, the plugin will also update the weapon_logclassname (<PLAYER> killed <PLAYER> with <weapon_logclassname>) of kill icons that it fixes, such as Cow Mangler deflections.
The Tomislav Announce fix now blocks (almost) all automatic Heavy responses while the weapon is in use
The (opt-in) Splendid Screen guaranteed-crit bug can apparently be triggered by any shield now, so its fix's cvar has been renamed to tf_fix_demoman_guaranteecrit. It has also been fixed to actually work. Usually.
Fix...fixes
Updated the Bazaar Bargain meter fix to show at >6 heads (was >7)
Fixed the (still opt-in) charge sound fix not stopping the sound if you hit something
Fixed the Scorch Shot taunt fix possibly canceling other plugins' CalcIsAttackCritical hooks and crashing servers with old SM 1.5 snapshots
Fixed the Gunslinger exploit fix not working for somepeoplesometimesmaybe?
Slightly optimized the hook for when certain plugin cvars are changed
Removed the Crossbow reload exploit fix (fixed a long time ago by Valve)
1.4.4 October 30, 2013
New fix: Fixed the Crusader's Crossbow instantly reloading upon weapon switch
The charge sound fix is back, but now opt-in. It now uses OnConditionAdded to detect when a player is charging, and the charge sound that it resumes is now a random one (66% chance that it won't be the correct one)
The Scout Bonk! "unuse" fix (tf_fix_scout_drink_unuse) is now an opt-in fix; set it to 1 to enable it, but be warned, it is known to be bugged. Test it out before leaving it enabled.
Updated the backstab animation fix for Scream Fortress 2013
Removed the Disciplinary Action exploit fix
1.4.4_01 (hotfix) Removed the Disciplinary Action fix's cvar
1.4.3 October 7, 2013
Added fixes
Fixed an exploit where you could interact with alive players with the Disciplinary Action while dead
Fixed an exploit where a Medic could keep the Quick-Fix Uber sound playing on a patient
Fixed a missing kill icon for deflecting baseballs
Fixed a missing kill icon for deflecting cleavers
OPT-IN FIX: Fixed the Splendid Screen allowing Demomen to get melee crits at any range -- must be enabled using tf_fix_demoman_splendidscreen 1. It may or may not be a bug, and the fix probably needs to be tested more.
OPT-IN FIX: Fixed being able to move using self-damage right before a round starts -- probably intentional, but brought back as opt-in by request
Dead Ringer indicator fix now also displays for players using cl_first_person_uses_world_model 1
Fixed Timer_LateRegen not making sure that the client was still in-game
Fixed SuicideIcon not changing the icon of deaths caused by the bottomless pit on Ghost Fort
1.4.1_01 June 20, 2013
Fixed the cooldown fix causing Persian Persuader-using Demomen to regenerate health rapidly
1.4.1 June 20, 2013
New fixes
Fixed the kill icon for suicides being the player's active weapon
Changed cvar names - edit cfg/sourcemod/tf2fix.cfg if needed
"tf_fix_medic_taunt_doves" is now "tf_fix_taunt_medic_doves"
"tf_fix_spy_taunt_feign" is now "tf_fix_taunt_spy_feign"
Fixed Spies using the Non-Stock Knife (item 194) getting a bad backstab animation on no-crit servers
Fixed Demoman charge sounds playing extra loud when crit boosted
Slightly increased SapperCrits fix performance
1.4 June 19, 2013
Plugin rewrite!
Several new fixes (and a few more if SDK Hooks is installed)
Most fixes completely rewritten
Other fixes (mostly ones that I now believe are intentional) removed
Removed Updater support (for now...maybe)
Undocumented changes: Added
1.3.1 November 11, 2012
New fixes:
Fixed an infinite powerup exploit in Mann vs Machine
Fixed Soda Popper and Baby Face Blaster meters being interchangeable
The Scrap Metal fix now disables event broadcasting instead of canceling the event
Fixed the Uber Kamikaze fix not completely using user IDs
Removed unfinished Red-Tape Recorder fix
1.3 October 2, 2012
New fixes:
Fixed an exploit where banner-using Soldiers could hold down the fire button to sustain their rage
Fixed Escape Plan-wielding Soldiers being healable by the Crusader's Crossbow
Fixed an exploit with the Manmelter where players could simultaneously attack and extinguish
Fixed Tomislav Heavies blowing their own cover (I HAVE NEW WEAPON!)
Fixed rage-on-hit not being awarded for Buff Banner, Concheror, and Phlogistinator when attacking Halloween bosses
Fixed Pyros not being able to hear their Scorch Shot's firing sound while taunting
Fixed non-Soldiers being able to call for MEDIC! with the Equalizer/Escape Plan active
Fixed players being able to send metal craft notices to the server, to prevent 'PLAYER has crafted: Scrap Metal' spam
Fixed Heavies not being healed after eating the Sandvich then switching weapons (with tf_allow_taunt_switch enabled)
Fixed Taunt: The Meet the Medic spawning doves in water
Fixed Heavies being able to jump and punch while stunned
Fixed Horsemann/MONOCULUS! sounds being cut off by voices
Added Updater support
Added version cvar
The Chargin' Targe sound fix now checks for the "Crit Candy" condition as well (what VSH/FF2 uses)
Fixed error on line 793 that Helvetica pointed out
Fixed Phlogistinator Mmmph and Frontier Justice Revenge Crits being maintained over rounds
Fixed the Widowmaker awarding metal for hitting Horsemann/Monoculus with a sentry
Looks like Valve fixed the glitch with bot taunts, fix was buggy anyway, removed.
A better way to block bot movement during taunts was added, but commented out. Let me know if this glitch is still happening.
Removed the Pomson-drains-60%-cloak fix, which Valve ninja-patched by nerfing the Pomson
Gamedata no longer required, feel free to delete it
1.2.4 June 11, 2012
New fixes:
Fixed an exploit where Medics could fire Crusader's Crossbow bolts at teammates and swap teams
Fixed Soldiers who swapped away from the Cow Mangler while it was charging being slowed down
Fixed Jarate and Mad Milk sometimes having critical glows
Fixed Heavies buffed by the Dalokohs Bar not being able to be healed up to 350 HP by Dispensers or the Quick-Fix
The Kunai fix now only applies itself on resupply instead of all the time
Healing caused by the "on-hit effects trigger on bosses" fix now displays in the HUD just like a hit on a player, and should no longer be buggy and remove overheal that the player already had
The Arena Regen fix now doesn't do anything if Boss Battles, Freak Fortress 2, VS Saxton Hale Mode, or PropHunt are active. It's also enabled by default again.
Due to complaints and buggyness, the Fan O'War's marked for death status is now removed by resupply lockers instead of maintained by the Eureka Effect
Fixed Horsemann kills causing errors
Fixed the Frontier Justice's revenge crits not being reset upon death (TF2Fix glitch, my bad)
Fixed the Ubered Equalizer taunt fix causing double deaths
Undocumented changes: Ninja code cleanup
1.2.3 June 4, 2012
The non-crit backstab fix now plays the backstab animation in client view
FlaminSarge's viewmodels-off Dead Ringer indicator now also shows up when a client has tf_medieval_thirdperson enabled
Added support for Team Fortress 2 Beta (well, it won't block it anymore anyways)
Reworked Dead Ringer indictator fix to also work for clients using tf_medieval_thirdperson
Removed FCVAR_NOTIFY flag from cvars
1.2.2 May 12, 2012
New fixes:
Fixed an exploit where a Soldier could switch banners and keep his rage
Fixed the Spy-cicle sometimes not being available upon respawning
Fixed lit Huntsman arrows not being extinguished by water
Fixed Soldiers being able to avoid Kamikaze's damage by getting a Medic to UberCharge them (on servers with tf_allow_taunt_switch 1 or 2)
Fixed crit sound playing and notification appearing when attacking UberCharged players
Fixed Eureka Effect Engineers losing the marked for death effect upon teleporting
The bot taunt fix now forces bots to stand still when hit by the Holiday Punch
Fixed server console error when someone had an Overdose, but no Medigun
Fixed Spies who activated the Dead Ringer's taunt-cloak fix not getting the 90% damage reduction they needed
The Arena Regen fix is now disabled by default (when loading TF2Fix for the first time)
Removed the Sharpened Volcano Fragment fix
Removed Herobrine
1.2.1 April 25, 2012
New fixes
Fixed Dead Ringer Spies with viewmodels disabled not knowing if their Dead Ringer is out (by FlaminSarge)
Fixed Engineers with the Eureka Effect and Frontier Justice losing their revenge crits upon teleporting back to spawn
Fixed Phlogistinator Pyros having their Mmmph meters reset when touching a resupply locker
Fixed Eyelander Demomen with 128 to 255 heads not seeing their correct amount of heads (I know, I know...but think of the 24/7 2fort servers)
More optimization (by FlaiminSarge)
Fixed the Demoman charge fix playing extra-super loud if the Demoman had a critboost
Fixed a Sharpened Volcano Fragment Pyro's Shotgun igniting enemies
1.2 April 23, 2012
New fixes
Fixed the Sharpened Volcano Fragment not igniting
Fixed bots moving while taunting when forced to taunt (disable this if playing VSH/FF2 with bots)
Fixed Engineers saying thanks when taking their own Teleporter
Fixed the Original's draw sound not playing to the client using it
Randomizer/Give Weapon support: most weapon-specific fixes now work on any class
The 1.1.2 Arena moving fix now reads from tf_arena_preround_time to determine when to let players move again
Fixed the 1.1.2 fixes not being disabled if sm_tf2fix_enabled was set to 0
The dead-taunts fix is now more specific in the sounds it blocks, should no longer conflict with admins using sm_play or other plugins
More optimization for the 0.15 second timer
Undocumented changes: The Shotgun now ignites enemies if using the Sharpened Volcano Fragment
1.1.2 April 12, 2012
New fixes
Fixed players being able to move in Arena Mode Setup
Fixed players not getting their loadouts regenerated when an Arena Mode round starts
Really fixed the Quick-Fix's fix
Undocumented changes: Added Herobrine
1.1.1 April 11, 2012
The Quick-Fix-fix no longer allows Medics to move faster during Setup time in Arena Mode.
Undocumented changes: Yes, it still does.
1.1 April 8, 2012
New fixes
Fixed on hit attributes not applying to boss characters (HHH/MONOCULUS!)
Fixed critical hit sounds not playing when attacking boss characters with crits
Other stuff:
Fixed the response fixes playing a different random sound for every client that heard the sound
Spy Intelligence exploit fix improved, FlaminSarge pointed out the existence of m_hItem
Fixed error on line 520
Removed Manmelter icon fix, it was fixed in base TF2
Undocumented changes: Did not document any undocumented changes
1.0.1 March 19, 2012
Little bit o' optimization
Millisecond (or whatever) timer now runs every 0.15 seconds instead of 0.1
Spies are no longer affected by the Kunai exploit fix if their max HP is over 200 (and it never is in a real game, unless TF2Items is used)
Undocumented changes: Didn't not fix anything
THANKS (AND HAVE FUN) TO
FlaminSarge for a few fixes (most notably the Gunslinger exploit fix), early optimization of the plugin, stuff, and things
Veccy and 1101 0100 on SPUF for this list, placing many many bugs from the whole game into one single list for easy access
Everyone posting bugs/fix-bugs/feedback in this thread
Valve for their broken, FUBAR, unbalanced hat-war simulator; I wouldn't have made this plugin if I didn't like it so much
INSTALLATION
Download tf2fix.smx (don'tclick Get Plugin) and install it into tf/addons/sourcemod/plugins/.
Confusing yet? Just download tf2fix.smx; the plugin won't compile on the forum due to TF2Attributes. Sorry for any confusion caused.
If your server's running, either type sm plugins load tf2fix into the server's console/rcon, or change maps.
(Optional) If you don't like some of the above fixes (or do want the ones in red, which are disabled by default) load up the plugin, edit tf/cfg/sourcemod/tf2fix.cfg to your liking, and then exec sourcemod/tf2fix.cfg through server console.
Last edited by MasterOfTheXP; 08-01-2014 at 13:12.
Reason: Reorganized the list a bit. Removed Exploits section, and bolded rather important fixes instead.
Just looked at the code for a sec after a person I was talking to mentioned its timers...
There's a serious need for optimization in the millisecond timer (which is actually every tenth second, not millisecond). I see repeated calls to TF2_GetPlayerClass(z) and GetEntPropEnt(z, Prop_Send, "m_hActiveWeapon"). These really should be called once and have their values stored in a variable.
For that matter, TF2_GetPlayerClass returns an enum value, so it can be used in a switch statement.
__________________
Not currently working on SourceMod plugin development.
Just looked at the code for a sec after a person I was talking to mentioned its timers...
There's a serious need for optimization in the millisecond timer (which is actually every tenth second, not millisecond). I see repeated calls to TF2_GetPlayerClass(z) and GetEntPropEnt(z, Prop_Send, "m_hActiveWeapon"). These really should be called once and have their values stored in a variable.
For that matter, TF2_GetPlayerClass returns an enum value, so it can be used in a switch statement.
I didn't think that repeatedly calling those was so bad, but I guess I can change 'em. The timer's called "millisecond" because I've never seen the terms "centisecond" or "decisecond" used anywhere.