If your Humanoid is in a physics state, they can still seat on seats as you’d expect, but the Signal Humanoid.Seated does not fire.
If this is intentional, it is not mentioned in the docs:
I tried making a simple repro where I would fall into seats by swapping to a physics state. You can see that the output does not fire when falling into the seat.
I simply wrote this into a localscript under StarterCharacterScripts and added some seats to the scene to showcase the issue:
while not game.Players.LocalPlayer.Character do task.wait() end
local Humanoid = game.Players.LocalPlayer.Character:WaitForChild("Humanoid")
Humanoid.Seated:Connect(function(a, b)
warn(a, b)
end)
game.UserInputService.InputBegan:Connect(function(InputObject)
if InputObject.KeyCode == Enum.KeyCode.One then
Humanoid:ChangeState(Enum.HumanoidStateType.Physics)
elseif InputObject.KeyCode == Enum.KeyCode.Two then
Humanoid:ChangeState(Enum.HumanoidStateType.Running)
end
end)
Workaround Options:
- Simply check if the Humanoid.SeatPart changes manually
- Force the player out of physics state when the SeatPart changes