CFrame.new(position,position+part.CFrame.LookVector) should work
if it’s oriented wrong still, try this: CFrame.new(position,position+part.CFrame.LookVector,part.CFrame.UpVector)
local function flight(pos)
local tween = ts:Create(butterfly.PrimaryPart, TweenInfo.new(5, Enum.EasingStyle.Linear), {CFrame = CFrame.new(pos,pos+butterfly:GetPivot().LookVector,butterfly:GetPivot().UpVector)})
tween:Play()
tween.Completed:Wait()
end
Okay so bassically my script is the brain for a butterfly. This function controls is called when he flys to a flower.
For some reason the butterfly keeps flying to 0,0,0
Pos represents the position of the flower and is correct ( I did a print )
Oh I read your post again and it seems like you suggested I change the orientation after the butterfly has already flied to the flower. The entire point of maintaining the orientation is because before the function I orientate the butterfly in the direction of the flower so I want the butterfly to keep being in the direction of the flower while its flying (or tweening)
I know, but lookAt gives it both a position and a look direction, which would be the new position and the new position+the way it was already facing. The upvector is optional but if you use it, don’t add the position to it, that will break the orienting.
And for the record, I’m sure doomed was just trying to be helpful, I got no bad vibes from him.