It's all the Godot default. I have a StaticBody2D which follows mouse position in the process method. Connecting a PinJoint2D (with softness enabled) to a RigidBody2D, The RigidBody2D has Area2D with custom gravity as child-node.