Help needed with overhead GUI

Hello there Devfourm. Im trying to script a overhead and right now if one player has it and another player that has permission joins the GUI will go to the other person.

Script:

local DevRank = 254 
local BoosterRank = 1 
local GroupID = 5288573
local BoosterGroupID = 11490168


local gui = game.ReplicatedStorage:FindFirstChild("ImageGui")
local gui2 = game.ReplicatedStorage:FindFirstChild("ImageGui2")
local image = gui.ImageLabel

game.Players.PlayerAdded:Connect(function(Player)
	Player.CharacterAdded:Connect(function(Character)

		if Player:IsInGroup(BoosterGroupID) and Player:GetRankInGroup(BoosterGroupID) >= BoosterRank then 
			gui:Clone()
			gui.Parent = Character.Head
			gui.Adornee = Character.Head
			print("booster")
				if Player:IsInGroup(GroupID) and Player:GetRankInGroup(GroupID) >= DevRank then 
				gui2:Clone()
				gui2.Parent = Character.Head
				gui2.Adornee = Character.Head
				print("dev and booster")
			elseif Player:IsInGroup(GroupID) and Player:GetRankInGroup(GroupID) >= DevRank then 
				gui2:Clone()
				gui2.Parent = Character.Head
				gui2.Adornee = Character.Head
				print("dev")
		print("done and stuf")
			end
		end
	end)
end)

I don’t understand what you are trying to say. So, you are saying that if someone has is a Booster and another person is a Booster they will be stuck with the player that is also a Booster?

:Clone() returns the clone of a object so you need to declare a variable for it

local clonedgui = gui:Clone()

Then you would parent the gui using ‘clonedgui’ instead of ‘gui’

the first person will loose his booster and then the second guy will get it

like this?

local DevRank = 254
local BoosterRank = 1
local GroupID = 5288573
local BoosterGroupID = 11490168

local gui = game.ReplicatedStorage:FindFirstChild(“ImageGui”)
local gui2 = game.ReplicatedStorage:FindFirstChild(“ImageGui2”)
local image = gui.ImageLabel

game.Players.PlayerAdded:Connect(function(Player)
Player.CharacterAdded:Connect(function(Character)

	if Player:IsInGroup(BoosterGroupID) and Player:GetRankInGroup(BoosterGroupID) >= BoosterRank then 
		local clonedgui = gui:Clone()
		gui.Parent = Character.Head
		gui.Adornee = Character.Head
		print("booster")
			if Player:IsInGroup(GroupID) and Player:GetRankInGroup(GroupID) >= DevRank then 
			local clonedgui2 = gui2:Clone()
			gui2.Parent = Character.Head
			gui2.Adornee = Character.Head
			print("dev and booster")
		elseif Player:IsInGroup(GroupID) and Player:GetRankInGroup(GroupID) >= DevRank then 
			local clonedgui2 = gui2:Clone()
			gui2.Parent = Character.Head
			gui2.Adornee = Character.Head
			print("dev")
	print("done and stuf")
		end
	end
end)

end)

No you would do

local clonedgui = gui:Clone()
clonedgui.Parent = Character.Head
clonedgui.Adornee = Character.Head
-- and the same for clonedgui2