Snapping ui to the corrent position

hello guys, I Recentlly wanted to make a crafting system where it rolls a bit and shows you if you failed or not (image below).

but the problem is, I need it to snap to the selected frame so the resoults match with the actual resoults and it looks good. Here is my current code for it:

CanOpen = false

	if #PetsSelected <= 0 then return end
	if CurrentPet == nil then return end
	
	local Resoult = replicatedStorage.Events.Pets.CraftReq:InvokeServer("Check1", PetsSelected, CurrentPet)
	
	print(Resoult)
	
	if Resoult then
		ResetSideFrame()

		Frame.Visible = false
		CraftingAnimFrame.Visible = true
		ContainerFAF.CanvasPosition = Vector2.new(0, 0)
		FrameFocusModule.FocusFrame(CraftingAnimFrame, false)
		
		for i, v in pairs(ContainerFAF:GetChildren()) do
			if v:IsA("Frame") and v.Name ~= "Frame" then
				v:Destroy()
			end
		end
		
		local WinningPrc = 100 / PetsRequired * #PetsSelected.."%"
		local FailPrc = 100 - (100 / PetsRequired * #PetsSelected).."%"
		
		for i = 1, 37 do
			local TemplateChoosen = math.random(1, 5)
			
			if TemplateChoosen <= #PetsSelected then
				TemplateChoosen = ShinyTemplate:Clone()
				TemplateChoosen.Chance.Text = WinningPrc
			else
				TemplateChoosen = FailTemplate:Clone()
				TemplateChoosen.Chance.Text = FailPrc
			end			
			
			if i < 19 then
				TemplateChoosen.LayoutOrder = i
			else
				TemplateChoosen.LayoutOrder = i + 1
			end
			
			TemplateChoosen.Parent = ContainerFAF
		end
		
		local WinningFrame
		
		if Resoult == "Success" then
			WinningFrame = ShinyTemplate:Clone()
		else
			WinningFrame = FailTemplate:Clone()
		end
		
		WinningFrame.Parent = ContainerFAF
		WinningFrame.LayoutOrder = 19
		WinningFrame.Chance.Text = "Winning Frame"
		WinningFrame.Name = "WinningFrame"
		
		
		ContainerFAF.CanvasSize = UDim2.new(0, 0, 0, ContainerFAF.UIListLayout.AbsoluteContentSize.Y)
		
		local Pos = ContainerFAF.UIListLayout.AbsoluteContentSize.Y / 2
		
		--CraftingAnimFrame.RollingScreen.Container.CanvasSize = UDim2.new(0, 0, 0, CraftingAnimFrame.RollingScreen.Container.UIListLayout.AbsoluteContentSize)
				
		local NewTween = TweenService:Create(ContainerFAF, TweenInfo.new(2.4, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {CanvasPosition = Vector2.new(0, Pos + math.random(-50, 50))})
		
		NewTween:Play()
		NewTween.Completed:Wait()
				
		local NewTween2 = TweenService:Create(ContainerFAF, TweenInfo.new(0.2, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {CanvasPosition = Vector2.new(0, Pos)})
		NewTween2:Play()
		
		shakeCamera(0.5, 1)
		
		task.wait(1.5)
		
		CraftingAnimFrame.Visible = false
		PetsSelected = {}
		CurrentPet = nil
	end
	
	task.wait(1)
	CanOpen = true

(dont mind bad code for now, I will optimize it once It will actually work)

The arrow pointing thingy that you see on the image is an image label outside of scrolling frame (thats the way I made this rolling system, it makes some frams and uses scrolling frame to seem like it rolls)

btw, taking the absolutesize or position doesnt work because it needs to be the same on every device and I tested it (its not)