Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

The transparency of the frame changes twice! What to do?

How do I change the transparency outside the frame?

Code:

	for i,v in pairs(game.Players:GetPlayers()) do
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.9
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.8
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.7
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.6
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.5
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.4
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.3
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.2
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.1
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0
	wait(5)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.1
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.2
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.3
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.4
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.5
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.6
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.7
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.8
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.9
	wait(0.1)
	v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 1
	end

Transparency changes for all players twice. (If two players) Help please

1 comment

0

Most likely because you're using a normal script. Try changing it to a localscript instead.

1 answer

✓ Accepted answer

This is because you are looping through players, so it will continue to loop through your code per player it find. You should really be using a LocalScript and be using a function. Also, to make it easier instead of continuously typing out your transparency, use a loop to determine when it should begin/stop.

-- [[ SERVICES ]] --

Players = game:GetService('Players')

-- [[ VARIABLES ]] --

Player = Players.LocalPlayer

-- [[ MAIN SCRIPT ]] --

function transparencyStuff()
	local Shadow = Player.PlayerGui:WaitForChild('ScreenGui').Shadow

	repeat wait()
		Shadow.BackgroundTransparency = Shadow.BackgroundTransparency - .05
	until Shadow.BackgroundTransparency <= 0 -- wait until fully visible
	wait(5)
	repeat wait()
		Shadow.BackgroundTransparency = Shadow.BackgroundTransparency + .05
	until Shadow.BackgroundTransparency >= 1 -- wait until not visible
end

-- [[ CONNECTIONS ]] --

wait(5) -- wait for however long before transparency happens
transparencyStuff()

This discussion is preserved as it was. New answers, comments, and votes are closed.