#123558·godot

physics/3d/solver is missing default_constraint_bias (present in physics/2d/solver)

Author: CozREVCreated Sep 16, 2026Updated Sep 17, 2026
Labelstopic:physicsneeds testingtopic:3d

Tested versions

Reproduced in v4.8.dev5 (custom build from master, commit 1c8cc9e7).

System information

Godot v4.8.dev (dfa06cafb) - Windows - Multi-window, 2 monitors (, ) - OpenGL 3 (Compatibility) - AMD Radeon RX 6950 XT (Advanced Micro Devices, Inc.; 32.0.21045.5002) - - 3.91 GiB memory -

Issue description

physics/2d/solver has both default_contact_bias and default_constraint_bias, but physics/3d/solver has default_contact_bias but doesn't have default_constraint_bias for 3D physics at all.

Found while investigating #123451 (missing suffix units), where comparing PhysicsServer2D::PhysicsServer2D() and PhysicsServer3D::PhysicsServer3D() constructors side by side revealed this property exists only in 2D.

Not sure if this is intentional (the constraint bias concept may not apply the same way in 3D) or a genuine gap, flagging for triage.

Found with AI assistance (Claude) while investigating a related PR (#123451).

Steps to reproduce

  1. Open the editor, then click "Project > Project Settings... > General > Physics".
  2. Compare the "2D" and "3D" tabs under "Solver".
  3. Notice that "Default Constraint Bias" appears under Physics > 2D > Solver, but has no equivalent under Physics > 3D > Solver.

Alternatively, compare servers/physics_2d/physics_server_2d.cpp and servers/physics_3d/physics_server_3d.cpp directly, the 2D constructor registers both default_contact_bias and default_constraint_bias, while the 3D constructor only registers default_contact_bias.

Minimal reproduction project (MRP)

N/A visible in Project Settings on any project, or by comparing servers/physics_2d/physics_server_2d.cpp and servers/physics_3d/physics_server_3d.cpp directly.