Right now, the characterbody is just pushed away like it's weightless. How do I fix this?

RigidBody2D config:

As you can see, the characterbody is sent into the floor when a rigidbody falls on top. If the rigidbody comes from below, the characterbody is sent flying.

Please let me know how to proceed here.

hmm I only used 3d counterpart of characterbody, but I would recommend using jolt, which is more reliable and predictable compare to godot homebrew physics engine.

edit:my bad, it seems jolt only supports 3d physics.

For your problem its probably the triggering function is not handled properly on both colliders.

    MagickPanda I tried adding colliding functions using body_entered(). It's working somewhat, but still very weird and jittery. I'll look into any compatible 2d physics engines though, thank you.

      kushw3 Try changing the fps of physics process in project settings, increasing fps will make collision more precise , at the cost of some cpu time.