I am not actually trying to drive off the road here, by the way. The car lost grip and went into a weird semi-flying floating state. I did my best to get it back onto the road and those were the results.
Turning off EnableFluidForces only marginally improves the issues.
The suspension is still weird and floaty, and the car loses its grip of the ground extremely easily.
Expected behavior
I expect the golf cart to be mostly unaffected by aerodynamics, even when EnableFluidForces is turned on. It is not a plane-like assembly.
If the physics engine determines this to be a vehicle capable of flight… okay, sure… I would then expect that turning offEnableFluidForces would disable any effects aerodynamics has on the assembly - but it is still affected by aerodynamics, somehow, with the property off on every single part.
Yes - in the demo video it is turned on for both the vehicle and the character (since its on by default) for demonstration purposes. I have tried turning off the property for every single part in the assembly, including the character welded to the vehicle seat, and it stabilized things somewhat. The vehicle still acts strange and floaty, though.
Sent a DM with repro place and details to you now!
Even with aero forces disabled, the cart behaves a bit weirdly. The suspension is overactive and it seems that the cart itself is too light. This weird behavior is then exacerbated when fluid forces are turned on. I think the cart will become much more stable with a higher mass.
For example, you can see here that the cart has the same qualitative behavior even when aerodynamics are off:
Workspace.FluidForces=Default (aerodynamics disabled for the whole workspaces):
Workspace.FluidForces=Experimental, but parts.enableFluidForces=false for all vehicle and character parts (aerodynamics enabled in the workspace, but disabled for each part):
And here are some trials with aerodynamics enabled (notice the blue arrow which denotes aero forces):
Since they all look qualitatively similar, I believe that aerodynamics is not the issue here.
I am attaching some scripts that you might find helpful for debugging.
ToggleFluidForces: This script will enable or disable fluid forces for all parts in a specific dir (eg Characters, Vehicles etc)
MassWatcher: This will print out the masses of each part of a vehicle in the Vehicles dir. It will also show massless property and the actual mass used in the engine. MassWatcher.lua (1.3 KB) ToggleFluidForces.lua (1.9 KB)
Please let me know if these changes don’t fix the cart behavior. To look into this further, could you send an isolated repo with the exact cart as showin in the “Before” video in your original post? The cart in the current repro is not stable even with aerodynamics off.
@occamslazor Thank you for looking into this! I will try messing around with mass values and see what we could do to improve things on our end.
Unfortunately, that is not possible - it is quite literally the exact same golf cart. The earlier video has a different top color on the palm tree because this is based on TeamColor in game. It has otherwise remained unchanged for years, since the game was first released in late 2020, and worked perfectly up until sometime early this year. It has always been extremely light mass-wise and that has not changed either.
Side note: It has a signature “bug”, now deemed a feature by our long-term players… where you can walk into the cart without sitting down, get into the humanoid climb state, and it will start levitating because it is so light. This behavior has been preserved, which also makes me 100% certain that mass has never changed either.
I am unsure if aerodynamics is what is specifically causing the “floaty”-feeling suspension, but since turning fluid forces off on everything helped stability, that’s what I assumed. Have there been any other changes that could affect the assembly here?
Just a quick update on this - I’ve been messing around with the mass of different components of the vehicle assembly and have tried:
Making the vehicle lighter and forces smaller on the constraints
Making the vehicle heavier and forces larger on the constraints
Making wheels lighter or heavier
Moving around the “primary” part which we use for center of gravity and ensuring vehicles stay upright
Changing the mass of said “primary” part
Removing or messing with other constraints
And the only thing which seems to have had some effect, has been to change the AlignOrientation constraints we use for steering! Those have RigidityEnabled set to true, and disabling that seems to stabilize the cart and get it back to (more or less) the previous behavior. So this is clearly some kind of regression with AlignOrientation and how it affects the assembly, not aerodynamics. We do need complete rigidity in steering for our game so would be great if you could look into that.
Dear @filiptibell, thanks for looking into this further. We looked into AlignOrientation and can confirm that there have been no recent changes for that constraint. Since you noticed the change early this year, could you look at earlier versions of the golfcart from late last year and confirm that there have been no changes in the mechanism? Please let us know if you have any questions on how to check older versions.
Hi @occamslazor and sorry for the delay!
Yes I can confirm, no changes have been made to the golf cart assembly on our end since late last year. I remember enabling RigidityEnabled on our steering hinges many years ago and can confirm this with commits in our packages as well - so that property has not changed.