Earlier, I had an idea that could end lead shotting. It started when I was going to type so I used a bind to make a 'fake' decoy of me while I was typing. A player locked on to it but the rocket went to my real location.
Then I had an idea; why not make it that a weapon can recognize when it's aimed and fired at an enemy, same way the crosshairs do, instead of using ProcessTraceHit().
So I was thinking that when Fire() was called, it would find the player it's aiming at and make them TakeDamage(). Except it would be client sided. This would effectively stop lead shotting.
I'm not completely sure if this is even possible, and it would mean making a new weapon superclass so it would take time too.
Just an idea, but hopefully a possibility. Unfortunately, I've not a clue how to even start, so maybe it could be made into a project or something?