xyz this did not work. so i went and added a static body with multiple collsionshape3Ds and used the get_collider_shape() on it. then i used the instance_from_id() method to get the object. it crashed. so i go to the staticbody and add a script to get all the children id using get_instance_id() and print them. it gave me a completely different ids from ray.get_collider_shape() .
To put it simply, the Shape id and the CollisionShape3D instance id are NOT the same. so now i need to find a way to get the collisionshape3d id.
i tried to get the collisionshape's shape id with the following code on my static body.

and the result is even wierder.

for the 4 collisionshape3ds under the staticbody, i got different ids for the node itself, the shape of that node, and the ray.get_collider_shape() . (the 0 to 3 below the text was from the raycast which seems to be in order of the editor hierarchy )
so, my question is, how do i even use the ray.get_collider_shape()? the id it gives seems completely worthless and there is no function to use this id to get the CollisionShape3D owner of that shape.
thanks again for replying.