Help creating a ui button that toggles the users visibility

I’m making an admin panel right now that needs to have a toggle that will make the player visible and invisible but this is having some issues with what I think might be the r15 avatar type and dynamic heads and faces. Can anyone help me?

local button = script.Parent
local debounce = false

local event = script.Parent.SpeedEvent
event.Parent = game.ReplicatedStorage


event.OnServerEvent:Connect(function(player, plr)
	button.MouseButton1Click:Connect(function()
		if debounce == false then
			debounce = true
			
			
			
			local char = plr.Character:GetChildren()
			local char2 = plr.Character

			for i,v in pairs(char) do
				if v:IsA("Part") then
					local part = v
					local tweenservice = game:GetService("TweenService")

					local TweenInfo = TweenInfo.new(
						0.5,
						Enum.EasingStyle.Linear,
						Enum.EasingDirection.Out,
						0,
						false,
						0
					)

					local tween = tweenservice:Create(part, TweenInfo, {Transparency = 1})

					tween:Play()
				end
				
				
				if v.Name == "HumanoidRootPart" then
					return
				end
				
				
				if v:IsA("Accessory") then
					local part = v.Handle
					local tweenservice = game:GetService("TweenService")

					local TweenInfo = TweenInfo.new(
						0.5,
						Enum.EasingStyle.Linear,
						Enum.EasingDirection.Out,
						0,
						false,
						0
					)

					local tween = tweenservice:Create(part, TweenInfo, {Transparency = 1})

					tween:Play()
				end
				
				if v:IsA("MeshPart") then
					local part = v.Handle
					local tweenservice = game:GetService("TweenService")

					local TweenInfo = TweenInfo.new(
						0.5,
						Enum.EasingStyle.Linear,
						Enum.EasingDirection.Out,
						0,
						false,
						0
					)

					local tween = tweenservice:Create(part, TweenInfo, {Transparency = 1})

					tween:Play()
				end

				if v.Name == "Head" then
					if v:FindFirstChild("face") then
						local tweenservice = game:GetService("TweenService")
						local part = v.face

						local TweenInfo = TweenInfo.new(
							0.5,
							Enum.EasingStyle.Linear,
							Enum.EasingDirection.Out,
							0,
							false,
							0
						)

						local tween = tweenservice:Create(part, TweenInfo, {Transparency = 1})

						tween:Play()
					end
				end

				if v:IsA("Tool") then
					v.Handle.Transparency = 1
				end
			end
			
			
			
			button.BackgroundColor3 = Color3.fromRGB(62, 84, 57)
		elseif debounce == true then
			debounce = false
			
			
			
			
			local char = plr.Character:GetChildren()
			local char2 = plr.Character

			for i,v in pairs(char) do
				if v:IsA("Part") then
					local part = v
					local tweenservice = game:GetService("TweenService")

					local TweenInfo = TweenInfo.new(
						0.5,
						Enum.EasingStyle.Linear,
						Enum.EasingDirection.Out,
						0,
						false,
						0
					)

					local tween = tweenservice:Create(part, TweenInfo, {Transparency = 0})

					tween:Play()
				end

				if v:IsA("Accessory") then
					local part = v.Handle
					local tweenservice = game:GetService("TweenService")

					local TweenInfo = TweenInfo.new(
						0.5,
						Enum.EasingStyle.Linear,
						Enum.EasingDirection.Out,
						0,
						false,
						0
					)

					local tween = tweenservice:Create(part, TweenInfo, {Transparency = 0})

					tween:Play()
				end

				if v.Name == "Head" then
					local part = v.face
					local tweenservice = game:GetService("TweenService")

					local TweenInfo = TweenInfo.new(
						0.5,
						Enum.EasingStyle.Linear,
						Enum.EasingDirection.Out,
						0,
						false,
						0
					)

					local tween = tweenservice:Create(part, TweenInfo, {Transparency = 0})

					tween:Play()
				end

				if v:IsA("Tool") then
					v.Handle.Transparency = 0
				end
			end
			
			
			
			
			button.BackgroundColor3 = Color3.fromRGB(84, 61, 61)
		end
	end)
end)