My hover car behaves differently on Play Solo and Run

So I’m making hovercar and I have done my suspension system which works well, if you are testing it with run, and has been working with play solo as well just recently.

But I’m currently messing around with vehicle controls like assigning network ownership of the vehicle seat to player and making control script local. So currently I am moving my hover car with my local script, but suspension is still server sided.

Problem is, that my car does two things randomly, even testing on Run it sometimes works and sometimes doesn’t

There’s 2 different things it does while testing on Run:

GUI’s on little four parts on the edges are forces each suspension applies , in the middle it’s CFrame of Gyro, and is not useful now.

1.Crawling on the ground:

2.Tilting to the right or left side a little which causes car to move that way(I also have bodyGyro in primary part)

But sometimes it just works fine:

So this was all on Run, now while play solo it’s little bit different:
It does all of the above plus this:
you can notice lag there is, while suspension balances

or sometimes lag is infinite:

Now what If everything goes fine and you jump on it:

it starts movements resulting it looking like particular solution in this article.
This shouldn’t be happening, because I am manually making all of the characters parts massless once player sits on the vehicle seat, so basically nothing changes.

It feels like no matter what kind of force suspension applies something pushes it down.

I will not post codes here instead I will link to anyone willing to help
If you need any further information or scripts I will provide them to you

2 Likes

I too have a similar problem with massless parts affecting my chassis. I built a car chassis that works REALLY well, and then I slap another appearance onto it (Note that everything that consists of appearance should be massless) and it starts suffering in terms of driving.
It could be that roblox has a bug with Massless parts.

1 Like

Maybe its because of NetworkOwnerShip set to auto by default, set the NetworkOwnerShip to nil when there is no occupant

I did it and it seems that bouncing doesn’t occur so far. But it still has other problems like tilting and crawling(only while testing with run so far).

I’m only baffled about the fact, that I changed something not much and this started to occur, but I have no Idea what that is, I disabled number of scripts, but it didn’t work.

whatever happens must be happening from suspension script. Body of the vehicle also has Gyro in it, maybe it causes something. I have BodyThrusts in four edge parts where suspension is controlled from, but they are server scripts(one in each thruster!!!), maybe they cause lag or something.

I also have this script which detects if all of the thrusters are above same objects

local model = script.Parent.Parent
local object1 = model:WaitForChild("Object1")
local object2 = model:WaitForChild("Object2")
local object3 = model:WaitForChild("Object3")
local object4 = model:WaitForChild("Object4")

game:GetService("RunService").Stepped:Connect(function()
	print(object1.Value, object2.Value, object3.Value, object4.Value)
	if object1.Value == object2.Value and object2.Value == object3.Value and object3.Value == object4.Value then
		script.Parent.Value = true
	end
end)

all of the objectValues values are assigned in suspension system while raycasting. I assign part_hit to the value and now when printing I found out that some of them sometimes are nil, but printing in suspension script, part_hit is never nil so object should never be nil because I say

object.Value = part_hit

Can you provide the raycast and suspension script if you dont want to make it public then dm it to me

Alright so I fixed two problems out of 3
1.It no longer tilts

2.It no longer crawls

Both of them where caused by other script I had for turning, Where I applied force on front Thrusters to the right and left depending on the steering. I disabled it and it got fixed.

But bouncing still remains the issue.

It’s most probably Network ownership problem I can’t figure out.

Here’s the code for How I assign of network ownership:
z5UbEmvK.lua (599 Bytes)

Kind of a necrobump, but me and @DragRacer31 are working on a force based vehicle chassis as well and we came across the same issues. We have 2 different models, an old one he made driveable (no real friction and works by using the old way of propulsion with a DriverSeat) and a more advanced version I made with an automatic gearbox and a fully working tire friction. The issue with the first is that the wheel distance doesn’t replicate correctly and driving over bumps makes it stutter, while the other starts bouncing all over the place if touched in play solo.

2 Likes

So you fixed it?

I fixed mine many weeks ago. As I remember it was network ownership, And Runservice problem. On local scripts you should either use RenderStepped or Heartbeat, I was using Stepped so this was the result.

1 Like

Yeah, he cornered the problem on his side to ownership. I set the network ownership to myself in play solo and the car just flopped down…

1 Like

I made the script a LocalScript and it worked correctly. The problem is that the server is the one handling the scripted physics, while the client is the one handling the collisions and gravity. There is a considerable delay between the 2, so the vehicle acts like the car is pushed into the ground.

1 Like

If Network Ownership is set to Server, then Runservice gets unsynchronized and on every frame it gets worse

2 Likes

Yeah, didn’t realize that until I forced the ownership to nil (server’s the owner).