Disabling "Seated" HumanoidStateType does not function properly

Expected behavior: When Seated is disabled, I don’t sit in seats, and I don’t even attempt to sit in seats.

Actual behavior: ROBLOX attaches character to seat and then attempts to disconnect it. Sometimes disconnection from seat does not work, and leaves the character perpetually in the “Freefall” state, welded to the seat with a SeatWeld, unable to jump to leave the seat.

Repro: Add a bunch of seats to an empty baseplate, disable local character’s Seated state with game.Players.LocalPlayer.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Seated, false), and walk over the seats

19 Likes

Still not fixed ! I needed to disable sitting completely for a tool I was making, and had the same behavior. It would be nice if I can disable sitting in a neat way like this instead of making the character jump.

1 Like

This is still not fixed to this day.
unknown-48

1 Like

This bug still happens for server owned humanoids

1 Like

Needs to be fixed… makes working with certain situations a nightmare!

4 Likes

Still here… I’m a beginner in Humanoid and I’m just stuck since the humanoid I made always sit although it’s not supposed to.

Once again, this still doesn’t work. Will Roblox technicians ever see or care enough to actually fix this?

Still broken. Custom seats hooray!

Seats and VehicleSeats are now completely broken. Ignoring collision groups, state and events are not replicated, etc… How could Roblox have not notice that?

2 Likes

Can you give us any more details of what is broken? Is it only the issue described in the original post or something more?

1 Like

More. We are about to implement custom seats. Was something recently changed in Seat and VehicleSeat implementation? Or in Humanoid?

  1. Seats owned by the client are not replicating Occupant to the server correctly. Same thing for Humanoid.Seated. Seating is done via remote event on server. It was worse when we allowed to seat on client side (Server did not receive Seated event).
  2. Seats are ignoring CollisionGroupId of character’s parts when unseating. Plus UpperTorso and LowerTorso is forced to be collidable, so they are always colliding with mesh around the seat (Car) when exiting
  3. When unseated, calling Character:SetPrimaryPartCFrame to move the character has no effect (called on server). Maybe because character starts colliding with mesh?

Currently, we are destroying SeatWeld and manually detecting seat/unseat event, to get around the issues. But still, character is colliding with the car’s hitbox (UnionOperation, the only part that is CanCollide set to true. CGs are set correctly - to not collide)

3 Likes

Sure. Disabling the Seated HumanoidStateType on the server has no effect on the character. This wouldn’t be too bad except for two things: It therefore doesn’t work for NPC’s and it ruins the whole NEVER TRUST THE CLIENT concept. I’ve tested it using the script below and while it keeps the humanoid from entering the Seated State it doesn’t actually prevent the character from being attached to the seat. This sort of defeats the main purpose of preventing the player from entering this state and thus requires the use of creating custom seats.

Also, can someone tell me either a free file share service or a way to lengthen the amount of time I can use Gyazo for during a recording? I have a video but it’s too large to paste in directly and I can’t use Gyazo because it limits the time I can record video’s for to 6 seconds.

Still broken as described in the OP.

If you set the Seated HumanoidStateType to false, there is a frequent chance it’ll allow a player to sit in a seat anyway.

The only way to work around this is to force the player to jump when they sit in a seat, but this undermines the entire point of setting the Seated statetype to false - because it does nothing a decent amount of the time.

A fix for this should be coming in one of the next releases. It is being tested currently.

7 Likes

Got any date on when this fix will be released?
And will you post here once it’s fixed?

Can’t u literally just turn off the seats CanTouch property? I believe the seats use the default roblox .Touched events (bcz sometimes collisions can be unreliable, yk) so it should be done. It usually works for me, I mostly disable CanTouch for ProximityPrompt seats (so players have to press E and cant walk over to them) and it works. You need to call seat:Sit(player.Character:FindFirstChildOfClass(“Humanoid”)). It still works, but touch to sit will be disabled. Maybe make a folder called “seats”, put all the seats into it and use a script loop to disable can touch in every seat? Temporary workaround :wink:

You’re correct, that would stop you from entering the seats, but if seat collision detection is ever changed to something more intelligent in the coming years, your game is gonna have some fun.

Hi folks, thanks for your patience! Another fix has been deployed and enabled for this issue. It’s available in latest version of Studio.

  1. You should now be able to successfully disable seating for a local character/player using a LocalScript.
  2. For NPCs/remote characters, you should be able to disable seating using a server Script.

Please let us know if this fix works for you. Thanks again for waiting patiently for this fix!

5 Likes

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