Posted this some days ago.
Not sure what exactly you are trying to achieve but I think it could help:
func lerp_angle(from, to, weight):
return from + short_angle_dist(from, to) * weight
func short_angle_dist(from, to):
var max_angle = PI * 2
var difference = fmod(to - from, max_angle)
return fmod(2 * difference, max_angle) - difference
Usage in your case, probably:
tilt = lerp_angle(tilt, tilt + tilt_lr * ROLL_SPEED, 1)
# or directly
tilt += short_angle_distance(tilt, tilt + tilt_lr * ROLL_SPEED)