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.
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.
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.
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.
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.
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?
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.
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.
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.)