void GetSpread(unsigned int seed, int future, float *inangles, float *velocity, float *outangles) { float forward[3],right[3],up[3],vecDir[3]; float view[3],dest[3],spread[2]; float tmp,yaw,pitch; gEngfuncs.pfnAngleVectors(inangles, forward, right, up); GetSpreadXY(seed, future, velocity, spread); vecDir[0] = forward[0] + spread[0] * right[0] + spread[1] * up[0]; view[0] = 8192 * vecDir[0]; vecDir[1] = forward[1] + spread[0] * right[1] + spread[1] * up[1]; view[1] = 8192 * vecDir[1]; vecDir[2] = forward[2] + spread[0] * right[2] + spread[1] * up[2]; view[2] = 8192 * vecDir[2]; if (view[1]==0 && view[0]==0) { yaw = 0; if (view[2]>0)pitch = 90; else pitch = 270; } else { yaw = (atan2(view[1],view[0])*57.29578049); if (yaw<0)yaw += 360; tmp = sqrt (view[0]*view[0]+view[1]*view[1]); pitch = (atan2(view[2],tmp)*57.29578049); } dest[0] = pitch; dest[1] = yaw; dest[2] = 0; dest[0] *= -1; outangles[0] = inangles[0] - dest[0]; outangles[1] = inangles[1] - dest[1]; outangles[2] = 0; } use this in recoil.cpp instead of adding a VectorAngle's code like u showed me. MEXXX said if u use this code instead it will increase ur acuracy so use this if you want ;x