Seems like the weld’s Part1 property is empty. Instead of relying on welds, can’t you just check the Occupant property and directly set the sitting animation in the Player’s Animate script?
I made many posts with code I have given relating to this issue and they seemed to work for them,
You can try this
local seat = script.Parent
local animId = seat.Animation.AnimationId
local defaultAnim = "http://www.roblox.com/asset/?id=2506281703"
local formeroccupant
seat:GetPropertyChangedSignal("Occupant"):Connect(function()
local humanoid = seat.Occupant
if humanoid then
local char = humanoid.Parent
char.Animate.sit.SitAnim.AnimationId = animId
formeroccupant = char
else
formeroccupant.Animate.sit.SitAnim.AnimationId = defaultAnim
formeroccupant = nil
end
end)
And it should work fine if your rigs are R15, if not, the 1st post I sent has code that should work if you’re using R6