I am making a game inspired by camping, but I have a huge problem with teleporting to different positions while you are seated. I have tried many solutions to fix this, but all of them don’t seem to work. First, I tried using seat:Sit(nil), but that didn’t really work well. Then I tried disabling the seats and then really quickly un disabling it. Almost worked, but instead, you flopped onto the ground and didn’t move. I tried making the character jump and not sit, but you would be spinning on the ground. Can someone give me a solution?
If you need to teleport the player while sitting, why not just teleport the seat? The player will come with.
I think thats what you are trying to do, but I’m honestly not sure what you mean by
but I have a huge problem with teleporting to different positions while you are seated.
Do you mean the player needs to teleport, or is not supposed to teleport?
If you’re wondering, I mean teleporting as character:MoveTo(pos) and not TeleportService. When you teleport your character, they will not move if they are seated. I am trying so hard to fix it, but all of my solutions won’t always work!
Try teleporting the player twice You start standing up when the game attempts to teleport you right? (that’s what happens in Natural Disaster Survival if you sit down when being teleported). First teleport makes the player stand up and the second one teleports them.
Then just move the seat, the player will come with you
If you’re trying to get the player to stand up before teleporting, perhaps the Humanoid.Sit property would help? If not try using Humanoid:ChangeState().
It works, sort of. It makes the person not sit, but the teleporting still doesn’t work
It works for most rides, but others don’t work.
Why do you need to teleport people around after they have already sat down anyway? Players are welded to seats, you aren’t supposed to teleport people around after they’ve sat. Workarounds for trying to do this are either unstable or hacky.
By the way: please try and minimise posts where possible. If you are just adding a short sentence, add it to the previous post. The DevForum is not a live chat room.
Perhaps teleporting using CFrames as Milennium1902 suggested would work?
If all else fails and you are trying to teleport the player in a sitting position, you might try this:
-Anchor the HumanoidRootPart
-Create an animation of the player in a sitting position, and play it with a high priority while looped.
-Break the weld/change states (you might not be able to use animations while doing this, not sure)
-Teleport the player using the HumanoidRootPart CFrame
Let me know if this works for you.
After some testing, the method outlined below does not work – the seat, for whatever reason, is still teleported to the destination of the teleport.
Previous Solution
I have had this issue before. To fix this, your player’s humanoid has a property called “Sit”.
game.Workspace.PlayerName.Humanoid.Sit = false
You may then teleport the player as necessary.
I am operating on the assumption that the behaviour of Humanoid.Sit
is identical to the behaviour two years ago, when I encountered this issue.
Hello, @Vrythex you may be able to do what YourBoiKdude said teleport the seat.
Just like this example.
Summary
script.Parent.ClickDetector.MouseClick:Connect(function(plr)
workspace.cairman.CFrame = CFrame.new(0.586, 0.57, 9.415) – teleport seat
wait(0.3)**
local char = plr.Character or plr.CharacterAdded:wait() --Var for Character
char.Humanoid.Sit = false – making the “LocalPlayer” Not be seated anymore
end)
This helped me rethink about solving the same problem. I just got rid of the seats and I think it works better.
Still, I think it should be ok to teleport people who are sitting - but with the current architecture one should forget about it probably.
A little late to the party here, but I have had to deal with this several times for cut scenes. Also, I can think of plenty of situations where you would want to do this. Here’s what I do…
- Clone the Seat as a backup before anything.
- While player is sitting, destroy the “Seat”. (just the seat, not the actual chair model).
- Teleport the player to new position.
- Clone the backup of the Seat and parent back to original location (if needed for later).
Note: Do not just destroy the Weld as it may make the seat unusable.
That’s it… Hope this helps!
I have something that does this in one of my games, mine is a proximity but all you need to do is change that proximity with whatever you’re using and it works,
local TeleportPart1 = script.Parent
local TeleportPart2 = game.Workspace.teleportabove ----just replace with ur part tumblewede
local player = game.Players.LocalPlayer
local tp = game.Workspace.invisholder --just replace with ur part tumblewede
script.Parent.ProximityPrompt.Triggered:Connect(function(plr) --replace prox with whatever
if plr.Character.HumanoidRootPart.Parent:FindFirstChild(“Humanoid”) then
plr.Character.HumanoidRootPart.CFrame = TeleportPart2.CFrame + Vector3.new(0, 5, 0)
TeleportPart2.CanTouch = false
wait(1)
TeleportPart2.CanTouch = true
end
end)