Help with creating infinite chain tween

Hi. I need help making an infinite chain, that moves downwards forever. I’m bad at positions, region3, etc, so im really stuck. I’d really like some help on how I could make a chain tween downwards forever. I don’t want the entire script spoon fed to me, I just want to know some useful functions, events, etc to make this happen. Thanks.

You mean the change goes down straight down forever? Like it is just getting continually lower? What is the point of that? Well you could do a while true do loop, and set the goal position of the tween to the parts current position - Vector3.new(0,-100,0)

Tweening is the process of interpolating values within a given range, not a continous set. What you could do however is use body velocity and have it go in the direction you want it. This essentially tweens it every physics step (animates it from 1 position to the next one the physics engine thinks it should be)

No, its kind of hard to explain. I was originally going to attach a video that showcases an example, but it wouldn’t upload.

Could you try to explain with words that way we can understand more about the idea and we can help you more?

A chain that is descending from the sky, and moves downwards forever. It’s really hard to explain. It’s basically an illusion. It looks like an infinite chain that comes from the sky, and goes downwards forever. It’s not actually infinite, it’s just long enough so that the player cant see the end of the chain, so it looks like it’s going down forever. But, I need the chain to move, not just look infinite. I want the chain to descend downwards, without the actual top of the chain being visible to player.

1 Like

Oh yes I see, that actually sounds pretty cool. You could make a beam that has the image of a ray, but you probably want it to look more realistic. I would recommend splitting the chain into chunks. Maybe 100 stud segments, and put each chain segment in a model, and make sure to set the models primary part to one of the parts in the model.

local folder = --folder that holds all of the models of the chain

local lowestdistance = -1000 --how low the chain dips
local highestpoint =  1000 --high point

while wait() do
       for i, model in pairs(folderGetChildren()) do
              if model:IsA("Model") then
                     model:SetPrimaryPartCFrame(model:GetPrimaryPartCFrame - Vector3.new(0,-2,0))
                     if model.PrimaryPart.Position.X <= lowestdistance then
                            model:SetPrimaryPartCFrame(Vector3.new(0,highestpoint,0))
                     end
              end
       end
end