Is there a reason my welded model has weird offsets when a player gets near?

Sorry for the late reply… There seems to be no local script that could interfere with this :frowning:

1 Like

Are you sure? Did you check character scripts as well? And this is only client-sided?

Ima have to go with you on that this is a bug I dont see why this would happen unless a local script is doing something or a malicious plugin but you said those weren’t the causes so you may as well make a bug report.

1 Like

Oof… :frowning:

Yeah, this is only client-sided. I don’t see any local scripts doing anything weird that would break this. Very odd.

Can you move this car to an empty baseplate with no scripts and see if it still happens? If so, you can file a bug report. If not, you can compare the two files to see what the difference is (e.g. repeatedly cut out half of the place until you find what the root cause is)

4 Likes

Hmm not sure, but are the parts being welded while network ownership is being set or anything? What exactly happens when the parts are being welded? Is anything moved? Parts being welded to another part being welded to another part?

1 Like

Networkownership issue maybe? I’ll try seeing if what you suggested is happening

1 Like

I was thinking, because network ownership sometimes causes parts to shift or suddenly hop/teleport to another position when changed, especially when there is lots of latency, it was a thought I had.
What I did forget to ask is though, what kind of weld are you using?
ManualWeld? Motor(6D)?
I know that some non-Motor6D welds don’t stay in position when the PrimaryPart/Part0 is moved using CFrame.

Is the build anchored? Maybe the welds shift on a client side update.

I didn’t write the weld script. It uses WeldConstraints. It appears that if there is no occupant, the vehicle is constantly making the parts’ network owner nil:

RunService.Heartbeat:Connect(function()
if not VehicleSeat.Occupant then
   for i, v in pairs(Model:GetDescendants()) do
       if v:IsA("BasePart") then
	      v:SetNetworkOwner(nil)
       end
   end
end
end)

It is anchored.

Do all parts start anchored? Do you set networkOwnership? Also, if you have the time, do Ctrl+Shift+F and enter ‘.’ (most scripts have a dot) and see if you can disable scripts until something changes.

Do all parts start anchored? Do you set networkOwnership?

Yes and yes. Could the former be an issue?

Also, if you have the time, do Ctrl+Shift+F and enter ‘.’ (most scripts have a dot) and see if you can disable scripts until something changes.

I’ve already disabled every script in the game via the command bar and the issue persists.

Try disabling network ownership and see if it still happens. Most likely that is the problem.

1 Like

I thought so too, but this doesn’t seem to prevent the glitch from occurring:

RunService.Heartbeat:Connect(function()
if not VehicleSeat.Occupant then
   for i, v in pairs(Model:GetDescendants()) do
       if v:IsA("BasePart") then
  	      v:SetNetworkOwner(nil)
       end
   end
end
end

EDIT: I’m willing to PM you a repro if you’d like to look at it yourself.

If you could send me a repro that could help.

1 Like

Alright, I appreciate it. I won’t be able to send it until tomorrow though as I’m currently away. :slight_smile:

1 Like

So the parts are welded together with weld constraints?
What if you use a different weld type?
I always use Motor or Motor6D to weld things together, whenever I use Motors the model doesn’t glitch and I can move and teleport it around without any weird stuff happening to my welds.

Using normal welds instead of weld constraints fixed this issue. Thanks to all who helped!

2 Likes