Would be possible with animations for your items & controling the currently played frames.
Let's say you have for eash item a 10 frames animation ( fading in )
Frame 1 - nothing visible, frame 10 - all visible
On opening the interface you would animate the items one by one. As default they would all have both first and last frame set to the 1 frame.
Then you would animate first item by setting first frame to 1 and last frame to 10. The 10th frame itself would be containing a cript which would be setting the first frame to 10 and also the last frame to 10.
This script would also have to check the items table if this item is the last one or not. If not you start animating the next one.
On hiding the interface you would set all the items back to first 1, last 1 frame.
currentItem = 1
if #(game.CurrentCharacter.Items) > 0 then
ActiveAnimations[items[currentItem]:getName()].AnimationfirstFrame = 1
ActiveAnimations[items[currentItem]:getName()].AnimationLastFrame = 10
end
10th frame action:
ActiveAnimations[items[currentItem]:getName()].AnimationfirstFrame = 1
0
ActiveAnimations[items[currentItem]:getName()].AnimationLastFrame = 10
if #(game.CurrentCharacter.Items) > currentItem then
currentItem = currentItem + 1
ActiveAnimations[items[currentItem]:getName()].AnimationfirstFrame = 1
ActiveAnimations[items[currentItem]:getName()].AnimationLastFrame = 10
else
currentItem = 1
end
You could also use the worflow function to get the code shorter & nicer.
function setAnimFrames(ani, n1, n2)
ActiveAnimations[ani].AnimationFirstFrame = n1
ActiveAnimations[ani].AnimationLastFrame = n2
end
setAnimFrames(game.CurrentCharacter.Items[currentItem]:getName(), 1, 1)
Hiding the interface:
for i =1, #game.CurrentCharacter.Items do
setAnimFrames(game.CurrentCharacter.Items[i]:getName(), 1, 1)
end
Untested, just a thought. If you could animate the mask that would be the easier solution.
Edit: Maybe you could also ( if the interface is a black bar ) use a black tile animations put over the items itself. Let's say 10 slots = 10 animations. You would just play the first animation and each of the animation on the last frame would triggers the next one. Or even one big animation block including all the chunks. Just played once on the opening.