I Found the solution here.
I was trying to check for potential overlap between collision shapes by casting an intersect_ray()
to ensure that if I spawn collision shapes at that location, there would be no other collision shape overlapping it.
Unexpectedly though, collisions wouldn't be reported unless the start of the raycast was outside the collision shape. Using intersect_point()
gives me the functionality I was looking for.