ok that works
intersect ray seems to have been changed also,
too many arguments for "intersect_ray()" call expected at most 1 but received 4
func firebullet():
var screen_pos = reticle.get_global_transform_with_canvas().origin
var camera = self
var from = camera.project_ray_origin(screen_pos)
var to = from + camera.project_ray_normal(screen_pos) * ray_length
var space_state = get_world_3d().get_direct_space_state()
#too many arguments for "intersect_ray()" call expected at most 1 but received 4
var result = space_state.intersect_ray(from, to,[self], pow(2, 1))
if result:
var collider = result.collider
var n = result.normal
var p = result.position