Quick answer: Godot 4 RigidBody2D vibrating after its collision shape is resized at runtime? Physics server treats the resize as a teleport - call_deferred the resize.

Item pickup grows the player's hitbox; player vibrates against the floor for half a second.

Defer the shape change

shape.call_deferred("set_radius", new_radius)

Applied between physics ticks. Solver sees a clean step.

Or use multiple sub-shapes

Pre-create shapes; toggle which is active. Avoids resize entirely.

Snap position post-resize

If vibration persists, snap the body to a safe position after the shape change. Cleanup pass.

“Physics shape mutation mid-step is unsafe. Deferral makes it safe.”

If you grow/shrink hitboxes at runtime, the deferral pattern is non-optional. Document; reuse.

Related reading