PhysX Vehicle debugging

Use per-vehicle debug settings on the chassis, optionally override them with a CVar, and work through the troubleshooting table when the vehicle does not move or grip.

Per-vehicle debug settings

On PhysX Vehicle Chassis → Debug (VehicleDebugSettings):

FieldPurpose
EnabledMaster switch for this vehicle’s debug draw / panel
Draw suspensionRay from anchor to contact (colored by hit)
Draw contactsContact sphere and surface normal
Draw tire forcesLongitudinal (blue) / lateral (red) force vectors
Draw friction circleCombined-force point in the contact plane
Draw wheelsWheel disc at the visual wheel center
Show ImGuiTelemetry panel when ImGui is available
Force scaleMeters drawn per Newton (default 0.0005)

Debug geometry is submitted on TickBus via DebugDisplayRequestBus. Solving still runs on physics sub-steps—draw is visualization only.

CVar: vehicle_DebugDraw

ValueMeaning
0Use each vehicle’s Debug → Enabled
1Force debug draw on for all vehicles
-1Force debug draw off for all vehicles

The CVar is marked DontReplicate. Prefer chassis Debug for single-vehicle work; use 1 when comparing several cars in one scene.

ImGui telemetry

When Show ImGui is on and the ImGui Gem is present (build with PHYSXVEHICLE_IMGUI_ENABLED), the panel shows speed / RPM / gear and per-wheel telemetry. If the panel never appears, confirm the ImGui Gem and that Debug → Enabled is on (or vehicle_DebugDraw = 1).

What to look for

DrawHealthy signProblem sign
Suspension raysHit ground under each wheel / road wheelRays miss or start underground
ContactsStable points under the chassisFlicker / none while collider intersects ground
Tire / track forcesForward push under driven contacts when throttlingHuge forces + spin, or zero force with throttle
Friction circleCombined demand inside the circleSaturation every frame → lower torque or raise friction

Troubleshooting

SymptomLikely causeWhat to try
Vehicle does nothingGem / chassis / rigid body missingEnable Gem; confirm dynamic RB + collider + Chassis on same entity
Falls through / no gripCollider buried or rays miss groundRaise chassis; check anchors and rest length + radius reach the ground
Tips over easilyHigh CoM or light anti-rollLower CoM offset Z; set rigid-body mass correctly; add anti-roll
Wheels spin, no motionLow friction or excess torqueRaise tire friction; lower peak torque
Visual wheels frozenNo Wheel Entity IdAssign child mesh entities on each wheel config
Tracked acts like a carNo Track component / wrong kindApply Tank chassis template + Track preset
Jitter on pivot turnHigh track gainsLower long / lat gain; keep physics fixed step stable
Script input ignoredDrive still writing / wrong entity idDisable Drive; address buses with chassis id
Bounce / porpoiseStiffness / damping mismatchRaise damping ratio; lower stiffness or revisit auto-stiffness target rest ratio
ImGui missingImGui Gem / define offEnable ImGui; confirm PHYSXVEHICLE_IMGUI_ENABLED
  • Ground must have PhysX collision (static or dynamic) that scene queries can hit.
  • Collider ground clearance should leave room for suspension rays; a collider that sits on the ground can fight the ray forces.
  • Fixed physics step stability matters for tracked pivot turns—avoid extreme sub-step sizes when debugging jitter.

Next steps


Copyright © 2026 DawnEngine. All rights reserved.

DawnEngine is a commercial 3D engine distributed under the DawnEngine end-user license agreement. Engine binaries and source are proprietary and are not covered by the licenses below.

Documentation only: the prose and templates on this site are a derivative work of Open 3D Engine (O3DE) documentation by the O3DE Contributors, used under CC BY 4.0 (documentation content), Apache 2.0 (site code), and the MIT license (inline code samples).

The open-source 3D engine that DawnEngine is built on top of is Open 3D Engine . DawnEngine is not affiliated with, endorsed by, or sponsored by The Linux Foundation or the O3DE project. “O3DE” and “Open 3D Engine” are trademarks of The Linux Foundation.