With the mode switching fixed I have encountered yet another problem, while switched the gun won't process or do what the mode is required to do. This is part of the code, once again help would be nice.

			local Stun = script.Parent.Modes.Stun:Clone()
			local Poison = script.Parent.Modes.Poison:Clone()
			local CurrentMode = script.Parent.Modes.Mode.Value
			game.Debris:AddItem(Attachment,3)
			if part.Name == "Head" or part.Parent:IsA("Accessory") then
						if CurrentMode == "Damaging" then
					humanoid:TakeDamage(damage*FireMultiplier)
				else
				if CurrentMode == "Stun" then
						humanoid:TakeDamage(damage*HeadMultiplier)
						Stun.Disabled = false
						Stun.Parent = humanoid.Parent
				else
					if CurrentMode == "Poison" then
					humanoid:TakeDamage(damage*HeadMultiplier)
					Poison.Disabled = false
					Poison.Parent = humanoid.Parent
				end
				end
				end

If I change else with elseif it causes problems with the other part of the code, if it's required to change I will try finding a fix for the other part.