What order do the 6 TweenInfo.new arguments go in?
Always duration, EasingStyle, EasingDirection, repeatCount, reverses and delayTime, in that exact order; TweenInfo.new does not accept named arguments like a table constructor, so swapping the position of two values of the same type, like repeatCount and delayTime, throws no error but produces a completely different animation than expected.
What is the difference between EasingDirection In, Out and InOut?
In applies the chosen curve right at the start of the motion, so the animation begins slow and speeds up; Out mirrors the curve to the end, so it starts fast and slows down near the final value; InOut splits the curve at the midpoint, half In and half Out, producing a motion that eases at both ends.
What exactly does repeatCount 2 with reverses true do?
repeatCount 2 means 2 extra cycles after the first one, 3 total cycles; reverses true adds a return phase to each of those cycles, so the animation plays forward-and-back three times in a row, 6 full phases, before stopping for good.
Why doesn't my Tween animate anything even with no console error?
Because TweenService:Create() only builds the Tween object, it does not start the animation; without calling :Play() on the returned instance, the object sits ready but never fires, and since it is not a syntax error, the console shows nothing wrong.