I have a RadioGive script and it dont work

why?

local function WaitForChild(parent, childName)
	assert(parent, "ERROR: WaitForChild: parent is nil")
	while not parent:FindFirstChild(childName) do parent.ChildAdded:wait() end
	return parent[childName]
end
game.Players.PlayerAdded:connect(function(player)
local GamePassService = game:GetService('MarketplaceService')
local PlayersService = game:GetService('Players')
local GamePassIdObject = WaitForChild(script, 'GamePassId')
	player.CharacterAdded:connect(function(char)
		if player.Character.Name == "" or player.Character.Name == "" or player.Character.Name == "" or GamePassService:PlayerHasPass(player, GamePassIdObject.Value) then
		require(game:GetService("ReplicatedStorage"):WaitForChild("GiveRadio"))(player)
		end 
	end)
end)

Thanks For the help if you can help :)