Quick answer: Vehicle bugs are simulation state bugs: a car that flips, clips through a wall, or slides like it is on ice is reacting to chassis velocity, wheel contact, suspension compression, and tire friction that exist for one frame. The dramatic motion is downstream of those numbers. Capture the chassis state, the per-wheel contact and suspension data, the tire forces, and the collision contacts when a report fires, and an unrepeatable flip becomes a case you can replay.

Vehicle physics is a tight, fast simulation: a chassis rigid body riding on suspension springs, with wheels that raycast for ground contact and generate tire forces from slip. When it sings, driving feels grounded and responsive. When it breaks, players report cars that flip from nothing, clip through walls at speed, slide as if the road were ice, or launch off a small bump into the sky. These bugs are notoriously hard to reproduce because they depend on the contact and force state at a single frame, often during a fast collision. This post covers the chassis, wheel, suspension, and collision state worth capturing so a freak flip becomes a replayable case.

Why vehicle bugs slip through testing

A vehicle simulation is a feedback loop running every physics step: the chassis moves, the wheels raycast to find the ground, the suspension computes spring and damper forces, the tires compute longitudinal and lateral forces from slip, and all of it feeds back into the chassis. A bug anywhere in that loop, a wheel that lost contact, a suspension force that spiked, a tire that saturated, propagates into the visible motion a frame later. The flip a player sees is the end of a chain of numbers, and the words flipped for no reason tell you nothing about which link failed.

Reproduction is hard because the failures depend on speed and exact contact geometry. A car clips a wall only when it hits at a particular angle and velocity that lets it tunnel past the collision check in one step, and a flip often needs a specific bump taken at a specific speed. Replaying the drive rarely recreates the precise conditions. The reliable path is to capture the vehicle's full simulation state at the instant the report fires, so you can reload that frame and watch the loop produce the same bad result deterministically instead of fishing for it.

Capturing chassis state

Begin with the chassis rigid body, since it is what the player ultimately feels. Capture its position, orientation, linear velocity, and angular velocity. A car that flips shows an angular velocity that spiked beyond anything the road should produce, and the axis of that spin tells you whether it came from a side impact, a suspension imbalance, or a tire force gone wrong. Capturing the velocity at the frame of the report distinguishes a genuine physics flip from a visual glitch where the mesh detached from a perfectly stable body underneath.

Center of mass and aerodynamic state matter for stability. A center of mass set too high makes a car tip in normal cornering, and an incorrect downforce curve can plant or unstick the vehicle at speed. Capture the configured center of mass, the current downforce, and any drag forces in effect. When the chassis velocities look reasonable but the car still feels tippy, the center of mass is usually the cause, and it is invisible to the player and to you without being recorded. These configuration values turn a handling complaint into a concrete tuning target.

Wheel contact and suspension state

The wheels are where the simulation touches the world, so per-wheel state is essential. For each wheel capture whether the raycast found ground, the contact point and normal, the suspension compression, and the spring and damper forces. A car that launched off a small bump often shows a suspension that bottomed out and then released a huge force, and the compression value at report time reveals it. A wheel that intermittently loses ground contact on flat road points at a raycast that is too short or starting inside the collision, which the contact flag exposes directly.

Tire forces are the other half of wheel state and the source of most handling bugs. Capture each wheel's longitudinal and lateral slip, the friction force it produced, and whether it saturated its friction circle. A car that slides like it is on ice usually has tires reporting near-zero friction force, perhaps from a wrong surface friction value or a slip calculation gone bad. Seeing the slip and force per wheel turns a vague it handles badly into a precise statement about which tire lost grip and why, which is the difference between guessing and fixing.

Collision and contact data

Clipping and tunneling are collision bugs, so capture the collision state explicitly. Record the active contacts between the chassis and the world, their penetration depths, the contact normals, and whether continuous collision detection was enabled for the vehicle. A car that clipped through a wall at speed almost always shows that it moved farther in one step than the wall was thick, with no contact generated, which is the textbook signature of tunneling that continuous detection is meant to prevent. The captured velocity and the missing contact together prove it.

The solver and timestep context frame these collisions. Capture the fixed timestep, the substep count, and the maximum velocity or penetration the solver tolerates. Many vehicle collision bugs are speed-versus-timestep problems: at high speed the vehicle travels too far per step for discrete collision to catch it. Recording the timestep alongside the velocity lets you compute exactly how far the car moved per step and confirm whether tunneling was inevitable. That distinguishes a true collision logic bug from a configuration that simply was not set up to handle the speeds your game allows.

Setting it up with Bugnet

Bugnet's in-game report button can snapshot the vehicle simulation when a player taps it. Alongside the device and platform context, the SDK attaches the chassis state, the per-wheel contact and suspension data, the tire slip and forces, the collision contacts with penetration depths, and the solver timestep. Instead of a ticket with a clip of a car flipping, you receive the simulation frame that produced it, so you can reload that exact state and replay the loop to see whether a suspension spike, a saturated tire, or a tunneling collision was responsible.

Vehicle bugs cluster around specific tracks, jumps, and speeds, so occurrence grouping helps you prioritize. If a particular ramp launches cars into orbit, every player who hits it files what is really one issue, and Bugnet's grouped count shows how many are affected. Custom fields for the surface type, the chassis speed, and the affected wheel let you filter the dashboard to, for example, every flip report above a certain speed or on a specific surface, which isolates the systemic tuning or collision problem from one-off contact with a stray prop.

Testing vehicles at the edges

Teams that ship solid driving test the edges where the simulation breaks, not just the happy lap. Drive into walls at maximum speed to probe tunneling, take jumps at a range of speeds to find suspension bottom-outs, corner hard on every surface to verify tire friction, and run at low frame rates to expose timestep-dependent collision failures. Each of these maps directly to a report you will otherwise field, and reproducing them on a test track is far cheaper than triaging from a montage of cars behaving impossibly.

After launch, let the captured frames do the work. Reload the simulation state from a report, find the spiked force or the missing contact, and respond with a fix or a tuning change, perhaps enabling continuous collision above a speed threshold or clamping a suspension force. Group reports by surface and speed to learn where your vehicle model is fragile, and harden there. Convincing vehicle physics is less about a perfect tire model than about never letting the simulation reach a state it cannot handle, which you find by capturing the frame a player watched it fail.

A car flip is the last link in a chain of forces. Capture the chassis, wheels, and contacts and you can replay the frame that broke.