Pitch positive looks down, yaw turns counter-clockwise from +X, roll spins around the view direction.
Fields are 32-bit floats; assigning a non-number or NaN throws.
Overview
Common
from, set, add, lerp, normalize…Wrapping
normalize, clamp.Direction
forward, right, up, fovTo, toQuaternion.Common
Every argument takes anyAngleLike, not just a QAngle.
Only
set() and normalize() change the value. Nothing changes its arguments.
clamp() changes the value too. equals compares raw components without wrapping, so normalize both sides first.
lerp
170 → -170 passes through 180, not 0. t isn’t clamped and the result isn’t wrapped.
Wrapping
normalize
[-180, 180]. normalize() changes the angle, normalized() returns a copy.
clamp
[-89, 89], yaw wrapped into [-180, 180], roll 0. clamp() changes the angle, clamped() returns a copy.
Direction
forward
forward() is where the crosshair points.
fovTo
0–180 degrees. This is the aimbot “FOV” to a target.