If you sit a player down in a seat with seat:Sit(humanoid) and the player gets back up straight away, the seat will be moved to where the player is. I only found this bug today but I’m sure it has been happening for much longer.
local characterHumanoid = getHumanoid()
if characterHumanoid then
seatObject:Sit(characterHumanoid)
end
I attempted to fix this issue by removing the players jumpower when they sit down. This made it significantly harder to perform the glitch, but it is still possible:
local characterHumanoid = getHumanoid()
if characterHumanoid then
local oldJump = characterHumanoid.JumpPower
characterHumanoid.JumpPower = 0
seatObject:Sit(characterHumanoid)
delay(0.5, function()
characterHumanoid.JumpPower = oldJump
end)
end
An easy fix would be setting the seat’s Position/CFrame back to it’s default point everytime a player gets off. You could store the original CFrame in a variable:
local DefaultCFrame = seatObject.CFrame
--Detect if player gets off
seatObject.CFrame = DefaultCFrame
I noticed this still continues to happen. In our game we have a menu for in-place teleports that move players by CFrame between locations on server side, and if they are seated when they are moved it takes the anchored seat with them and leaves it at the destination wherever they jump to get off.
Are there any plans to address anchored seats moving with players? Is there another preferred approach besides resetting the seat CFrame back to its stored origin that would better address (ex: is welding expected to keep the seat at origin)?