Wheels (Ball Shape) Having Collision Errors

To clarify up front, this is what the car looks like when removing the meshes (which are specialmeshes, like a hat, and thus have no collision)


And a lower shot of the car to see there is nothing hanging off the car to scrape the ground or anything.

This car is a regular “tank chassis” car. It uses 4 balls as wheels with surface hinges (not constraints) and a vehicleseat. There is no additional code added to the car, it uses the Roblox vehicle code found in the source code of Roblox.

It would appear there is some type of physics update causing the car to collide with nothing, which upsets the wheels and changes the car’s trajectory. I have changed nothing about my cars or my tracks, and today someone mentioned that they were hitting bumps that was sending their car is strange directions.

They then sent me these 3 different Medal clips where they had this issue present:
NAMT Server
Wonderland Server
ASLM Server

I went and tested myself & found this bug to occur at both slow speed & high speed.
At slow speed, simply pressing the throttle and driving forward, we can see the right front tire bug into the ground or bounce around wildly.

All footage was taken from DIRT Freeplay

Expected behavior

Last Friday I hosted a race, and throughout the course of the race, nobody reported having issues like this. Cars ran smoothly throughout the duration of the race without having their tires bounce around and through the ground like seen above.

A few more clips:




2 Likes

Check your mesh collision. When I was working on a chassis for a racing game (similar to what you have here), my biggest issue was the mesh colliding even if it didn’t look like it was. You can see the shape of your collisons by enabling Decomposition Geometry in studio settings.

At a closer look it also appears that your wheels themselves are colliding with something or being jittery. They do not look to be stable within the vehicle. Instead of steering smooth, they are bouncing within themselves.

When I created a server-sided vehicle, I used a method that involved 2 parts. 1 part controlled the steering (with a surface) and the other for rotating the wheels (another surface). This let me have stable steering without relying on constraint physics.

Does your game use smooth terrain, basic part terrain (Parts or WedgeParts), or MeshParts for terrain? Do you cars still drive around just fine on a flat, level Baseplate? There are really 3 things that might have changed: Something about the car’s collision geometry, terrain collision geometry, or something unrelated to collision geometry at all, like an internal physics solver change that’s affecting how the car-ground collisions are being resolved.

There is no mesh collision. I pointed this out in the top of the post. The meshes are special mesh (like that in a hat), meaning there is no collision. The collision of the car is made up by simple brick parts. The tires are simple ball parts.

  • The entire map is made of simple parts (no wedges)
  • Same behavior on completely flat ground. Same behavior on a basic baseplate map.
  • The car has had no changes since Friday, yet the performance of it has changed.

Upon further testing, it appears possibly something with torque has changed. I have not changed the torque of this car in over 3 weeks, but lowering the torque of the car today no longer makes the car’s tires become unstable.

So it appears the workaround is I need to redo the setup on every car (hours of work) in my game unless they change back the torque curve to what it was before.

1 Like

Go to your workspace and change “DecreaseMinimumDensityMode” to Disabled, If that fixes your issue take a look into this post.

Lower Minimum Part Density Rollout - Updates / Announcements - Developer Forum | Roblox

I will give this a shot later and check but I do not have any parts on my car that are set below .01 density so I’m doubtful this alone is the cause.

I can confirm that changing it to disabled does not help the issue.

I suspect that its adaptive stepping not working well with surface hinges. Can you try setting your Workspace::PhysicsSteppingMethod to Fixed and see if that fixes the issue?

We would also strongly recommend replacing your surface hinges to constraints. This will greatly improve stability and even performance as vehicle seat wheels are processed in serial

Constraints require custom coding to make the car drive. Surfacehinges + vehicleseat naturally work on gamepad, mobile, and keyboard without any code needed. Also I’ve tried to reverse engineer how a tank chassis car using surface hinges behaves and I’ve come up short each time trying to replicate its exact behavior with constraint hinges.

Until constraint hinges can have the exact same behavior (drive the same and works out of the box with no need for custom code) there is no reason for me to switch over.

Switching physics stepping to fixed did not fix the issue.

Here is the current settings for transparency:

Today, the bug has worsened. Both with PhysicsStepping set to fixed & with it set to default.
Now the tires are ridiculously unstable.

Further update. The problem does NOT occur when I’m on mobile. As well, another player has reported they are on their PC using keyboard (like me) without issue.

Could this be something to do with me having some form of Beta on my client running things differently?

Mobile footage:

And now it’s back to just a little bumpy at times & every now and then a real large bump.


It’s possible this is related to the density of the ball part wheels.

I set it to a lower value, and the issue starts occurring. If the value is low enough, it’s the exact same behaviour in your most recent video where the wheels go mental.

I set my wheels custom physical properties mass to 1, and the issue no longer occurs. As a test, can you try increasing the mass on the wheels, to see if we’re getting the same behaviour?

I had DecreaseMinimumDensityMode disabled, it didn’t make a difference.

I do have some feelings around the idea this is a mass vs torque issue, meaning either increasing the mass or reducing the torque will settle the car.

My point of contention however is that I hadn’t made any changes to my vehicle for the last 4 weeks and now it’s presenting problems. This tells me a change was made to the physics engine for how these things work and that it should probably be changed back to suit making the cars feel as they always have.

1 Like

Upon further review:

  • ~half torque (105 → 65) still glitches
  • 1/4 torque (105 → 25) still glitches
  • double tire density (5->10) with 105 torque still glitches
  • quad tire density (5->20) with 105 torque still glitches
  • 35 torque, 20 density tires still glitches

so, I stand corrected, it appears to be collision issues, not torque ratios
this is starting to feel like when the buoyancy update broke cylinder tires back in the day

Added Note: Same thing happens if I replace the wheels with Cylinders…

1 Like

This bug occurs on all 3 (Adaptive, Default, and Fixed) PhysicsSteppingMethod settings.

If I set the network owner of the car to nil

local car = game.Workspace.Cars.GeorgeOfAIITradesCar
car.VehicleSeat:SetNetworkOwner(nil)

The car still gets the bumps a little but not as bad
Here is a video explaining and showing that fact:

I’m having the same issue in my game that also uses surface hinges and the balls as wheels. I tried changing “DecreaseMinimumDensityMode” in workspace to disabled, that did not work. But I changed " PhysicsSteppingMethod" in workspace to fixed and it looks like it resolved the issue for all the cars in my game. Also, I noticed that the issue with the wheels glitching would never or very rarely happen in studio, and it would mostly happen when I was in the actual ROBLOX Player on my PC.

Can confirm that changing the ‘PhysicsSteppingMethod’ to fixed sorts this issue which was happening in my Go-Karting game.
https://gyazo.com/08d7520b5a12b467cf2be17845af4d0d

I can now confirm that Fixed PhysicsSteppingMethod has solved my issue.
I will leave the bug report unsolved, until I’m told that this is intended behavior

To clarify what I mean by "Intended Behavior"
  • To use tank chassis cars going forward, I must set PhysicsSteppingMethod to “Fixed”
  • To fix all of my places, I must go set PhysicsSteppingMethod to “Fixed”
    (Note: Not being able to script it is actually a quite annoying thing that I will now have to go update close to 100 places to have Fixed hard set in them.)