Overhead Script Not Working


local Data = require(script.Parent)

game.Players.PlayerAdded:Connect(function(plr)
	plr.CharacterAdded:Connect(function(char)
		
		
		for i,r in pairs(Data.Ranks) do
			if plr:GetRankInGroup(Data.GroupID) == r.ID then
			script.Username.TextLabel.Text = '['..r.ShortName..'] '..plr.Name
				script.Rank.TextLabel.Text = '['..r.FullName..']'
				end
		end
		
		local Regiments = {}
		
		for i,v in pairs(Data.Regiments) do
			if plr:IsInGroup(v.ID) then
				table.insert(Regiments,v) 
			end
		end

		if #Regiments > 1 then
			local pstring = Regiments[1].ShortName


			for i=2,#Regiments do
				pstring = pstring..' - '..Regiments[i].ShortName
				script.Regiment.TextLabel.Text = '['..pstring..']'
				script.Regiment.TextLabel.TextColor3 = Color3.fromRGB(0, 0, 0)

			end

		elseif #Regiments == 1 then

			script.Regiment.TextLabel.Text = ''..Regiments[1].ShortName..' | '..plr:GetRoleInGroup(Regiments[1].ID)
			script.Regiment.TextLabel.TextColor3 = Regiments[1].Color


		else

			script.Regiment.TextLabel.Text = "Divisionless"

		end
		
		local clone = script.Username:Clone()
		clone.Parent = char.Head
		local clone2 = script.Regiment:Clone()
		clone2.Parent = char.Head
		local clone3 = script.Rank:Clone()
		clone3.Parent = char.Head
		local clone3 = script.Special:Clone()
		clone3.Parent = char.Head
		
		local clone = script.Username:Clone()
		clone.Parent = char.Head
		local clone2 = script.Regiment:Clone()
		clone2.Parent = char.Head
		local clone3 = script.Rank:Clone()
		clone3.Parent = char.Head
		local clone3 = script.Special:Clone()
		clone3.Parent = char.Head
		
		local GamepassID = 3265754
		game.Players.PlayerAdded:Connect(function(player)
			if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(player.UserID, GamepassID) then
				clone3.TextLabel = "[CLEARED]"
				clone3.TextLabel.TextColor = Color3.fromRGB(0, 255, 17)
			end
		end)
	end)
end)


return Tags

This is my overhead script, not the full part. If you go down you will see something about MarketPlaceService, I want it when the player purchases a gamepass. The overhead text will change, but it is not.
(THIS IS NOT MY SCRIPT, I JUST WANT TO MODIFY IT)

The reason why it is not working is because that particular section is nested under 2 other Connect events:

game.Players.PlayerAdded:Connect(function(plr)
	plr.CharacterAdded:Connect(function(char)
-- Lots of stuff
		local GamepassID = 3265754
		game.Players.PlayerAdded:Connect(function(player)
			if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(player.UserID, GamepassID) then
				clone3.TextLabel = "[CLEARED]"
				clone3.TextLabel.TextColor = Color3.fromRGB(0, 255, 17)
			end
		end)

Obviously there is never going to be a further PlayerAdded event after the CharacterAdded event, so move your GP check into the existing PlayerAdded event:

game.Players.PlayerAdded:Connect(function(plr)
	local GamepassID = 3265754
	if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(player.UserID, GamepassID) then
		clone3.TextLabel = "[CLEARED]"
		clone3.TextLabel.TextColor = Color3.fromRGB(0, 255, 17)
	end
	plr.CharacterAdded:Connect(function(char)
-- then the rest of your existing code...