When I remove a player from either
A) A seat
or
B) A custom seat, consisting of a normal part, then welding the characters root part to it, and setting Humanoid.Sit = true
By destroying the weld and then setting the CFrame of the characters root part, there’s about an 80% chance the character will enter a trip state and fall flat on the ground for a few seconds with no obvious reason. Is there a reliable way to prevent this?
There’s always the option of disabling aHumanoidStateType, whether temporarily or permanently. I think the state for this case specifically is FallingDown.
I’m not quite sure if this would solve the issue necessarily, but it should. Give it a try.
Sorry to bother you again, but was just wondering if it was the same issue you were expecting? Disabling the Humanoid Fall state creates quite a few complications, so any other solutions would be really appreciated
Try briefly anchoring the character’s HumanoidRootPart before removing the seat weld to prevent physics from occurring and then immediately unanchoring it once they have been disconnected/positioned. This should prevent the character from being knocked out when they stop sitting and it should be seamless.
Unfortunately this doesn’t seem to work. I kept the HumanoidRootPart anchored before the weld was destroyed, then for half a second after moving it, and when it unanchored it performed identical behavior.
I think the behavior is purely dependent on whether the humanoid is lowered onto completely flat ground or not, but I’m still not sure how to get around that. Starting to wonder if this is either a bug with Humanoids or something to add as a feature request for them.
My best guess after reading through this is to make humanoid.sit = false to make them stand up, remove the weld, have humanoid.jump = true, a wait(), then adjust its CFrame. (or maybe in some similar order…)
What I’ve noticed in the past with an old game of mine is when HumanoidRootPart is anchored, is welded. or one of the two are disabled then CFrame is adjusted almost instantly without wait() someplace, it causes the Character to trip onto the ground.