Drawing beams in SWEP:DrawHUD() causes weird problems.

Ok, so I tried to make a laser gun. Simple as that. I didn’t want to have to make an entire new entity for the laser, so I decided to simply draw the laser beam in the SWEP’s client using DrawHUD. I set the start of the beam at the tip of my view model and the end of the beam at the HitPos of an eye trace. However, I ended up with the beam getting drawn way up in the sky, and I later learned that this was because it interpreted the positions as being relative to the far clipping plane of my view cam instead of the world. Why. Do I have to use a different SWEP-based render hook? because there aren’t that many, and DrawHUD is really the only good one. Should I just go and make an entire entity for my laser beam? Please help. Thanks.

Don’t make an entity. Use an effect. The combine sniper that someone made (credit goes to them) has a laser and it is just an effect. Try that.

DrawHUD is for drawing HUD elements. Never use it for anything else.
You can use ViewModelDrawn to draw things over the view model and DrawWorldModel to render world model related things, however the best solution here would definitely be a scripted effect.