Detecting CharacterBody3D collision in a child node

Godot Version

4.2.2

Question

Hey, Godot newbie here,

I moved the CollisionShape3D to a separate node, under a CharacterBody3D (CharacterBody3D > Node3D > CollisionShape3D instead of CharacterBody3D > CollisionShape3D), but then the collision is not recognized by the body node and the character falls through the floor. Is there any workaround for this or is my whole approach straight up wrong?

obraz

Previously I was using two separate collision shapes and just switched them, but I’m not a fan of this solution.

My goal is to have the bottom end of the collision shape at the origin point of the Node3D, so I could easily scale the collision down to this point (I’m making a smaller collision shape for crouching).

obraz

The reason your character is falling through is because Player no longer has a directly descended collision shape.

You can’t have a collision shape on a Node3D. It might work to make your CollisionShape node (the parent of standingshape in your screenshot) a CharacterBody.