Quick answer: Godot 4 RigidBody3D disabled during physics step leaving orphan contacts? Disable doesn't clear contacts; subsequent queries return stale - call clear_contacts.

Disable enemy mid-frame; subsequent contact_count returns 1 (the orphan).

Clear contacts

body.clear_contacts()

Explicit cleanup. Subsequent queries clean.

Or defer the disable

call_deferred('set_collision_layer', 0). Clean step transition.

Audit physics state mutations

Each runtime physics mutation has a cleanup story.

“Physics state has memory. Disable doesn't clear automatically.”

If you disable bodies at runtime, the contact cleanup is the safe pattern. Document.

Related reading