Make R6 NPC look at parts and preferably be able to go back to its normal default state

I’m trying to make a function that makes an NPC look at a destination part, I’ve tried a bunch of tutorials but nothing seems to be working, I just need to get the end C0 for the neck but I nothing I’ve tried has worked. It would also be preferable if it can reset back to default so it doesn’t interfere with animations and other things that occur in the character later on. Here’s the code I currently have but it doesn’t make the head look up to the part above it, it just looks slightly to the left.

local NeckSave = character.Torso.NeckSave.Value

		-- Create a CFrame from the vectors
		local targetCFrame = NeckSave * CFrame.Angles(0,0,(((character.Head.Position-destination.Position).Unit):Cross(character.Torso.CFrame.LookVector)).Y)

		-- Set the neck C0
		local goalC0CFrame = (targetCFrame)
		
		local goal = {}
		goal.C0 = goalC0CFrame
		
		local tween = TweenService:Create(character.Torso.Neck, TweenInfo.new(speed,Enum.EasingStyle.Quad,Enum.EasingDirection.InOut), goal)
		tween:Play()

Tweenservice dont support changing values, so try to remove the tween and use a loop

Can you elaborate on what you mean by this, please

if you try to change a value in a tweenservice

local Variable = 3

local tween = Tweenservice:Create(Variable, TweenInfo.new(), goal
tween:Play() --the Variable is 3

Variable = 10
tween:Play() --the Variable is still 3

this wont work

This isn’t my issue though, I need to get the right C0 to tween to. I can tween C0 because its a property of a class. I need help finding the right C0 to tween to though. I know it works because the head is moving its just not moving to the right orientation.