TextLabel's text not changing despite no errors

The textlabel in the frame does not change text even though it should, it gave no errors in the output.

Script:

local AdmissionGui = game.ServerStorage:WaitForChild("Admissions"):Clone()
local EmpireGui = game.ServerStorage:WaitForChild("Empire"):Clone()
local Agency = game.ServerStorage:WaitForChild("SpyAgency"):Clone()
local UsernameGui = game.ServerStorage:WaitForChild("Username"):Clone()

local AdmissionGuiClone = AdmissionGui:Clone()
local EmpireGuiClone = EmpireGui:Clone()
local AgencyGuiClone = Agency:Clone()
local UsernameGuiClone = UsernameGui:Clone()

AdmissionGuiClone.Parent = game.ServerStorage
EmpireGui.Parent = game.ServerStorage
AgencyGuiClone.Parent = game.ServerStorage
UsernameGuiClone.Parent = game.ServerStorage

local SpyAgency = 6389701
local Empire = 6390261
local Admission = 6973181

local PlayerService = game:GetService("Players")

PlayerService.PlayerAdded:Connect(function(plr)
	plr.CharacterAdded:Connect(function(char)
		
		local EmpireRoleName = plr:GetRoleInGroup(Empire)
		local AgencyRoleName = plr:GetRoleInGroup(SpyAgency)
		local AdmissionRoleName = plr:GetRoleInGroup(Admission)
		
		AdmissionGuiClone.Parent = char.Head
		EmpireGui.Parent = char.Head
		AgencyGuiClone.Parent = char.Head
		UsernameGuiClone.Parent = char.Head
		
		if plr:IsInGroup(Empire) then              --:GetRoleInGroup
			EmpireGuiClone.Frame.TextLabel.Text = (EmpireRoleName)
			print("test1")
		else
			EmpireGuiClone.Frame.TextLabel.Text = "Foreigner"
			print("test2")
		end
		
		if plr:IsInGroup(SpyAgency) then
			AgencyGuiClone.Frame.TextLabel.Text = (AgencyRoleName)
			print("test3")
		else
			AgencyGuiClone:Destroy()
			print("test4")
		end
		
		if plr:IsInGroup(Admission) then
			AdmissionGuiClone.Frame.TextLabel.Text = (AdmissionRoleName)
		else
			AdmissionGuiClone:Destroy()
			print("test6")
		end
		
		UsernameGuiClone.Frame.TextLabel.Text = (plr.Name)
		print("test7")
	end)	
end)

How BillBoardGui goes:
BillBoardGui
Frame
TextLabel

In the first four (to eight) lines, I think you accidentally cloned it twice:

local AdmissionGui = game.ServerStorage:WaitForChild("Admissions"):Clone()
local EmpireGui = game.ServerStorage:WaitForChild("Empire"):Clone()
local Agency = game.ServerStorage:WaitForChild("SpyAgency"):Clone()
local UsernameGui = game.ServerStorage:WaitForChild("Username"):Clone()

local AdmissionGuiClone = AdmissionGui:Clone()
local EmpireGuiClone = EmpireGui:Clone()
local AgencyGuiClone = Agency:Clone()
local UsernameGuiClone = UsernameGui:Clone()

Just realized that, let me remove that.

Fixed, problem still presists.

  1. You wrote EmpireGui in several places where you meant EmpireGuiClone
  2. You’re reusing the same objects from character to character – you should move your Admission/Empire/etc./GuiClone creation inside of the CharacterAdded function. No need to parent them to ServerStorage first.