A while back I did a video of how the Pyro's flamethrower worked, trying to debunk some other reports that you could get extra range out of it by aiming upwards, as if it were a firehose. Some other folks bravely took up the challenge of some contradictory data, and came to a startling conclusion: The Pyro's flamethrower sometimes shoots farther or shorter than normal! At last, scientific validation for every Pyro frustrated because an enemy ought to be in-range, or everybody else frustrated because they knew they weren't.
At some point I'll collect all the scripts and console commands from those old tests, but for now I just wanted to put out some information for anyone with more time on their hands to investigate the problem.
Possible functions to look for in code:
Some cvars, most of which are "locked" and you can only tweak with Sourcemod's sm_cvar command. Along with the descriptions, they help explain how the flamethrower projectiles are internally calculated.
Visualize the flamethrower damage.
- tf_flamethrower_velocity = 2300.0
Initial velocity of flame damage entities.
- tf_flamethrower_drag = 0.87
Air drag of flame damage entities.
- tf_flamethrower_float = 50.0
Upward float velocity of flame damage entities.
- tf_flamethrower_flametime = 0.5
Time to live of flame damage entities.
- tf_flamethrower_vecrand = 0.05
Random vector added to initial velocity of flame damage entities.
- tf_flamethrower_boxsize = 12.0
Size of flame damage entities.
- tf_flamethrower_maxdamagedist = 350.0
Maximum damage distance for flamethrower.
- tf_flamethrower_shortrangedamagemultiplier = 1.2
Damage multiplier for close-in flamethrower damage.
- tf_flamethrower_velocityfadestart = 0.3
Time at which attacker's velocity contribution starts to fade.
- tf_flamethrower_velocityfadeend = 0.5
Time at which attacker's velocity contribution finishes fading.
- tf_flamethrower_burst_zvelocity = 350
Extra upwards bounce when airblasting enemy players
- tf_flamethrower_burstammo = 25
How much ammo does the airblast uses per shot.
- tf_damageforcescale_self_pyro_rj = 10
I'm hopeful that some of these cvars will help pinpoint what's going wrong with the variable-distance shots. At least we know the "official" distance is 350 units, now.