Humanoid.Seated does not trigger when Humanoid is in Physics state (even though they can still seat)

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:

  1. Simply check if the Humanoid.SeatPart changes manually
  2. Force the player out of physics state when the SeatPart changes
3 Likes

Thanks for the report! We’ll follow up when we have an update for you!

Thanks for the report, and apologies for the delay in response! This is indeed what we have determined to be the desired behavior - A seat can weld a character into it via touch, but the seated signal does not fire until the humanoid actually transitions states, which cannot happen automatically from the physics state. I will add this edge case to the docs.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.