Quick answer: Godot 4 RigidBody3D mass set via export integer property losing precision in physics calculations? Integer mass is fine; float math integrates - cast at config boundary.

Mass = 1000 (integer); physics calculations show effective mass of 999.997 after a few seconds.

Cast explicitly

Use float mass in the body; integer config converts at load. No drift.

Or accept the drift

0.003 over a few seconds is below player perception. Don't fix what users don't see.

Profile physics integration

Per-tick state visible in profiler. Drift surfaces; magnitude assessed.

“Integer to float boundaries introduce rounding. Tolerable usually; accumulating sometimes.”

If your physics shows accumulating drift, the type boundary is suspect. Audit; cast at design boundaries.

Related reading