Player doesn't stay sitting on seat when seat goes up into air

I can’t figure out the problem here. I have a seat welded to the horse player and I have a rider player sitting on it. When the body velocity in the seat goes upwards to emulate a jump, the horse screen (on the right) sees the rider player jump off and then just float there. The rider screen (on the left) sees it normally, and so does the server.

Can you show us the script where the body velocity goes up?
And tell us whether it is a local script or server script. Thank you.

The weld is likely breaking, verify by checking the explorer window while in client-mode/server-mode.

The player is not welded to anything, just sitting in the seat.

Yes, it’s on the server (in a Heartbeat loop):

if self.jumping then
	self.jumping = false

	bodyVel.MaxForce = Vector3.one * math.huge

	vel = Vector3.new(vel.X, JUMP_POWER, vel.Y)

	Animations:StopTrack(self.char, "CrawlIdle")
	Animations:StopTrack(self.char, "Crawl")
	Animations:PlayTrack(self.char, "CrawlJump")

	local conn; conn = self.char.Humanoid.StateChanged:Connect(function(old, new)
		if old == Enum.HumanoidStateType.Freefall then
			if new == Enum.HumanoidStateType.Running or new == Enum.HumanoidStateType.Landed then 
				conn:Disconnect()

				local isMoving = self.rider.Humanoid.MoveDirection.Magnitude > 0

				Animations:StopTrack(self.char, "CrawlJump")

				if isMoving then
					Animations:PlayTrack(self.char, "Crawl")
				else
					Animations:PlayTrack(self.char, "CrawlIdle")
				end
			end
		end
	end)
else
	bodyVel.MaxForce = Vector3.new(math.huge, 0, math.huge)
end

I’m pretty sure this is just a Roblox glitch. I’ve seen this before with a free model horse where when you jump on it you stay in the air while the horse keeps moving, and you being in the air is only visible to other players.

Are you using a Seat/VehicleSeat instance? Welds are automatically created for those.

Ah, yes the ‘SeatWeld’ is being destroyed as soon as I jump. Do you have any idea what’s causing this?