Hi I am currently remaking the Kitteh6660 ArmorModule script for it to work for R15, But everytime it change armor the character dies but get the bonus once respawned. But he doesn't wear the armor.(I removed some bodypart scripts because it is repetitive)

local ArmorModule = {}
--This script exists to let you add armor to mobs and also, to auto re-equip armor on respawn.
function ArmorModule.GetLevel(armor)
	if Game.ReplicatedStorage.ARMORS:FindFirstChild(armor) ~= nil then
		return Game.ReplicatedStorage.ARMORS:FindFirstChild(armor).Level.Value
	else
		return 0 --If it's not found, returns 0.
	end
end

function ArmorModule.GetDefense(armor)
	if Game.ReplicatedStorage.ARMORS:FindFirstChild(armor) ~= nil then
		if Game.Workspace.GAME_PROPERTIES.DefenseMode.Value == 1 or Game.Workspace.GAME_PROPERTIES.DefenseMode.Value == 2 then
			return Game.ReplicatedStorage.ARMORS:FindFirstChild(armor).Defense.Value
		elseif Game.Workspace.GAME_PROPERTIES.DefenseMode.Value == 3 then
			return Game.ReplicatedStorage.ARMORS:FindFirstChild(armor).HPBoost.Value
		else
			return 0 --If it's not found, returns 0.
		end
	else
		return 0 --If it's not found, returns 0.
	end
end

function ArmorModule.RemoveArmor(character)
	local humanoid = character:FindFirstChild("Humanoid") or character:FindFirstChild("Human")
	--Remove old armour.
	if humanoid ~= nil then
		if character:FindFirstChild("UpperLeg1") ~= nil then
			character:FindFirstChild("UpperLeg1"):Remove()
		end	
		if character:FindFirstChild("UpperLeg2") ~= nil then
			character:FindFirstChild("UpperLeg2"):Remove()
		end			
		if character:FindFirstChild("UpperArm1") ~= nil then
			character:FindFirstChild("UpperArm1"):Remove()
		end	
		if character:FindFirstChild("UpperArm2") ~= nil then
			character:FindFirstChild("UpperArm2"):Remove()
		end	
		if character:FindFirstChild("LowerTorso") ~= nil then
			character:FindFirstChild("LowerTorso"):Remove()
		end	
		if character:FindFirstChild("LowerArm1") ~= nil then
			character:FindFirstChild("LowerArm1"):Remove()
		end
		if character:FindFirstChild("LowerArm2") ~= nil then
			character:FindFirstChild("LowerArm2"):Remove()
		end
		if character:FindFirstChild("Hand1") ~= nil then
			character:FindFirstChild("Hand1"):Remove()
		end
		if character:FindFirstChild("Hand2") ~= nil then
			character:FindFirstChild("Hand2"):Remove()
		end
		if character:FindFirstChild("Foot1") ~= nil then
			character:FindFirstChild("Foot1"):Remove()
		end
		if character:FindFirstChild("Foot2") ~= nil then
			character:FindFirstChild("Foot2"):Remove()
		end	
		if character:FindFirstChild("LowerLeg1") ~= nil then
			character:FindFirstChild("LowerLeg1"):Remove()
		end
		if character:FindFirstChild("LowerLeg2") ~= nil then
			character:FindFirstChild("LowerLeg2"):Remove()
		end	
		if character:FindFirstChild("UpperTorso") ~= nil then
			character:FindFirstChild("UpperTorso"):Remove()
		end	
	else
		return false --Exits the function if it's nil. Prevents the function from breaking.
	end	
end

function ArmorModule.EquipArmor(character, armor)
	local humanoid = character:FindFirstChild("Humanoid") or character:FindFirstChild("Human")
	if character ~= nil then
		--Remove old armour.
		if humanoid ~= nil then
			if character:FindFirstChild("UpperLeg1") ~= nil then
			    character:FindFirstChild("UpperLeg1"):Remove()
		    end	
		    if character:FindFirstChild("UpperLeg2") ~= nil then
			    character:FindFirstChild("UpperLeg2"):Remove()
	     	end			
		    if character:FindFirstChild("UpperArm1") ~= nil then
			    character:FindFirstChild("UpperArm1"):Remove()
		    end	
		    if character:FindFirstChild("UpperArm2") ~= nil then
			    character:FindFirstChild("UpperArm2"):Remove()
		    end	
	       	if character:FindFirstChild("LowerTorso") ~= nil then
			    character:FindFirstChild("LowerTorso"):Remove()
	       	end	
		    if character:FindFirstChild("LowerArm1") ~= nil then
			    character:FindFirstChild("LowerArm1"):Remove()
		    end
		    if character:FindFirstChild("LowerArm2") ~= nil then
			    character:FindFirstChild("LowerArm2"):Remove()
	    	end
	     	if character:FindFirstChild("Hand1") ~= nil then
			    character:FindFirstChild("Hand1"):Remove()
		    end
		    if character:FindFirstChild("Hand2") ~= nil then
			    character:FindFirstChild("Hand2"):Remove()
		    end
		    if character:FindFirstChild("Foot1") ~= nil then
			    character:FindFirstChild("Foot1"):Remove()
		    end
		    if character:FindFirstChild("Foot2") ~= nil then
			    character:FindFirstChild("Foot2"):Remove()
		    end	
		    if character:FindFirstChild("LowerLeg1") ~= nil then
			    character:FindFirstChild("LowerLeg1"):Remove()
		    end
		    if character:FindFirstChild("LowerLeg2") ~= nil then
			    character:FindFirstChild("LowerLeg2"):Remove()
		    end	
		    if character:FindFirstChild("UpperTorso") ~= nil then
			    character:FindFirstChild("UpperTorso"):Remove()
		    end	
		end
	else
		return false --Exits the function if it's nil. Prevents the function from breaking.
	end
	--Arms
	if humanoid ~= nil and character:FindFirstChild("Hand1") == nil then
		local g = Game.ReplicatedStorage.ARMORS:FindFirstChild(armor).Hand1:Clone()
		g.Parent = character
		local C = g:GetChildren()
		for i=1, #C do
			if C[i].ClassName == "MeshPart" then
				if C[i].Name == "Middle" then
					C[i].Transparency = 1
				end
				local W = Instance.new("Weld")
				W.Part0 = g.Middle
				W.Part1 = C[i]
				local CJ = CFrame.new(g.Middle.Position)
				local C0 = g.Middle.CFrame:inverse()*CJ
				local C1 = C[i].CFrame:inverse()*CJ
				W.C0 = C0
				W.C1 = C1
				W.Parent = g.Middle
			end
				local Y = Instance.new("Weld")
				Y.Part0 = character["LeftHand"]
				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
			h[i].Anchored = false
			h[i].CanCollide = false
		end
		
	end
	if humanoid ~= nil and character:FindFirstChild("Foot2") == nil then
		local g = Game.ReplicatedStorage.ARMORS:FindFirstChild(armor).Foot2:Clone()
		g.Parent = character
		local C = g:GetChildren()
		for i=1, #C do
			if C[i].ClassName == "Part" then
				if C[i].Name == "Middle" then
					C[i].Transparency = 1
				end
				local W = Instance.new("Weld")
				W.Part0 = g.Middle
				W.Part1 = C[i]
				local CJ = CFrame.new(g.Middle.Position)
				local C0 = g.Middle.CFrame:inverse()*CJ
				local C1 = C[i].CFrame:inverse()*CJ
				W.C0 = C0
				W.C1 = C1
				W.Parent = g.Middle
			end
				local Y = Instance.new("Weld")
				Y.Part0 = character["RightFoot"]
				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
			h[i].Anchored = false
			h[i].CanCollide = false
		end
		
	end
	--Torso
	if humanoid ~= nil and character:FindFirstChild("UpperTorso") == nil then
		local g = Game.ReplicatedStorage.ARMORS:FindFirstChild(armor).UpperTorso:Clone()
		g.Parent = character
		local C = g:GetChildren()
		for i=1, #C do
			if C[i].ClassName == "Part" then
				if C[i].Name == "Middle" then
					C[i].Transparency = 1
				end
				local W = Instance.new("Weld")
				W.Part0 = g.Middle
				W.Part1 = C[i]
				local CJ = CFrame.new(g.Middle.Position)
				local C0 = g.Middle.CFrame:inverse()*CJ
				local C1 = C[i].CFrame:inverse()*CJ
				W.C0 = C0
				W.C1 = C1
				W.Parent = g.Middle
			end
				local Y = Instance.new("Weld")
				Y.Part0 = character["UpperTorso"]
				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
			h[i].Anchored = false
			h[i].CanCollide = false
		end
		
	end
	if humanoid ~= nil and character:FindFirstChild("LowerTorso") == nil then
		local g = Game.ReplicatedStorage.ARMORS:FindFirstChild(armor).LowerTorso:Clone()
		g.Parent = character
		local C = g:GetChildren()
		for i=1, #C do
			if C[i].ClassName == "Part" then
				if C[i].Name == "Middle" then
					C[i].Transparency = 1
				end
				local W = Instance.new("Weld")
				W.Part0 = g.Middle
				W.Part1 = C[i]
				local CJ = CFrame.new(g.Middle.Position)
				local C0 = g.Middle.CFrame:inverse()*CJ
				local C1 = C[i].CFrame:inverse()*CJ
				W.C0 = C0
				W.C1 = C1
				W.Parent = g.Middle
			end
				local Y = Instance.new("Weld")
				Y.Part0 = character["LowerTorso"]
				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
			h[i].Anchored = false
			h[i].CanCollide = false
		end
		
	end
end

return ArmorModule