Yeah its all coded now as projectile and overrided the alt-fire. This original code was a freaking pile of poo. I've got it mostly working except for one thing, when the beam first spawns it points the wrong way, then it corrects itself. looking like it points to world origin.So if you want an 'instant fire' weapon to spawn projectiles instead, you could override Fire to call SpawnProjectile. If you want a projectile weapon to do instant fire/hit scan, you can override Fire to call TraceFire.
Spawn(BeamEffectClass, Self); which I then changed to
Spawn(BeamEffectClass, Self,,WeaponFireLocation, WeaponFireRotation or CurrentAim);
Even when WFR or CurrentAim aren't null it still does it (I think it uses those by default). In fact Spawn seems to ignore those, as I've tried rot(0,16384,0) or such to try it.. and does the same thing.
I'll look at the TraceFire which I think it uses later as it corrects, its just right at the start of firing.