As of now i came up with an temp-workaround after looking through some community questions.

I found this and build upon it: https://godotengine.org/qa/68649/how-to-make-the-sway-effect-on-weapons-of-fps-3d-games

```
var mouse_moved = false
var max_rotation = 25
var interpolation_time = 4
var interpolation_vector_default : Vector2 = Vector2(0, 0)
var last_mouse_move_relative : Vector2
var interpolate_torwards_vector : Vector2
var current_interpolating_vector : Vector2
func _input(event):
if event is InputEventMouseMotion:
mouse_moved = true
last_mouse_move_relative = Vector2(clamp(event.relative.y, -max_rotation, max_rotation),
clamp(event.relative.x, -max_rotation, max_rotation)) * -1
func _process(delta):
if mouse_moved:
mouse_moved = false
interpolate_torwards_vector = last_mouse_move_relative
else:
interpolate_torwards_vector = interpolation_vector_default
current_interpolating_vector = current_interpolating_vector.linear_interpolate(interpolate_torwards_vector,
interpolation_time * delta)
rotation_degrees.x = current_interpolating_vector.x
rotation_degrees.y = current_interpolating_vector.y
```

Everytime the mouse moved ill keep that in mind and change the vector to which i should interpolate. If on the the next frame the mouse is still moving, keep on interpolating torwads the current mouse vector otherwise return to the default vector (0, 0).

It sure can get jittery if the **interpolation_time is higher than 0.02 without multiplying it with delta**. If there is other ways to prevent it, great!

Edit: Fix for jittery by "*delta" in _process