I have found a way to tween between two colours.
local tween = TweenInfo.new(0.2, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local tweenOn = ts:Create(Box, tween, {ImageColor3 = onColor})
tweenOn :Play()
How do I loop this tween?
Problem 1:
The Box Gui can be destroyed as its part of an inventory and it refreshes. There is an error "Can only tween objects in the workspace" when tweens are destroyed mid tween with normal GUI tweens. How could I avoid this?
Problem 2:
Since tweens are created with :Create, is there a possibility that stacking this could cause lag? Similar to connecting events and when you don't :Disconnect them.

3 comments
I see, my inventory adds new boxes with :Clone(), will I have to do something with boxes that were destroyed? Similar to :Disconnect() with events to avoid lag stacking?
Using :Destroy() will disconnect the events associated with the instance. In any case I would cleanup the box explicitly where possible.
cleanup? Is that a function?