Parts in model CFrames getting messed up

I am creating a customization sequence for my game’s characters and I wanted to be able to draw the face. This works however when I try to connect these parts together in a model the CFrames get set to the primary part whenever I unanchor the part for interpolation. How would I interpolate the model without the CFrames getting messed up? (The model is created in a script) I have looked on the devforum and no one else has this issue that I can find so I am clueless.

Here’s where I set the properties of the face (I also set the properties of chest because the character is a robot)

if #workspace.Face:GetChildren() > 0 then
local FaceModel =“Model”)
FaceModel.Parent = workspace
CreateFace = FaceModel

  				local FacePrimaryPart ="Part")
  				FacePrimaryPart.TopSurface = Enum.SurfaceType.Smooth
  				FacePrimaryPart.BottomSurface = Enum.SurfaceType.Smooth
  				FacePrimaryPart.Transparency = 1
  				FacePrimaryPart.Size =, 1, 1)
  				FacePrimaryPart.Anchored = true
  				FacePrimaryPart.CanCollide = false
  				FacePrimaryPart.CFrame = workspace.EngravingHead.CFrame
  				FacePrimaryPart.Parent = CreateFace
  					CreateFace.PrimaryPart = FacePrimaryPart
  				until CreateFace.PrimaryPart == FacePrimaryPart

  				for i, part in ipairs(workspace.Face:GetChildren()) do
  					local newPart = part:Clone()
  					newPart.Transparency = 1
  					newPart.Parent = CreateFace

  					local Weld ="Weld")
  					Weld.Parent = CreateFace.PrimaryPart
  					Weld.Part0 = CreateFace.PrimaryPart
  					Weld.Part1 = newPart
  					newPart.Anchored = false
  					newPart.CFrame = part.CFrame

if #workspace.Chest:GetChildren() > 0 then
local ChestModel =“Model”)
ChestModel.Parent = workspace
CreateChest = ChestModel

  				local ChestPrimaryPart ="Part")
  				ChestPrimaryPart.TopSurface = Enum.SurfaceType.Smooth
  				ChestPrimaryPart.BottomSurface = Enum.SurfaceType.Smooth
  				ChestPrimaryPart.Transparency = 1
  				ChestPrimaryPart.Size =, 1, 1)
  				ChestPrimaryPart.Anchored = true
  				ChestPrimaryPart.CanCollide = false
  				ChestPrimaryPart.CFrame = workspace["Engraving Body"].CFrame
  				ChestPrimaryPart.Parent = CreateChest
  					CreateChest.PrimaryPart = ChestPrimaryPart
  				until CreateChest.PrimaryPart == ChestPrimaryPart

  				for i, part in ipairs(workspace.Chest:GetChildren()) do
  					local newPart = part:Clone()
  					newPart.Transparency = 1
  					newPart.Parent = CreateChest

  					local Weld ="Weld")
  					Weld.Parent = CreateChest.PrimaryPart
  					Weld.Part0 = CreateChest.PrimaryPart
  					Weld.Part1 = newPart
  					newPart.Anchored = false
  					newPart.CFrame = part.CFrame

Here is the interpolation for face:

CreateFace.PrimaryPart.CFrame = workspace.HeadLock.CFrame

Here is the interpolation for chest:

CreateChest.PrimaryPart.CFrame = workspace.TorsoLock.CFrame

Does anyone have a solution?

I fixed it using weld constraints instead of welds.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.