Car Wont Steer And Physics Messy Help

Greetings! I have made an attempt to my chassis but I am facing some issues that I need help fixing. It works but only halfway. The car spazzes out upon entering which I assume is a massless issue but unsure how to implement or if you have a better idea as well as the steering not working. Any way to fix or any improvements for a more stable opportunity? I also managed to enter the seat through anchoring the vehicle which I want to avoid.

robloxapp-20230829-2358060.wmv (1.1 MB)
robloxapp-20230830-0000115.wmv (2.3 MB)


local backLeft = script.Parent.Body.WheelRL
local backRight = script.Parent.Body.WheelRR

local frontLeft = script.Parent.Body.WheelFL
local frontRight = script.Parent.Body.WheelFR

local steerAngle = 30
local speed = 60

seat:GetPropertyChangedSignal("Steer"):Connect(function()
	frontLeft.PartB.SteeringConstraint.TargetAngle = steerAngle * seat.Steer
	frontRight.PartB.SteeringConstraint.TargetAngle = steerAngle * seat.Steer
end)

seat:GetPropertyChangedSignal("Throttle"):Connect(function()
	frontLeft.PhysicalWheel.WheelConstraint.AngularVelocity = speed * seat.Throttle
	frontRight.PhysicalWheel.WheelConstraint.AngularVelocity = speed *-seat.Throttle
	
	backLeft.PhysicalWheel.WheelConstraint.AngularVelocity = speed * seat.Throttle
	backRight.PhysicalWheel.WheelConstraint.AngularVelocity = speed * -seat.Throttle
end)

It is very jittery and yes I know the steering is somewhat reversed which I can correct.

Yes I did follow a tutorial to get a good understanding of what I need to accomplish since this is only a test and I plan to tweak things here and there after I overcome these issues.

I have tinkered to attempt to fix but I know it has to do with utilizing constraints which I have no idea what else to use for steering to work with the suspension.

If anybody who cares enough to try, go for it at this point because I am losing my patience and hope for how much I’ve seen this forum post overlooked at this point.
SuspensionTest.rbxl (676.1 KB)

2 Likes

Don’t make the Parts Massless, but don’t make them really heavy either.

For steering using HingeConstraints make the ServoMaxTorque inf (infinity).
Play with the AngularResponsiveness. That controls how sharply the servo tries to reach its goal.

I usually make wheels Density between 1 and 2 to help with friction and suspension handling. Of course bigger wheels need to be less dense for the same result.

1 Like

Applying inf does not work as it will not allow me to put anything in there other than numbers.

1 Like

Just type 999999999999999999999999999999 or some other high number and it’ll show inf.

1 Like

Would be nice if Roblox made it a feature to just write inf instead of holding a number forever till it goes inf.

1 Like

I did this and it made the wheels more spiritic and improved nothing. I tinkered with other settings but the wheels just want to freely move on their own instead of staying in one position or responding to A and D. Maybe I should use something else for steering?

1 Like

Do you have the HingeConstraints.ActuatorType set to Servo?

Are the wheels or steering/suspension Parts contacting each other?
You can go into the Studio Settings > Physics > Are contact points shown (or something like that) and click the box.
Items that contact each other will show a red sphere at the point of contact. This is a very helpful tool for building cars and mechanisms.

Also when working with Constraints always go to the Model tab and in the Constraint tools section select Show Constraints. This will show if you have Attachments that are not aligned with each other, or Oriented differently. For example you need to make sure that both Attachments of a HingeConstraint are at the exact same Position, and that the yellow and orange arrows that are displayed when you select one of the Attachments are pointing the same way as the other Attachment.

1 Like

Everything is set up accordingly yes. I did this carefully as well. It is the server which is failing to respond appropriately because I got wheel density down to 0 at this point and it seems like the wheels are having a hard time rotating or will jitter. When I go to get into the vehicle seat, everything almost explodes and all the attachment and joints become a pile of mess.


1 Like

I’ve also noticed the whole vehicle freaking out thing is due to the direction I get into the seat. So to say I touch the seat from the front, it is trying to flip the vehicle around for some unknown reason while I enter from the back, it is just fine.

Is the vehicle massless? Your player physics affect everything they touch so it may be rotating the vehicle.

You have a lot of constraints there. For the top or bottom suspension arm only use 1 hinge instead 2 at the inboard edges. Putting 2 hinges in liine with each other can create problems with physics. You only need 1 Roblox Hinge there instead of 2 separate ones. Same thing goes for the steering knuckles. Don’t use 2 when 1 will steer the wheel.

Make sure that all the arrows for the hinges are oriented the same way. You can select each hinge by clicking the brown circle and it will show you misalignments with arrows.
Make sure all the Hinges (except for the ones that drive the wheels!) are set to None instead of Servo or Motor.
In your second picture what is the Attachment between the pivot hinges? It doesn’t seem to have anything linked to it.

So I have done some investigating and I conclude roblox physics are a tad bit busted. The suspension will work on 1 axis but when a secondary joint is in the mix to allow a 2 way axis to mimic a true offroad suspension, the steering will not respond and bug out. I think Roblox should refine their physics engine because this can be accomplished on UE easily.

This is surely a bummer and I will have to take the simplified approach to do what I need to do but it is what it is.

They aren’t busted.
Check out the suspension vehicles in my Tracked vehicle, suspension and racing tests. - Roblox. You can also click on the vehicles with gearshifts to go from low to high speed and get some insane rough terrain speeds.


As you can see I only have 11 Attachments here (2 for BallSocket and 2 for Hinge), 1 Hinge, 1 Spring, and 1 BallSocket. I’m not including the wheel HIngeConstraint or the rod that I use for the steering knuckle to Wheel for the axle. A total of 14 items.
You have 12 Attachments and 6 HingeConstraints for just the 2 A arms, 2 Attachments for the Spring, and the steering knuckle has 2 Hinges and 4 Attachments for a total of 27 items. This can be reduced to 12 Attachments, 1 Spring & 5 HingeConstraints by getting rid of the in-line doubled Hinges which still uses 18 items.

Basically too many Constraints just cause lag issues because your computer and the server can only calculate a certain amount of Physics items.
Also having too much offset from your wheel centerline to the steering knuckle HingeConstraint causes forces that will push the Hinge with more force than it may be able to handle.

I also use a Motor attached to the dark gray Part at the bottom right of the picture for the steering since I’ve found that HingeConstraints are kind of springy for steering, unless the car is light and the AngularResponsiveness is cranked up to 200.

Another way is to just add a Rod between both sides of the Steering to make the LH and RH steering knuckles stay parallel.

1 Like

Constraints can be very difficult to tune, but in this case it kind of sounds like your player is becoming the root of the assembly. Try this: Whatever the primary part is of your vehicle, double check in the property explorer that it’s actually the assembly root, both before and after you get in the seat (if it’s even stable enough). If your player is becoming the assembly root, your vehicle will likely orient itself instantly to the player when you hit the seat, and probably then explode. The fix for this is:

Set the RootPriority of the vehicle’s assembly root part (the root-most part things are welded or connected to) to a high value like 127 and test the vehicle again.

Making a vehicle lighter also increases the chance that your player character will take over as the assembly root when you get welded to the seat. You can’t allow this to happen.

1 Like

I will follow this and post an update, thank you!

1 Like

Good luck with it, hope you have a good time this topic.

With regard acecombat606.

Hi. I think this issue is happening with me as well.
This is player sided


This is server sided, works fine


Okay i solved it by making the parts of the model massless but increase the density of the wheels or hinge constraint parts.