Skip to content

[TF2] Fix Incomplete Reversion of the Righteous Bison & Pomson 6000 - #2039

Open
antielectronbomb wants to merge 7 commits into
ValveSoftware:masterfrom
antielectronbomb:BisonPomsonRevert
Open

[TF2] Fix Incomplete Reversion of the Righteous Bison & Pomson 6000#2039
antielectronbomb wants to merge 7 commits into
ValveSoftware:masterfrom
antielectronbomb:BisonPomsonRevert

Conversation

@antielectronbomb

@antielectronbomb antielectronbomb commented Aug 29, 2026

Copy link
Copy Markdown

Summary:

Fully reverts the Righteous Bison (and also the Pomson 6000 due to shared code) to its previous iteration before July 7, 2016. The current iteration of the Bison was actually an incomplete reversion from its Jungle Inferno blog post. The reversion does not fully revert code - rather this pull request reverts the behavior of their previous iterations as much as possible using the modern post-Jungle Inferno codebase.

Description:

After the Meet your Match Update back in July 7, 2016, the Righteous Bison (and by extension the Pomson 6000) were changed in the following patch notes:

Righteous Bison:

July 7, 2016 Patch #1 (Meet Your Match Update)

Fixed a bug causing players to be hit by the same projectile multiple times, causing the damage dealt to vary wildly.
Per-shot damage has been increased to compensate, resulting in slightly more damage on average:
    Point-blank deals 54 damage (previously 20-80).
    Maximum range deals 24 damage (previously 14-26).
Slowed projectile by 30%
Projectile damage reduced by 25% for each enemy penetrated.
Updated projectile impact sound.

Pomson 6000:

July 7, 2016 Patch #1 (Meet Your Match Update)

Fixed an exploit with shooting through your own buildings.
Changed attributes:
    Increased close-range damage to 72 (from 62).
    Reduced long-range damage to 32 (from 42).
    Updated projectile impact sounds.
    [Undocumented] Added projectile impact particle.

These changes also modified the projectile hitboxes of the Righteous Bison and the Pomson 6000 into a very small 2x2x2 HU cube.

When the Jungle Inferno update came out, the patch notes stated that the Righteous Bison was reverted to its previous design:

October 20, 2017 Patch #1 (Jungle Inferno Update)

This weapon has been reverted to its previous design.
Changed attributes:
    Deals 20 damage per tick.
    Projectiles are no longer limited on the number of times they can hit the same target.
    Projectile velocity increased to 1200.

However, various players in the TF2 community (video link) have noticed that the Righteous Bison has not been fully reverted despite the patch notes.

The issue:

Players have noticed that the current iteration of the Righteous Bison does not deal its old damage behavior despite Valve claiming that the Bison's stats were reverted to before the Meet your Match update.

This was caused by the Righteous Bison's and the Pomson 6000's hitboxes not being the correct reverted size. Currently, the projectile hitbox size of both energy weapons is a 2x2x2 HU cube. The old hitbox size was a 48x48x48 HU cube.

For the Bison, since the actual hitbox size is small, this means that there is less contact time for the projectile to deal its multi-hit mechanic such that it only hits an enemy up to 3 times. Before the Meet your Match update, the Bison was able to hit an enemy up to 5 times because its projectile hitbox was a bigger 48x48x48 HU cube (about as big as a Dispenser).

Because of the hitbox size reduction, this made both the Bison and Pomson weapons to be extremely difficult to consistently hit shots with, let alone damage enemies.

As for why the hitbox size was not fully reverted, my educated guess would be that before the Jungle Inferno update, the projectiles of the Righteous Bison and the Pomson 6000 were considered as flame particles (which could be seen by toggling tf_debug_flamethrower in pre-Jungle Inferno builds). The size of flame particles would range from 24 to 48 HU cubes. After the Jungle Inferno update, the code for the Flamethrower and the Flames were reworked. Since the Flamethrower code was reworked after Jungle Inferno, reverting the hitboxes of both the Bison and the Pomson were overlooked.

Changes

This pull request reverts aspects of both the Righteous Bison and the Pomson 6000 back to before July 7, 2016 (Meet your Match):

  • Increase the projectile size of both weapons back from 2x2x2 HU to 48x48x48 HU.
    • Both weapons get the same projectile size since they share the same code.
    • A bigger projectile hitbox allows the Bison to deal up to 5 times to the same enemy again (from up to 3 times).
  • Revert the damage type from bullet damage (DMG_BULLET) back to sonic damage with knockback (DMG_SONIC).
    • Both weapons used to ignore Vaccinator resistances, which made them viable to use back then.
  • Restore the ability to light up the arrows of friendly Snipers using the Huntsman/Fortified Compound.
    • Both weapons used to use a flame particle for their projectiles, which caused both weapons to light up friendly Huntsman Sniper arrows. This restores that ability without actually turning the projectiles into a flame particle.
  • Restores the old damage fall-off and ramp-up mechanics of the Righteous Bison and the Pomson 6000.
    • Both weapons used to deal their respective base damage at point blank to around 256 HU. The damage of both weapons would then falloff to 70% of base damage.
    • Minimum damage would happen at around 400 HU.
    • Can be toggled via the cvar tf_energy_ring_old_damage_mechanics (Globally use the old Pomson/Bison damage ramp-up and falloff mechanics.)
    • Also adds a development cvar, tf_energy_ring_old_damage_maxdamagedist (default value: 350.0), which is a mirror of the old flamethrower cvar: tf_flamethrower_maxdamagedist. This value is used for calculating the old damage ramp-up mechanics. The old calculation before Meet your Match was based on the old Flamethrower damage ramp-up/fall-off calculation.

Video demonstration

Full YouTube video demonstration coming soon

Hitboxes:

Righteous Bison:

Hitbox-Bison-Reverted.mp4

Pomson 6000:

Hitbox-Pomson-Reverted.mp4
Hitbox02-Pomson-Reverted.mp4

Lighting up Huntsman arrows

Righteous Bison:

Arrow-Bison-Reverted.mp4

Pomson 6000:

Arrow-Pomson-Reverted.mp4

Sonic damage type with knockback

Righteous Bison:

DMG_SONIC-Bison-Reverted.mp4

Pomson 6000:

DMG_SONIC-Pomson-Reverted.mp4

Addendum

As for how I came up with the 48x48x48 HU hitbox size, tf_flamethrower_boxsize has a max value of 24 in the pre-MyM version of TF2. Multiply 24 by 2 and you get 48 HU.

Archived video link of the pre-Meet your Match Righteous Bison

This revert was inspired by how the SourceMod Weapon Reverts Extended server-side plugin reverts the Righteous Bison and the Pomson 6000.

…our Match Update

Reverts the following:
- Hitboxes
	- Old pomson/bison projectile hitbox was a cube that was about 48 HU on all sides and only around its center would it collide with world
- Ignites friendly Huntsman arrows
	- Old Bison and Pomson used to ignite friendly Huntsman arrows, but did not get assists from them.
- DMG_SONIC damage type. Both Pomson/Bison used to deal this damage type (which ignored Vaccinator resistances) and used to knockback players.
@antielectronbomb
antielectronbomb marked this pull request as ready for review August 29, 2026 17:21
@antielectronbomb antielectronbomb changed the title [TF2] Fully Revert Righteous Bison & Pomson 6000 Hitboxes to Pre-Meet your Match [TF2] Fully Revert Righteous Bison & Pomson 6000 Hitboxes to Before Meet your Match Aug 29, 2026
@Pygargue00fr

Copy link
Copy Markdown

This will make the playerbase SO MUCH HAPPY if this gets in! This has been requested for YEARS!

And it would give us potential Vaccinator counters, which the game doesn't currently really have right now. It would be good because this is the one weapon everyone complains about yet uses anyways.

@num-get

num-get commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

If you want full reversion, you should allow pomson 6000 to penetrate teammates again. It was originally removed to fix a bug with invisible projectile particle, but the current projectile code shouldn't cause that bug anymore.
Also remove the DMG_USEDISTANCEMOD and DMG_NOCLOSEDISTANCEMOD flags and replace them with bison's/pomson's formerly unique projectile lifetime based damage falloff mechanic.

Comment thread src/game/shared/tf/tf_projectile_energy_ring.cpp Outdated
Co-authored-by: Hunter Kvalevog <hunter@kvog.sh>
@KimmyTF2

Copy link
Copy Markdown
Contributor

This will make the playerbase SO MUCH HAPPY if this gets in! This has been requested for YEARS!

And it would give us potential Vaccinator counters, which the game doesn't currently really have right now. It would be good because this is the one weapon everyone complains about yet uses anyways.

If a weapon poses such a significant issue that players are compelled to use certain weapons to counter it, that indicates a more fundamental problem with the Vaccinator.
However, even though the Bison and Pomson were never good in the first place and will remain that way even with these changes, many people would be happy with a full revert.

@JoriKos

JoriKos commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

And it would give us potential Vaccinator counters, which the game doesn't currently really have right now.

Unless you get a random crit, the Bison or Pomson is just going to be outhealed and you'll die before being able to kill either the Medic or the patient.

If you want full reversion, you should allow pomson 6000 to penetrate teammates again.

This was never an intentional change as far as I can tell, unless you mean penetrating them at long range. Though allowing it to penetrate teammates again would be a legitimate balance change rather than an issue with the code not being fully reverted.

Damage values were determined empirically using an old build of TF2
@antielectronbomb

Copy link
Copy Markdown
Author

I have also added the old damage fall-off and rampup mechanics for both the Bison and the Pomson.
Back then before Meet your Match, the weapons would deal their flat base damage (20 for the Bison, 60 for the Pomson).

Using the Pomson 6000 as an example, from point-blank range to 256 HU the Pomson would deal 60 damage regardless. After 256 HU, the damage would ramp-down to around 42 damage at around 400 HU. Beyond 400 HU, the damage would be 42. This was determined empirically using an old build of TF2. The Righteous Bison also acts in the same way.

Because both weapons now use their old damage mechanics, I have decided to add a cvar called tf_energy_ring_old_damage_mechanics, which is set to 1 by default. When the cvar is toggled on, it makes the weapons use their old damage mechanics. I am not sure if this cvar should be locked behind sv_cheats 1 - for the meantime it is locked behind sv_cheats 1.

Comment thread src/game/shared/tf/tf_projectile_energy_ring.cpp Outdated
@ardickasaretas-boop

This comment was marked as off-topic.

@num-get

num-get commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

#2039 (comment)

Pre-MYM Bison projectile calculates the damage falloff based on the distance between projectile origin and its end position, rather than the distance between the target and the attacker when the projectile hits. You can consult the old distance formula from the currently unused flamethrower code.

m_vecInitialPos = GetAbsOrigin();

float flDistance = GetAbsOrigin().DistTo( m_vecInitialPos );
float flDamage = m_flDmgAmount * RemapValClamped( flDistance, tf_flamethrower_maxdamagedist.GetFloat()/2, tf_flamethrower_maxdamagedist.GetFloat(), 1.0f, 0.70f );

…damage_maxdamagedist dev cvar, fix vec3_origin errors
@antielectronbomb antielectronbomb changed the title [TF2] Fully Revert Righteous Bison & Pomson 6000 Hitboxes to Before Meet your Match [TF2] Fix Incomplete Reversion of the Righteous Bison & Pomson 6000 Aug 31, 2026
@antielectronbomb

Copy link
Copy Markdown
Author

#2039 (comment)

Pre-MYM Bison projectile calculates the damage falloff based on the distance between projectile origin and its end position, rather than the distance between the target and the attacker when the projectile hits. You can consult the old distance formula from the currently unused flamethrower code.

Suggestion implemented. Although the only difference is that full damage ramp-up starts at around 223 HU instead (175 distance + 48 projectile cube).

I have also added a development cvar called tf_energy_ring_old_damage_maxdamagedist, with a default value of 350.0. This is basically a mirror of tf_flamethrower_maxdamagedist but for the energy weapons.

@mountainflaw

Copy link
Copy Markdown

LET'S GOOOOOOOOOOO

@Chickenman456

Copy link
Copy Markdown

On my knees begging for this to be merged

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants