Weld altering the oreintation

I’m currently trying to create a hazmat suit helmet, currently welding the two parts of the helmet together with a WeldConstraint and then using a Weld to join the MeshPart and head togther. This is causing the helmet’s orientation to go off, why? and how can I solve this??
I have already tried to edit the orentation and the CFrame, both did not fix the orientation.

image
image

Here is my code, the clothing and equipping of the helmet works correctly. Its just the orentation of the helmet.

See code
local Biohazard = {
	["Top"] = nil, -- I do actually supply a VALID ID and it does work, i just removed them so they cant be used.
	["Bottom"] = nil, -- I do actually supply a VALID ID and it does work, i just removed them so they cant be used.
	["Helmet"] = script.BiohazardHelmet
}

local Radiation = {
	["Top"] = nil, -- I do actually supply a VALID ID and it does work, i just removed them so they cant be used.
	["Bottom"] = nil, -- I do actually supply a VALID ID and it does work, i just removed them so they cant be used.
	["Helmet"] = script.RadiationHelmet
}

-- TEMPORARY SYSTEM

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		if character:FindFirstChildOfClass("Shirt") then
			local Shirt = character:FindFirstChildOfClass("Shirt")
			Shirt.ShirtTemplate = Biohazard.Top
		else
			local Shirt = Instance.new("Shirt")
			Shirt.Parent = character
			Shirt.ShirtTemplate = Biohazard.Top
		end
		
		if character:FindFirstChildOfClass("Pants") then
			local Pants = character:FindFirstChildOfClass("Pants")
			Pants.PantsTemplate = Biohazard.Bottom
		else
			local Pants = Instance.new("Pants")
			Pants.Parent = character
			Pants.PantsTemplate = Biohazard.Bottom
		end
		
		local Helmet = Biohazard.Helmet:Clone()
		Helmet.Parent = character.Head
		
		local Weld = Instance.new("Weld")
		Weld.Parent = Helmet.MeshPart
		Weld.Part0 = character.Head
		Weld.Part1 = Helmet.MeshPart
		
		for _,inst in pairs(workspace:WaitForChild(player.Name):GetChildren()) do
			if inst:IsA("Accessory") then
				inst:Destroy()
			end
		end
		print("Suit added") -- Does print
	end)
end)

Update: problem sovled - don’t really know why it was happening lol.

2 Likes

In my morph system, I changed the CFrame of the primary part of each object to the CFrame of the limbs on the player character.

As I said, i’ve already attempted to change the CFrame of the object. Unless i’m just being completely brain-dead I can’t get it to change what I’m getting. Could you provide a code example so I can see what I’m failing to do?

for _, BaseParts in pairs(MorphType:GetChildren()) do 
		if BaseParts:IsA("Model") then 
			for _, Bases in pairs(Character:GetChildren()) do
				if Bases:IsA("BasePart") then 
					local ClonedBasePart = BaseParts:Clone()
					if Bases.Name == ClonedBasePart.Name then 

						ClonedBasePart.PrimaryPart.CFrame = Bases.CFrame

						local Weld = Instance.new("Weld")
						Weld.Part0 = Bases
						Weld.Part1 = ClonedBasePart.PrimaryPart
						ClonedBasePart.Parent = Bases
						Weld.Parent = ClonedBasePart.PrimaryPart

						for _, PartsInBase in pairs(ClonedBasePart:GetChildren()) do 
							PartsInBase.Anchored = false
						end
					end
				end
			end
		end
	end

Kinda messy, but it works.