How will I change the position of purple part such that it is always touching the bottom of bottle?

Currently, I am changing Y co-ordinate but then I noticed my animation tilts it which makes it go a bit off-track. Can I fix this somehow?
This gif describes the issue better than I did. The Humanoid scale decreases after the part’s size decreases.

Code

for i=1,10 do
		Tool.Handle.Potion.Position-=Vector3.new(0,.034,0)
		wait(.2)
	end

Why don’t you just weld the part to the bottom of the bottle?

It is welded with the bottle. When I tween the size of potion part, yk it comes to centre of the size earlier. That’s why I tween its position too.

    T:Create(Tool.Handle.Potion,TweenInfo.new(2),{Size = Vector3.new(0,.51,.51),CFrame = Tool.Handle.CFrame * CFrame.new(0, -.34, 0)}):Play()

this is my updated code. It keeps the purple part aligned to bottle but it doesn’t move it downwards so that it keeps sticking with bottom as its size decreases. .34 is half of Y size of potion part(purple) It functions the same way as it did without changing cframe property. How will I change its position such that it keeps touching the bottom of that bottle.

i think based on part position perspective it will always go down but not the rotated expected down way, i think there’s some function called “world root point” or something like that, it can help you idk

Hmm, I don’t know much about it… I’ll research a bit, if I don’t find it I will stick with transparency.