Background doesn't go away after telling it to

Its all in the title

Also there is a custom script made by Kaworu that turns things from screen gui into player gui because character auto loads is off

Local script

local background = script.Parent

for i,v in pairs(background:GetChildren()) do
	if v:IsA("TextButton") then
		v.Activated:Connect(function()
			print("click")
			game:GetService("ReplicatedStorage"):WaitForChild("ButtonEvent"):FireServer(v.Name)
			background.Visible = false
		end)
	end
end

Server script (I need to stop using WaitForChild so much)

local background = game:GetService("StarterGui"):WaitForChild("MenuSelect"):WaitForChild("Background")
local backgroundVisible = "joe mama"
local buttonEvent = game:GetService("ReplicatedStorage"):WaitForChild("ButtonEvent")
local players = game:GetService("Players")

buttonEvent.OnServerEvent:Connect(function(plr,name)
	print("recieve :)")
	plr:WaitForChild("leaderstats"):WaitForChild("Class").Value = name
	plr:LoadCharacter()
	plr.Character:WaitForChild("Humanoid").Died:Connect(function()
		task.wait(players.RespawnTime)
		plr:WaitForChild("leaderstats"):WaitForChild("Class").Value = "Choosing"
		plr:WaitForChild("PlayerGui"):WaitForChild("MenuSelect"):WaitForChild("Background").Visible = true
	end)
end)

Custom script made by Kaworu

local player = game.Players.LocalPlayer
for _, ui in pairs(game.StarterGui:GetChildren()) do
	local u = ui:Clone()
	u.Parent = player.PlayerGui
end

Oops figured it out reset on spawn was on smh