Remove Seat Cooldown

Is there a way to Remove the Seat Cooldown

Seat:Sit(Humanoid)

This function won’t let me bypass the cooldown, is there a way to remove the cooldown?

4 Likes

Hey there. You could clone the seat and make the player sit on the clone and destroy the original.

Hello, there a few different type of solving this issue, but if yours system is not complicated you can try something like that:

seat.Disabled = false
seat:Sit(humanoid)

I finally found a solution.

When a player sits on a Seat, Roblox automatically creates a SeatWeld that connects the Seat to the player’s HumanoidRootPart. My solution was simply to clone that weld and attach it to the player manually.

function Sit(Seat: Seat, Char: Model)
	if Seat:FindFirstChild(WeldSit.Name) then return end
	
	local Weld = WeldSit:Clone()
	Weld.Part0 = Seat
	Weld.Part1 = Char.HumanoidRootPart
	Weld.Parent = Seat
	Weld.C0 = CFrame.new(0, Seat.Size.Y / 2, 0) * Weld.C0.Rotation -- For rotated Part and Very Long Seat Part
	Weld.Enabled = true
	
	local Humanoid: Humanoid = Char.Humanoid
	Humanoid.Sit = true
end

Then I use another function to destroy the weld when the player leaves the Seat:

local LastSeat: Seat

local function HumanoidWeld(active, CurrentPart: Seat)
	if active then
		LastSeat = CurrentPart
	elseif not active and LastSeat then
		local SeatWeld = LastSeat:FindFirstChild("SeatWeld")
		if SeatWeld then SeatWeld:Destroy() end
		LastSeat = nil
	end
end

Character.Humanoid.Seated:Connect(HumanoidWeld)

This ended up working perfectly for my use case.

1 Like