Trouble with UI Tweening

Hey. So, I’ve been working on an arrow that increases in size when you hover over it and goes back to its original size when the mouse goes off. Here’s the script:

local tweenServ = game:GetService("TweenService")

local biggify = tweenServ:Create(script.Parent, TweenInfo.new(0.5, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0.17,0,0.17,0)})
local normalify = tweenServ:Create(script.Parent, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0.15,0,0.15,0)})

script.Parent.MouseEnter:Connect(function()
	biggify:Play()
	normalify:Cancel()
	script.sound:Stop()
	script.sound.PitchShiftSoundEffect.Octave = 1
	script.sound:Play()
end)

script.Parent.MouseLeave:Connect(function()
	normalify:Play()
	biggify:Cancel()
	script.sound:Stop()
	script.sound.PitchShiftSoundEffect.Octave = 0.7
	script.sound:Play()
end)

The problem is if you move your mouse very fast BEFORE any of the tweens finish, it stays the same size instead of moving to the new size. If you don’t understand, here’s a video:

I know its possible to pull off something like this pretty smoothly. A good example is Evade’s menu screen.
Please help!

I think this would work better and fix it

script.Parent.MouseEnter:Connect(function()
	tweenServ:Create(script.Parent, TweenInfo.new(0.5, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0.17,0,0.17,0)}):Play()
	script.sound.PitchShiftSoundEffect.Octave = 1
	script.sound:Play()
end)

script.Parent.MouseLeave:Connect(function()
	tweenServ:Create(script.Parent, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0.15,0,0.15,0)}):Play()
	script.sound.PitchShiftSoundEffect.Octave = 0.7
	script.sound:Play()
end)
1 Like

Can’t believe that fixed it. i used to do that years ago; it didn’t work for some reason Thanks a lot!