Quick answer: Godot 4 setting RigidBody3D.mass at runtime; physics still uses previous mass for one tick? Mass change deferred - call_deferred or change before adding to scene.
Spawn a heavy crate; set mass = 100; first physics tick treats it as the default 1.0.
Set before add_child
crate.mass = 100
parent.add_child(crate)Mass set before physics registers; first tick uses 100.
Or use call_deferred
Defers to end-of-frame; next physics tick reads new mass.
Audit spawn order
Property assignment after add_child = mid-frame state. Standardize order.
“Physics state init happens at child-add. Properties set after may lag.”
If physics behavior is wrong on first tick, the spawn order is the suspect.