I am trying to make this auto morph script to work in a filtered enabled game but I can't find how... but it won't work. can someone help me?

local TAD = 2665153
local Rnk = 7
local name = script.Parent.Parent
local plr = game.Workspace
local g = nil
local cape = false
wait(1)
if name:IsInGroup(2665153) and not name:IsInGroup(2712813) and not name:IsInGroup(2813993) and not name:IsInGroup(2712812) and not name:IsInGroup(2712815) then
	TAD = 2665153
	if name:GetRankInGroup(TAD) <= 7 then
		Rnk = 7
	elseif name:GetRankInGroup(TAD) <= 10 then
		Rnk = 10
	elseif name:GetRankInGroup(TAD) <= 13 then
		Rnk = 13
	elseif name:GetRankInGroup(TAD) == 14 then
		Rnk = 14
	elseif name:GetRankInGroup(TAD) == 15 then
		Rnk = 15
	elseif name:GetRankInGroup(TAD) == 16 then
		Rnk = 16
	elseif name.Name == 'JakuAeulous' then
		Rnk = 'Jak'
	elseif name.Name == 'Exirium' then
		Rnk = 'Exir'
	elseif name.Name == 'Hirokumi' then
		Rnk = 'Danil'
	end
elseif name:IsInGroup(2712813) then
	TAD = 2712813
	cape = true
	if name:GetRankInGroup(TAD) <= 4 then
		Rnk = 'G1'
	elseif name:GetRankInGroup(TAD) <= 7 then
		Rnk = 'G2'
	elseif name:GetRankInGroup(TAD) == 254 then
		Rnk = 'G3'
	elseif name:GetRankInGroup(TAD) == 255 then
		Rnk = 'Sav'
	end
elseif name:IsInGroup(2813993) then
	TAD = 2813993
	if name:GetRankInGroup(TAD) <= 2 then
		Rnk = 'Nav1'
	elseif name:GetRankInGroup(TAD) == 3 then
		Rnk = 'Nav2'
	elseif name:GetRankInGroup(TAD) <= 6 then
		Rnk = 'Nav3'
	elseif name:GetRankInGroup(TAD) == 254 then
		Rnk = 'Nav4'
	end
elseif name:IsInGroup(2712812) then
	TAD = 2712812
	if name:GetRankInGroup(TAD) <= 2 then
		Rnk = 'Off1'
	elseif name:GetRankInGroup(TAD) <= 4 then
		Rnk = 'Off2'
	elseif name:GetRankInGroup(TAD) == 5 then
		Rnk = 'Off3'
	elseif name:GetRankInGroup(TAD) == 7 then
		Rnk = 'Off4'
	end
elseif name:IsInGroup(2712815) then
	TAD = 2712815
	if name:GetRankInGroup(TAD) <= 3 then
		Rnk = 'Var1'
	elseif name:GetRankInGroup(TAD) == 5 then
		Rnk = 'Var2'
	elseif name:GetRankInGroup(TAD) == 254 then
		Rnk = 'Var3'
	end
end
if plr[name.Name] ~= nil then
	--CLOTHES
	local s = plr[name.Name]:findFirstChild("Shirt")
	local p = plr[name.Name]:findFirstChild("Pants")
	--HAT
	if Rnk ~= 'Off1' and Rnk ~= 'Off2' and Rnk ~= 'Off3' then
		local b = plr[name.Name]:GetChildren() 
		for a=1,#b do 
			if b[a].className == "Accessory" or b[a].className == "Hat" then 
				b[a].Handle.Transparency = 1
			end
		end
	end
	--MORPH
	if plr[name.Name]:FindFirstChild("Helmet") == nil then
		if name.TeamColor == BrickColor.new('Gold') then
			g = game.ServerStorage.Morphs.TAD[Rnk].Helmet:Clone()
			if s~=nil and p~=nil then
				plr[name.Name].Shirt:remove()
				game.ServerStorage.Morphs.TAD[Rnk].Shirt:Clone().Parent = plr[name.Name]
				plr[name.Name].Pants:remove()
				game.ServerStorage.Morphs.TAD[Rnk].Pants:Clone().Parent = plr[name.Name]
			end
		else
			script:Destroy()
		end
        g.Parent = plr[name.Name]
        for i, v in ipairs(g:GetChildren()) do
           	if v:IsA("BasePart") then
              	local W = Instance.new("Weld")
           		W.Part0 = g.Middle
           		W.Part1 = v
           		local CJ = CFrame.new(g.Middle.Position)
      	 		local C0 = g.Middle.CFrame:inverse()*CJ
                local C1 = v.CFrame:inverse()*CJ
                W.C0 = C0
                W.C1 = C1
                W.Parent = g.Middle
            end
            local Y = Instance.new("Weld")
            Y.Part0 = plr[name.Name]:FindFirstChild("Head")
            Y.Part1 = g.Middle
            Y.C0 = CFrame.new(0, 0, 0)
            Y.Parent = Y.Part0
        end
		local h = g:GetChildren()
		for i = 1, # h do
			if h[i].className == "Part" or  h[i].className == "UnionOperation" then  
				h[i].Anchored = false
				h[i].CanCollide = false
			end
		end
		if cape == false then
			script:Destroy()
		end
	end
--------cape--------
	if plr[name.Name]:FindFirstChild("Cape") == nil and cape == true then
		if name.TeamColor == BrickColor.new('Gold') then
			g = game.ServerStorage.Morphs.Cape.Cape:Clone()
			if Rnk == 'G1' then
				g.Middle.Mesh.VertexColor = Vector3.new(1,1,1)
			elseif Rnk == 'Sav' then
				g.Middle.Mesh.VertexColor = Vector3.new(1,1,1)
				g.Middle.Mesh.TextureId = 'rbxassetid://553150652'
				g.Middle.Mesh.Scale = Vector3.new(0.9, 1.7, 1)
				g.Middle.Mesh.Offset = Vector3.new(-0.2, -0.8, 0.4)
			else
				g.Middle.Mesh.VertexColor = Vector3.new(0.8,0.5,0.1)	
			end
		else
			script:Destroy()
		end
        g.Parent = plr[name.Name]
        for i, v in ipairs(g:GetChildren()) do
           	if v:IsA("BasePart") then
              	local W = Instance.new("Weld")
           		W.Part0 = g.Middle
           		W.Part1 = v
           		local CJ = CFrame.new(g.Middle.Position)
      	 		local C0 = g.Middle.CFrame:inverse()*CJ
                local C1 = v.CFrame:inverse()*CJ
                W.C0 = C0
                W.C1 = C1
                W.Parent = g.Middle
            end
            local Y = Instance.new("Weld")
            Y.Part0 = plr[name.Name]:FindFirstChild("Torso")
            Y.Part1 = g.Middle
            Y.C0 = CFrame.new(0, 0, 0)
            Y.Parent = Y.Part0
        end
		local h = g:GetChildren()
		for i = 1, # h do
			if h[i].className == "Part" or  h[i].className == "UnionOperation" then  
				h[i].Anchored = false
				h[i].CanCollide = false
			end
		end
		script:Destroy()
	end
end