I know that there is already a feature request for this, but what I am requesting uses a method that is much simpler that that one. They were asking for something called compositing, whereas I am only asking for a property that would act as a multiplier for the transparency properties of each instance.
As a Roblox developer, it is currently too hard to fade entire ScreenGuis out at once. If I want all of the contents of a ScreenGui to fade out, it seems unnecessary that I have to loop through all of the descendents in a ScreenGui and create a tween for each instance, and save the transparency of each instance to a table so that I can tween it back later. Adding a multiplier property would save a lot of time and effort.
How it would work is where the renderer figures out the transparency of an element, it would multiply the transparency property (BackgroundTransparency, TextTransparency, ImageTransparency, TextStrokeTransparency, etc.) by the ScreenGuis transparency multiplier property.
Examples:
ScreenGui.TransparencyMultiplier = 1 → Transparency is unchanged
ScreenGui.TransparencyMultiplier = 0.5 → All elements have their transparency multiplied by 0.5
ScreenGui.TransparencyMultiplier = 0 → Completely invisible
What I am asking for is what you see on the left side.
If Roblox is able to address this issue, it would improve my development experience because making fade effects is such a time-consuming process that could easily be avoided with the solution I proposed.