How to move parts until it perfectly lined with the line

here take a look for what i mean

External Media

so basically i want the orange part is perfectly lined with the rope even if the white part changes position

I think you can just use CFrame for this.

local orangePart = YOUR_ORANGE_PART
local rope = YOUR_ROPE

rope.Changed:Connect(function()
    orangePart.CFrame = rope.CFrame
end)

no, you cant get the rope’s cframe

In this case you can use the CFrame’s LookAt property.

local RunService = game:GetService("RunService")
local LinesPart = LinePart
local RopesPart = RopePart
local OrangeLine = OrangeLine

RunService.Heartbeat:Connect(function()
    OrangeLine.CFrame = CFrame.new(APosition,LinesPart.Position)
end)

What this code would do is set the lines Position wherever you wish and make it face in the direction you insert in the second argument. However, this assumes that the parts diagonal is the front face as this CFrame property only points the front face to the dedicated position. In addition to this, we don’t have enough information about your code to give an accurate answer. But hope this helps.

sadly i already do that and that doesn’t work