Tweenservice play on spawn dosen't work?

Hello there once again I’m in need of some help on scripting. I’m at the moment trying to make a Tweenservice that plays whenever the player spawns. The script doesn’t give me any output and as well as no errors. Thanks for reading I hope someone can help me.

local player = game:GetService(“Players”)
local Tweenservice = game:GetService(“TweenService”)
local frame = script.Parent

wait(0.01) – For later adjustments.

local function onCharacterAdded(character)
frame.BackgroundTransparency = 0
Tweenservice:Create(
frame,
TweenInfo.new(2),
{BackgroundTransparency = 1}
):Play()

end

player.PlayerAdded:Connect(onCharacterAdded)

PlayerAdded fires when a player joins the game, not when their character loads/respawns instead your script should look like this:

local Players = game:GetService("Players") 

function PlayerAdded(player)
	local function CharacterAdded(char)
		--code
	end
	CharacterAdded(player.Character or player.CharacterAdded:Wait())
	player.CharacterAdded:Connect(CharacterAdded)
end

for i, player in pairs(Players:GetPlayers()) do 
	PlayerAdded(player)
end
Players.PlayerAdded:Connect(PlayerAdded)

Although to avoid complexity, you can take advantage of StarterCharacterScripts which runs the script every time a player character loads(inside their character):

local Players = game:GetService("Players")

local Character = script.Parent 
local Player = Players:GetPlayerFromCharacter(Character)

From the variable frame I assume your script runs inside a UI, if that UI is a client UI you can apply the following:

local Players = game:GetService("Players")
local Tweenservice = game:GetService("TweenService")

local frame = script.Parent
local Player = Players.LocalPlayer

task.wait(0.01) -- For later adjustments.

frame.BackgroundTransparency = 0
Tweenservice:Create(frame,TweenInfo.new(2),{BackgroundTransparency = 1}):Play()

and make sure the UI ResetOnSpawn property is set to true

2 Likes

Thanks a lot! The script worked just as I want it to work!

1 Like