How would I make a player fall infinitely?

So in my game, I want the players to start falling down a hole while they all load. I have the cave models but I don’t know to make them repeat after I tween them until all players load. I have no idea how to even begin this so I looked this up but I didn’t see anything on this topic.

I just need to know how to make these repeat after I tween them:


Processing: Abyssal Descent :spider: - Roblox Studio 7_13_2023 12_43_00 PM.png…

~Edit:
I forgot to mention that players aren’t actually falling just on an invisible platform with a fall animation.

-Thanks!

1 Like

Try to have the hole mesh repeat itself when the player that’s closest to the bottom gets close to the end of the hole, or when they’re halfway into the hole. I’d go about doing magnitude checks and using the longest side (the side where the hole is) and use that to determine when to clone another hole mesh.

4 Likes

It’s pretty easy, you’ll just have to make a part that is on top, and one on the bottom. Invisible of course.
Detect when the bottom one is touched

script.Parent.Touched:Connect(function(p)
if p.Parent:FindFirstChild("Humanoid") then
p.Parent:MoveTo(workspace.TopPart.Position)
end
end)

And teleport them to the one on top!
And that’s it, it will seem like an infinite loop.

1 Like

Touched have inconsistent behaviour, so better will be using loops like while, which will check altitude of player, and if it lower than X, then teleport player by N studs higher.

I forgot to mention that players aren’t actually falling just on an invisible platform with a fall animation

players aren’t actually falling, I just want the illusion by moving the tunnel up.

Okay, I tried everything that people mentioned and I came up with something like this:

local cave1 = workspace.Cave1
local cave2 = workspace.Cave2
local cave3 = workspace.Cave3
local c1p = cave1.Position
local c2p = cave2.Position
local c3p = cave3.Position


local TweenService = game:GetService("TweenService")
local changes = {
	Position = Vector3.new(-4.919, 481.571, 126.238)
}

local function falling()
	repeat
		TweenService:Create(cave1, TweenInfo.new(0.5), {Position = Vector3.new(-4.919, 481.571, 126.238)}):Play()
		TweenService:Create(cave2, TweenInfo.new(0.5), {Position = c1p}):Play()
		TweenService:Create(cave3, TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut), {Position = c2p}):Play()
		task.wait(0.5)
		cave1.Position = c1p
		cave2.Position = c2p
		cave3.Position = c3p
	until not true
end

falling()

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