I can reproduce this consistently by basically spamming A and D, I am on Windows 11. Here is me using the on-screen keyboard only (no physical keyboard used) and the seat steer (and maybe throttle, untested) alternates between 0 and 1 or -1
This thread you’re posting on has to do with the seat becoming disconnected after getting into it and thus not accepting input. The bug you’re talking about is the oscillation bug. Two separate bugs, two separate threads.
The setting of network ownership fixes the disconnection bug, not the oscillation bug.
hey, uh, did this fix happen to break sitting entirely?
i would post a bug report on this but i can’t because no one can be upgraded to regular anymore.
anyway, seats and scripts that force the player to sit no longer work. players just… can’t sit. it doesn’t happen.
this appears to have fixed it!
this occurred on multiple places, as multiple users were experiencing the issue, so it appears it was site-wide. do you still want me to dm you the place where i first encountered this bug?
bumb, im still experiencing this bug, i clone the vehicle from RepStore to a folder in the workspace and then use :Sit() but the player cant controll the vehicle. If the player jumps out of the seat the player cant enter it again by walking over the seat
I think I found a solution that fixed the problem for me. In a local script, I waited for the vehicle to load using ContentProvider:PreloadAsync({VehicleSeat}). After it loads, I fire a RemoteEvent to the server where a server script will call VehicleSeat:Sit(Humanoid). Here is the code:
In my game, I put a RemoteEvent name IsLoaded inside the VehicleSeat. Sometimes it didn’t finish loading the RemoteEvent when I called it so I used WaitForChild to fix that.
to anyone who still relies on vehicleseat, read this
roblox moved away from having “use-case” classes years ago because it goes against game engine design principles
in 2008, we had glue, capture flags, skateboards, vehicleseats, build tools, hinges not made using scripts but hard-coded into the engine as classes Instance.new(“SkateboardPlatform”)
the only supported modern class in this category would be the proximityprompt
but that was added in order to make ClickDetectors redundant because they caused a bad user experience on mobile (you can’t tell what is clickable on mobile with clickdetectors)
in modern roblox, just like in any other game engine, the classes are puzzle pieces that make up something functional when scripted
vehicleseat is the only one of those 2008 examples that isn’t deprecated because of it’s continued use in games, and i don’t expect roblox to continue fixing it, it literally uses deprecated weld objects to attach people to the seat
i think someone made a VehicleSeat2 chassis that is scripted and offers more control, maybe look into it
expect clickdetector and vehicleseat to deprecate eventually
Recreating the problem can be tricky since it rarely happens. It usually occurs when a player joins the game, and it might be connected to high ping or server (client?) lag, but I’m not entirely sure.
There’s also another issue (though I’m not entirely sure if it qualifies as a bug), where occasionally, when a player is automatically seated upon joining, it disrupts the seating animation.
Broken:
How it should look like:
While writing this message, the VehicleSeat didn’t properly seat my humanoid. When this bug occurs, the HUD doesn’t show up, and I cannot drive the ATV but sitting animation is being played. (When this happened there were no errors/warnings in the console at all.)
I realize this is a very old topic, but I wanted to bump it for anyone else who stumbles on this in the future.
I came across this issue in a project I was working on. This reply helped, but I found using Humanoid.Seated to be unreliable. Sometimes this event does not fire if you directly transition the humanoid from one seat to another.
I found watching Humanoid.SeatPart to be a much better alternative as it doesn’t fire false positives and also properly handles the direct transition problem I outlined above:
self.humanoidSeatedConn = self.humanoid:GetPropertyChangedSignal("SeatPart"):Connect(function()
local active = not not self.humanoid.SeatPart
self:OnHumanoidSeated(active, self.humanoid.SeatPart)
end)