Apologies if this is a stupid question, I'm new to Lua coding, however when I touch my brick, the background transparency VALUE changes as it should, however the GUI does not appear, despite when looking at the value in testing being gradually changed to 0. Apologies also if the code is a bit messy.
function onTouched(player) --Enables when brick is touched.
local parent = player.Parent
local stageGui = game.StarterGui.Stage
if game.Players:GetPlayerFromCharacter(parent) then --Makes sure a player touched it.
if game.Players[player.Parent.Name].leaderstats.Stage.Value == 0 then --Checks if Stage (leaderstat value) is 0.
stageGui.Welcome.BackgroundTransparency = 0.9 --Gradually Changes the Transparency of the GUI.
wait(0.1)
stageGui.Welcome.BackgroundTransparency = 0.7
wait(0.1)
stageGui.Welcome.BackgroundTransparency = 0.5
wait(0.1)
stageGui.Welcome.BackgroundTransparency = 0.3
wait(0.1)
stageGui.Welcome.BackgroundTransparency = 0
wait(4)
stageGui.Welcome.BackgroundTransparency = 1 --After 4 seconds make the GUI invisible.
end
end
end
script.Parent.Touched:connect(onTouched)
Nothing appears in the output.

4 comments
This is where remote functions and events come into play, take a look at this resource: https://developer.roblox.com/en-us/articles/Remote-Functions-and-Events
I do not know if this is true or not, but it may be because you listed "parent" meaning that the game might become confused and stop working.
change local stageGui = game.StarterGui.Stage to player.PlayerGui.Stage
parent is a code part, it jumps out of the script to whatever the script is in, the more parents, the higher up the explorer it goes in the >< open areas, like frame > script, script.Parent.Parent means it would go to the frame, script.Parent = text button